| 关键词: 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,希望你可以自己暴破.切记不要就此不前,只会爆破,下片帖子我会贴出怎么追出注册码. |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|