當前位置:首頁 » 安卓系統 » androidsmali

androidsmali

發布時間: 2022-04-22 18:48:27

『壹』 smali如何修改

smali文件對比java文件:
.class :類名
.super :父類
.source :源文件名
.implements :繼承的介面

.field :類成員變數
.method :類方法
.parameter :函數參數 p1,p2...

.locals x :局部變數(個數)

const/16 v0, 0x64 :int v0 = 0x64
const/high16 v0, 0x7f03 :高16賦值
const-wide v0, 0x4024051eb851eb85L
const-string v0, "1111" :字元串

add-int v0, p0, p1 :v0 = p0 + p1(static函數參數 從p0 開始)
sub-int v0, p1, p2 :v0 = p1 + p2(普通成員函數參數從 p1 開始)
mul-int v0, p1, p2 :v0 = p1 * p2
div-int v0, p1, p2 :v0 = p1 / p2

add-int/2addr v0, v1 :v0+v1放到 v0所在的地址
sub-int/2addr v0, p2 :v0-p2放到 v0所在的地址

if-ne :if(x != y)

iput-object v0, p0, Lcom/xyz/smali/SmaliActivity;->string:Ljava/lang/String; :成員變數 v0 = string;
iget-object v0, p0, Lcom/xyz/smali/SmaliActivity;->mBtn:Landroid/widget/Button; :關聯成員變數

sput v0, Lcom/xyz/smali/SmaliActivity;->OK:I :sput 給static變數賦值
sput-wide v0, Lcom/xyz/smali/SmaliActivity;->dou:D :sput-wide 給static的寬位元組變數賦值
sput-object v0, Lcom/xyz/smali/SmaliActivity;->sss:Ljava/lang/String;
sget v1, Lcom/xyz/smali/SmaliActivity;->OK:I :關聯static變數

invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V : this.super.onCreate();
invoke-static {p1, p2}, Lcom/xyz/smali/SmaliActivity;->add(II)I :調用靜態函數 add(p1, p2)
invoke-virtual {v0, p0}, Landroid/widget/Button;->setOnClickListener(Landroid/view/View$OnClickListener;)V :調用虛函數

move-result v0 :前面調用函數後,把結果放到 v0
move-result-object v0 :前面調用函數返回的對象給 v0

check-cast v0, Landroid/widget/Button; :強制類型轉換 mBtn = (Button) findViewById(R.id.btn);

return-void :return ;

『貳』 android smali是源碼

千峰扣丁IT教育總結:smali 是Android 應用程序(*.apk)反編譯生成的文件格式,
是一種類似於匯編語言的底層計算機語言。閱讀和書寫smali語法都需要極大的耐心和勇氣,
本文將介紹如何反編譯和運行第三方的程序(smali)代碼。

Android程序文件, 即apk文件, 其實是一個zip壓縮包, 其文件結構如下:classes.dex是程序的核心文件,是java語言的代碼編譯後的二進制位元組碼程序。這種位元組碼程序是編譯專供機器閱讀的,
類似於匯編語言的機器碼。然而如果想直接閱讀這部分程序, 最好的方法就是將該文件轉化為smali文件。apktool著名的反編譯工具 apktool
就可以完成這部分工作。 它將classes.dex文件反編譯成一堆的smali文件, 這些文件按源碼的包結構保存在各自的文件夾中。如下所示:另外,
apktool 工具強大之處在於它不僅可以反編譯apk文件, 而且可以根據現有的smali 文件生成新的apk文件。
這就給漢化apk或者去除apk內嵌廣告提供了可能。smali語法類似於匯編語言的語法, 涉及寄存器的直接操作, 可以直接閱讀, 但羞澀難懂,
尤其是在代碼混淆之後。

『叄』 為什麼狀態欄反編譯後沒有smali\com\android\systemui\statusbar\ statusbar

部分手機下拉背景和抽屜,通知欄頂部都是由主題決定的,系統用戶界面裡面是空的

『肆』 android反編譯APK後,是smali文件,能反編譯成dex文件嗎

