研究某安卓app,特记录下。
Fiddler4设置代理,抓包。发现请求存在签名值,响应内容加密过。
直接用apktools逆向得到dex,使用jd-gui查看代码。
请求的签名算法不可读,直接看smail文件。参数存在对应寄存器中。从上下文找到对应参数顺序。摸清请求的构成。
相应内容,继续研究源码,发现调用so库进行处理。初步打算将so文件逆向后,使用别的语言改写。使用ida研究后,因太过复杂,放弃。
继续找资料,结合网友的思路,编写一个调用这个库的安卓应用,并通过内建httpServer的方式对外提供服务。
因为没有写过安卓应用,不知为什么能在模拟器中运行,但不能在真机中运行。之前怀疑为android高版本后的权限申明,但先放弃。之后有机会再研究。
复盘:
1、遇到问题,先进行分析,不着急下手
2、 当以结果为导向时,不要纠结在某问题。针对问题,设置合理的超时,当在指定时间内无法完成,更换思路。条条大路通罗马。正是所谓的旁注
3ã 空余时间多了解新技术及新思路。不要陷入自己的舒适区。