知识点
1.ida逆向
2.函数分析逆向
步骤
用Exeinfo打开,为32位exe文件。

方法一:
玩游戏通关,根据游戏规则,m=1,n依次为1到8即可得到flag。

方法二:
用32位IDA打开
ctrl+F搜索main,点击_main,调用_main_0,在点击_main_0,然后f5反汇编。这段为game的提示文字。

这部分是判断输入是否合规,继续跟踪

在sub_457AB4函数中再跳转一次,会发现don...flag

然后阅读发现其实函数就是数组里面的数进行或运算再,循环57次。将其进行逆向运算即可得到flag。


python逆向代码:
python
str1=[18, 64, 98, 5, 2, 4, 6, 3, 6, 48, 49, 65, 32, 12, 48, 65, 31, 78, 62, 32,
49, 32, 1, 57, 96, 3, 21, 9, 4, 62, 3, 5, 4, 1, 2, 3, 44,65, 78, 32, 16,
97, 54, 16, 44, 52, 32, 64, 89, 45, 32, 65, 15, 34, 18, 16, 0]
str2 = [123, 32, 18, 98, 119, 108, 65, 41, 124, 80, 125, 38, 124, 111, 74, 49, 83, 108, 94,
108, 84, 6, 96, 83, 44, 121, 104, 110, 32, 95, 117, 101, 99, 123, 127, 119, 96, 48,
107, 71, 92, 29, 81, 107, 90, 85, 64, 12, 43, 76, 86, 13, 114, 1, 117, 126, 0]
flag=''
for i in range(56) :
str2[i]^=str1[i]
str2[i]^=0x13
flag+=chr(str2[i])
print(flag)