- UID
- 475
注册时间2005-3-30
阅读权限20
最后登录1970-1-1
以武会友
TA的每日心情 | 无聊 2022-9-12 06:24 |
---|
签到天数: 188 天 [LV.7]常住居民III
|
【破解作者】 风明月
【作者邮箱】 ws5483@tom.com
【作者主页】 PYG(https://www.chinapyg.com/)
【使用工具】 peid ResHacker OD W32
【破解平台】 Win9x/NT/2000/XP
【软件名称】 快刀崭乱麻
【软件简介】 共享软件,。没有注册的有使用30天期限。
【软件大小】 695KB
【加壳方式】 无壳
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
属先peid查壳。显示为Microsoft Visual C++ 6.0编写。无壳。
方法一;清除注册框,除除试用天数。
打开工具ResHacker,载入文件。这时我们会发现右边的工具窗口,有些分类的文件,如DLL。EXE……
我们用光标在这里点击文件看每个文件夹里都有些什么东西。找到我们自己想要的。当在dialog这个文件夹时。我们会发现点后面的那些数字
会弹出一些对话框。和我们在使用软件时的一些对话框一样。当我们在209这个对话框时占击2052就会发现弹出一个我们运行软件时弹出的对话框一样。
然后我们对着这个对话框反键点删除。确定。就会自动弹出233文件里的2052这个对话框。你会发现。这里是提示要注册软件和软件试用期的。操作一样
删掉。然后点保存。就会在你所安装的文件夹里有两个EXE文件。这个个x-cut_original.exe的文件就是刚刚生成的。打开看看。直接就是运行时的画面了。没有注册没有
没有提示试用期了。
方法二:爆破。
壳我们先前查过。所以这里就不用查了。
W32载入程序,打开参考——串式数据参考,向下拉。我们来到“注册码不正确!”这句。双击来到代码处
*Possible stringData Ret fron Data 0bj---*注册码不正确!“
00401511 6858504100 push 00415058
英文不会。只看的明白那句注册码不正确。呵呵。我们记下这里。然后关W32打开OD载入程序。反键----前住----表达,在弹出的对话框里。我们输入刚刚记下的出错的地方,
也就是注册码不正确的地方
00401414 |. FF15 58044100 call dword ptr ds:[<&USER32.Kil>; \KillTimer
0040141A |. 8D4C24 10 lea ecx,dword ptr ss:[esp+10]
0040141E |. E8 2FC00000 call <jmp.&MFC42.#540_CString::>
00401423 |. 6A 01 push 1
00401425 |. B9 E85B4100 mov ecx,x-cut_or.00415BE8
0040142A |. 895C24 28 mov dword ptr ss:[esp+28],ebx
0040142E |. E8 AFC00000 call <jmp.&MFC42.#6334_CWnd::Up>
00401433 |. 8B0D 585C4100 mov ecx,dword ptr ds:[415C58]
00401439 |. BE 1E000000 mov esi,1E
0040143E |. 68 585C4100 push x-cut_or.00415C58
00401443 |. BF 01000000 mov edi,1
00401448 |. 8B41 F8 mov eax,dword ptr ds:[ecx-8]
0040144B |. 8D4C24 14 lea ecx,dword ptr ss:[esp+14]
0040144F |. 2BF0 sub esi,eax
00401451 |. E8 86C00000 call <jmp.&MFC42.#858_CString::>
00401456 |. 8B15 585C4100 mov edx,dword ptr ds:[415C58]
0040145C |. 8B42 F8 mov eax,dword ptr ds:[edx-8]
0040145F |. 83F8 1E cmp eax,1E
00401462 |. 7D 3A jge short x-cut_or.0040149E
00401464 |. 3BF3 cmp esi,ebx
00401466 |. 7E 66 jle short x-cut_or.004014CE
00401468 |> 68 68504100 /push x-cut_or.00415068
0040146D |. 8D4424 18 |lea eax,dword ptr ss:[esp+18]
00401471 |. 68 585C4100 |push x-cut_or.00415C58
00401476 |. 50 |push eax
00401477 |. E8 5AC00000 |call <jmp.&MFC42.#924_operator>
0040147C |. 50 |push eax
0040147D |. B9 585C4100 |mov ecx,x-cut_or.00415C58
00401482 |. C64424 28 01 |mov byte ptr ss:[esp+28],1
00401487 |. E8 50C00000 |call <jmp.&MFC42.#858_CString:>
0040148C |. 8D4C24 14 |lea ecx,dword ptr ss:[esp+14]
00401490 |. 885C24 24 |mov byte ptr ss:[esp+24],bl
00401494 |. E8 CBBF0000 |call <jmp.&MFC42.#800_CString:>
00401499 |. 4E |dec esi
0040149A |.^ 75 CC \jnz short x-cut_or.00401468
0040149C |. EB 30 jmp short x-cut_or.004014CE
0040149E |> 7E 2E jle short x-cut_or.004014CE
004014A0 |. 8D4C24 14 lea ecx,dword ptr ss:[esp+14]
004014A4 |. 6A 1E push 1E
004014A6 |. 51 push ecx
004014A7 |. B9 585C4100 mov ecx,x-cut_or.00415C58
004014AC |. E8 1FC00000 call <jmp.&MFC42.#4129_CString:>
004014B1 |. 50 push eax
004014B2 |. B9 585C4100 mov ecx,x-cut_or.00415C58
004014B7 |. C64424 28 02 mov byte ptr ss:[esp+28],2
004014BC |. E8 1BC00000 call <jmp.&MFC42.#858_CString::>
004014C1 |. 8D4C24 14 lea ecx,dword ptr ss:[esp+14]
004014C5 |. 885C24 24 mov byte ptr ss:[esp+24],bl
004014C9 |. E8 96BF0000 call <jmp.&MFC42.#800_CString::>
004014CE |> 55 push ebp
004014CF |. 8B2D 585C4100 mov ebp,dword ptr ds:[415C58]
004014D5 |. 33C9 xor ecx,ecx
004014D7 |> 8A0429 /mov al,byte ptr ds:[ecx+ebp]
004014DA |. 83E0 7F |and eax,7F
004014DD |. 69C0 3B2E0800 |imul eax,eax,82E3B
004014E3 |. 8BF0 |mov esi,eax
004014E5 |. B8 E10217B8 |mov eax,B81702E1
004014EA |. F7EE |imul esi
004014EC |. 03D6 |add edx,esi
004014EE |. C1FA 06 |sar edx,6
004014F1 |. 8BC2 |mov eax,edx
004014F3 |. C1E8 1F |shr eax,1F
004014F6 |. 03D0 |add edx,eax
004014F8 |. 41 |inc ecx
004014F9 |. 83F9 1E |cmp ecx,1E
004014FC |. 8DBC17 7A078500 |lea edi,dword ptr ds:[edi+edx+>
00401503 |.^ 7C D2 \jl short x-cut_or.004014D7
00401505 |. A1 545C4100 mov eax,dword ptr ds:[415C54]
0040150A |. 5D pop ebp
0040150B |. 3BC7 cmp eax,edi
0040150D |. 74 14 je short x-cut_or.00401523 把这里je改成jnz,
00401510 |. 53 push ebx
00401511 |. 68 58504100 push x-cut_or.00415058 --------- 这里就是出错的地方,呵呵。我是菜鸟所以老是会把这里注解一下,
00401516 |. E8 AFBF0000 call <jmp.&MFC42.#1200_AfxMessa>
0040151B |. 393D 545C4100 cmp dword ptr ds:[415C54],edi
00401521 |. 75 5C jnz short x-cut_or.0040157F
00401523 |> 8D4C24 18 lea ecx,dword ptr ss:[esp+18]
00401527 |. 8D5424 0C lea edx,dword ptr ss:[esp+C]
0040152B |. 51 push ecx ; /pDisposition
我们来到00401511注册不正确的地方,向上看发现在0040150D处有一个跳转,是相等就跳到程序注册不正确下面的。不相等那么就跳转不会实现
所以我在这里将je改成jnz不等于刚跳。然后运行。随意输入注册码。程序就运行,没有提示注册借误的对话框了。爆破成功。
请高手们指点一下。我这个思路是否正确。请指点一下。
方法三:只是自己构想。还未尝试。因为我不懂算法。
根据那个相等就跳到正确地方。也就是0040150D处。我们在这里下一个断点。然后运行。在软件注册。随意的输入用户名。注册码。
是不是会在这里断下来呢?或是向上的那些比较中。找到初比较的地方下断。然后再分析呢?呵呵。我先把这个破文写了。一会清了注册表。再来试
试找注册码。还请高手们多多指点。
那么肯定是不对的。是否就是在这里被断下来了呢?
--------------------------------------------------------------------------------
【破解总结】
在这里我要说一下。关于ResHacker工具使用。我个人只是用来破解试用期的。对于不注册就限制一些功能的,我想因为你没有注册功能就不能用。所以用这个工具你就是去了注册框和提示。那些功能还是不能用。这只是个人认为。高手们如果对这个工具还有什么更好的使用,麻烦告诉我一下别的用处,呵呵。
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者和出处并保持文章的完整, 谢谢!
一切版权归PYG |
|