首页
社区
课程
招聘
[原创]某安全SDK x-sign 签名算法还原
发表于: 2026-1-17 13:52 3876

[原创]某安全SDK x-sign 签名算法还原

2026-1-17 13:52
3876

通过对某安全SDK的ARM64执行日志(Trace)进行深度分析,完整还原签名算法流程。本文重点介绍从汇编指令中扣取算法的分析方法。

从汇编日志提取的VM结构:

JNI传入的签名输入字符串格式:

示例:

MD5 (初始化常量已确认)

SHA1 (轮常量已确认)

XOR混淆

自定义Base64编码

Base64解码后的76字节结构:

在trace日志中搜索重复出现的指令模式,定位VM主循环:

分析要点:

通过handler内部的指令特征识别功能:

示例1:识别XOR Handler (Opcode 0x274)

示例2:识别NOT Handler (Opcode 0x272)

MD5识别 - 搜索初始化常量:

SHA1识别 - 搜索轮常量:

从输入到输出追踪数据变换:

从trace中提取SHA1单轮计算的关键指令:

通过在trace中批量搜索,提取算法使用的所有常量:

在trace末尾追踪最终输出的组装过程:

x23 = 0x752a4ff870  -> Handler地址表 (约600个handler)
x25 = 0x78b7586080  -> VM虚拟寄存器数组 (3264位寄存器)
x21 = 字节码程序计数器
x27 = VM上下文指针
x23 = 0x752a4ff870  -> Handler地址表 (约600个handler)
x25 = 0x78b7586080  -> VM虚拟寄存器数组 (3264位寄存器)
x21 = 字节码程序计数器
x27 = VM上下文指针
ldrh w5, [x21, #0x10]!     // 读取2字节opcode
ldr x4, [x23, x5, lsl #3]  // 查表获取handler地址
br x4                       // 跳转执行handler
ldrh w5, [x21, #0x10]!     // 读取2字节opcode
ldr x4, [x23, x5, lsl #3]  // 查表获取handler地址
br x4                       // 跳转执行handler
Opcode Handler地址 功能
0x000 0x752a2a9070 ADD指令
0x006 0x752a3b6bfc ADD+K (SHA1轮计算)
0x202 0x752a3bc1e0 MOV/ORR指令
0x272 0x752a3b7c30 XOR+NOT变换
0x274 0x752a38fa28 XOR变换
{token}&{appKey}&&{uid}&{md5_data}&{timestamp}&{api}&{apiVersion}&{sid}&{deviceId}&&&&{openappkey}&{extParams}&&&&&&&
{token}&{appKey}&&{uid}&{md5_data}&{timestamp}&{api}&{apiVersion}&{sid}&{deviceId}&&&&{openappkey}&{extParams}&&&&&&&
{YOUR_TOKEN}&{APP_KEY}&&{USER_ID}&{MD5_HASH}&1704067200&api.example.method&1.0&{SESSION_ID}&{DEVICE_ID}&&&&openappkey=DEFAULT_AUTH&27&&&&&&&
{YOUR_TOKEN}&{APP_KEY}&&{USER_ID}&{MD5_HASH}&1704067200&api.example.method&1.0&{SESSION_ID}&{DEVICE_ID}&&&&openappkey=DEFAULT_AUTH&27&&&&&&&
[输入字符串]
     
     ↓  L102135-L102150: XOR + NOT 变换
     ↓  观察: 每8字节与 0x2626... XOR,再取反
     
[XOR变换后数据]
     
     ↓  L12468961-L12469182: MD5压缩
     ↓  特征: 64轮运算,432位状态变量
     
[MD5哈希 16字节]
     
     ↓  L16501050-L16501180: SHA1-HMAC
     ↓  特征: 80轮运算,532位状态变量
     
[HMAC签名 20字节 × 3]
     
     ↓  组装76字节结构
     
[Base64编码输出]
[输入字符串]
     
     ↓  L102135-L102150: XOR + NOT 变换
     ↓  观察: 每8字节与 0x2626... XOR,再取反
     
[XOR变换后数据]
     
     ↓  L12468961-L12469182: MD5压缩
     ↓  特征: 64轮运算,432位状态变量
     
[MD5哈希 16字节]
     
     ↓  L16501050-L16501180: SHA1-HMAC
     ↓  特征: 80轮运算,532位状态变量

[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

最后于 2026-1-17 14:10 被wx_插曲编辑 ,原因:
收藏
免费 164
支持
分享
最新回复 (97)
雪    币: 7
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2026-1-17 14:15
0
雪    币: 200
活跃值: (2575)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2026-1-17 14:20
0
雪    币: 18
活跃值: (361)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
支持
2026-1-17 14:52
0
雪    币: 5783
活跃值: (9907)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
火钳刘明
2026-1-17 15:09
0
雪    币: 2419
活跃值: (3117)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
666
2026-1-17 16:08
0
雪    币: 0
活跃值: (1340)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
666
2026-1-17 17:19
0
雪    币: 6
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
感谢分享
2026-1-17 20:30
0
雪    币: 263
活跃值: (891)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
666
2026-1-17 20:51
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
看看内容
2026-1-18 07:41
0
雪    币: 8394
活跃值: (4988)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
tql
2026-1-18 09:54
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
666
2026-1-18 10:44
0
雪    币: 163
活跃值: (260)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
66
2026-1-18 12:37
0
雪    币: 2
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
1
2026-1-18 13:35
0
雪    币: 7355
活跃值: (24014)
能力值: ( LV12,RANK:550 )
在线值:
发帖
回帖
粉丝
15
看看
2026-1-18 13:45
0
雪    币: 104
活跃值: (7486)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
tql
2026-1-18 13:52
0
雪    币: 155
活跃值: (4131)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
感谢分享 
2026-1-18 21:00
0
雪    币: 21
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
太强啦
2026-1-18 23:23
0
雪    币: 206
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
66666
2026-1-19 01:21
0
雪    币: 502
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
20
666
2026-1-19 08:03
0
雪    币: 5727
活跃值: (6769)
能力值: ( LV13,RANK:442 )
在线值:
发帖
回帖
粉丝
21
tql
2026-1-19 09:11
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
666
2026-1-19 09:17
0
雪    币: 23
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
感谢分享
2026-1-19 09:49
0
雪    币: 375
活跃值: (3366)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
24
感谢分享
2026-1-19 10:02
0
雪    币: 204
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
666
2026-1-19 10:12
0
游客
登录 | 注册 方可回帖
返回