文章目錄
- 前言
- 使用AK匯出完整的反編譯包
- 新版本(AS 4.1以上)
- 匯入smalidea0.6
- 匯入反編譯包到AS
- 老版本
- 匯入smalidea0.05到AS之中
- 匯入AS完整的反編譯包
- 配置AS
- 使用AS分析反編譯包
- 第一種方法:
- 第二種方法:
前言
本篇文章主要內容為:
通過匯入反編譯出的完整smali代碼,設定好除錯所需的條件、設定斷點,
然后連接模擬器,運行代除錯的APK程式
使用AK匯出完整的反編譯包
將要分析的程式拖入AK,選擇“AndroidManifest.xml”,
先看看是否有這個標簽,在看看這個debug是否為“true”,
假如是false就要改為true,在重新打包回編譯一下,之后在反編譯后的APK,
假設沒有這個標簽就要添加,

右擊這個軟體的名稱,選擇“打開檔案路徑”,

這個就是反編譯的工程,可以復制到桌面,

新版本(AS 4.1以上)
匯入smalidea0.6
smalidea的作用:
smalidea-0.05.zip用于androidstudio識別smali代碼
下載地址:
https://bitbucket.org/JesusFreke/smalidea/downloads/
選擇設定,

根據箭頭指向選擇,

匯入剛剛下載的smalidea-0.06

選擇OK,

匯入反編譯包到AS
直接選擇Open,

選擇上邊AK匯出的反編譯包,之后點擊“OK”,

選擇“smali”檔案夾,給權限,

之后“smali”檔案夾會變為綠色,

使用新版本的可以直接跳到“ 配置AS ”處,
老版本
匯入smalidea0.05到AS之中
打開下載的AS,

選擇從本地匯入,選擇“smalidea”,

匯入AS完整的反編譯包
選擇匯入,

選中,點擊OK即可,

記得選擇這個“Project”, //在AS上顯示的是檔案夾的形象,

選擇“smali”,給權限,

給完權限后,這會出現一個“小白點”的檔案夾,

配置AS
在打開設定界面,

選擇一下,java的環境,不要忘記點擊下面的“ OK ”,

選擇“run”,

點擊“ + ”,選擇“Remote” //(新版本是“ Remote JVM Debug ”)

名字可以隨意改,這個埠建議是8700,不要忘記選擇工程,最后點擊OK,

這是新版本的,

以上就完成了準備作業,開始分析操作,
使用AS分析反編譯包
第一種方法:
先打開模擬器,安裝并運行“注冊機”程式,
在打開CMD,輸入“adb shell ps”,查看當前設備的行程資訊,

找到“注冊機”程式,

拿到其“PID”行程號“16703”, //從左到右的第二列,
新開一個CMD視窗,輸入“adb forward tcp:8700 jdwp:16703”
這個8700就是剛剛AS設定的埠,jdwp是轉發埠的意思,

在第二行出現一個8700,說明轉發成功,可以除錯了,
選擇剛剛新建的工程,點擊“debug”

下邊視窗出現 “socket”就說明我們可以去找斷點了,
新版本為點擊這個,

此時,找到之前我們熟悉的“checkSN”,在前面直接打個斷點即可,

繼續運行程式,點擊注冊,觸發斷點,

立馬就斷了下來,

按鍵盤快捷鍵“F8”向下走,
已經開始計算MD5了,

開始拼接sb,一般需要拼接32位,但是這么按太煩了,

在147行,在下一個斷點,按“F9”直接掉到新下的斷點處,
這個sb已經拼接完畢了,下邊的“i”可以看到是32位,

先看看下邊有沒有出現“ userSN ”,

沒有出現的話,在F8一下,運行到150行,
復制出現user SN的值,然后結束除錯模式,

直接粘貼復制的值到程式激活碼即可成功注冊,

第二種方法:
先關閉之前的兩個CMD視窗,以除錯模式啟動程式,CMD命令如下,
輸入“adb shell am start -D -n com.qianyu.zhuceji/.MainActivity”回車,

這樣我們可以直接看到PID的值,不用在ps尋找了,記的點一下上圖中紅框處,
接著進行轉發,新開一個CMD視窗,

重新打開AS,下斷點,運行“debug”,
接下來的步驟都一致了,完結撒花,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/298060.html
標籤:其他
