以前破解庖丁加密或者Aes加密的代码,通常是替换smail里面的解密程序破解,虽然可以有几率破解,但是操作也算比较麻烦。而且太复杂的话也不能破解,有一定的局限性。今天站长提供一个破解的新思路:利用Xposed Hook Auto.js程序还原加密代码。能成功hook的话,基本上可以获取到源码。
破解的原理很简单就是hook auto.js的com.stardust.autojs.script.StringScriptSource类,当然前题你要逆向的auto.js程序dex没有加固,当然可以先解固后再hook,因为一般是这个类com.stardust.autojs.script.StringScriptSource。仅限于Auto.js,非auto.js的话要从其他入口hook。运行程序需要sdk,xp等环境,有技术的朋友可以试一下,可以实现一键破解。
对破解感兴趣的,欢迎加入徒弟破解群,学习最新破解技术
public class MyModule implements IXposedHookLoadPackage { @Override public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable { final Class<?> class1 = XposedHelpers.findClass("com.stardust.autojs.script.StringScriptSource", loadPackageParam.classLoader); XposedHelpers.findAndHookConstructor(class1, String.class, String.class, new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { String data = (String)param.args[1]; //数据 String name = (String)param.args[0]; //文件名 XposedBridge.log("前几个数据为"+data.substring(0, 100)); XposedBridge.log("开始保存"+name); strToFile(data, name); XposedBridge.log("保存完成"+name); super.afterHookedMethod(param); } }); } private static void strToFile(String data, String name){ String path = Environment.getExternalStorageDirectory()+"/"+name; XposedBridge.log("保存路径为:"+path); FileWriter fwriter = null; try { fwriter = new FileWriter(path); fwriter.write(data); } catch (IOException ex) { ex.printStackTrace(); } finally { if(fwriter != null) try { fwriter.flush(); fwriter.close(); } catch (IOException ex) { ex.printStackTrace(); } }