本帖最后由 Lunction 于 2019-1-26 23:45 编辑
以下教程仅供学习交流: 示例APP: 每日英语听力 app请求头中的Authorization中,有urlsign,话不多说,抓取请求先:
GET https://api.*****.com/api/v2/auth/UserInfoHTTP/1.1 Authorization: QYN eyJ1c2VyaWQiOiIxMDFjOTc0MC0xODA3LTExZTktODQ0OS0wMDBjMjlmZmVmOWIiLCJ0b2tlbiI6Im50dFJ1SnhVSUR6WCt0M1cwcG82Qnh0STZwND0iLCJ1cmxzaWduIjoiM0FJRU1JREt5bWtNaDJ1SWtYWlNkMWZFaFFnPSIsInQiOiJBQklNVFUyTnpNMk16TTJOQT09In0= User-Agent:/eusoft_ting_en_android/8.6.3/b9df4c9bajhc7gdh/// EudicUserAgent:/eusoft_ting_en_android/8.6.3/b9df4c9bajhc7gdh/// EudicTimezone: 8 Cache-Control: no-cache Host: api.*****.com Connection: Keep-Alive Accept-Encoding: gzip
把Authorization进行base64解码: {"userid":"101c9740-1807-11e9-8449-000c29ffef9b","token":"nttRuJxUIDzX+t3W0po6BxtI6p4=","urlsign":"3AIEMIDKymkMh2uIkXZSd1fEhQg=","t":"ABIMTU2NzM2MzM2NA=="}
OK,反编译apk,直接搜索urlsign: 跟过去: 可以很清晰地看到它是在lib_jni_dict.so中的h函数中进行计算的.
行,那就先上几行xposed代码,确认一下分析是否正确,如果正确,还能顺便看一下它带入的参数和返回的密文: 安装,激活插件,带入的参数成功Hook出来,接下来Log一堆异常,app直接终止运行。 WTF,什么鬼。。 这里忘了截图...... 
看来是它的so里检测到了什么,分析下so先.. 果然不出意料地发现在so里有检测/proc/self/maps是否被附加.. 行吧,不想去改so,试试frida hook它的java层h方法 启动好frida的服务端,运行脚本: 参数和结果妥妥地出来了,看来它在so层做的措施没能防住frida... 后面的事情就简单了,不管是静态分析,手动调试,还是其它什么方法,都很容易分析出它so里的算法。这里就不演示了,有兴趣的朋友,自行测试吧。教程到此结束 易语言POST/JS/APP交流群: 270587 欢迎交流学习 QQ:46660816 长期接 Js加密解密 APP算法逆向分析 Android脱壳等业务 有需求的老板滴滴,手游App 直播App App破解不接。 TS: 2019年要参加实地逆向培训,就没有时间分享干货了,等2020年学完在来放更多的干货吧! 提前祝各位春节快乐,万事如意!
|