game
[工具]
exeinfo pe, IDA ,upx
[分析过程]
0x01.运行程序
可以看到程序应该是输入正确顺序使八个图案都变亮
0x02.查看详细信息
我们直接使用神器IDA
0x04.IDA
F5查看伪代码
然后,我们跟进Main函数
可以看到这是整个函数的运算逻辑
先是判断是输入的是否是1-8,然后进入后面的if判断然后进行循环,这个时候应该就是程序的亮暗的显示,然后,如果byte_532E28每一位都是1,那么,就会进入sub_457AB4,然后我们猜测这里应该就是最后的flag的地方。
然后我们跟进 sub_457AB4
注:这里说明一下,如果IDA不能正确的获得自定义函数的名字,那么IDA会用sub__加上自定义函数的起始地址来定义函数的名字
这里只截取了后面的部分,发现函数进行了两次xor运算,xor的逆运算也是xor,那么我们就可以根据这个运算来写脚本得到最后的flag
这里看到v2和v59这就证明了这是两个数组的运算,所以我们应该将上面的字符串分成两个数组,分别从v2和v59开始
0x05.写EXP
这里先是通过循环,将a和b数组的值进行xor运算,然后再将数组a的值与0x13xor运算
chr():是将十六进制转换为字符串
0x05.运行脚本
符串
0x05.运行脚本
[外链图片转存中…(img-g2Zh4mto-1602300427551)]
得到最后的flag: zsctf{T9is_tOpic_1s_v5ry_int7resting_b6t_others_are_n0t}