首页
社区
课程
招聘
[原创]2023 KCTF 年度赛 第五题设计思路
发表于: 2023-8-24 16:01 5173

[原创]2023 KCTF 年度赛 第五题设计思路

2023-8-24 16:01
5173

模式:Window平台CrackMe方案一

程序中有大量的计算混淆代码,主要用于干扰逆向算法。混淆代码具有一定的特征,仔细分析对比可识别出。需要解题人根据模式识别剔除无效代码。
混淆代码的C源码:

图片描述
图片描述

编译后的汇编代码:
图片描述

图片描述

Base64统一输入范围,通过CRC32验证输入有效性。通过逆元生成两个唯一Key,使用该Key生成幻方。用生成的幻方进行对称加密。最终使用逆元计算验证加密结果。

解题人首先需要识别出混淆代码,将其nop后才能看到核心算法。大概的核心算法如下:
输入Key的格式如下:

验证过程:
(1)、base64解码。
(2)、校验和验证。
(3)、验证key1/key2长度。
(4)、通过逆元验证两个幻方key唯一性.
(5)、根据两个幻方key分别生成两个幻方,并分别对key1和key2进行异或。
(6)、通过逆元验证key1和key2的唯一性。
(7)、通过以上所有验证,返回成功,否则返回失败。

// key的格式如下描述(单位:字节)
//  -----------------------------------------------------------
//  | 4 | 2 | ####不定长度#### | 4 | 2 | ####不定长度#### |  4  |
//  -----------------------------------------------------------
//
//  对应下面解释
//  -------------------------------------------------------------
//  | 幻|长   |                  | 幻 | 长|               |     |
//  | 方|度   |   #key1#         | 方 | 度|     #key2#    |校验和|
//  |key|len|                  |key |len|                 |     |
//  -------------------------------------------------------------
// key的格式如下描述(单位:字节)
//  -----------------------------------------------------------

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

最后于 2023-9-13 14:08 被kanxue编辑 ,原因:
上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 47147
活跃值: (20450)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
第五题  争分夺秒
2023-8-27 10:39
0
游客
登录 | 注册 方可回帖
返回
//