-
-
[原创]看雪CTF2017 第十一题分析
-
发表于: 2017-6-23 10:13 6218
-
使用OD调试crackme,找到关键位置如下:
逆向算法,还原发现不对,根本逆不回去,感觉掉坑里了。
从程序入口调试发现该程序会修改代码段
OEP位置为:
创建并调试子进程
经过调试发现,多次输入sn后不在有调试事件,由此可以对WaitForDebugEvent进行patch,如下:
成功将主程序调试器分离,使用OD附加子进程,再GetDlgItemTextW下断即可正常调试
根据 x = (sn2 * 01010101 + t1[i])^(sn1+i);t1[i] = x; 对t1数据解密,其中sn1为4字节,sn2为1字节。解密后的数据前0x60必须为
下面的程序会跳到解密后数据执行,所以这里要先sn1和sn2穷举出来,
结果为:sn1=0x75A29C09 sn2=0xE1
继续sn3的分析
call edi 进入大子程序完成sn3的解密,其解密结果必须为 !HelloHaniella!,输入key=“19930907”和sn3
通过上述程序和特征值可以确定这事DES算法,通过验证发现不对,可能作者修改过算法,逆向DES变换过程发现:
多了取反和交换过程,通过修改DES算法再现这一过程:
通过该DES算法对 !HelloHaniella! 进行加密可以得出sn3。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
- [原创]C++类成员指针调用 4321
- [原创]VMP3.2授权分析 53969
- [原创]看雪CTF2017 第十二题分析 5080
- [原创]看雪CTF2017 第十一题分析 6219
- [原创]看雪CTF2017 第十题分析 5835
看原图
赞赏
雪币:
留言: