先查壳,如下没壳,是64bit的,那就直接拖进ida64中进行反编译进入主函数后,进行简单的分析并且打上注释,注意这边不要被他这种看起来很复杂的代码吓到了,我们直接扣关键点就行,先往下看,分析完整先将这些数字一个个选中按r键,转化为字符形式,发现若if括号内的条件成立,那就输出the key is,反之,输出incorrect,那么就简单了,只需要让if括号内的条件满足就行,这样我们可以直接得到数组*v41,这边*v41也要转成字符形式,手写
得到:870438d5b6e29db0898bc4f0225935c0
这一串东西,下面再往上面继续分析,找前面是否处理过*v41,结果一找,你别说,还真有,*v41由v40赋值而来,而v40经过一个处理,md5,这边是一个难点,需要联想到md5解密,然后我们进入md5加解密网站https://www.cmd5.com/,进行解密一下看看,解密出来就一个grape,显然不对,再解密一次,发现解密不了,第二个难点来了,试试加密呢?结果就得到flag了
总结一下,有些时候不能按常规思路走,解密不行要试试加密,而且看到md5一定要敏感,联想到md5加解密算法,感谢阅读(^_^).
标签:这边,dmd,加解密,50,解密,v41,v40,简易版,md5 From: https://blog.csdn.net/2303_80796023/article/details/137110096