2019中关村第三届新兴领域专题赛网络与信息安全领域专项赛-RE-wp

by 白泽兴

【题目下载】RE+MISC+Crypto 提取码: f2nr

flat

IDA打开 main

再按F5

1
2

发现一个数组,点进去看看

是一个字符串J2261C63-3I2I-EGE4-IBCC-IE41A5I5F4HB

发现已经很接近flag的样子了,应该是对其进行了一些替换操作

没有思路了,就动态调试找思路。

EDB调试,发现程序会进入check1函数,再进入check2函数……

再继续看IDA,发现有5个check函数。

Check1:看不懂直接跳过(应该是垃圾代码),

Check2:
3

check3:
4
由check2和check3 确定flag格式,

check4确定 ’-’ 在flag中的位置,发现和上面的字符串数组加上flag{}后的位置是一样的,
5
可跳过。

Check5:
6
发现关键字符:a 9 z 0

若小于‘9’v4可定位到
7
8
发现对字符加了17
若小于’z’v7定位到
9-1
10
对字符减了48
也就是说输入的flag

如果是0-9 则加 17--> 对应A-Z
如果是a-z 则减 48--> 对应0-9

再与之前的字符串比较

flag:

flag{9bbfa2fc-c8b8-464d-8122-84da0e8e5d71}

11