首页 电脑 电脑学堂 查看内容

菜鸟必看的破解文章-爆破软件

2005-1-24 06:51 842 0

摘要: 作者:小弟[爆破王]来源:bbs.pediy.com 【破文作者】   小弟[爆破王] 【文章题目】   菜鸟必看的破解文章(1)-爆破软件 【软件名称】...
关键词: nbsp push 爆破 unabexcr 光盘 正确 提示 文件 MessageBoxA 负号

作者:小弟[爆破王]来源:bbs.pediy.com 【破文作者】   小弟[爆破王] 【文章题目】   菜鸟必看的破解文章(1)-爆破软件 【软件名称】   crackme 【下载地址】   看下面 ----------------------------------------------------------------------------------------------【加密方式】   光盘加密 【破解工具】   OllyDbg v1.10b 【软件限制】   没有 【破解平台】   XP SP2 ----------------------------------------------------------------------------------------------【文章简介】 这篇文章是专门给菜鸟看的,高手莫笑,本人的能力也很有限,所以只能写出这样的文章,不要笑我.有什么不明的可以下面帖出. ----------------------------------------------------------------------------------------------【破解过程】 这帖子破解的是一个crackme.主要是真正的软件我破解不了^_^.这里把暴力破解的原理讲解一下. if qqq=1 then注册正确end if这里用这个语句来说明一下,如果QQ=1的话注册正确,但是我们可以使条件变成相反的变成if not qqq=1 then注册正确end if 这样我们就可以使用不正确的注册码,而用正确的注册码凡尔不正确。因为我们的条件去反了。这就是爆破的基本原理这里给主一些经常见到的跳转Jc   有进位则跳转         jnc   无进位则跳转Jz   为 0 跳转               jnz   不为0跳转Je   等于则跳转               jne   不等于则跳转Js   为负号则跳转             jns   不为负号则跳转Jo   有溢出则跳转             jno   无溢出则跳转Jp   奇偶位为偶               jnp   奇偶位为奇 好了,现在开始我们的爆破旅程^_^ 先用OllyDbg v1.10b载入unabexcm1.exe然后看到一下代码00401000 u>/$ 6A 00         push 0                   ; /Style = MB_OK|MB_APPLMODAL00401002   |. 68 00204000     push unabexcr.00402000         ; |Title = "abex' 3rd crackme"00401007   |. 68 12204000     push unabexcr.00402012         ; |Text = "Click OK to check for the keyfile."0040100C   |. 6A 00         push 0                   ; |hOwner = NULL0040100E   |. E8 8C000000     call <jmp.&USER32.MessageBoxA>   ; \MessageBoxA00401013   |. 6A 00         push 0                   ; /hTemplateFile = NULL00401015   |. 68 80000000     push 80                   ; |Attributes = NORMAL0040101A   |. 6A 03         push 3                   ; |Mode = OPEN_EXISTING0040101C   |. 6A 00         push 0                   ; |pSecurity = NULL0040101E   |. 6A 00         push 0                   ; |ShareMode = 000401020   |. 68 00000080     push 80000000               ; |Access = GENERIC_READ00401025   |. 68 B9204000     push unabexcr.004020B9         ; |FileName = "abex.l2c" 是不是看不懂?不用管他,按F9继续执行点击确定之后提示Hmmmmm,I can't find the file!记下来后面有用然后在汇编代码上右击选择搜索->字符参考.过一会看到一堆字符,找到Hmmmmm,I can't find the file!双击来到这里00401034   |. 83F8 FF         cmp eax,-1               -----------------------00401037   |. 74 3C         je short unabexcr.00401075<-----|---看到这个跳转了么? |00401039   |. 6A 00         push 0                 |   他会先检查是否   |0040103B   |. FF35 CA204000     push dword ptr ds:[4020CA]     |   有光盘,如果没有就跳转到错误提示00401041   |. E8 4D000000     call <jmp.&KERNEL32.GetFileSize>|   那里(1)改过之后就不会跳转而出现00401046   |. 83F8 12         cmp eax,12               |   文件错误的提示使因为00401049   |. 75 15         jnz short unabexcr.00401060   |<--这个跳转的原因,他会比较文件是否0040104B   |. 6A 00         push 0                 |   正确,如果不正确就会跳转到文件错0040104D   |. 68 35204000     push unabexcr.00402035       |   误的提示-------------------------00401052   |. 68 40204000     push unabexcr.00402040       |   我们把他改为jz就可以完美爆破   | 00401057   |. 6A 00         push 0                 |   ; |hOwner = NULL           |00401059   |. E8 41000000     call <jmp.&USER32.MessageBoxA> |   ; \MessageBoxA             |0040105E   |. EB 28         jmp short unabexcr.00401088   |                       |00401060   |> 6A 00         push 0                 |   ; /Style = MB_OK|MB_APPLMODAL<-(2)00401062   |. 68 79204000     push unabexcr.00402079       |   ; |Title = "Error"00401067   |. 68 7F204000     push unabexcr.0040207F       |   ; |Text = "The found file is not a valid keyfile!"0040106C   |. 6A 00         push 0                 |   ; |hOwner = NULL0040106E   |. E8 2C000000     call <jmp.&USER32.MessageBoxA> |   ; \MessageBoxA00401073   |. EB 13         jmp short unabexcr.00401088   |00401075   |> 6A 00         push 0                 (1)->; |/Style = MB_OK|MB_APPLMODAL00401077   |. 68 54204000     push unabexcr.00402054         ; ||Title = "Error"0040107C   |. 68 5A204000     push unabexcr.0040205A         ; ||Text = "Hmmmmm, I can't find the file!"00401081   |. 6A 00         push 0                     ; ||hOwner = NULL00401083   |. E8 17000000     call <jmp.&USER32.MessageBoxA>     ; |\MessageBoxA00401088   \> E8 0C000000     call <jmp.&KERNEL32.ExitProcess>   ; \ExitProcess   ----------------------------------------------------------------------------------------------【破解心得】 把整个思路概括一下.软件先检查光驱是否有光盘,如果没有提示没有光盘,改跳转使之去反,提示文件错误,改跳转使之去反,爆破成功^_^写成程序的格式 if 光驱有光盘 thenif 光盘上的文件正确 then成功执行else提示文件错误end ifelse提示没有放入光盘end if 改变后 if 光驱没有光盘 thenif 光盘上的文件不正确 then成功执行else提示文件错误end ifelse提示没有放入光盘end if 写的有些简单,但是一些基本的东西还是出来了,希望大家可以看明白,后面还有一个crackme,希望你可以自己暴破.切记不要就此不前,只会爆破,下片帖子我会贴出怎么追出注册码.  
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部