抓个包请求体,主要有sqh好像是对查询参数的封装,sig是一个hash签名
hook一下hashMap定位
然后就看到这两行,都在
然后hook一下d函数就能知道参数什么的了,好像是一个类似与url编码的先不管了
一直跟下去会调用一个native函数
然后找一下动态注册的地址,可以用unidbg,和hook注册函数
直接上ida,找到对应函数交叉引用一下,很容易发现一个函数的入参就是它,然后用frida hook一下进一步验证


找到函数根据LZ4_compress_limitedOutput重命名一下,然后搜一下,知道这里一个压缩的方法,下面的赋值操作应该是自定义文件头,out应该是输出缓冲区
然后在对out进行交叉引用,很明显就能看到一下函数的入参,然后第一个参数和上面一个函数有关可以看一下

特征也算是特别明显了,大概率是一个rc4的s_box初始化,s很可能就是密钥
剩下这个就是rc4的加密函数了
直接dump s_box
然后经过base64就是我们的结果了
然后和标准base64对比一下,发现只替换了码表
lz4
整理一下流程
根据开始给出的地方直接定位,然后尝试hook
直接hook上一层的,可以直接看到String字符串
可以看到和sq就是前后加了一点东西,1194187086好像是固定的是对一个字符串crc32的结果,跟一下看看
这里拼接了一下strD
直接看strA的结果跟下去就会知道是是一个crc32的运算,而且是标准的
尝试了一下没定位到直接上unidbg补环境,还挺少的
写一个函数调用一下顺便写一个trace
然后搜索最后1字节,定位到这里,然后根据这个地址搜,进一步验证
然后可以看到这个函数,hook一下入参
前面和入参相容的,然后新增了不知道是hash还是啥,trace看一下
hex to str 发现就是我们要的结果
是一个复制函数,下个断点看看
接着对0x40753030进行追踪
发现是在Jni_onload里面的,并且是对某个数据的rc4,我就没管了,因为这玩意只执行一次我觉得他是固定的,有兴趣可以看看
入参已经弄清楚了,这个追踪入参,然后看一下这个函数,进去瞎点点看看
sub_2EE98
hash看到4轮密钥,很可能是一个md5啥的(其实,看见是hash算法后,我就拿着明文找个在线网站取测了),而且还是标准的


整个流程大概清楚了
继续看这个java类非常的友好,nativeDecodeContent名字一看就是解密的
然后根据入参定位一下,然后在根据这个函数的入参,继续trace
还是rc4
流程:rc4解密->lz4解压
参数基本都完成了,看看效果,非常nice

求一键三连
[招生]科锐逆向工程师培训(2026年7月3日实地,远程教学同时开班, 第56期)!
最后于 12小时前
被lingyi223编辑
,原因: 标题忘写了