点开要求输入密码,拖入IDA查看,查看strings看样子没有加壳,进入passwd字符查看
输入一个长度为6的字符串,atoi函数是一个把字符串转换成整数型的函数,strcat在6位字符串后加上@DBApp
猜测sub_40100A是一个加密函数
进入查看
查看https://docs.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptcreatehash
查阅https://docs.microsoft.com/en-us/windows/win32/seccrypto/alg-id
发现使用的哈希算法是
https://www.jb51.net/article/186188.htm
python的SHA_1加密实现
1 import hashlib 2 partflag = '@DBApp' 3 flag = '' 4 for i in range(100000,999999): 5 flag = str(i)+partflag 6 hexflag = hashlib.sha1(flag.encode()) 7 hexflag = hexflag.hexdigest() 8 if "6e32d0943418c2c33385bc35a1470250dd8923a9" == hexflag: //将原文大写英文字母转换成小写 9 print(flag) 10 break
123321@DBApp
第二次输入
将123321@DBApp加在了输入的6位字符串的后面
再经过sub_401019加密,进入查看
加密方式是MD5
在线解密
得到一个.rtf的文件,打开得到FLAG