1.exeinfo查壳,无壳
exe文件后缀,试试运行
发现是对输入的数,进行处理,返回成功和失败
2.拖进IDA中,找到主函数,F5反汇编 ,并分析代码
可知,最终需要通过对比v10和v13的字符,而v13已经赋值,语句都是对v10进行赋值操作。
a='437261636b4d654a757374466f7246756e'
b=''
i = 0
while(i<len(a)):
b += chr(int(a[i:i+2],16))
i += 2
print(b)
最终的flag: CrackMeJustForFun
3.另一种解法:
程序的逻辑就是:输入的字符串 v9 遍历每一个字符,然后以 16 进制显示,16 进制字符连
起来赋值给 v10,再判断 v10 和 v3 是否一样。
所以只要将 v3 的那串 16 进制值,反向解码得到 flag
也能得到flag: CrackMeJustForFun