dex文件不需要反編譯的,apk就是個壓縮文件,dex可以通過解壓直接得到

『伍』 Android---Smali語法中:什麼直接方法(direct methods)什麼是虛方法(virtual methods)

調用的時候

invoke-direct 調用直接方法
invoke-virtual 調用是虛方法
invoke-interface 調用介面函數

打開文件
#direct methods注釋後面的是直接方法
#virtual methods注釋後是虛方法

『陸』 如何把java代碼轉換成smali代碼

把java代碼轉成smali代碼共需要以下三個步驟
1、編譯java代碼為class文件
javac smaliTest.java
這個比較簡單,會生成smaliTest.class文件
2、把class文件轉成dex文件
我們知道apk包里java代碼最後生成的是class.dex文件,把class轉化成dex文件就需要用到android SDK提供的一個工具dx,該jar包位於android-sdk\build-tools\23.0.1\lib,找到該包後執行以下命令
java -jar dx.jar --dex --output=smaliTest.dex smaliTest.class
3、把dex轉化成smali文件
這時候會使用到另外一個工具baksmali,該工具位於android-sdk\platform-tools\,找到該包後執行以下命令
java -jar baksmali.jar smaliTest.dex
OK,完成,此時會生成一個out目錄,在out目錄下的smaliTest.smali就是我們要看到的smali代碼了

『柒』 你好,我想問問Android反編譯之後哪些文件有用smail文件夾里的東西有用嗎

smali是通過安卓的java代碼經過編譯後得到的,可以理解為delvik虛擬機的「匯編語言」。一般反編譯apk做修改都是直接修改smali代碼的。
smali代碼其實比較容易懂,是可以和java代碼對應上的。你所希望的直接在IDE修改java代碼應該是無法達到的。
希望採納。

『捌』 求助:Android逆向涉及到的dalvik位元組碼和smali文件,ARM匯編三者的聯系和區別是什麼

dalvik位元組碼就是smali或者(java)用編譯產生的dalvik可執行文件
ARM匯編,是操作晶元級的指令集。這三個東西不在一個層面
android

|(編譯產生.dex,也可理解為smali壓縮文件,也就是虛機可執行文件)

dalvik虛機
|

ARM匯編
|
硬體

『玖』 安卓反編譯出來的都是.smali文件,怎麼反編譯位原工程啊修改後還能重新編譯回去

反編譯步驟:

下載apktool 並設置環境變數
命令行進入apk目錄執行:apktool d xx.apk (如果遇到一些錯誤說明apk做了防破解處理)
執行成功後會生成xx文件夾,進入xx文件夾修改需要修改的內容,如果需要修改代碼,進入xx\smali\裡面,需要懂一些smali語法
修改完後回到命令行,執行:apktool b xx ,會在xx文件夾裡面生成一個dist文件夾,裡面的apk就是回編譯的,這個apk是沒有簽名的
下載網上的簽名工具對apk簽名,完了就可以安裝了(如果你下載了源碼或者sdk,裡面自帶一個signapk也可以簽名)

『拾』 android studio中compile2smali怎麼用

網路了一下關鍵字,沒發現這個關鍵字,看來你只能去谷歌一下,然後看看是否官方的文檔了。

熱點內容
androidjson生成 發布:2024-11-01 11:40:56 瀏覽:580
php如何調用介面 發布:2024-11-01 11:38:54 瀏覽:739
osx與linux 發布:2024-11-01 11:32:21 瀏覽:773
java編譯並執行命令 發布:2024-11-01 11:29:23 瀏覽:326
安卓中控屏的音樂如何刪除 發布:2024-11-01 11:26:14 瀏覽:752
數字貨幣開源碼 發布:2024-11-01 11:20:10 瀏覽:198
sqlserver埠號 發布:2024-11-01 11:09:35 瀏覽:977
如何改匠魂配置 發布:2024-11-01 11:07:54 瀏覽:661
linux終止命令的命令 發布:2024-11-01 11:07:46 瀏覽:807
電子產品直播帶貨詳細腳本 發布:2024-11-01 10:57:07 瀏覽:333