记录一次ISCC逆向
题目:我方截获了敌方的一款加密程序和一段密文(密文为:F2F5D39F18D762B7),尝试通过对此程序进行分析实现对密文的解密,解密后明文的32位小写MD5值作为flag提交。
1.先运行一发,运行截图:
2.扔进OD,搜索字符串,发现,咦,内有乾坤。
3.经过成吨的分析(本人鶸一只),发现题目给出的密文应该是经过打开程序时的默认加密方式加密的,那么,现在就要找到默认加密方式。
4.直接肛,强行跳到加密的地方
至于怎么跳,随便找个地方跳过去,我选择的改输入选项,把退出系统改成跳到自定义加密。 //反正我是来逆向的,程序boom了也没事。(雾
在这后面下断点,看它怎么跳的。
如果输入为2,push返回值0,call exit。 把参数干掉,call自定义加密解密:
跳过去了,然后下断点找到自定义加密是的函数。 Case 1 ,call了这个函数,跟过去。
加密函数就在这中间,在最后一次输入(输入密钥时)后面下断点仔细找找,找到了就跟进去。
这密密麻麻的运算,看来就是它了。
找到return的地方,往前下断点。
就是这儿,下断点,然后重新运行选择默认加密,随便加密一个就能看到密码是啥了。
这就是密码了。
再选择自定义解密。
直接在这儿看,或者看程序运行结果都可以。
然后拿去md5大法。就可以提交flag了。