温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Smali动态调试方法

发布时间:2020-06-21 22:02:29 来源:网络 阅读:806 作者:jeshica 栏目:移动开发

准备工具:

apktool

eclipse


调试步骤:

 1.对apk使用apktool反编译出可调试的smali代码到testout文件夹

apktoold 的-d test.apk -o testout

注意-d参数是生成可调试代码

2,在AndroidManifest.xml中,设置application为可调试:android:debuggable="true"


3,找到Lancher入口


4,在入口类的OnCreate方法中,在第一句前插入
invoke-static {}, Landroid/os/Debug;->waitForDebugger()V
记得添加a=0;
 

以上2-4步也可以用shell命令:am start -D -n 包名/类名
进入调试等待


5,重新打包,记得仍然用-d参数
apktoold b -d testout -o debug.apk


6, 重签名

7,安装apk,并启动,此时程序触发调试点

8,打开eclipse,导入smali工程
    1) File -> New -> Project -> Java Project -> Next
    2) Project Name随便起,Use default location选项去掉,Location选择out文件夹,然后Next
    3) 把smali文件夹设为Source Folder,然后Finish
 
9,下断点

10,打开DDMS,查看待调试程序的端口,8600

11,  回到eclipse,配置远程调试
    1) 菜单Run -> Debug -> Debug Configurations
    2) 双击Remote Java Application,Host处默认localhost就行,Port填第10步得到的8600,然后Apply -> Debug。
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI