安卓系列学习(九)静态函数式抽空

admin 2024年6月17日14:26:59评论8 views字数 1265阅读4分13秒阅读模式

二代壳对方法体的静态抽取过程

前置文章:

https://juejin.cn/post/6844903847647772686

有了第一篇文章做铺垫后,可以很轻松的理解第二篇以及第三篇文章

http://www.520monkey.com/archives/815

https://blog.csdn.net/hhh901119/article/details/79526169

指明了脱壳的本质:

https://bbs.kanxue.com/thread-252630.htm

https://bbs.kanxue.com/thread-254028.htm

https://bbs.kanxue.com/thread-254555.htm

文章中用的dex还是前篇文章用的dex

安卓逆向系列补充(二)

根据前几篇文章,我们可以知道二代壳的函数式抽取的方法。就是将函数里面的内容给抽空,那么如何将函数里面的内容给抽空呢?

之前安装过010editor,但是这个工具无法直接查看.dex的文件地址结构,需要下载。详细看这篇文章

https://www.sweetscape.com/010editor/repository/files/DEX.bt

将这个插件另存为电脑里面,然后在010editor

安卓系列学习(九)静态函数式抽空

点击 view installed Templates

安卓系列学习(九)静态函数式抽空

点击add,将之前下载好的插件给添加进去就好了

安卓系列学习(九)静态函数式抽空

退出010editor,再重新打开010editor,就可以了看到class.dex的文件地址结构了

安卓系列学习(九)静态函数式抽空

根据前几篇文章讲解的 DEX 文件格式解析,拿着大佬文章中的一个图

安卓系列学习(九)静态函数式抽空

我们可以观察到,我们看到最重要的是方法的索引以及类的定义区,那么我们主要关注的就是method_ids以及class_defs这两个参数了

安卓系列学习(九)静态函数式抽空

在class_defs这个里面寻找还是挺复杂的,我们直接把这个全部类给导出

安卓系列学习(九)静态函数式抽空

因为知道用的是test02,所以直接搜索test02就好了

安卓系列学习(九)静态函数式抽空

安卓系列学习(九)静态函数式抽空

在2233里面找到了这个

安卓系列学习(九)静态函数式抽空

剩下就是分析了,分析这个类中的test02方法,然后把test02方法给抹除,全部置为空就好了。看到文章中分析的是insns就是指令集,那么只需要把sns指令集全部置为0,就是抹除了这个

安卓系列学习(九)静态函数式抽空

安卓系列学习(九)静态函数式抽空

将insns的值全部置为0,然后重新计算checksum值,发现checksum值是0xc2712992,在010editor中修改checksum值

安卓系列学习(九)静态函数式抽空

然后使用jadx打开修改过的dex文件,查找test02函数,这个函数已经被修改过了

安卓系列学习(九)静态函数式抽空

安卓系列学习(九)静态函数式抽空

参考文章:https://www.cnblogs.com/vendanner/p/4939444.html

原本还想今天晚上多学习一会,被同事拉着走了3公里来回去吃饭,回来也没心情再学习了......明天再继续学习吧

本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者及本公众号不为此承担任何责任

欢迎关注公众号“呼啦啦安全”,原创技术文章第一时间推送。

原文始发于微信公众号(呼啦啦安全):安卓系列学习(九)--静态函数式抽空

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月17日14:26:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安卓系列学习(九)静态函数式抽空https://cn-sec.com/archives/2854325.html

发表评论

匿名网友 填写信息