OllyDbg 使用笔记 (十一)

OllyDbg 使用笔记 (十一)


参考

书:《加密与解密》

视频:小甲鱼 解密系列 视频


示例程序下载地址:http://pan.baidu.com/s/1mgxCtsc



此程序可以从注册时未输入last name 产生的 提示信息入手。


图片1

OllyDbg 使用笔记 (十一)



查找所有参考文本字串,搜索“Enter a Last”,可以看到:

图片2

OllyDbg 使用笔记 (十一)



观察前后的字符串,可以发现这堆字符串的最底下,ASCII "Registration Key accepted!" 与ASCII "Registration Key Failed!" 很关键

点击ASCII "Registration Key accepted!" 查看代码。


004A5829   .  64:8910       mov     dword ptr fs:[eax], edx
004A582C   .  68 41584A00   push    004A5841
004A5831   >  8B45 CC       mov     eax, dword ptr [ebp-34]
004A5834   .  E8 5BE8F5FF   call    00404094
004A5839   .  C3            retn
004A583A   .^ E9 E9EFF5FF   jmp     00404828
004A583F   .^ EB F0         jmp     short 004A5831
004A5841   .  C645 F3 01    mov     byte ptr [ebp-D], 1
004A5845   .  807D 08 00    cmp     byte ptr [ebp+8], 0
004A5849   .  75 0A         jnz     short 004A5855
004A584B   .  B8 A85A4A00   mov     eax, 004A5AA8                    ;  ASCII "Registration Key accepted!"
004A5850   .  E8 A339F9FF   call    004391F8
004A5855   >  A1 F4535A00   mov     eax, dword ptr [5A53F4]
004A585A   .  C600 00       mov     byte ptr [eax], 0
004A585D   .  EB 17         jmp     short 004A5876
004A585F   >  807D 08 00    cmp     byte ptr [ebp+8], 0
004A5863   .  75 11         jnz     short 004A5876
004A5865   .  6A 30         push    30                               ; /BeepType = MB_ICONEXCLAMATION
004A5867   .  E8 C829F6FF   call    <jmp.&user32.MessageBeep>        ; \MessageBeep
004A586C   .  B8 CC5A4A00   mov     eax, 004A5ACC                    ;  ASCII "Registration Key Failed!"



我们可以发现这段代码很有dephi特点,用push 跟 retn结合 来实现jmp,例如上面代码中的004A582C跟004A5839。


我们先在004A5829下断点,重新运行程序,尝试注册程序。但是可以发现,程序并没有断下来,弹出error窗口。

图片3

OllyDbg 使用笔记 (十一)



我们可以看看下断点处上面的代码。


我们可以在004A5120处下断点,重新运行程序,尝试注册程序。可以发现程序断在了004A5120,按F8单步运行

运行到004A5461     call    0040A070时会弹出error窗口:

为了继续往下运行在此处下断点,从新运行程序,运行到004A5461 ,把call    0040A070改成nop继续运行。


改变后面的跳转实不实现,使得程序能运行到此处,就可完成注册。

004A584B   .  B8 A85A4A00   mov     eax, 004A5AA8                    ;  ASCII "Registration Key accepted!"











OllyDbg 使用笔记 (十一)

上一篇:Jfinal连接SQLSERVER相关配置说明


下一篇:SQL根据现有表新建一张表