“爱加密” 动态脱壳法

测试环境为:

安卓2.3

IDA6.6

下面看具体操作步骤:

具体怎样用IDA动态调试我就不多说了,网上己经有很多文章了,下面直接进入正题。

1.准备好调式环境后 用IDA附加进程。

2.附加成功后按"G"键 跳到dvmDexFileOpenPartial函数与fopen函数与fgets函数去下好断点。

3.下好断点后我们来说说它的反调试吧,下面我给两张图片大家可能就会明白它的反调试是怎么一回事了。

在调试状态下查看进程 TracerPid 不为0

在非调试状态下查看进程 TracerPid 为0

上面TracerPid: 23131

不为0时表示跟踪当前进程的进程ID,如果是0,表示没有跟踪。

4.明白了反调试后就可以进下面脱壳步骤了 F9 运行 断在fopen

5.打开进程成功后使用fgets获得信息 当获得如下信息进我们将其修改为 0

修改为 0 后

6.我在测试时它检查了两次,都修改后就会来到这里。

7.这样就得到了解密后的DEX开始地址与大小,R0为存放DEX数据开始地址,R1为Dex大小,Dump出来。

8.写个简单的过idc脚本将其dump出来,开始地址加上dex大小就是结束地址了。

0x446DC4E4为开始地址加上大小后等于0x4472AFBC(结束地址)

auto fp, dexAddress;

fp = fopen("C:\\test.dex", "wb");

for ( dexAddress=0x446DC4E4; dexAddress < 0x4472AFBC; dexAddress++ )

fputc(Byte(dexAddress), fp);

9.使用idc脚本将其dump出来 

运行完脚本后c盘就会出来明文的DEX了,到此脱壳完成。

重新打包时一定要删除AndroidManifest.xml文件中

android:name="com.shell.SuperApplication" 壳入口。

这样原始的dex文件就被dump出来了。

完.

样本及文档下载

 http://yunpan.cn/cASwMkjaMwaTy (提取码:ce81)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏开源FPGA

Vivado 2017封装自定义IP Core

  使用Vivado2017.3自定义IP Core。通常情况下,我们做设计采用模块化设计,对于已经设计好的一部分模块功能,就可以直接拿来调用,IP Core就...

52510
来自专栏哲学驱动设计

分享 MSDN 下载工具(Word/PDF)

给大伙分享一个最近出炉的 MSDN 到 Word/PDF 转换器。我已经用它转换了 WPF、VSPackage、WWF 等 MSDN 章节为 PDF。 介绍 下...

28110
来自专栏weixuqin 的专栏

使用U盘安装 OS X 的坑

33510
来自专栏专注于主流技术和业务

Jenkins构建maven项目:找不到本地依赖JAR包的解决办法

在Springboot项目中,使用Jenkins自动检测SVN自动构建发布项目,但是有些jar需要本地引入,无法从maven服务器下载,因为这些jar包是引用其...

1K2
来自专栏hbbliyong

Visual Studio 2013 添加新项缺失[ADO.NET 实体数据模型]解决方法

      之前使用在Vs2012下使用SQLite+EF建的项目在VS2013下不能运行了,我把以前的*.edmx删除后准备重新添加以下 .可是,在添加新项目...

3986
来自专栏用户2442861的专栏

Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置

两年半前写的关于Maven的介绍,现在看来都还是不错的,自己转下。写博客的一大好处就是方便自己以后查阅,自己总结的总是最靠谱的。

3511
来自专栏乐沙弥的世界

CentOS 7下 yum方式安装Nginx

Nginx 是一个很强大的高性能Web和反向代理服务器,它具有众多非常优越的特性。诸如低开销,高并发,支持缓存,支持正反向代理,支持负载均衡,支持正则,支持re...

1522
来自专栏电光石火

Intellij idea 的maven项目自动下载jar包

在Intellij IDEA中配置maven:  打开-File-Settings  (1) maven文件夹目录,自动搜索到  (2) 选中Overr...

4849
来自专栏开发 & 算法杂谈

Linux之守护进程理解(2)

1、屏蔽一些有关控制终端操作的信号 防止在守护进程没有正常运转起来时,控制终端受到干扰退出或挂起。 2、脱离控制终端,登录会话和进程组 登录会话可以包含多...

1223
来自专栏嵌入式程序猿

带你走进飞思卡尔Kinetis Flashloader (2)

这一节主要介绍下在主机和Kinetis Flashloader 之间的数据包传输协议,包括不同类型的包,带数据的命令包和不带数据的命令包。 Flashload...

3608

扫码关注云+社区

领取腾讯云代金券