首页
社区
课程
招聘
[原创]某math美4代设备注册加密分析
发表于: 2021-9-8 18:43 29620

[原创]某math美4代设备注册加密分析

2021-9-8 18:43
29620

终于可以发贴了。

最近看个样本,是4代注册协议了。来了兴致,分析了下

hHgNl9.png

跟3代比,没有了finger和pri。 我猜测data和ep也是八九不离十,也是这两个东西
hHgtSJ.png
jni注册是这3个函数,比之前少了很多,后面hook了下w11是主函数加密。 之前tn,pri都是在java层加密的。现在全部放在了ndk中。

进去w11这个之后,就是ollvm混淆的,hook一遍入参之后
hHg8FU.png

这里先从rsakey出发,为了验证之前的猜想。 查看引用,
hHgGYF.png
跟到这一块有字符串加密了
hHgJW4.png
那直接frida看内存就行。

这里推荐用unidbg去跑这个脚本,刚好之前龙哥也跑过sm,拿来就用。

先unidbg下个断点。

断下来之后在控制台直接看这一片的内存。

hHgwex.png
一清二楚了。

拿到这些,8c1e8一看就是hash.put这样的操作。

先从ep开始分析。在5280c这块查看了引用(这是另一个so,本文中调试的so不是这个地址)
hHgUyR.png
hHgaO1.png
unidbg断下来之后。看看这个函数的参数。 一般都是r0-r4.r0就是第一个参数。
hHg0w6.png
更加确定了ep会用rsa加密

第二个参数。
hHgsYD.png
分析过3代的都知道,是根据一个随机数加密的rsa。这个随机数就是指纹最终加密的aes的key。

这里我把它固定住了。
hHgrFO.png
从这个函数黎赋值的跟进去
hHgBTK.png

hHgyfe.png
用了这些c库,那就是随机值了,当前时间为随机种子。把它固定住好分析。

然后再跟进去51200这个地址,大致看一下,也就是调用java层的rsa加密。

这里可以通过unidbg的jni打印来验证猜想。

hHg26A.png
确实是,那直接从unidbg中hook住这些结果看看。
hHgcSH.png
这是我写3代的时候写的代码,结合unidbg输出看看。
hHgIk8.png
果然一看
hHgROI.png
那没事了。跟3代一样。

继续分析tn,回到开始hash.put这里。也是同样的套路。废话我就不多说了。
hHggld.png
到这里要注意,aa994是一个append操作。 byte_d51fa就是sm_tn .这个也很熟悉。。 51200就是rsa加密的函数。然后hook住这个v40.

是一串md5、从4d06c哪里打下断点来看,
hHgh0P.png
hHgLXn.png
v43是字符串拼接之后的东西,应该是md5了一下。拿去验证一下。结果是的。
hHgblj.png
最后在验证一下这个值。是对的, tn的加密值也就出来了。
hHgotS.png
最后重头戏,看data
data这里有很多处引用。慢慢分析吧,也可以根据unidbg先去打印一遍函数的执行流程。根据流程来trace。
hHg4Tf.png
这里我也是习惯断在函数的前一个地址
hHgTfg.png
v68就是之前那个随机数了。v'66是res,那么v67是啥。

v54 = sub_6D46C(a3, &v67);

这个函数引用了。a3就是我们需要加密的str。 这个把a3做了一些操作。

deflateInit2_(&strm, 9, 8, -15, 8, 0, &byte_D5C55, 56); deflateEnd(&strm);

里面用到了压缩算法,那就是把整体的a3压缩了一遍,在aes一下。 4c140里面是
hHgHpQ.png
hHgq6s.png
的确从内存中看,也是byte流
为了进一步的验证,我把hex提取出来。解压一下试试
hHgXmq.png
没啥问题。最后为了验证那个aes的算法。我们生成出来的data是根据随机值加密的。

固定住了,key也就固定住了。

拿到结果,进行解密一下,在解压缩.
hHgv7V.png
正常解。最终的算法我就不放了,自己研究一下就能搞定,都是标准算法。 没有任何魔改的点。

最终试试。
hHgzkT.png
没有任何毛病。

附上样本 链接:https://pan.baidu.com/s/17p3dWoFPMgPNHpNltqmEOg 提取码:mr8l app名:本地探聊陌生交友

unidbg部分的代码,需要大家自己去龙哥星球下载啦。 https://t.zsxq.com/JEUVfYf

另外:有个小问题,
hHgj00.png
有懂的大佬可以指教一下小弟。。

 
 
 
 
 

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2021-9-10 10:47 被chionyuna编辑 ,原因: 模糊化关键字
收藏
免费 12
支持
分享
最新回复 (15)
雪    币: 5
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
_px
2
2021-9-8 18:53
0
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
牛哇,大佬
2021-9-8 19:02
0
雪    币: 1988
活跃值: (1916)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
tql
2021-9-8 19:54
0
雪    币: 2089
活跃值: (3933)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不错,不过下一个版本该改成Native的map了吧
2021-9-8 23:05
0
雪    币: 1670
活跃值: (2283)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
6
下个版本估计上vmp了
2021-9-8 23:40
0
雪    币: 4953
活跃值: (19055)
能力值: ( LV13,RANK:317 )
在线值:
发帖
回帖
粉丝
7
这关键字文章容易无了,推荐模糊化下
2021-9-9 18:57
0
雪    币: 1670
活跃值: (2283)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
8
0x指纹 这关键字文章容易无了,推荐模糊化下
遵命~
2021-9-10 10:47
0
雪    币: 3970
活跃值: (3559)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
能否给个联系方式
2021-12-7 21:56
0
雪    币: 18
活跃值: (996)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
里面还有一堆拿设备信息的搞了吗?
2021-12-13 11:44
0
雪    币: 673
活跃值: (2184)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
大佬 请问application/octet-stream 格式是怎么发送的 我发送出去总是提示 Params format error
2022-10-5 12:24
0
雪    币: 0
活跃值: (675)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14

正在分析V3呢,为啥我拿到aes密钥后,解密后,在zlib解压,数据还是不对呢

最后于 2024-1-5 21:09 被hmlyn编辑 ,原因: 写错
2024-1-5 15:11
0
雪    币: 135
活跃值: (440)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
感谢大佬的文章 解决我的疑惑
2024-3-29 17:04
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
mark 牛逼plus max  大佬方便留个联系方式吗 有需求
2024-4-15 21:36
0
游客
登录 | 注册 方可回帖
返回
//