示例图片三

新闻资讯

联系方式

加密狗复制克隆网
电  话:13528540969
联系人:  刘先生
Email:4642967@qq.com
网  址:www.crackdongle.com
地  址 :广东省深圳市地王大厦38层8801号

当前位置: 网站首页 > 新闻资讯 > 业界资讯
业界资讯

加密狗破解入门之爆破

本文是破解入门教程第三篇,带大家破解一个注册失败也没有错误提示对话框的crackme,教大家如何破解这方面的软件。

【破解过程】

破解前的思路:

在输入注册码后,点击cheak,Serial里提示"Maybe ask Joe?",估计程序里应该有这个提示字符串,所以用常规方法尝试

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Ollydbg 1.10b载入sd-cm_.exe,提示此软件已加壳,退出Ollydbg 1.10b,peid查看,发现是用upx加壳,upx-ripper(

一般是先用他脱,他脱的比较好,能编辑资源文件)脱壳在最后校验的时候提示错误,看来是加了多层壳了(这是经验哦^_^),

Unpacker for UPX(他脱壳没有效验,可以脱多层壳,缺点是资源在脱壳后无法编辑)脱壳,然后再用peid查看发现第2层壳是

LCC(什么东东?)加的壳,没有这种壳的脱壳器,只好直接调试.载入后运行,随便输入注册码和用户名,点击check,在注册码处

看到提示字符串Maybe ask Joe?,在汇编的代码上右击搜索->字符参考,显示不出字符串,用老罗的插件来显示(Find ASCII,这里加一下上篇帖子里 <<Lanneret 兄说得VB 的问题也可一用老罗的插件,用另一个显示即可)

,发现了字符串Maybe ask Joe?.双击来到这里----------------------------------------------------------------------

0040300B    /E9 E8010000          jmp 34567890.004031F8                                                      |

00403010    |68 2C794000          push 34567890.0040792C             ; ASCII "Joe"<-这个是真正的用户名       |

00403015    |68 58764000          push 34567890.00407658             ; ASCII "xd"<-这个是你输入的姓名        |

0040301A    |E8 5D090000          call <jmp.&KERNEL32.lstrcmpA>                                              |

0040301F    |83F8 00              cmp eax,0                                                                  |

00403022    |75 14       |--跳转- jnz short 34567890.00403038<-------这个是关键跳转,可以看到他把正确的地方   |

00403024    |6A 30       |   ---| push 30                            略过了,并且跳转到了错误的信息的地方,可  |

00403026    |68 B1784000 |正    | push 34567890.004078B1             以知道它是关键跳转,改为jz,点击          |

0040302B    |68 BB784000 |确 容 | push 34567890.004078BB             继续执行,软件注册成功^_^                |

00403030    |FF75 08     |的    | push dword ptr ss:[ebp+8]                                                  |

00403033    |E8 98090000 |---| call <jmp.&USER32.MessageBoxA>                                             |

00403038    |6A 23       |----- push 23                                                                    |

0040303A    |68 BC764000          push 34567890.004076BC             ; ASCII "Maybe ask Joe?"<----------------

0040303F    |68 C9000000          push 0C9

00403044    |FF75 08              push dword ptr ss:[ebp+8]

00403047    |E8 60090000          call <jmp.&USER32.GetDlgItemTextA>

0040304C    |A3 00404000          mov dword ptr ds:[404000],eax

00403051    |833D 00404000 20     cmp dword ptr ds:[404000],20

00403058    |73 17                jnb short 34567890.00403071

0040305A    |68 A2784000          push 34567890.004078A2             ; ASCII "Maybe ask Joe?"

0040305F    |68 C9000000          push 0C9

00403064    |FF75 08              push dword ptr ss:[ebp+8]

00403067    |E8 34090000          call <jmp.&USER32.SetDlgItemTextA>

0040306C    |E9 87010000          jmp 34567890.004031F8

00403071    |C705 0C404000 000000>mov dword ptr ds:[40400C],0

是不是很简单,只要找到关键的地方就很容易破解.

 

 

----------------------------------------------------------------------------------------------

【破解心得】

其实这个crackme有很多破解方法这里一一举出,扩展更多的知识给广大破解初学者:

 

方法1:

可以在这里下断"0040301F    |83F8 00              cmp eax,0"

断下后在寄存器窗口的eax那行的16进制数据上单击(那个数据的底色变成黄色),然后右击(在我的机器上不这样操作选项出不来),选择

修改,然后改为0,注册即可成功.

这里之所以改为0,是因为"cmp eax,0 jnz short 34567890.00403038"这个代码的意思是用0来删除eax的值,如果为0就不跳转,(

注册正确)而不为0就跳转(跳就提示注册失败),我们把值改为0,这样0-0=0,不跳转,注册成功

不过一般不这样改,因为每次都要修改寄存器.比较麻烦

 

方法2:

修改注册错误后的跳转把"jnz short 34567890.00403038(前面是文件名,大家不要被误导)"改为

"jnz short 34567890.00403024(这个是提示注册正确的地方的开头代码)"这样注册成功,继续执行注册正确的提示代码,

注册错误,还是执行注册正确的代码

这样的破解是比较完美的.

 

方法3:

这个就不能说是方法了

看到我在上面的注释; ASCII "Joe"<-这个是真正的用户名

                  ; ASCII "xd"<-这个是你输入的姓名 .

了么,这了可以看出Joe是真正的注册名,因为在对比注册名的时候压入了这个字符串,所以可以猜到Joe(对比注册名,

他区分大小写)为注册名.

 

最后写出程序的格式

 

if 注册名=Joe then

注册成功

else

在注册码的文本框里显示注册错误

end if

 

方法1格式:

if 注册名=Joe then<--这里如果不等于,eax的值就为1,等于就为0

注册成功          (接上)我们在这里把eax的值改为0就可相等

else

在注册码的文本框里显示注册错误

end if

 

方法2格式:

 

if 注册名=Joe then

注册成功:

         注册成功

else

goto 注册成功

end if

 

方法3

 

总结:

其实像这种crackme破解的方法有很多,本文只介绍了其中一种,以后会陆续讲到其它的方法,不过是换了个软件而已。

分享到:
点击次数:  更新时间:2018-08-02 09:32:09  【打印此页】  【关闭