elrond32
IDA Pro 打开rev:
1 | int __cdecl main(int a1, char **a2) |
两个核心函数:sub_8048414
用来检测参数正误;sub_8048538
用来输出flag。
分析sub_8048414
:
1 | int __cdecl sub_8048414(_BYTE *a1, int a2) |
该函数接收两个参数:str和a,每次根据a的不同,判断当前字符是否为期望字符。
python 脚本模拟:
1 | a = [0] |
只取[0, 7, 1, 3, 6, 5, 9, 4]
,因为switch语句只有这八个case。
对应的字符组成字符串isengard
。
运行程序,./rev3000 isengard
,得到flag。