# 一、先检查文件,查看文件基本信息
这里看到文件为32位,同时是有一个UPX壳,因此我们第二步先进行一个脱壳
# 二、脱壳
# 三、使用32位IDA打开该文件,反汇编......
这里来将我写这篇文章的原因
网上的教程大部分到这就直接说什么v4什么下标什么的,弄的我很头晕。然后其实我们再看一下就会发现这里面的flag其实就是v4对应的字符在_data_start_这个数组中的下标值+1所表示的字符串
v4 = [42,70,39,34,78,44,34,40,73,63,43,64]
flag = ''
src = '~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)(\'&%$# !"'
for i in v4:
flag=flag+chr(src.find(chr(i))+1)
print(flag)
注:为什么这里解出v5就是flag?
我们看到这里v6和v10代表的正是ACTF{},可以知道flag为v7,v8,v9,然后有v5[0]=v7,v5[1]=v8,v[2]=v9可以知道找出v5即可知道v7v8v9