首页
社区
课程
招聘
boXX纯算 sp sig libyzwg.so
发表于: 12小时前 634

boXX纯算 sp sig libyzwg.so

12小时前
634

抓个包请求体,主要有sqh好像是对查询参数的封装,sig是一个hash签名

hook一下hashMap定位

然后就看到这两行,都在

然后hook一下d函数就能知道参数什么的了,好像是一个类似与url编码的先不管了

一直跟下去会调用一个native函数

然后找一下动态注册的地址,可以用unidbg,和hook注册函数

直接上ida,找到对应函数交叉引用一下,很容易发现一个函数的入参就是它,然后用frida hook一下进一步验证

image-20260708114646067

image-20260708114738991

找到函数根据LZ4_compress_limitedOutput重命名一下,然后搜一下,知道这里一个压缩的方法,下面的赋值操作应该是自定义文件头,out应该是输出缓冲区

然后在对out进行交叉引用,很明显就能看到一下函数的入参,然后第一个参数和上面一个函数有关可以看一下

image-20260708115227909

特征也算是特别明显了,大概率是一个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算法后,我就拿着明文找个在线网站取测了),而且还是标准的

image-20260708133239651

image-20260708133347706

整个流程大概清楚了

继续看这个java类非常的友好,nativeDecodeContent名字一看就是解密的

然后根据入参定位一下,然后在根据这个函数的入参,继续trace

还是rc4

流程:rc4解密->lz4解压

参数基本都完成了,看看效果,非常nice

image-20260708134622402

求一键三连


[招生]科锐逆向工程师培训(2026年7月3日实地,远程教学同时开班, 第56期)!

最后于 12小时前 被lingyi223编辑 ,原因: 标题忘写了
收藏
免费 0
打赏
分享
最新回复 (7)
雪    币: 158
活跃值: (5106)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享。
11小时前
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
666
11小时前
0
雪    币: 209
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
666
10小时前
0
雪    币: 4874
活跃值: (5191)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
已蒸馏
9小时前
0
雪    币: 0
活跃值: (230)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
666
8小时前
0
雪    币: 109
活跃值: (420)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
666
7小时前
0
雪    币: 5
活跃值: (1648)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
666
5小时前
0
游客
登录 | 注册 方可回帖
返回