您的位置:首页 > 其它

360加固动态脱壳

2016-01-18 17:33 465 查看
参考文章: http://www.52pojie.cn/thread-435746-1-1.html

①. 运行IDA服务端并端口转发



②. 以调试方式启动app


adb shell am start -D -n com.CMapp/com.e4a.runtime.android.StartActivity





③. 使用IDA远程附加







④. 在libc.so中找到mmap函数设置断点,为了方便,直接设置到函数末尾了







⑤. 打开ddms或者Eclipse (必要,为了使用jdb命令),获取应用程序的端口号, F9运行程序




在命令行中执行:jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700 其中port=8700是从ddms中看到的。

此时程序会断下来


⑥. 多次F9后,会来到libjiagu.so模块中,到反调试的函数中将反调试去掉















⑦. 将以上两处反调试去掉后,就可以只保留mmap函数的断点,一直F9了,查看堆栈直到出现



⑧. 内存观看r0寄存器所指向的地址,F8单步十几步之后,就可以看到解密好的dex文件,然后使用ida脚本 dump



static main(void)
{
auto fp, begin, end, dexbyte;
fp = fopen("C:\\dump.dex", "wb");
begin = 0x5E650000;
end = 0x5E650000 + 0x0004BC38;  //偏移0x20处,取4字节为dex文件大小
for ( dexbyte = begin; dexbyte < end; dexbyte ++ )
fputc(Byte(dexbyte), fp);
}


⑨. 使用工具查看dump.dex文件或者重打包apk文件



样本是用易安卓写的。

样本链接: http://pan.baidu.com/s/1dEpUTXn
密码: rp6u
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: