查壳
发现有UPX,使用 upx-4.2.2-win64脱壳(kali里面有)
# 使用命令 upx -d easyre.exe
32位ida打开
1.找到main函数,F5查看伪代码
2.分析代码
双击v4可以看到v4到v15的地址,其实v4到v15是一个有12个字符的chr 型数组
v4[i]!= data_start_[*((char *)v5 + i) - 1]:
意思是在_data_start__字符串里面寻找一个字符然后 -1 与v4进行对比是否相等
其实_data_start的下标就是flag的ascll码-1
exp:
v4 = [42, 70, 39, 34, 78, 44, 34, 40, 73, 63, 43, 64] # 字符串有特殊字符为了避免语法错误就这么写了/(ㄒoㄒ)/~~
flag = ''
key = '~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)(\'&%$# !"'
for i in v4:
flag += chr(key.find(chr(i)) + 1)
print(flag)
print(flag)
flag{U9X_1S_W6@T?}