本文作者:i春秋作家HAI_ZHU

0×00 前言

市面上的资料大多都是基于Dalvik模式的dump,所以这此准备搞一个ART模式下的dump。HAI_的使用手册(各种好东西)

Dalvik模式是Android 4.4及其以下采用的模式,之后到了Android 5.0 之后就是ART模式,关于这两个模式的详细内容,请自行百度,如果在文章看不来的地方,可以翻翻之前的文章。如果有问题也可以私聊我。

废话不多说,直接上操作。

内容:demo 动态 dump 出 dex文件

环境说明

1.系统 小米 9.0
2.ida 7.0

0×01 demo 动态 dump 出 dex文件

1.启动ida 端口监听

1.1启动Android_server 服务

1.2端口转发

1.3软件进入调试模式

2.ida 下断

2.1 attach  附加进程

2.2 断三项

2.3 选择进程

2.4 打开Modules

搜索art

PS:小知识

Android 4.4版本之前 系统函数在libdvm.so

Android 5.0之后 系统函数在libart.so

2.5 打开Openmemory()函数

在libart.so中搜索Openmemory函数并且跟进去。

PS:小知识

一般来说,系统dex都会在这个函数中进行加载,但是会出现一个问题,后面说。

2.6 下断点

3.运行程序到下断处

3.1 jdb转发运行程序

3.2 查看IDA运行

成功下断,并且运行到我们下断的地方。

3.3 查看 dex的位置

打开寄存器窗口,可以看到R1就是我们的dex

然后在Hex窗口打开R1。

很明显就看到了dex文件的二进制结构。如果不明白可以看看之前的dex文件分析。

3.4 提取关键信息

第一个关键信息:地址偏移:0xF35CA328

第二个关键信息:文件偏移:70 35 01 00,转换一下就是 0×00013570

使用16进制加法器进行相加,F35DD898

4. dump

4.1 使用脚本进行dump

static main(void){    auto fp, begin, end, dexbyte;    //打开或创建一个文件    fp = fopen(“d:\\dump.dex”, “wb”);    //dex基址    begin =  0xF34C6320;    //dex基址 + dex文件大小end = begin + 0×00013570;    for ( dexbyte = begin; dexbyte < end;     dexbyte ++ ){//按字节将其dump到本地文件中fputc(Byte(dexbyte), fp);        }}

4.2 脚本dump run

脚本填写好了之后,点击run即可。

4.3 成功dump

0×02 后续

这里dump出来的dex还是和原来的dex有一些区别的,要进行一些修复才可以。关于修复的内容还在探讨中,如果有大佬路过指教一二,感激不尽。

Android逆向进阶—— 脱壳的奥义(基ART模式下的dump)的更多相关文章

  1. ART模式下基于Xposed Hook开发脱壳工具

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78092365 Dalvik模式下的Android加固技术已经很成熟了,Dalvik ...

  2. Android逆向进阶(7)——揭开Hook的神秘面纱

    本文作者:i春秋作家——HAI_ 0×00 前言 HAI_逆向使用手册(想尝试一下新的写法) 其他 Android逆向进阶 系列课程 <<<<<<< 人物说明 ...

  3. ART模式下基于dex2oat脱壳的原理分析

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78513483 一般情况下,Android Dex文件在加载到内存之前需要先对dex ...

  4. 基于Frida框架打造Art模式下的脱壳工具(OpenMemory)的原理分析

    本文博客地址:https://blog.csdn.net/QQ1084283172/article/details/80956614 作者dstmath在看雪论坛公布一个Android的art模式下基 ...

  5. Android逆向进阶——让你自由自在脱壳的热身运动(dex篇)

    本文作者:HAI_ 0×00 前言 来看看我们今天的主题. 让你自由自在脱壳的热身运动. 现在很多第厂家都是使用第三方的加固方式来进行加固的.或者使用自己的加固方式进行加固. 那么我们必不可少的就是脱 ...

  6. DexHunter在ART虚拟机模式下的脱壳原理分析

    本文博客地址: http://blog.csdn.net/qq1084283172/article/details/78494620 DexHunter脱壳工具在Dalvik虚拟机模式下的脱壳原理分析 ...

  7. DexHunter在Dalvik虚拟机模式下的脱壳原理分析

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78494671 在前面的博客<DexHunter的原理分析和使用说明(一)&g ...

  8. Android平台dalvik模式下java Hook框架ddi的分析(1)

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/75710411 一.前 言 在前面的博客中已经学习了作者crmulliner编写的, ...

  9. Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)

    Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/jiangwei0910410003/article/details/51 ...

随机推荐

  1. Android音频系统之AudioFlinger(三)

    http://blog.csdn.net/xuesen_lin/article/details/8805091 1.1.1 PlaybackThread的循环主体 当一个PlaybackThread进 ...

  2. Django之auth模块用户认证模块

    一.Auth模块 1)auth模块是什么.登录后台使用的账号密码,则就是使用的auth模块创建的表 Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站 ...

  3. 数据分析报告格式zz

    分析报告的输出是是你整个分析过程的成果,是评定一个产品.一个运营事件的定性结论,很可能是产品决策的参考依据,既然这么重要那当然要写好它了. 我认为一份好的分析报告,有以下一些要点: 首先,要有一个好的 ...

  4. 2018.11.01 NOIP训练 递增数列(迭代加深)

    传送门 直接迭代加深搜索. 发现每次最多增加一倍,最少增加一,于是果断上下界剪枝. 代码

  5. 更新源pip

    国内镜像源列表 豆瓣(douban) http://pypi.douban.com/simple/清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/阿里云 h ...

  6. java Concurrent包学习笔记(七):ConcurrentHashMap

    (注意:以下讲解的ConcurrentHashMap是jdk 1.8的) 一.ConcurrentHashMap的数据结构 ConcurrentHashMap在1.8中的实现,相比于1.7的版本基本上 ...

  7. springboot+websocket示例

    1.新建maven工程 工程结构如下: 完整的pom.xml如下: <?xml version="1.0" encoding="UTF-8"?> & ...

  8. IntellJ IDEA2017 springboot2.0.2中读取配置

    IDEA 路径 src\main\resources\application.properties 配置文件名称为 application.properties 默认的位置在classpath根目录下 ...

  9. 关于xftp上传文件状态错误的解决

    新建一个文件夹,/usr/local/wwj 更改wwj权限 chmod 777 wwj 然后就可以上传了 如果还不行,就关闭防火墙

  10. VSS + Eclipse 管理源码