Android动态逆向分析工具ZjDroid--脱壳神器
项目地址:https://github.com/BaiduSecurityLabs/ZjDroid
前提条件:
1、Root手机一部
2、须要通过Xposed installer( http://dl.xposed.info/latest.apk)安装Xposed Framework;
一、ZjDroid工具介绍
ZjDroid是基于Xposed Framewrok的动态逆向分析模块,逆向分析者能够通过ZjDroid完毕下面工作:
1、DEX文件的内存dump
2、基于Dalvik关键指针的内存BakSmali。有效破解加固应用
3、敏感API的动态监控
4、指定内存区域数据dump
5、获取应用载入DEX信息。
6、获取指定DEX文件载入类信息。
7、dump Dalvik java堆信息。
8、在目标进程动态执行lua脚本。
二、ZjDroid相关命令
1、获取APK当前载入DEX文件信息:
am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"dump_dexinfo"}'
使用说明
pid 调用时把pid换成目标进程的id
查看结果:
从Android的LogCat中查看结果,得到当前载入的dex的信息如:
The DexFile Infomation ->
07-27 02:29:52.728: D/zjdroid-shell-com.evernote(5365): filepath:/data/app/com.evernote-2.apk mCookie:1770063976
End DexFile Infomation
2、获取指定DEX文件包括可载入类名:
am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"dump_class","dexpath":"*****"}'
使用说明
pid 调用时把pid换成目标进程的id
dexpath 上一命令输出的dex文件地址,如/data/app/com.evernote-2.apk
查看结果:
从Android的LogCat中查看结果,得到当前载入的class信息
4、依据Dalvik相关内存指针动态反编译指定DEX,并以文件形式保存。
am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"backsmali","dexpath":"*****"}'
该方式能够脱壳眼下大部分流行的加固防护。
(因为手机性能问题,执行较忙)
例外情况:
因为ApkProtect特定防改动检測,须要做例如以下改动就可以解固该保护:
(1)在设备上创建特定文件夹(如/data/local)并 chmod 为777
(2)复制zjdroid.apk到该文件夹,并改动文件名称为zjdroid.jar
(3) 改动/data/data/de.robv.android.xposed.installer/conf/modules.list 模块代码文件改动为"zjdroid.jar"
从启设备就可以。
5、Dump指定DEX内存中的数据并保存到文件(数据为odex格式。可在pc上反编译)。
am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"dump_dex","dexpath":"*****"}'
6、Dump指定内存空间区域数据到文件
am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"dump_mem","startaddr":1234567,"length":123}'
使用说明
startaddr 注意此值是10进制
length 注意此值是10进制
7、Dump Dalvik堆栈信息到文件,文件能够通过java heap分析工具分析处理。
am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"dump_heap"}'
8、执行时动态调用Lua脚本
该功能能够通过Lua脚本动态调用java代码。
使用场景:
能够动态调用解密函数,完毕解密。
能够动态触发特定逻辑。
am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"invoke","filepath":"****"}'
luajava相关用法:
http://www.keplerproject.org/luajava/
8、敏感API调用监控
三、相关命令执行结果查看:
1、命令执行结果:
adb shell logcat -s zjdroid-shell-{package name}
2、敏感API调用监控输出结果:
adb shell logcat -s zjdroid-apimonitor-{package name}
Android动态逆向分析工具ZjDroid--脱壳神器的更多相关文章
- 安卓动态逆向分析工具--Andbug&Androguard
工具使用方法: 转自: http://bbs.pediy.com/showthread.php?t=183412 https://testerhome.com/topics/3542 安装andbug ...
- Android逆向分析工具表
逆向分析工具表 工具 描述 网址 androidterm Android Terminal Emulator http://code.google.com/p/androidterm/ droidbo ...
- 自制反汇编逆向分析工具 与hopper逆向输出对比
经过一个阶段5次迭代之后,本逆向分析工具功能基本成形.工具的基本功能介绍请参看前面的posts. 现在就和hopper的逆向函数伪代码的功能对比一下效果.在这里并非定胜劣,因为差异可以拿来对比参照,通 ...
- Android 静态代码分析工具
简评: 作者在文中提到的三个静态代码分析工具不是互相替代的关系,各有各的侧重点,如果有需要完全可以同时使用. 静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法.结构.过程.接口等来检查程 ...
- Android手机流量分析工具介绍
一.20 Best Android Hacking Apps And Tools Of 2018 首先罗列常见的Android手机hacking的工具 #1The Android Network Ha ...
- Android优化—— 内存分析工具 MAT 的使用
1 内存泄漏的排查方法 Dalvik Debug Monitor Server (DDMS) 是 ADT插件的一部分,其中有两项功能可用于内存检查 : · heap 查看堆的分配情况 · ...
- [Android Memory] 内存分析工具 MAT 的使用
转载自: http://blog.csdn.net/aaa2832/article/details/19419679 1 内存泄漏的排查方法 Dalvik Debug Monitor Server ( ...
- android apk 逆向中常用工具一览
关于apk 逆向中的一些工具的使用,看了不少文章,也使用过有很长一段时间了,今天对此做一总结: 几种文件之间的转换命令: 1. odex -> smali java -jar baksmali ...
- 正确使用Android性能分析工具——TraceView
http://blog.jobbole.com/78995/ 首页 最新文章 IT 职场 前端 后端 移动端 数据库 运维 其他技术 - 导航条 - 首页 最新文章 IT 职场 前端 - Ja ...
随机推荐
- WinForm 之 使用ListView控件展示数据
在学习了这么多的WinForm基本控件后,今天在来学习一个比较有意思的包含图片的控件! >>>图像列表控件 ImageList是含有图像对象的集合,可以通过索引或关键字引用该集合中的 ...
- jQuery中国各个省份地图分部代码
jQuery中国各个省份地图分部代码 在线演示本地下载
- 一,前端---关于微信小程序遇到的wx.request({})问题
域名请求错误问题 当我们在编写小程序,要发送请求时,wx.request({})时或许会遇到如下的问题: 一:这是因为微信小程序的开发中,域名只能是https方式请求,所以我们必须在小程序微信公众平台 ...
- Android基础TOP3:Activity的线性,相对,帧和表格布局的概括
线性布局 LinearLayout: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...
- JS——动态添加事件和移除事件(有待补充...)
动态的添加事件:利用 attachEvent 和 addEventListener IE 支持 attachEvent: obj.attachEvent("onclick", Fo ...
- .mm c++ oc 混编
When you create a static library you don't link in the dependent libraries. As a result, when you re ...
- JAR包中读取资源文件
我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看 ...
- Linux培训时长多久可以学会?马哥教育9年经验之谈
在Linux的热潮下,很多人萌发了学习Linux的想法.比起自学,培训是一个能够快速.系统的掌握知识的方式,也受到了不少人的青睐. 很多人都想知道通过培训学习Linux需要多长时间,今天咱们就来盘点一 ...
- 2.Linux的用户、用户组、权限、文件系统管理及其网络配置
2.1 Linux的用户及用户组 2.1.1 Linux的用户管理 用户账号管理包含以下三个方面: 用户账号的添加.删除.与修改 用户口令(密码)的管理 用户组的添加.删除管理 Linux系统中用户信 ...
- Sending Secret Messages LightOJ - 1404
Sending Secret Messages LightOJ - 1404 Alice wants to send Bob some confidential messages. But their ...