安卓动态调试,Java语言

靠谱的在线反编译网址:http://www.javadecompilers.com

IDA Pro 6.8可以选择APK,进行调试DEX和设置参数,端口号记得选择8700


安卓动态调试的课题太大,先说一下Java语言吧

通常,我们拿到一个安卓APP,也就是后缀名是APK的安装包,首先会丢给Android Killer处理一下,Android Killer一般会告诉你这个程序用的是什么技术,Unity 3D或者Cocos 2D,然后,如果要看Java代码的话,可以看到一些Smali语言的,如果你觉得阅读起来不是特别舒服的话,一般用JD-GUI来进行反编译,如果有一些类反编译失败的话,则可以尝试用其它反编译工具,例如?

以上就是一些静态分析的方法,但是遇到一些必须要动态调试的时候,需要用到IDA了。

根据android的官方文档,如果要调试一个App里面的dex代码,必须满足以下两个条件中的任何一个:
1.App的AndroidManifest.xm中Application标签必选包含属性android:debuggable="true"
2./default.propro.debuggable的值为1;

第一个条件自然不用说了,没有人会把自己发布的程序把这个变量设置成true,除非他疯了。第二个条件,测试了几次也没有成功,最后用了一个比较取巧的方法:在xposed框架上安装XInstaller模块,算是把这个问题糊弄过去了。

IDA 的设置。

1.用IDA 6.8打开apk文件,选择dex文件进行加载;

2.设置debugger选项,Debugger->Debugger options->Set specific options按如下图所示进行设置,然后确定返回;

Debugger->Process Options其他默认不变,端口这里改为8700

3.找到在感兴趣的函数要下断点的位置,光标移到要下断点的那一行,按F2下断点;




4.选中IDA Pro 6.6窗口,按F9运行,如果出现下图的画面并且手机屏幕出现"Waiting For Debugger"界面就说明设置成功,可以进行动态调试了。

5.当IDA中断在了我们设置断点的地方,这时选中ida->debugger->use source level debugging(源码水平调试),然后点击ida->debugger->debugger windows->locals打开局部变量窗口,就可以产看变量的值了。尽管如此,IDA动态调试Android程序的Dex文件时,变量的查看不是很方便。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值