-
-
[原创]某品会 sign值逆向流程分析
-
发表于: 5天前 1418
-
准备工作
不多说,懂得都懂。
分析流程
抓包获参
首先抓包看看。
搜索个词看看。
看到有数据的数据包,主要鉴权参数是这个Authorization中的api_sign
简单看了下也没有加壳
Java层函数定位
这里直接反编译。
这边先直接搜索下api_sign
然后继续追就行了
这里就倒推一下 再看下加密的方法
然后发现这个调用了GS这个方法 那就继续看
如下图 调用了JS的方法。所以我们需要去看Invoke前面的这个对象
这里 搜索这个VSCPSecurityConfig 发现有个InitInstance
这里我们发现是重新赋值了 然后去找这个KeyInfo
然后发现他调用了keyInfo这个类。
这里我们来捋一下逻辑哈
- 用反射调用了gs的方法、
- keyinfo 等于这个对象
- keyinof.gs (可能是私有方法)
SO层函数分析
后面就是直接分析这个so层的算法了
这里我们直接搜索gs 。搜出来应该是有一大堆。
细心的同学可以挨个看。也可以通过加java的方式去搜索
如下图所示,调用了j_Functions_gs这个方法
我们点进去具体看看实现逻辑。
这里简单看看这个逻辑
- 调用了这个j_getByteHash 函数 并且转换为字符串
- 赋值dest到v79中
- 吧v56 也就是这个j_getByteHash返回值追加到v79后面
- v58即是v79的长度,再次调用j_getByteHash 函数。
- 调用函数指针传入a1和v59 即 4 的返回结果。
这里点进去可以看到是个sha1
那我们直接hook这个函数看看值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | setImmediate(function () { Java.perform(function () { let soModule = Module.load( "libkeyinfo.so" ); const fnAddr = soModule.base.add( "脱敏展示" ) Interceptor.attach(fnAddr, { onEnter: function (args) { console.log( "args 2:" , args[ 2 ].readCString()) }, onLeave: function (retval) { console.log( "retval >>>" , retval.readCString()) return retval } }) }) }) |
。至此即分享完毕。 双hash 然后生成的api_sign
结果
然后整合一波成品
赞赏
他的文章
- [原创]某品会 sign值逆向流程分析 1419
- WEB逆向—数美滑块逆向流程分析 7447
- [原创]某手滑块流程逆向分析 16552
- [原创] WEB逆向—X-Bogus逆向分析(纯算+补环境) 11600
看原图
赞赏
雪币:
留言: