首页
社区
课程
招聘
[原创]KCTF2021秋季赛第二题WriteUp
发表于: 2021-11-16 17:01 12802

[原创]KCTF2021秋季赛第二题WriteUp

2021-11-16 17:01
12802


================================================================


IDA看一下,MessageBox位置,TryAgain和 GoodJob~

找到关键校验函数:00401580 (checkKey,因为MessageBox GoodJob在里面)

parseFlag是把输入的字符串(长度32,字符集[0-9A-F]),每8bit,前4bit与后4bit颠倒,存成一个 16字节数组



然后分割前8字节,放在一个D1位置,后8字节,传给checkKey。

D1是个256字节的数组,前8字节为空,正好放flag的前8字节

checkKey做了3个验证:

1,D1,扩展成 256 * 256 的一个数组,然后256为一组,检测每组 +0, +14,+40,+79位置,是否为0,256轮加完后,得到4个BYTE数字,必须满足条件0xA9,0xAC,0xA7, 小于等于0xC8



2,对D1,进行交换,交换的同时,验证D1里面所有字节,不能重复




[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2021-11-16 18:09 被海风月影编辑 ,原因:
收藏
免费 5
支持
分享
最新回复 (1)
游客
登录 | 注册 方可回帖
返回
//