dex字符串解密_某Xposed微信群发工具dex解密分析

本文分析了一个Xposed微信群发工具的dex加密方式。代码中发现dex文件被加密并存储在assets中,通过JniUtil类的getXClass方法进行解密加载。在JniUtil::getXClass中,使用DecryptFun函数对dex进行异或解密,然后通过DexClassLoader动态加载。此过程未清除解密后的文件,提供了一种提取真实dex的方法。
摘要由CSDN通过智能技术生成

jadx载入

寻找xposed_init文件中定义的xposed程序的入口,发现主体只有如下三个函数,那猜想真正的hook函数被加密存储了,执行时通过dexClassloader动态加载执行

public class XposedEntry implements IXposedHookLoadPackage {

private static final String enDexName = "appcompat_v4.dex";

private static final String gsonDexName = "gson.dex";

public static String pkgName = "wechat.simpleforwarder";

private static final String soName = "libJpush.so";

public void copyFileFromAssets(InputStream inputStream, String str) {

...

}

String getCurProcessName(Context context) {

...

}

public void handleLoadPackage(LoadPackageParam loadPackageParam) {

...

}

}

在程序的assets下发现了如下几个后缀为dex的文件,直接尝试了使用jadx去反编译,发现反编译不成功,拖入010Editor

dex被作者进行了加密,那就得去代码中寻找解密执行代码

直接看ui的入口并没有发现任何的解密地方,猜想既然是xposed插件,那一定会有findAndHookMethod的地方,以及beforeHook和afterHook,直接去查找,找到如下代码

protected void afterHookedMethod(MethodHookParam methodHookParam) {

super.afterHookedMethod(methodHookParam);

Context context = (Context) met

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值