揰掵佲 发表于 2018-5-4 13:12:19

某短视频算法分析


然后可以看到加密的算法在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


最后把算法 还原了.本文章只适合学习,一切商业责任与本帖子无关.
因为现在算法换了,但是基本上跟这个也差不多,以后也会出新版的的思路

18309252173 发表于 2018-6-9 14:19:20

看看学习了。。。。。

z497478013 发表于 2018-6-12 16:09:35

看看学习了。。。。。

喵喵不偷吃 发表于 2018-11-11 15:27:33

看看学习了。。。。。

ivodalwt 发表于 2023-6-12 20:30:24


支持开源~!感谢分享
页: [1]
查看完整版本: 某短视频算法分析