西班牙三棵树 发表于 2021-5-25 16:19

Smali代码的动态调试

Smali代码的动态调试
在跟着HXD的论坛经典教程学习安卓逆向的Smali代码调试:

https://www.52pojie.cn/thread-658865-1-1.html

但是,没想到第一关就出现了带问题。教程上面的教授的是使用Monitor,在新版AS中并没有找到相关的入口,所以就转而投向谷歌,结果发现了DDMS这个玩意直接没了:



好的,那接下来就转而寻求DDMS的替换者。那么问题来了,他在哪呢

自己折腾来折腾去,结合百家之长,不停试错,终于成功了。接下来请看:

环境:Android studio 3.6.1

首先,按大哥的链接下载ideasmali,有了这个就可以在smali中加入断点:
       ideasmali下载链接: 链接:https://pan.baidu.com/s/1htl26qS 密码:0pre

安装ideasmali:路径:File->setting




选择需要调试的APK文件,反汇编后提取出来smali文件并新建一个文件夹放起来:





将这个APK安装到Android Studio的虚拟机上,并且确保连接成功。

使用Android Studio打开刚刚的smali文件夹:





将这个文件夹设为sources root





在File->Project中设置一下这个project的SDK,不然会无法找到附加的进程





在config里面编辑一个新的remote用于调试,端口设为8700





这样子就可以成功attach到我们的进程了,这个时候在虚拟机中点击就可以进行到相应断点停止了:



西班牙三棵树 发表于 2021-5-27 11:36

莫问刀 发表于 2021-5-26 23:52
monitor的位置在SDK里面啊。举个例子
Android/sdk/tools/monitor.bat
双击这个bat,就可以打开ddms了啊。

我的DDMS双击会闪退,看了看问题说是找不到JAVA路径,又说这个是因为find_java的版本问题,改了又会出新错误。。。

debug_cat 发表于 2021-5-27 18:27

西班牙三棵树 发表于 2021-5-27 11:36
我的DDMS双击会闪退,看了看问题说是找不到JAVA路径,又说这个是因为find_java的版本问题,改了又会出新 ...

那估计你环境没好吧,我的是正常的。

冥界3大法王 发表于 2021-5-25 18:29

动手是最快的上手途径。。经验都是在失败中找到的。。比求论坛魔头强得多啊~~{:301_975:}

lies2014 发表于 2021-5-25 18:49

DDMS旧版还是可以用的,比Android Profiler好用多了

icefeng199 发表于 2021-5-25 22:56

DDMS你可以在sdk目录里找一下

debug_cat 发表于 2021-5-26 23:52

monitor的位置在SDK里面啊。举个例子
Android/sdk/tools/monitor.bat
双击这个bat,就可以打开ddms了啊。

sivanliu 发表于 2021-5-27 08:37

调试大法好

xt61544562 发表于 2021-5-27 12:51

挺好的啊 我去二队去

牧星 发表于 2021-5-28 08:50

感谢分享
页: [1] 2
查看完整版本: Smali代码的动态调试