【文章标题】: 糊里糊涂2超级糊涂(主要是写注册机)
【文章作者】: zhouxl
【作者邮箱】: 214201887@qq.com
【软件名称】: Andrénalin.2.exe
【软件大小】: 12.5 KB
【编写语言】: Microsoft Visual Basic 5.0 / 6.0
【作者声明】: 没什么技术含量,只是给自己一个鼓励~
--------------------------------------------------------------------------------
【详细过程】
1.查壳(省了)
2.运行程序 输入'zxc','123456' 提示"Leider Falsch! Nochmal veruschen ! ..............."
3.ollyice载入,右键->查找->所有参考文本字串->找到"Leider Falsch! Nochmal veruschen ! ......."就在最下面
双击来到:
00402280 . 68 A0000000 push 0A0
00402285 . 68 201C4000 push 00401C20
0040228A . 53 push ebx
0040228B . 50 push eax
0040228C . FF15 14414000 call dword ptr [<&MSVBVM50.__vbaHresu>; MSVBVM50.__vbaHresultCheckObj
00402292 > 8B45 A8 mov eax, dword ptr [ebp-58] ;
4 ------->4.在这按F2下断点,我开始在上行的CALL上下段,什么都没拦下
------>点重新开始 运行 输入'zxc','123456'点'OK',发现
----->提示中有假注册码'123456'出现,无意的看了下堆栈 在假注册码上下看看
---->发现可疑:UNICODE "420-8765-490" 真注册码? 快试试~~~!!!
---->哈哈,破解了!!!!没找到算法(别失望),现在写注册机.
0012F468 741234E2 返回到 MSVBVM50.741234E2 来自 MSVBVM50.741233C4
0012F46C 0014DCF4 UNICODE "420-8765-490"
0012F470 0012F3C8
0012F474 00000000
0012F478 0012F4E8
0012F47C 706E8000
0012F480 42588134
0012F484 00CFBEAC
0012F488 0014DD2C UNICODE "123456"
0012F48C 00000000
0012F490 00000030
0012F494 00000000
0012F498 0067B940 UNICODE "&OK"
0012F49C 00000008
0012F4A0 0012F4E8
0012F4A4 0014DB94 UNICODE "zxc"
0012F4A8 00000000
0012F4AC 00140008
0012F4B0 0012F318
0012F4B4 0014DCF4 UNICODE "420-8765-490"
0012F4B8 7C98E723 返回到 ntdll.7C98E723 来自 ntdll.RtlLeaveCriticalSection
00402295 . 8D4D CC lea ecx, dword ptr [ebp-34] ;
00402298 . 8945 9C mov dword ptr [ebp-64], eax ;
0040229B . 8D45 94 lea eax, dword ptr [ebp-6C] ;
0040229E . 50 push eax
0040229F . 51 push ecx
004022A0 . C745 A8 00000>mov dword ptr [ebp-58], 0
004022A7 . C745 94 08800>mov dword ptr [ebp-6C], 8008
004022AE . FF15 48414000 call dword ptr [<&MSVBVM50.__vbaVarTs>; MSVBVM50.__vbaVarTstEq
004022B4 . 8D4D A4 lea ecx, dword ptr [ebp-5C]
004022B7 . 8BD8 mov ebx, eax
004022B9 . FF15 B4414000 call dword ptr [<&MSVBVM50.__vbaFreeO>; MSVBVM50.__vbaFreeObj
004022BF . 8D4D 94 lea ecx, dword ptr [ebp-6C]
004022C2 . FF15 00414000 call dword ptr [<&MSVBVM50.__vbaFreeV>; MSVBVM50.__vbaFreeVar
004022C8 . 66:85DB test bx, bx
004022CB . 0F84 C0000000 je 00402391
3 -------->3.这跳的,在上面下段点找假注册码.
004022D1 . FF15 74414000 call dword ptr [<&MSVBVM50.#534>] ; MSVBVM50.rtcBeep
004022D7 . 8B1D 98414000 mov ebx, dword ptr [<&MSVBVM50.__vba>; MSVBVM50.__vbaVarDup
004022DD . B9 04000280 mov ecx, 80020004
004022E2 . 898D 6CFFFFFF mov dword ptr [ebp-94], ecx
004022E8 . B8 0A000000 mov eax, 0A
004022ED . 898D 7CFFFFFF mov dword ptr [ebp-84], ecx
004022F3 . 8D95 44FFFFFF lea edx, dword ptr [ebp-BC]
004022F9 . 8D4D 84 lea ecx, dword ptr [ebp-7C]
004022FC . 8985 64FFFFFF mov dword ptr [ebp-9C], eax
00402302 . 8985 74FFFFFF mov dword ptr [ebp-8C], eax
00402308 . C785 4CFFFFFF>mov dword ptr [ebp-B4], 00401CA8 ; UNICODE "RiCHTiG !"
00402312 . C785 44FFFFFF>mov dword ptr [ebp-BC], 8
0040231C . FFD3 call ebx ; <&MSVBVM50.__vbaVarDup>
0040231E . 8D95 54FFFFFF lea edx, dword ptr [ebp-AC]
00402324 . 8D4D 94 lea ecx, dword ptr [ebp-6C]
00402327 . C785 5CFFFFFF>mov dword ptr [ebp-A4], 00401C3C ; UNICODE " RiCHTiG !!!! .... weiter mit dem N"
00402331 . C785 54FFFFFF>mov dword ptr [ebp-AC], 8
0040233B . FFD3 call ebx
0040233D . 8D95 64FFFFFF lea edx, dword ptr [ebp-9C]
00402343 . 8D85 74FFFFFF lea eax, dword ptr [ebp-8C]
00402349 . 52 push edx
0040234A . 8D4D 84 lea ecx, dword ptr [ebp-7C]
0040234D . 50 push eax
0040234E . 51 push ecx
0040234F . 8D55 94 lea edx, dword ptr [ebp-6C]
00402352 . 6A 30 push 30
00402354 . 52 push edx
00402355 . FF15 28414000 call dword ptr [<&MSVBVM50.#595>] ; MSVBVM50.rtcMsgBox
0040235B . 8D95 14FFFFFF lea edx, dword ptr [ebp-EC]
00402361 . 8D4D AC lea ecx, dword ptr [ebp-54]
00402364 . 8985 1CFFFFFF mov dword ptr [ebp-E4], eax
0040236A . C785 14FFFFFF>mov dword ptr [ebp-EC], 3
00402374 . FFD6 call esi
00402376 . 8D85 64FFFFFF lea eax, dword ptr [ebp-9C]
0040237C . 8D8D 74FFFFFF lea ecx, dword ptr [ebp-8C]
00402382 . 50 push eax
00402383 . 8D55 84 lea edx, dword ptr [ebp-7C]
00402386 . 51 push ecx
00402387 . 8D45 94 lea eax, dword ptr [ebp-6C]
0040238A . 52 push edx
0040238B . 50 push eax
0040238C . E9 B5000000 jmp 00402446
00402391 > 8B1D 98414000 mov ebx, dword ptr [<&MSVBVM50.__vba>; MSVBVM50.__vbaVarDup
2 -------->2.点下,红线指示,由4022CB跳过来的
00402397 . B9 04000280 mov ecx, 80020004
0040239C . 898D 6CFFFFFF mov dword ptr [ebp-94], ecx
004023A2 . B8 0A000000 mov eax, 0A
004023A7 . 898D 7CFFFFFF mov dword ptr [ebp-84], ecx
004023AD . 8D95 44FFFFFF lea edx, dword ptr [ebp-BC]
004023B3 . 8D4D 84 lea ecx, dword ptr [ebp-7C]
004023B6 . 8985 64FFFFFF mov dword ptr [ebp-9C], eax
004023BC . 8985 74FFFFFF mov dword ptr [ebp-8C], eax
004023C2 . C785 4CFFFFFF>mov dword ptr [ebp-B4], 00401D9C ; UNICODE "LEiDER Falsch ! "
004023CC . C785 44FFFFFF>mov dword ptr [ebp-BC], 8
004023D6 . FFD3 call ebx ; <&MSVBVM50.__vbaVarDup>
004023D8 . 8D95 54FFFFFF lea edx, dword ptr [ebp-AC]
004023DE . 8D4D 94 lea ecx, dword ptr [ebp-6C]
004023E1 . C785 5CFFFFFF>mov dword ptr [ebp-A4], 00401CC0 ; UNICODE "Leider Falsch! Nochmal veruschen ! Wenn Du es nicht schaffen solltest, schreib mir ! Andrenalin@g"
1 ----------->1.来到这,然后向找跳转
004023EB . C785 54FFFFFF>mov dword ptr [ebp-AC], 8
-------------------------------------------------------------------
内存注册机
中断地址:402295
中断次数:1
第一字节:8D
指令长度:1
注册码在哪呢?
分析:假注册码在ebp-58(这里等于0012F488),真注册码在'0012F4B4'(即ebp-2C)
故,如图设置:
还要请教下高手那个”地址指针“是什么用的,为什么这里必须'打勾' 选 '1'层?
--------------------------------------------------------------------------------
【经验总结】
现在才知道算法好难分析哦,连在哪下手都还不知道.
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2007年08月08日 14:48:09
[注意]看雪招聘,专注安全领域的专业人才平台!
上传的附件: