一次完整的IDA动态调试dex过程

使用到的工具

IDA6.8,adb,apktool,auto-sign

原料:Crackme.apk文件


阶段一——反编译重打包重签名

使用apktool反编译Crackme.apk

用法 apktool.bat d <file.apk>


查看一下AndroidManifest.xml文件,确认一下是否是android:debuggable="true",没有的话加上在<application >中加上,

此时如果处于其他原因需要修改smali文件的话,找到对应smali文件修改。

这个时候,还有一件重要的事需要做,保存下dex文件,在build/apk/下。

接来下还是使用apktool进行重打包,


在解压出的Crackme文件夹下会存在一个dist文件夹,里面放着打包的好apk。

打包好后需要对它签名才能最终安装到我们的设备上,这里使用auto-sign这个工具(推荐使用,因为此前尝试过使用过jarsigner命令签名,

但签名后的文件不能正常安装,估计 是还有其他签名后的步骤未进行,而auto-sign能一步到位)

把apk名字改成update.zip

auto-sign用法:


java -jar signapk.jar testkey.x509.pem testkey.pk8 update.zip update_signed.zip

签名好之后改下后缀名就好了。

阶段二——使用adb

首先使用adb查看设备是否能够连接上,

使用adb devices查看:


设备正常,然后就可以把我们签名好的apk程序安装到手机上,

使用


完成后,进行下一步,接下来需要把ida安装路径下的\dbgsrv\android_server推到我们的设备上,

使用命令:

之后使用adb shell启动shell终端,

使用su切换权限,

cd /data/local/tmp进入到android_server文件目录,

chmod 755 android_server

./android_server 运行程序

这时我们打开另一个adb窗口进行端口转发


阶段三——配置IDA,加载dex

dex拖到IDA中打开,在IDA菜单中选择 【Debugger】-> 【Debugger Options…】-> 【set specific options】添加以下选项:

Debugger】-> 【Process Options…】的配置如图


接下来点击IDA上的启动按钮,可以看到手机端的程序运行起来了,ida也发生了变化

就可以下断点,查看变量的值,开始调试之旅了。

如果遇到“bad type”,可以使用Watch View窗口,添加变量,设置类型。

例如:

(Object*)v0

(String)v0

(char*)v0

(int)v0


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值