android去壳工具,简单apk脱壳工具源码

博主分享了一款自编的安卓APK脱壳工具,通过Xposed和NDK解析manifest,hook Android应用启动流程,深入理解并操作DEX文件。展示了如何分模块dump和重构Dex,涉及关键技术如DEX文件格式和动态代码执行。
摘要由CSDN通过智能技术生成

0x00 序1

刚看f8大佬开源了自己的脱壳机(能脱下函数抽取)。敬佩之心油然而生。瞬间也想开源一下我写的垃圾代码 来骗几个赞:之前也写过dalvik版的脱壳机 可惜不能脱函数抽取 不过改一下应该可以吧

0x01 序2

这个软件 涉及到的姿势有动态解析appminifest,xposed 和ndk 。ndk其实就是动态解析dex

0x02 序3

代码这东西好久不看真的会忘。这个代码是8个月前写的。写的时候感觉印象很深。现在不让看代码 描述一下。真是描述不了。代码开源出来 希望 有用

0x03 工具介绍

本工具是一个apk软件,打开后listview显示手机上安装的所有用户apk(图标➕apk名字),然后可以选择需要脱壳apk,然后再运行需要脱壳apk。即可完成脱壳。

代码实现:

1解析选择apk的apkminifest,获取其包名,ApplicationName,MainActityName。

2Xposed hook android.content.ContextWrapper attachBaseContext得到壳的classloder

3根据classloder继续hook真正类的oncreate。

4继续根据classloader获取内存中的所有cookie。

5继续调用jni。根据cookie能转换成DexFile,然后其实就是解析dex文件了。

6在内存其实他的指向都是完整的。只不过没有在连续的地方。dump下来的也就不完整。那么我就分部dump。1。classdef之前的,2classdef之后的,3classdef4.classdata,5opcode然后修改指向组合。

项目难点:得完全掌握dex文件格式,才能分模块dump各个段,然后组合成dex

解析method的截图

84a62be31d90917ae006038ff121895a.png

0x04 代码

具体代码在github

https://github.com/skyun1314/hook_and_parse_dex2/tree/master/app

最后于 2018-8-7 17:44

被skyun编辑

,原因:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值