各位大侠好!
小菜鸟我在破解用VB写的软件的时候,不知道要怎么去做注册机?
首先用OD载入,程序停在这里
00401580 > $ 68 34244000 PUSH 随想出题.00402434 ; ASCII "VB5!6&vb6chs.dll"
00401585 . E8 EEFFFFFF CALL <JMP.&MSVBVM60.#100>
0040158A . 0000 ADD BYTE PTR DS:[EAX],AL
0040158C . 0000 ADD BYTE PTR DS:[EAX],AL
0040158E . 0000 ADD BYTE PTR DS:[EAX],AL
00401590 . 3000 XOR BYTE PTR DS:[EAX],AL
00401592 . 0000 ADD BYTE PTR DS:[EAX],AL
00401594 . 3800 CMP BYTE PTR DS:[EAX],AL
00401596 . 0000 ADD BYTE PTR DS:[EAX],AL
00401598 . 0000 ADD BYTE PTR DS:[EAX],AL
0040159A . 0000 ADD BYTE PTR DS:[EAX],AL
0040159C . 93 XCHG EAX,EBX
0040159D . 3BEA CMP EBP,EDX
0040159F . E0 6A LOOPDNE SHORT 随想出题.0040160B
004015A1 > 4D DEC EBP
004015A2 . 67:45 INC EBP ; 多余的前缀
===========================================================================================
然后什么也没动,直接F9运行,让程序跑起来,在输入假注册名和假码,返回OD,Alt+E可执行模块,在AMODULE, 条目 1
6A280000 0152000 (1384448.) 6A281AD8 MSVBVM60.<模块入口点>MSVBVM60 (系统)6.00.8495
路径=C:\WINNT\System32\MSVBVM60.DLL 在这一行中用Ctrl+N查看名称 找到
名称位于 MSVBVM60, 条目 1178 地址=6A2A416C 区段=.text 类型=输出 名称=__vbaStrComp 在这里
下F2断点 在返回程序的注册窗口 点击确定,程序被OD断下,
6A2A416C > 837C24 04 02 CMP DWORD PTR SS:[ESP+4],2 //拦到的断点
6A2A4171 0F84 50310200 JE MSVBVM60.6A2C72C7
6A2A4177 68 01000300 PUSH 30001
6A2A417C FF7424 08 PUSH DWORD PTR SS:[ESP+8]
6A2A4180 FF7424 10 PUSH DWORD PTR SS:[ESP+10]
6A2A4184 FF7424 18 PUSH DWORD PTR SS:[ESP+18]
6A2A4188 FF15 58EE386A CALL DWORD PTR DS:[6A38EE58] ; OLEAUT32.VarBstrCmp
6A2A418E 85C0 TEST EAX,EAX
6A2A4190 0F8C 38310200 JL MSVBVM60.6A2C72CE
6A2A4196 48 DEC EAX
6A2A4197 C2 0C00 RETN 0C
6A2A419A > 8B4424 08 MOV EAX,DWORD PTR SS:[ESP+8]
6A2A419E 03C0 ADD EAX,EAX
6A2A41A0 50 PUSH EAX
6A2A41A1 FF7424 08 PUSH DWORD PTR SS:[ESP+8]
6A2A41A5 E8 03000000 CALL MSVBVM60.rtcLeftBstr
=========================================================================
EAX 0013C4A4 UNICODE "WUGUIYAO" //寄存器里的假注册名
=========================================================================
堆栈里看到
0012F4F4 6A37F073 MSVBVM60.__vbaFreeVarList
0012F4F8 00151FC6 UNICODE "225564264" //真注册码
0012F4FC 0012F520
0012F500 6A3639B5 MSVBVM60.rtcVarStrFromVar
0012F504 6A2A412D MSVBVM60.6A2A412D
0012F508 00151FC6 UNICODE "225564264" //真注册码
0012F50C 00000009
0012F510 001396C8
0012F514 6A2A40D0 MSVBVM60.6A2A40D0
0012F518 0012F528
0012F51C 00151FC4 UNICODE " 225564264" //真注册码
0012F520 0012F544
0012F524 6A369694 MSVBVM60.6A369694
0012F528 0013CCD4 UNICODE "225564264" //真注册码
0012F52C 6A37F073 MSVBVM60.__vbaFreeVarList
0012F530 00000000
0012F534 6A2A0008 MSVBVM60.6A2A0008
0012F538 6A2A4169 返回到 MSVBVM60.6A2A4169 来自 MSVBVM60.__vbaStrComp
==========================================================================
到这里其本上已经是追出了软件的注册名和注册码,
注册名:WUGUIYAO 注册码:225564264
==========================================================================
然而在用keymake1.73写注册机的时候,老是拦截不到注册码,请高手指点一下,写注册机的
中断地址,还有保存的“内存方式”是哪一个,EAX还是EDX ?
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)