crackme提供者:kyc
原帖:http://bbs.pediy.com/showthread.php?t=5347
工具:od,winhex
平台:winxpsp3
这是一个加过壳的MFC框架程序,本来没准备这么早接触加壳程序的,主要觉得现在的水平不足以处理此类程序,没想到今天有如神助,轻易去掉了程序外壳,就顺手爆破了。感谢Gigapede提供的OllyDump插件。如果没有这个插件不知道怎么用OD保存脱壳后的程序。
注册按钮响应函数:
004015E0 . 6A FF push -1 ;入口
004015E2 . 68 C81C4000 push 00401CC8 ; SE 处理程序安装
004015E7 . 64:A1 0000000>mov eax, dword ptr fs:[0]
004015ED . 50 push eax
004015EE . 64:8925 00000>mov dword ptr fs:[0], esp
004015F5 . 51 push ecx
004015F6 . 53 push ebx
004015F7 . 56 push esi
004015F8 . 57 push edi
004015F9 . 8BF9 mov edi, ecx
004015FB . 6A 01 push 1
004015FD . E8 74030000 call <jmp.&MFC42.#6334_CWnd::UpdateData>
00401602 . 8D4C24 0C lea ecx, dword ptr [esp+C]
00401606 . E8 5F030000 call <jmp.&MFC42.#540_CString::CString>
0040160B . 8B47 68 mov eax, dword ptr [edi+68]
0040160E . C74424 18 000>mov dword ptr [esp+18], 0
00401616 . 8B48 F8 mov ecx, dword ptr [eax-8]
00401619 . 85C9 test ecx, ecx ;测试用户名是否输入
0040161B 7F 12 jg short 0040162F ;此处开始爆破
0040161D . 68 18314000 push 00403118 ; ASCII "Username is empty!"
00401622 . 8D4F 60 lea ecx, dword ptr [edi+60]
00401625 . E8 3A030000 call <jmp.&MFC42.#860_CString::operator=>
0040162A E9 0C010000 jmp 0040173B
把文件偏移0x161B处字节7F12改为7D0D,把文件偏移0x162A处字节E90C010000改为E9F4000000即可
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)