[转载]献给破解新手的一种破解方法
信息来源:霏凡论坛(bbs.crsky.com)(停止注册)文章作者:恋爱季节
大家好!今天我给大家上传一个crackme,这个程序的破解方法,献给初次破解的新手。高手勿笑!
【破解作者】 恋爱季节
【作者邮箱】 [email]hstooo77@yahoo.com.cn[/email]
【作者主页】 QQ:318536143
【使用工具】 flyDBG.exe
【破解平台】 XP
【软件名称】 AD_CM#2.exe
【软件大小】 4.00KB
【破解时间】 2005年10月27日
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与版主分享:)
--------------------------------------------------------------------------------
【破解内容】
首先运行flyDBG,然后在flyDBG中打开AD_CM#2.exe,分析代码,右击鼠标点击搜索字符参考。
在弹出的对话框中双击ASCII "Yeah, you did it!",返回到CPU窗口
00401134 |> |6A 14 push 14 ; /Count = 14 (20.)
00401136 |. |68 80324000 push AD_CM#2.00403280 ; |Buffer = AD_CM#2.00403280
0040113B |. |68 B90B0000 push 0BB9 ; |ControlID = BB9 (3001.)
00401140 |. |FF75 08 push dword ptr ss:[ebp+8] ; |hWnd
00401143 |. |E8 42000000 call <jmp.&USER32.GetDlgItemTextA> ; \GetDlgItemTextA
00401148 |. |B8 80304000 mov eax, AD_CM#2.00403080
0040114D |. |BB 80324000 mov ebx, AD_CM#2.00403280
00401152 |. |8BCE mov ecx, esi
00401154 |> |8A10 /mov dl, byte ptr ds:[eax]
00401156 |. |2AD1 |sub dl, cl
00401158 |. |3813 |cmp byte ptr ds:[ebx], dl
0040115A |. |75 18 |jnz short AD_CM#2.00401174
0040115C |. |40 |inc eax
0040115D |. |43 |inc ebx
0040115E |.^|E2 F4 \loopd short AD_CM#2.00401154
00401160 |. |6A 40 push 40 ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
00401162 |. |68 12304000 push AD_CM#2.00403012 ; |Title = "ArturDents CrackMe#2"
00401167 |. |68 27304000 push AD_CM#2.00403027 ; |Text = "Yeah, you did it!"
向上找call,在00401136处下断,按F9运行程序,出现了注册窗口
输入name:恋爱季节
serial:79797979
点击Checkt it,baby!中断了下来,双击中断这一行,撤销中断点,一路按F8来到00401148,看到注释栏里的79797979
00401148 |. B8 80304000 mov eax, AD_CM#2.00403080
0040114D |. BB 80324000 mov ebx, AD_CM#2.00403280 ; ASCII "79797979"
在按F8来到00401158
00401158 |. 3813 |cmp byte ptr ds:[ebx], dl
此时在下面可以看到ds:[ebx]=37('7') dl=B9('?) 表示“79797979”中的第一个字符7的十六进制与B9比较
若相等,就进行下一轮比较,不等就失败。
按F8,下面显示跳转已经实现,这时双击寄存器窗口中的z 0,使之变为z 1,意思是不让跳转实现,这时再按F8
又循环到00401158
00401158 |. 3813 |cmp byte ptr ds:[ebx], dl
在下面可以看到ds:[ebx]=39('9') dl=AE('?) 表示“79797979”中的第二个字符9的十六进制与与AE比较
若相等,就进行下一轮比较,不等就失败。
按F8,下面显示跳转已经实现,这时双击寄存器窗口中的z 0,使之变为z 1,意思是不让跳转实现,这时再按F8
又循环到00401158
在下面可以看到ds:[ebx]=37('7') dl=AA('?) 表示“79797979”中的第三个字符7的十六进制与与AA比较
若相等,就进行下一轮比较,不等就失败。
按F8,下面显示跳转已经实现,这时双击寄存器窗口中的z 0,使之变为z 1,意思是不让跳转实现,这时再按F8
又循环到00401158
在下面可以看到ds:[ebx]=39('9') dl=A9('?) 表示“79797979”中的第四个字符9的十六进制与与A9比较
若相等,就进行下一轮比较,不等就失败。
按F8,下面显示跳转已经实现,这时双击寄存器窗口中的z 0,使之变为z 1,意思是不让跳转实现,这时再按F8
又循环到00401158
在下面可以看到ds:[ebx]=37('7') dl=B8 表示“79797979”中的第五个字符7的十六进制与与B8比较
若相等,就进行下一轮比较,不等就失败。
按F8,下面显示跳转已经实现,这时双击寄存器窗口中的z 0,使之变为z 1,意思是不让跳转实现,这时再按F8
又循环到00401158
在下面可以看到ds:[ebx]=39('9') dl=BB 表示“79797979”中的第六个字符9的十六进制与与BB比较
若相等,就进行下一轮比较,不等就失败。
按F8,下面显示跳转已经实现,这时双击寄存器窗口中的z 0,使之变为z 1,意思是不让跳转实现,这时再按F8
又循环到00401158
在下面可以看到ds:[ebx]=37('7') dl=BB 表示“79797979”中的第七个字符7的十六进制与与BB比较
若相等,就进行下一轮比较,不等就失败。
按F8,下面显示跳转已经实现,这时双击寄存器窗口中的z 0,使之变为z 1,意思是不让跳转实现,这时再按F8
又循环到00401158
在下面可以看到ds:[ebx]=39('9') dl=D9('?) 表示“79797979”中的第八个字符9的十六进制与与D9比较
到此对应恋爱季节的真码就是B9 AE AA A9 B8 BB BB D9所对应的ASCII值,对应的值是“巩富毁”
用户名:恋爱季节
sn :巩富毁
到此破解就告一段落了
有兴趣的话,希望大侠能够写一下内存注册机
指点小弟一二,在此谢过!
--------------------------------------------------------------------------------
【破解总结】
这个软件是一个字符一个字符的进行比对,适用于用户名是字母型、数字型或字母数字混合型,
对于汉字型的用户名所对应的serial也是汉字型,此汉字型不好寻找,
故希望大家还是用字母型、数字型或字母数字混合型进行破解验证。
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
页:
[1]