当前位置: 首页 > 后端技术 > Python

frida-rpc实现某短视频刷邀请

时间:2023-03-25 19:53:36 Python

目标APP:某短视频之前发过一篇文章,app更新算法还没来得及更新,文章被报404,伤心,今天更新后阅读新版本,这里就不贴源码了。文章最后会发在github上,需要的大家自己去拿。我看老六怎么报。工具准备HTTPDebuggerProfessionalv9.11ThunderboltSimulator9绿色广告版AlgorithmAssistant(通用钩子插件)使用工具和配置雷电模拟器系统备份下载PS在发布页面。直接使用备份系统,环境在配置完成后,打开frida转发端口即可使用。自配置步骤:将模拟器设置为系统可写并启用root,用MagiskDelta刷mask,删除自带的su文件,刷入LSPosed,安装算法助手插件,用FridaHooker安装Frida。在算法助手中,打开主开关和算法分析三个开关,启动Frida,通过adb转发端口,打开HTTPDebuggerPro抓包(需要安装证书到系统分区)。分析流程工具配置完成后,打开目标APP,直至成功绑定邀请码。(本人测试时安装证书后可以正常抓包,如果抓不到,可以尝试在算法助手中打开JustTrustMe)返回算法助手查看,发现没有AES加密,与之前的加密方式不同,只是不返回算法。助理看的出来,牌子还在,还是老办法。将sha256+md5apk拖入GDA,在算法助手中定位到sign的调用栈位置。很容易找到加密点按x查看交叉引用,最后找到sojm.sopackagecom.qq.lib.EncryptUtil;importjava.lang.System;importjava.lang.String;importjava.lang.Object;publicclassEncryptUtil//class@000900{static{System.loadLibrary("sojm");}publicvoidEncryptUtil(){super();}publicstaticnativeStringdecrypt(Stringp0,Stringp1);publicstaticnativeStringdecryptHls(Stringp0,Stringp1);publicstaticnativebyte[]decryptImg(byte[]p0,intp1,Stringp2);publicstaticnativebyte[]decryptImg2(byte[]p0,intp1,Stringp2);publicstaticnativeStringencrypt(Stringp0,Stringp1);}由于不知道怎么分析so,试了试也没用,模拟器frida无法hook到第三方APP的so,以及手上没有真机,于是放弃,改用frida-rpc,让python程序直接调用加密方法。除了使用过程麻烦,好像没什么大不了的问题,就是学习了frida之后,直接开始改代码。还是之前的源码。只是改了加解密方式,最后hook到了com.qq.lib.EncryptUtil。不需要在so里面,反正就是一个外部调用而已。Python源代码https://github.com/erma0/test/blob/main/91/frida91.py