观前提示:
本文章仅供学习交流,切勿用于非法通途,如有侵犯贵司请及时联系删除
样本:aHR0cHM6Ly9wYW4uYmFpZHUuY29tL3MvMXRQbnROMkc0R20yYlFKaVNHYzU2SlE/cHdkPWxpbm4=
0x1 抓包
本次受害参数为aversionid
直接把样本放到JADX 发现搜索不到aversionid
0x2 脱壳
前面在JADX里面搜索不到aversionid
但是发现了libexec.so
字眼
众所周知 这是爱加密的壳
直接用dexdump
很快 一下子就脱光光了
0x3 aversionid
直接搜索 这次可以搜索得到结果了
看到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
方法里
进去后看不出是什么算法 有可能是我太菜了 不过代码量不多 完全可以直接复制粘贴
留给大家自己还原吧 祝大家情人节快乐 我要去浪了
感谢各位大佬观看
感谢大佬们的文章分享
如有错误 还请海涵
共同进步 带带弟弟
点赞 在看 分享是你对我最大的支持
逆向lin狗