dexlib2工具实现修改dex

Posted tangsilian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dexlib2工具实现修改dex相关的知识,希望对你有一定的参考价值。

问题背景

随着APP业务增多,APK体积越来越大,包含dex的很多。有时候拖入jeb甚至有卡死的情况。那么我们如何快速定位到一个类在哪个DEX中?(其实是为了然后拖入jeb直接用插件写Frida脚本)

看到LeadroyaL发的dex-finder,很好的解决了这个问题:

https://github.com/LeadroyaL/dex-finder

原理就是通过dexlib2遍历所有APP的所有dex的Clss名。然后目标类打印其所出现的dex。

也能通过此方法找到类出现的动态加载的其他 dex。

dexlib2介绍

是一个使用JAVA编写Dex文件的编辑库。常用来修改dex,合并dex等。

源码简单分析

https://www.cnblogs.com/coffee520/p/11264449.html

修改DEX里方法的返回值

https://juejin.im/post/6844904077399162888

其他用途

修改dex文件实现插件加载:https://zhuanlan.zhihu.com/p/25074791

解析APK常出现的泄漏点:
https://github.com/UsmanNadeem/SPROJ

实现java层的混淆:
方法名混淆:https://www.jianshu.com/p/179fff0dd7df
https://bbs.pediy.com/thread-255514-1.htm
https://github.com/CvvT/DexTamper/blob/master/src/com/cc/dextamper/Test.java

https://github.com/DexPatcher/multidexlib2

以上是关于dexlib2工具实现修改dex的主要内容,如果未能解决你的问题,请参考以下文章

反编译apk 修改 合成

反编译APP

Android DEX 基础

Android APK+Dex文件反编译及回编译工具的使用说明

什么是dex文件

360加固保dump出来的dex怎么修复