首页
社区
课程
招聘
[原创]解题过程:签到题 身在何处
2021-11-30 09:54 2307

[原创]解题过程:签到题 身在何处

2021-11-30 09:54
2307

首先,DIE检测一下程序是否加壳及其类型是32位还是64位。

然后,用提供的序列号运行,看一下效果。

接着IDA,寻找关键字符串Success!

通过“交叉引用”跳转到函数位置。

执行F5伪代码。

找到第一个关键点:v2 = calc_YongHuMing(&ch_YongHuMing, len_YongHuMing),// 这里引入了用户名的计算

VSCODE的原因是,它的启动速度比VS快,VS的加载项太多了。

得到了各自得到哈希值:

01F845C5B7C52E56

744E1CC7

KCTF

5EE54F4C

OD运行程序:通过字符串快速定位,因为字符串在很前面,可以不用等待 执行搜索一会就手动取消。

往上对照IDA的流程图,找到各个功能,注意在这里不能根据伪代码来,因为实际流程可能和伪代码的写法顺序有差异。

继续,分析得到后面执行了这样的操作:

哈希

01F845C5B7C52E56

744E1CC7

KCTF

5EE54F4C

整型转十六进制

653259165

26EFF19D

异或操作:

int x = 0x744E1CC7 ^ 0x26EFF19D;

 x = 52A1ED5A

到这里原理已经清晰了!

SHA(用户名)^HEX(序列号)= 52A1ED5A就满足要求了。

现在已知SHA(KCTF)求序列号,序列号=十进制(52A1ED5A^ SHA(KCTF))

过关!



[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞1
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回