中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用無效字節碼指令引發逆向工具崩潰(一)

發布時間:2020-07-15 17:06:05 來源:網絡 閱讀:501 作者:大水牛牛 欄目:移動開發

由于大部分逆向工具都是線性讀取字節碼并解析,當遇到無效字節碼時,就會引起反編譯工具字節碼解析失敗。

 

我們可以插入無效字節碼到DEX文件,但要保證該無效字節碼永遠不會被執行(否則您的程序就會崩潰了!)。

 

首先我們新建一個測試類。為了繞過Dalvik運行時代碼驗證,BadCode.java要保證不被調用。(否則運行app,會出現java.lang.verifyerror異常)

利用無效字節碼指令引發逆向工具崩潰(一)

然后生成apk,用ida打開classes.dex。并找到BadCode類的aaa方法。選中的三行代碼對應”System.out.println("aaaa");”

利用無效字節碼指令引發逆向工具崩潰(一)

切換到HexView-a視圖,記錄下指令碼 “62 00 02 04 1A 01 8E 07  6E 20 19 10 10 00” 和對應偏移“0003A2A4”

利用無效字節碼指令引發逆向工具崩潰(一)

 

使用C32asm,以十六進制的方式打開dex文件。按快捷鍵“Ctrl + G”,定位到“0003A2A4”

把“62 00 02 04 1A 01 8E 07  6E 20 19 10 10 00”改為“12 01 38 01 03 00 FF FF 00 00 00 00 00  00

利用無效字節碼指令引發逆向工具崩潰(一)

 

Opcodes解釋:

12 01  //  const/4  v1, 0 //v1=0

38 01 03 00  //  if-eqz   v1, loc_3A2AC //if(v1==0) 跳轉到 loc_3A2AC:

FF FF  // FFFF (Bad opcodes) //本行代碼被跳過永遠不會執行

// loc_3A2AC:

 

保存dex。把修改后的dex文件拖入DexFixer進行修復。

利用無效字節碼指令引發逆向工具崩潰(一)

 

用修復后的dex覆蓋原apk中的dex文件。

利用無效字節碼指令引發逆向工具崩潰(一)

 

刪除META-INF簽名文件

利用無效字節碼指令引發逆向工具崩潰(一)

使用簽名工具,對apk重新簽名。

利用無效字節碼指令引發逆向工具崩潰(一)

Apk安裝到手機,運行成功

利用無效字節碼指令引發逆向工具崩潰(一)

 

下面試試反逆向工具的效果

 

Apktool:(很遺憾,新版本已經修復了這個錯誤)

利用無效字節碼指令引發逆向工具崩潰(一)

 

Dex2jar:(反編譯失敗)

利用無效字節碼指令引發逆向工具崩潰(一)

 

用到的工具:

IDA http://pan.baidu.com/share/link?shareid=132208&uk=1795434040

C32Asm http://www.crsky.com/soft/3128.html

DexFixerhttp://bbs.pediy.com/showthread.php?p=1158816

Ijiami signerhttp://t.cn/R2tfvdP (需登錄注冊賬號:http://t.cn/R2tfAiC


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大足县| 沾化县| 永福县| 当雄县| 太仆寺旗| 大庆市| 冀州市| 尼玛县| 成都市| 灵石县| 岗巴县| 普兰店市| 宣武区| 广安市| 教育| 开平市| 油尖旺区| 巴南区| 左贡县| 任丘市| 杨浦区| 息烽县| 伊吾县| 额尔古纳市| 嫩江县| 建阳市| 浠水县| 蓬莱市| 邳州市| 涞水县| 德江县| 夏邑县| 木兰县| 交口县| 新龙县| 中牟县| 大厂| 临澧县| 杭锦后旗| 牟定县| 北宁市|