IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

Android安全–一次简单的脱壳Dump dex实践

Coder 2016-02-11 23:22:08 累计浏览 3,548 次
本机暂存

   这篇脱壳是参考别人自己进行的一次简单的实践,主要是为了了解脱壳的流程以及工具的使用。

   下面直接进入正题吧:

   例子下载地址:

   链接: http://pan.baidu.com/s/1c08Ufeg 密码: n8dc

   首先把apk后缀改成.zip打开,发现dex文件只有1.23kb,所以真正的代码肯定不在这里,而是在运行中解密出来动态加载的。

   话不多说,直接上工具,首先找到IDA目录dbgsrv下面的android_server文件,然后push到手机上面,然后加上可执行权限,再运行。如图所示:

   2015-07-30_125928

   运行后在端口23946端口监听。

   安装apk文件。

   2015-07-30_125641

   端口转发,让IDA可以连接本地端口进行远程调试。

   image

   以调试模式启动程序:

   adb shell am start -D -n 包名/包名+类名

   程序的入口类可以从每个应用的AndroidManifest.xml的文件中得到,AndroidManifest.xml文件可以使用apktool工具反编译得到。

   image

   然后打开IDA,attach要调试的进程:

   2015-07-30_130432

   hostname设为本机127.0.0.1

   2015-07-30_130523

   2015-07-30_130459

   找到应用的进行,并记下进程号:

   2015-07-30_130646

   进程号为2696,使用 forward jdwp:<pid> 转换端口以连接到指定的 JDWP 进程。

   使用jdb附加调试应用程序。

   2015-07-30_131010

   然后找到程序加载的模块libdvm.so,找到其中的函dvmdexfileopenpartialPKviPP6DvmDex,在这个函数下断点。

   2015-07-30_093446

   2015-07-30_093538

   2015-07-30_093556

   为什么要在这个函数下断点,因为这个函数是加载dex文件的,R0就是加载的dex文件的地址。

   然后点击IDA的继续,程序便会断在这个函数上面。

   2015-07-30_112539

   这时查看R0的值,然后显示其内存如下:

   2015-07-30_112954

   2015-07-30_113029

   我们看到了dex文件的标志。

   然后打开idc脚本,修改dump的内存起始地址和结束地址,起始地址就是R0的值,结束地址就是R0加上dex文件的大小,然dex文件的大小在dex header的0×20处,也就是0xFAEB4。

   2015-07-30_113131

   2015-07-30_113545

   点击run,之后会在D盘下面生成一个1M左右的dex文件,这就是我们dump出来的dex文件。

   2015-07-30_114119

   使用dex2jar转成jar文件,再使用jd-gui.exe打开,得到程序代码:

   2015-07-30_124918

   也可以把dex文件替换回去,打包运行。

   就是一个简单的例子,也是为了让自己加深印象,熟悉工具的使用,希望大家能够自动手动脱下壳~

同分类推荐文章

  1. 绿盟科技《APT组织研究年鉴》(2026 版)正式发布 (2026-06-16 20:21:10)
  2. 【已复现】Linux内核Fragnesia权限提升漏洞(CVE-2026-46300) (2026-06-15 10:53:58)
  3. 企业文档安全最佳实践(二):给文档上“身份证”——手动标密与智能自动标密 (2026-06-12 17:18:33)

查看更多 安全 文章 →

建议继续学习

  1. Mac下.apk的反编译 (累计阅读 3,695)
  2. 调试利器之tcpdump详解 (累计阅读 3,623)
  3. 近期工作总结:关于对Flash player的逆向工程进展 (累计阅读 2,474)
  4. Android安全–Dex文件格式详解 (累计阅读 2,083)
  5. 南京"外挂代练"事件判决书 (累计阅读 1,763)
  6. Android安全–ELF文件格式解析 (累计阅读 1,589)
  7. iOS安全—dumpdecrypted APP砸壳 (累计阅读 1,466)