ida调试php扩展,IDA动态调试Android App以及手动脱壳

将IDA的android_server push 到手机上,启动android_server。

转发端口

adb forward tcp:23946 tcp:23946

如果是用gdbserver调试,则转发gdbserver设置的端口,比如

adb forward tcp:9090 tcp:9090

启动app:

adb shell am start -D -n com.aaaa.bbbb/com.seworks.medusah.MainActivity

如果你想用gdbserver进行调试,则在进行这个步骤之后用gdbserver attach上进程:

gdbserver64 tcp:9090 --attach [pid]

打开android studio,打开ddms。或者用这个命令转发jdwp的端口(mac用):

for pid in `adb shell "ps | grep your.package.name" | awk '{print $2}'`; do adb forward tcp:8700 jdwp:$pid; done

打开IDA->Debugger->Attach->Remote ArmLinux/Android debugger,点击OK。

如果你是使用gdb,则使用ndk的gdb输入以下命令连接gdbserver:

gdb

(gdb)set architecture arm

(gdb)target remote :9090

(gdb)set arm force-mode thumb // or arm if the instructions look weird

打开IDA->windows->modules,搜索libdvm.so,双击libdvm.so,在新开的tab中搜索dexFileParse,双击该函数,在函数开头按F2设置断点。

连接jdb

jdb -connect "com.sun.jdi.SocketAttach:hostname=localhost,port=8700"

回到IDA中执行F9直到执行到断点。

打开File->Script command,输入:

static main(void)

{

auto fp, begin, end, dexbyte;

fp = fopen("E:\\dump.odex", "wb");

begin = r0;

end = r0 + r1;

for ( dexbyte = begin; dexbyte < end; dexbyte ++ )

fputc(Byte(dexbyte), fp);

}

然后执行

取出手机里的所有framework文件:

adb pull /system/framework/ ./framework/

根据framework将odex文件转换为smali文件:

java -jar .\baksmali-2.1.2.jar -x .\dump.odex -d .\framework

,此时会生成out文件夹,里面都是smali文件。

将smali文件打包为dex文件:

java -jar .\smali-2.1.2.jar out -o classes.dex

将dex文件反编译为jar文件:

.\dex2jar-2.0\d2j-dex2jar.bat .\classes.dex

使用jd-gui打开classes-dex2jar.jar文件即可查看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值