某短视频算法分析
然后可以看到加密的算法在libuserinfo.so这个so 里面
https://bbs.pediy.com/upload/attach/201805/760920_TTBH8K9M3U75XJ8.png
这里面把exit的每个地方打个断点把反调试 过掉就可以了
主要是看Java_com_ss_android_common_applog_UserInfo_getUserInfo 这个函数 这个函数里面的结果是as+cp
https://bbs.pediy.com/upload/attach/201805/760920_A5JP6EVB4T96H8V.png
可以看到 getName()这个函数是关键点进去看一下
https://bbs.pediy.com/upload/attach/201805/760920_KTKPGQC5KCD64QM.png
在点进去看getName()
动态 调试可以看到V8 是 时间 取前8位 后面是一个URL传进来的
https://bbs.pediy.com/upload/attach/201805/760920_9FWJ43C4HM4R4QN.png
这个就是实现加密的MD5算法
v4是时间会做一个异或运算
shuffle1,和shufflehttps://bbs.pediy.com/upload/attach/201805/760920_96QRARGKNW6BFZR.png函数点进去看
https://bbs.pediy.com/upload/attach/201805/760920_HCNYF9XT942QJCK.png
这里面做的就是一个时间的10进制重新排序操作,不知道怎么来的 可以动态调试 查看R0 寄存器的值 可以观察到
动态调试可以 getMd5()这个方法里面打个断点查看R0 寄存器的内存数据 入参 出参可以看到MD5的变化
https://bbs.pediy.com/upload/attach/201805/760920_N3F45N5C48UQYJK.png
最后 就是一个排序了 多抓几次包 可以看到前面 2位 和后面2位都是 a1和e1这个是不动的的
然后就是 4个循环的拼接了
https://bbs.pediy.com/upload/attach/201805/760920_ZERCTGWAJ5EQUTM.png
最后把算法 还原了.本文章只适合学习,一切商业责任与本帖子无关.
因为现在算法换了,但是基本上跟这个也差不多,以后也会出新版的的思路
看看学习了。。。。。 看看学习了。。。。。 看看学习了。。。。。
支持开源~!感谢分享
页:
[1]