本帖最后由 rong 于 2021-04-11 16:51 编辑
软件:某易起名软件20210327版本
过程:
1.查壳,经过查询没有加壳,此步骤省略!
2.OD载入,应该可以确认是C语言没有错
004747B3 >/$ 55 push ebp 004747B4 |. 8BEC mov ebp,esp 004747B6 |. 6A FF push -0x1 004747B8 |. 68 A8024C00 push NamedSof.004C02A8 004747BD |. 68 7C644700 push NamedSof.0047647C ; SE 处理程序安装 004747C2 |. 64:A1 0000000>mov eax,dword ptr fs:[0] 004747C8 |. 50 push eax
3.查找线索,运行程序,尝试注册,提示,您输入的注册码不正确,是否重新输入?,提示过于明显 0043E487 . 68 58744E00 push NamedSof.004E7458 ; 注册信息 0043E48C . 68 FC734E00 push NamedSof.004E73FC ; 您输入的注册码不正确,是否重新输入? 0043E491 . 8BCE mov ecx,esi ; NamedSof.<ModuleEntryPoint> 0043E493 . E8 9EBE0400 call NamedSof.0048A336 0043E498 . 83F8 01 cmp eax,0x1 0043E49B . 75 07 jnz short NamedSof.0043E4A4 0043E49D . 8BCF mov ecx,edi ; NamedSof.<ModuleEntryPoint> 0043E49F . E8 74DD0400 call NamedSof.0048C218 0043E4A4 > C646 5C 00 mov byte ptr ds:[esi+0x5C],0x0
4.提示过于简单就继续往上找,看哪个跳转跳到这个错误提示的。找到文件头,下断,F4 运行到此位置!
0043E380 . 55 push ebp 0043E381 . 56 push esi ; NamedSof.<ModuleEntryPoint> 0043E382 . 57 push edi ; NamedSof.<ModuleEntryPoint> 0043E383 . 8BF1 mov esi,ecx ; NamedSof.<ModuleEntryPoint> 0043E385 . 6A 01 push 0x1 0043E387 . E8 21CC0400 call NamedSof.0048AFAD 0043E38C . 8B86 C0000000 mov eax,dword ptr ds:[esi+0xC0] 0043E392 . 8B2D C0574B00 mov ebp,dword ptr ds:[<&USER32.SendMessa>; user32.SendMessageA 0043E398 . 8DBE A4000000 lea edi,dword ptr ds:[esi+0xA4]
5.程序运行,输入假的注册码,程序断下来了,单步走吧!ASCII出现奇怪字符,应该是注册码 复制后注册是正确的!有点简单!
|