从这节课开始将和大家一起学习破解入门课程的第一课。
课程教材来源:
适合破解入门的160个crackme练手已打包
首先下载后,打开程序保存第一个样本到磁盘里,运行OD,载入样本进行分析。
本程序有2种注册方式:序列号、序列号+用户名
先分析序列号形式的:
1、先运行程序,试试每个功能有什么作用及提示。
2、载入OD后,查看字符串,找到提示的字符串位置下断。
地址=0042F4F8 反汇编=mov edx,Acid_bur.0042F58C 文本字符串=Try Again!!
蓝色是我们输入假密码后的提示,在该处双击进行代码段找段首下断。
3.F9运行程序,输入密码,程序断在了我们下的断点位置。此时我们F8单步往下走。
0042F48D |. BA 40F54200 mov edx,Acid_bur.0042F540 ; Hello 0042F492 |. E8 7142FDFF call Acid_bur.00403708 0042F497 |. 8D45 F8 lea eax,[local.2] 0042F49A |. BA 50F54200 mov edx,Acid_bur.0042F550 ; Dude! 0042F49F |. E8 6442FDFF call Acid_bur.00403708 0042F4A4 |. FF75 FC push [local.1] 0042F4A7 |. 68 60F54200 push Acid_bur.0042F560 0042F4AC |. FF75 F8 push [local.2] 0042F4AF |. 8D45 F4 lea eax,[local.3] 0042F4B2 |. BA 03000000 mov edx,0x3 0042F4B7 |. E8 F044FDFF call Acid_bur.004039AC
以上汇编代码,通过分析是取了2个常量值进行拼接为:Try Again!
继续往下走,发现关键位置:
0042F4CA |. 8B45 F0 mov eax,[local.4] 0042F4CD |. 8B55 F4 mov edx,[local.3] 0042F4D0 |. E8 2745FDFF call Acid_bur.004039FC [color=#0000ff]0042F4D5 75 1A jnz XAcid_bur.0042F4F1[/color] 0042F4D7 |. 6A 00 push 0x0 0042F4D9 |. B9 64F54200 mov ecx,Acid_bur.0042F564 ; Congratz! 0042F4DE |. BA 70F54200 mov edx,Acid_bur.0042F570 ; God Job dude !! =) 0042F4E3 |. A1 480A4300 mov eax,dword ptr ds:[0x430A48] 0042F4E8 |. 8B00 mov eax,dword ptr ds:[eax] 0042F4EA |. E8 81ACFFFF call Acid_bur.0042A170 0042F4EF |. EB 18 jmp XAcid_bur.0042F509 0042F4F1 |> 6A 00 push 0x0 0042F4F3 |. B9 84F54200 mov ecx,Acid_bur.0042F584 ; Failed! 0042F4F8 |. BA 8CF54200 mov edx,Acid_bur.0042F58C ; Try Again!! 0042F4FD |. A1 480A4300 mov eax,dword ptr ds:[0x430A48] 0042F502 |. 8B00 mov eax,dword ptr ds:[eax] 0042F504 |. E8 67ACFFFF call Acid_bur.0042A170
从字符串提示来看,JNZ跳转就是注册失败,不跳就是注册成功。分析发现上面的CALL是拿EAX,EDX作比较。JNZ是相等不跳,不相等跳转。本次不相等跳转后,注册失败。将注册码修改为EDX的内容后,注册成功。说明注册码是一个固定的值 :Try Again!
经过上面的分析得出2种破解方法:
1、找到正确的注册码,完成注册。
2、将关键位置的JNZ修改为NOP,达到破解。
该实例相对简单,就不多废话了!有不明白的请跟帖。
高清视频学习下载地址:
https://pan.baidu.com/s/1wR-1K0TZ-m0QGXNt1jHj6A
新手学破解入门第1课
http://www.it0365.com/thread-30-1-1.html
(出处: IT资源社区)