攻防世界reverse_game20201010

game

[工具]

exeinfo pe, IDA ,upx

[分析过程]

0x01.运行程序

img

可以看到程序应该是输入正确顺序使八个图案都变亮

0x02.查看详细信息

img

我们直接使用神器IDA

0x04.IDA

img

F5查看伪代码

img

然后,我们跟进Main函数

img

img

img

可以看到这是整个函数的运算逻辑

先是判断是输入的是否是1-8,然后进入后面的if判断然后进行循环,这个时候应该就是程序的亮暗的显示,然后,如果byte_532E28每一位都是1,那么,就会进入sub_457AB4,然后我们猜测这里应该就是最后的flag的地方。

然后我们跟进 sub_457AB4

注:这里说明一下,如果IDA不能正确的获得自定义函数的名字,那么IDA会用sub__加上自定义函数的起始地址来定义函数的名字

img

这里只截取了后面的部分,发现函数进行了两次xor运算,xor的逆运算也是xor,那么我们就可以根据这个运算来写脚本得到最后的flag

这里看到v2和v59这就证明了这是两个数组的运算,所以我们应该将上面的字符串分成两个数组,分别从v2和v59开始

0x05.写EXP

img

这里先是通过循环,将a和b数组的值进行xor运算,然后再将数组a的值与0x13xor运算

chr():是将十六进制转换为字符串

0x05.运行脚本

img

符串

0x05.运行脚本

[外链图片转存中…(img-g2Zh4mto-1602300427551)]

得到最后的flag: zsctf{T9is_tOpic_1s_v5ry_int7resting_b6t_others_are_n0t}

猜你喜欢

转载自blog.csdn.net/qq_45320164/article/details/108993822