码迷,mamicode.com
首页 > 其他好文 > 详细

360加固动态脱壳

时间:2016-01-18 18:54:32      阅读:1139      评论:0      收藏:0      [点我收藏+]

标签:

参考文章: 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

360加固动态脱壳

标签:

原文地址:http://www.cnblogs.com/dacainiao/p/5139969.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!