样本:aHR0cHM6Ly9wYW4uYmFpZHUuY29tL3MvMXRQbnROMkc0R20yYlFKaVNHYzU2SlE/cHdkPWxpbm4=
本次受害参数为aversionid
直接把样本放到JADX 发现搜索不到aversionid
前面在JADX里面搜索不到aversionid
但是发现了libexec.so
字眼
众所周知 这是爱加密的壳
直接用dexdump
很快 一下子就脱光光了
直接搜索 这次可以搜索得到结果了
看到encode
和decode
字眼
跳转过来 发现调用SecurityNative.encode
但却无法进入 搜索类也搜索不到 难道另有蹊跷
尝试使用Frida也找不到
奇奇怪怪 有点意思
那咱就搜索classloader
看看吧 反正总要加载类的
function classloader_search(ClassName) {
Java.perform(function () {
Java.enumerateClassLoaders({
"onMatch": function (loader) {
try {
if (loader.findClass(ClassName)) {
Java.classFactory.loader = loader;
console.log('Find ClassName->' + ClassName);
console.log(loader);
}
} catch (e) {}
},
"onComplete": function () {
}
});
});
}
运行成功搜索到com.xxx.security.SecurityNative
找之前 先验证一下是否正确
function hook() {
var ClassName = "com.xxx.security.SecurityNative"
Java.perform(function () {
Java.enumerateClassLoaders({
"onMatch": function (loader) {
try {
if (loader.findClass(ClassName)) {
Java.classFactory.loader = loader;
var SecurityNative = Java.classFactory.use(ClassName);
SecurityNative.encode.implementation = function (str1, str2) {
var result = this.encode(str1, str2);
console.log('str1->' + str1)
console.log('str2->' + str2)
console.log('result->' + result)
return result;
}
}
} catch (e) { }
},
"onComplete": function () {
}
});
});
}
没问题 能hook到类 并且也证明了前面的分析是对的
根据前面找到的类对应文件 去手机里面对应的文件夹一个一个找
虽然出现的东西很多 但总出现了一个方向
最后找到com.xxx.security.SecurityNative
在libraries_feature-master.apk
出现
最终调用的是Native方法 而对应的so在相应的文件夹里同样能找到
大姐姐进入到SO 能直接在导出表搜索到是静态注册
进到encode
看伪代码可以知道 主要的还是在mg_encode
方法里
进去后看不出是什么算法 有可能是我太菜了 不过代码量不多 完全可以直接复制粘贴
留给大家自己还原吧 祝大家情人节快乐 我要去浪了