攻防世界-RE-windows_reverse
查看程序信息
扔进exeinfope中查看
可以看出,该程序为32位有upx壳的文件,所以我们需要先进行脱壳,直接使用 upx -d xxx.exe
即可
用IDA32进行静态分析
1. main函数
可以直接看到main函数,分析其流程,其实就是先输入input_code,接着用 sub_401000
函数对该输入进行处理,用得到的新字符串与 "DDCTF{reverseME}" 进行比对,若相同,则正确
这里有一个疑问就是,在
sub_401000
中对输入进行处理,但并没有改变v4,那么该程序为什么会用 v4 与目标串进行比对呢?
2. sub_401000函数
所以这里知道byte_402FF8
的内容尤为重要
3. 寻找 byte_402FF8
解题
byte_402FF8 = '~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)(\'&%$#"! '
base_addr = 0x20
target = 'DDCTF{reverseME}'
input_code = []
for c in target:
input_code.append(byte_402FF8.index(c) + 0x20)
print(''.join(chr(c) for c in input_code))