打开,放入EXE中查壳
无壳,32位,放入IDA,F5反汇编,进入main函数分析
进入sub_40100A,查询后发现是哈希加密,且CryptCreateHash函数的第二个参数用来确定哈希函数的类型
0x8004 -> SHA1, 0x800c -> SHA256, 0x8003 -> MD5
这里是SHA1,写脚本进行解密
import hashlib
flag = "@DBApp"
for i in range(100000,999999):
s = str(i)+flag
x = hashlib.sha1(s.encode())
key = x.hexdigest()
if "6e32d0943418c2c" in key:
print(key)
print(str(i)+flag)
第一次输入的六位数密码即为123321,继续往下,进入sub_401019
为MD5加密,字符就不好爆破了,直接用在线网站解出
~!3a@0即为第二次输入的六位数密码,输入后就可以获得一个文件,打开就是flag
flag{N0_M0re_Free_Bugs}