首页
社区
课程
招聘
[分享]《2005年智能报关实用手册》的完全破解注册码
发表于: 2005-5-5 12:58 5032

[分享]《2005年智能报关实用手册》的完全破解注册码

2005-5-5 12:58
5032
菜鸟的处女作:一个报关程序的破解全程
分析对象:《2005年智能报关实用手册》的完全破解注册码
   【保护方式】次数限制。
     分析工具:PEiD0.92    ollydbg11.09
     分析目的:分析软件的保护方法,教学,学习编程方法。因为我是学VB的,所以想看一下VB是不是像传说中的那么好破,没有想到呀,这么不难破。太弱了!以后改学其他语言了,呵呵。这是对有ollydbg11.09这样的破解利器来说的,静态分析器我不爱用,也不想用,太单调了,一般简单的可以用一下,不过VB程序用它看不懂的,(呵呵,至少我看不懂)。
     免责声明:本文是用于学习目的,请下载学习完成后,在24小时内删除本文中所述的分析对像软件。本文不得用于除学习以外的其它用途。违法使用本文所产生的后果由违法使用者承担,与本文原载论坛和本文作者无关。
       古话有曰:“触类旁通,举一反三”,再强的防护措施也有它的弱点。更何况VB程序这么弱的。虽然它有它的特殊性,但是我个人认为VB加密太简单了。因为它很大程度上是依靠MSVBVM6.0.DLL,这个动态链接库,解释执行的。现在的VB程序一般是用到6.0的版本了,所以上面的文件名一般是MSVBVM60.DLL。正是因为这个原因,使我们看到的静态的反汇编程序,大部分是在几个动态链接库上转来转去,很少能看到有用的资源(可能有用的东西还是有的,只是隐含了), 所以用VB编写的程序用通用的如W32DASM等静态反汇编软件是不好下手的。即然静态分析不太行,那我们就用动态分析吧。
       在开始动态分析之前,我们先试着注册这个程序看看,看它能给我们什么提示。我们就先祈祷一下吧,呵呵!好,我们启动这个程序,找到注册的位置,机器码:XU451-171SK-00402-19534-1-T0701     想一下,注册码就用:1234560    希望能注册成功啊!点确认。呵呵,不行啊,有出错提示,烦啊!你千万不要烦这个出错提示,它可是我们分析成功的好开始啊,它给了我们分析它关键点(当然是有关注册的代码段)的切入口。因为我们可以在VB的函数_rtcmsgbox上下断点,这个函数的作用是显示一个对话框。如果我们在点注册按纽后能成功的断下程序,我们就有了一个好的开始。
      为什么我们要在这个地方下断点呢?这是因为,当我们在程序要显示出错提示的时候断下程序,说明程序已经执行过了判断注册码对错的代码段,由于我们填的注册码肯定是错误的,程序在判断后,一般会有一个转跳,跳到显示注册码错的代码段上来,而且这外转跳一般不会跳很远,也就是说判断注册码对错的关键代码离显示注册码错的代码段一般不是很远,只要我们向上去找几下,一般就可以发现关键处。找到了关键处,我们就成功了90%。好,现在开始动工。
         拿出ollydbg 11.09,加载程序,等它自动分析完之后,按ALT+E打开可执行模块,找到MSVBVM60.DLL,双击它,到了这个模块里面,再按Ctrl+N显示出这个模块里面的函数名称,输入rtcmsgbox这个函数,双击它。按F2下断点。按F9执行程序,填试验码后点注册,程序就被断下来了,如下:
        6A362F29 M>/$  55          push ebp      程序断在此处
6A362F2A   |.  8BEC        mov ebp,esp
6A362F2C   |.  83EC 4C     sub esp,4C
6A362F2F   |.  8B4D 14     mov ecx,dword ptr ss:[ebp+14]
这里是在MSVBVM60.DLL模块里,我们要回到原程序的空间去,所以我们按Ctrl+F9,意思是执行到返回处。这时注册出错框出现了,点确认之后,程序断在此处:
    6A36303D   |.  C2 1400     retn 14    #此处按F7就回到了原程序的空间。
代码如下:
00446AD7    .  FF15 841040>call dword ptr ds:[<&MSVBVM60.#595>]             ;  MSVBVM60.rtcMsgBox      #rtcmsgbox函数调用,用于显示注册码错的信息。
00446ADD    .  8D95 68FFFF>lea edx,dword ptr ss:[ebp-98]          #程序就停在了这里。
        跟据上面所讲的,关键的语句应该在这段代码的上面,我们去找找,我们向上找了几下,看到如下代码。
       00446A5A    . /E9 BA010000     jmp CE2005.00446C19 #这个无条件跳转,跳过了显示

出错对话框的代码

00446A5F    > |8B3D E81140>mov edi,dword ptr ds:[<&MSVBVM60.__vbaVarDup>]   ;  MSVBVM60.__vbaVarDup
      注意上面00446A5F后面有一个">"符号,说明有上面某处有一个跳转跳到这里。这很可能是,程序再判断注册码错后,一个条件跳转实验,跳到显示出错对话框的代码段来。我们只要找到这个跳转,关键处就近在眼前了。好,我们在00446A5F处用鼠标左键点一下,下面的提示窗口会显示,这个跳转来自00463DFC,太好了!呵呵,我们只接找到那个地方吧。我们在004642E0处用鼠标左键点一下,有一线跟在此处,我们找到这个地方,地址如下:
       004467BF    . /0F84 9A0200>  je CE2005.00446A5F    这个je就是关健的地方所在了
004467C5    . |8B35 501140>mov esi,dword ptr ds:[<&MSVBVM60.#608>]          ;  MSVBVM60.rtcVarBstrFromAnsi
   我们向上找,一直到找它的比较的地方:如下
       0044643A    .  8B3D 0C1240>mov edi,dword ptr ds:[<&MSVBVM60.__vbaStrMove>]  ;  MSVBVM60.__vbaStrMove   这个地方就是了,呵呵
00446440    .  8BD0        mov edx,eax
00446442    .  8D4D E8     lea ecx,dword ptr ss:[ebp-18]
00446445    .  FFD7        call edi                                         ;  <&MSVBVM60.__vbaStrMove>    这个call跟进去就是它的注册方法,我不想跟,太花眼了。
00446447    .  8D4D E4     lea ecx,dword ptr ss:[ebp-1C]
0044644A    .  FF15 381240>call dword ptr ds:[<&MSVBVM60.__vbaFreeStr>]     ;  MSVBVM60.__vbaFreeStr
00446450    .  8D4D 98     lea ecx,dword ptr ss:[ebp-68]
00446453    .  FF15 201040>call dword ptr ds:[<&MSVBVM60.__vbaFreeVar>]     ;  MSVBVM60.__vbaFreeVar
00446459    >  8B13        mov edx,dword ptr ds:[ebx]
0044645B    .  53          push ebx
0044645C    .  FF92 1C0300>call dword ptr ds:[edx+31C]
00446462    .  50          push eax
00446463    .  8D45 B8     lea eax,dword ptr ss:[ebp-48]
00446466    .  50          push eax
00446467    .  FF15 881040>call dword ptr ds:[<&MSVBVM60.__vbaObjSet>]      ;  MSVBVM60.__vbaObjSet
0044646D    .  8B08        mov ecx,dword ptr ds:[eax]
0044646F    .  8D55 E4     lea edx,dword ptr ss:[ebp-1C]
00446472    .  52          push edx
00446473    .  50          push eax
00446474    .  8985 84FEFF>mov dword ptr ss:[ebp-17C],eax
0044647A    .  FF91 A00000>call dword ptr ds:[ecx+A0]
00446480    .  3BC6        cmp eax,esi
00446482    .  DBE2        fclex
00446484    .  7D 18       jge short CE2005.0044649E
00446486    .  8B8D 84FEFF>mov ecx,dword ptr ss:[ebp-17C]
0044648C    .  68 A0000000 push 0A0
00446491    .  68 4CF24000 push CE2005.0040F24C
00446496    .  51          push ecx
00446497    .  50          push eax
00446498    .  FF15 601040>call dword ptr ds:[<&MSVBVM60.__vbaHresultCheckO>;  MSVBVM60.__vbaHresultCheckObj
0044649E    >  8B13        mov edx,dword ptr ds:[ebx]
004464A0    .  53          push ebx
004464A1    .  FF92 1C0300>call dword ptr ds:[edx+31C]
004464A7    .  50          push eax
004464A8    .  8D45 B4     lea eax,dword ptr ss:[ebp-4C]
004464AB    .  50          push eax
004464AC    .  FF15 881040>call dword ptr ds:[<&MSVBVM60.__vbaObjSet>]      ;  MSVBVM60.__vbaObjSet
004464B2    .  8B08        mov ecx,dword ptr ds:[eax]
004464B4    .  8D55 DC     lea edx,dword ptr ss:[ebp-24]
004464B7    .  52          push edx
004464B8    .  50          push eax
004464B9    .  8985 7CFEFF>mov dword ptr ss:[ebp-184],eax
004464BF    .  FF91 A00000>call dword ptr ds:[ecx+A0]
004464C5    .  3BC6        cmp eax,esi
004464C7    .  DBE2        fclex
004464C9    .  7D 18       jge short CE2005.004464E3
004464CB    .  8B8D 7CFEFF>mov ecx,dword ptr ss:[ebp-184]
004464D1    .  68 A0000000 push 0A0
004464D6    .  68 4CF24000 push CE2005.0040F24C
004464DB    .  51          push ecx
004464DC    .  50          push eax
004464DD    .  FF15 601040>call dword ptr ds:[<&MSVBVM60.__vbaHresultCheckO>;  MSVBVM60.__vbaHresultCheckObj
004464E3    >  3935 40AA47>cmp dword ptr ds:[47AA40],esi
004464E9    .  75 10       jnz short CE2005.004464FB
004464EB    .  68 40AA4700 push CE2005.0047AA40
004464F0    .  68 F4E94000 push CE2005.0040E9F4
004464F5    .  FF15 941140>call dword ptr ds:[<&MSVBVM60.__vbaNew2>]        ;  MSVBVM60.__vbaNew2
004464FB    >  A1 40AA4700 mov eax,dword ptr ds:[47AA40]
00446500    .  8D4D B0     lea ecx,dword ptr ss:[ebp-50]
00446503    .  51          push ecx
00446504    .  50          push eax
00446505    .  8B10        mov edx,dword ptr ds:[eax]
00446507    .  8985 74FEFF>mov dword ptr ss:[ebp-18C],eax
0044650D    .  FF52 14     call dword ptr ds:[edx+14]
00446510    .  3BC6        cmp eax,esi
00446512    .  DBE2        fclex
00446514    .  7D 15       jge short CE2005.0044652B
00446516    .  8B95 74FEFF>mov edx,dword ptr ss:[ebp-18C]
0044651C    .  6A 14       push 14
0044651E    .  68 E4E94000 push CE2005.0040E9E4
00446523    .  52          push edx
00446524    .  50          push eax
00446525    .  FF15 601040>call dword ptr ds:[<&MSVBVM60.__vbaHresultCheckO>;  MSVBVM60.__vbaHresultCheckObj
0044652B    >  8B45 B0     mov eax,dword ptr ss:[ebp-50]
0044652E    .  8D95 94FEFF>lea edx,dword ptr ss:[ebp-16C]
00446534    .  52          push edx
00446535    .  50          push eax
00446536    .  8B08        mov ecx,dword ptr ds:[eax]
00446538    .  8985 6CFEFF>mov dword ptr ss:[ebp-194],eax
0044653E    .  FF91 B80000>call dword ptr ds:[ecx+B8]
00446544    .  3BC6        cmp eax,esi
00446546    .  DBE2        fclex
00446548    .  7D 18       jge short CE2005.00446562
0044654A    .  8B8D 6CFEFF>mov ecx,dword ptr ss:[ebp-194]
00446550    .  68 B8000000 push 0B8
00446555    .  68 20EA4000 push CE2005.0040EA20
0044655A    .  51          push ecx
0044655B    .  50          push eax
0044655C    .  FF15 601040>call dword ptr ds:[<&MSVBVM60.__vbaHresultCheckO>;  MSVBVM60.__vbaHresultCheckObj
00446562    >  3935 40AA47>cmp dword ptr ds:[47AA40],esi
00446568    .  75 10       jnz short CE2005.0044657A
0044656A    .  68 40AA4700 push CE2005.0047AA40
0044656F    .  68 F4E94000 push CE2005.0040E9F4
00446574    .  FF15 941140>call dword ptr ds:[<&MSVBVM60.__vbaNew2>]        ;  MSVBVM60.__vbaNew2
0044657A    >  A1 40AA4700 mov eax,dword ptr ds:[47AA40]
0044657F    .  8D4D AC     lea ecx,dword ptr ss:[ebp-54]
00446582    .  51          push ecx
00446583    .  50          push eax
00446584    .  8B10        mov edx,dword ptr ds:[eax]
00446586    .  8985 64FEFF>mov dword ptr ss:[ebp-19C],eax
0044658C    .  FF52 14     call dword ptr ds:[edx+14]
0044658F    .  3BC6        cmp eax,esi
00446591    .  DBE2        fclex
00446593    .  7D 15       jge short CE2005.004465AA
00446595    .  8B95 64FEFF>mov edx,dword ptr ss:[ebp-19C]
0044659B    .  6A 14       push 14
0044659D    .  68 E4E94000 push CE2005.0040E9E4
004465A2    .  52          push edx
004465A3    .  50          push eax
004465A4    .  FF15 601040>call dword ptr ds:[<&MSVBVM60.__vbaHresultCheckO>;  MSVBVM60.__vbaHresultCheckObj
004465AA    >  8B45 AC     mov eax,dword ptr ss:[ebp-54]
004465AD    .  8D95 90FEFF>lea edx,dword ptr ss:[ebp-170]
004465B3    .  52          push edx
004465B4    .  50          push eax
004465B5    .  8B08        mov ecx,dword ptr ds:[eax]
004465B7    .  8985 5CFEFF>mov dword ptr ss:[ebp-1A4],eax
004465BD    .  FF91 C00000>call dword ptr ds:[ecx+C0]
004465C3    .  3BC6        cmp eax,esi
004465C5    .  DBE2        fclex
004465C7    .  7D 18       jge short CE2005.004465E1
004465C9    .  8B8D 5CFEFF>mov ecx,dword ptr ss:[ebp-1A4]
004465CF    .  68 C0000000 push 0C0
004465D4    .  68 20EA4000 push CE2005.0040EA20
004465D9    .  51          push ecx
004465DA    .  50          push eax
004465DB    .  FF15 601040>call dword ptr ds:[<&MSVBVM60.__vbaHresultCheckO>;  MSVBVM60.__vbaHresultCheckObj
004465E1    >  3935 40AA47>cmp dword ptr ds:[47AA40],esi
004465E7    .  75 10       jnz short CE2005.004465F9
004465E9    .  68 40AA4700 push CE2005.0047AA40
004465EE    .  68 F4E94000 push CE2005.0040E9F4
004465F3    .  FF15 941140>call dword ptr ds:[<&MSVBVM60.__vbaNew2>]        ;  MSVBVM60.__vbaNew2
004465F9    >  A1 40AA4700 mov eax,dword ptr ds:[47AA40]
004465FE    .  8D4D A8     lea ecx,dword ptr ss:[ebp-58]
00446601    .  51          push ecx
00446602    .  50          push eax
00446603    .  8B10        mov edx,dword ptr ds:[eax]
00446605    .  8985 54FEFF>mov dword ptr ss:[ebp-1AC],eax
0044660B    .  FF52 14     call dword ptr ds:[edx+14]
0044660E    .  3BC6        cmp eax,esi
00446610    .  DBE2        fclex
00446612    .  7D 15       jge short CE2005.00446629
00446614    .  8B95 54FEFF>mov edx,dword ptr ss:[ebp-1AC]
0044661A    .  6A 14       push 14
0044661C    .  68 E4E94000 push CE2005.0040E9E4
00446621    .  52          push edx
00446622    .  50          push eax
00446623    .  FF15 601040>call dword ptr ds:[<&MSVBVM60.__vbaHresultCheckO>;  MSVBVM60.__vbaHresultCheckObj
00446629    >  8B45 A8     mov eax,dword ptr ss:[ebp-58]
0044662C    .  8D95 8CFEFF>lea edx,dword ptr ss:[ebp-174]
00446632    .  52          push edx
00446633    .  50          push eax
00446634    .  8B08        mov ecx,dword ptr ds:[eax]
00446636    .  8985 4CFEFF>mov dword ptr ss:[ebp-1B4],eax
0044663C    .  FF91 C80000>call dword ptr ds:[ecx+C8]
00446642    .  3BC6        cmp eax,esi
00446644    .  DBE2        fclex
00446646    .  7D 18       jge short CE2005.00446660
00446648    .  8B8D 4CFEFF>mov ecx,dword ptr ss:[ebp-1B4]
0044664E    .  68 C8000000 push 0C8
00446653    .  68 20EA4000 push CE2005.0040EA20
00446658    .  51          push ecx
00446659    .  50          push eax
0044665A    .  FF15 601040>call dword ptr ds:[<&MSVBVM60.__vbaHresultCheckO>;  MSVBVM60.__vbaHresultCheckObj
00446660    >  8B53 34     mov edx,dword ptr ds:[ebx+34]
00446663    .  8B85 94FEFF>mov eax,dword ptr ss:[ebp-16C]
00446669    .  52          push edx
0044666A    .  50          push eax
0044666B    .  FF15 0C1040>call dword ptr ds:[<&MSVBVM60.__vbaStrI2>]       ;  MSVBVM60.__vbaStrI2
00446671    .  8BD0        mov edx,eax
00446673    .  8D4D D4     lea ecx,dword ptr ss:[ebp-2C]
00446676    .  FFD7        call edi
00446678    .  8B35 541040>mov esi,dword ptr ds:[<&MSVBVM60.__vbaStrCat>]   ;  MSVBVM60.__vbaStrCat
0044667E    .  50          push eax
0044667F    .  68 34EA4000 push CE2005.0040EA34
00446684    .  FFD6        call esi                                         ;  <&MSVBVM60.__vbaStrCat>
00446686    .  8BD0        mov edx,eax
00446688    .  8D4D D0     lea ecx,dword ptr ss:[ebp-30]
0044668B    .  FFD7        call edi
0044668D    .  8B8D 90FEFF>mov ecx,dword ptr ss:[ebp-170]
00446693    .  50          push eax
00446694    .  51          push ecx
00446695    .  FF15 0C1040>call dword ptr ds:[<&MSVBVM60.__vbaStrI2>]       ;  MSVBVM60.__vbaStrI2
0044669B    .  8BD0        mov edx,eax
0044669D    .  8D4D CC     lea ecx,dword ptr ss:[ebp-34]
004466A0    .  FFD7        call edi
004466A2    .  50          push eax
004466A3    .  FFD6        call esi
004466A5    .  8BD0        mov edx,eax
004466A7    .  8D4D C8     lea ecx,dword ptr ss:[ebp-38]
004466AA    .  FFD7        call edi
004466AC    .  50          push eax
004466AD    .  68 34EA4000 push CE2005.0040EA34
004466B2    .  FFD6        call esi
004466B4    .  8BD0        mov edx,eax
004466B6    .  8D4D C4     lea ecx,dword ptr ss:[ebp-3C]
004466B9    .  FFD7        call edi
004466BB    .  8B95 8CFEFF>mov edx,dword ptr ss:[ebp-174]
004466C1    .  50          push eax
004466C2    .  52          push edx
004466C3    .  FF15 0C1040>call dword ptr ds:[<&MSVBVM60.__vbaStrI2>]       ;  MSVBVM60.__vbaStrI2
004466C9    .  8BD0        mov edx,eax
004466CB    .  8D4D C0     lea ecx,dword ptr ss:[ebp-40]
004466CE    .  FFD7        call edi
004466D0    .  50          push eax
004466D1    .  FFD6        call esi
004466D3    .  8BD0        mov edx,eax
004466D5    .  8D4D BC     lea ecx,dword ptr ss:[ebp-44]
004466D8    .  FFD7        call edi
004466DA    .  50          push eax
004466DB    .  FF15 D41040>call dword ptr ds:[<&MSVBVM60.__vbaStrCmp>]      ;  MSVBVM60.__vbaStrCmp
004466E1    .  8B4D E4     mov ecx,dword ptr ss:[ebp-1C]
004466E4    .  8BF0        mov esi,eax
004466E6    .  8B45 E8     mov eax,dword ptr ss:[ebp-18]
004466E9    .  50          push eax
004466EA    .  6A 00       push 0
004466EC    .  F7DE        neg esi
004466EE    .  6A FF       push -1
004466F0    .  6A 01       push 1
004466F2    .  1BF6        sbb esi,esi
004466F4    .  68 38F24000 push CE2005.0040F238
004466F9    .  46          inc esi
004466FA    .  68 F4FA4000 push CE2005.0040FAF4
004466FF    .  51          push ecx
00446700    .  F7DE        neg esi
00446702    .  FF15 301140>call dword ptr ds:[<&MSVBVM60.#712>]             ;  MSVBVM60.rtcReplace
00446708    .  8BD0        mov edx,eax
0044670A    .  8D4D E0     lea ecx,dword ptr ss:[ebp-20]
0044670D    .  FFD7        call edi
0044670F    .  50          push eax
00446710    .  FF15 D41040>call dword ptr ds:[<&MSVBVM60.__vbaStrCmp>]      ;  MSVBVM60.__vbaStrCmp
00446716    .  8B55 DC     mov edx,dword ptr ss:[ebp-24]
00446719    .  6A 00       push 0
0044671B    .  F7D8        neg eax
0044671D    .  1BC0        sbb eax,eax
0044671F    .  6A FF       push -1
00446721    .  40          inc eax
00446722    .  6A 01       push 1
00446724    .  68 38F24000 push CE2005.0040F238
00446729    .  68 F4FA4000 push CE2005.0040FAF4
0044672E    .  F7D8        neg eax
00446730    .  52          push edx
00446731    .  23F0        and esi,eax
00446733    .  FF15 301140>call dword ptr ds:[<&MSVBVM60.#712>]             ;  MSVBVM60.rtcReplace
00446739    .  8BD0        mov edx,eax
0044673B    .  8D4D D8     lea ecx,dword ptr ss:[ebp-28]
0044673E    .  FFD7        call edi
00446740    .  50          push eax
00446741    .  FF15 281040>call dword ptr ds:[<&MSVBVM60.__vbaLenBstr>]     ;  MSVBVM60.__vbaLenBstr
00446747    .  8B55 E8     mov edx,dword ptr ss:[ebp-18]
0044674A    .  33C9        xor ecx,ecx
0044674C    .  83F8 14     cmp eax,14
0044674F    .  52          push edx
00446750    .  0F94C1      sete cl
00446753    .  F7D9        neg ecx
00446755    .  23F1        and esi,ecx
00446757    .  FF15 281040>call dword ptr ds:[<&MSVBVM60.__vbaLenBstr>]     ;  MSVBVM60.__vbaLenBstr
0044675D    .  33C9        xor ecx,ecx
0044675F    .  83F8 14     cmp eax,14
00446762    .  0F94C1      sete cl
00446765    .  F7D9        neg ecx
00446767    .  8D55 BC     lea edx,dword ptr ss:[ebp-44]
0044676A    .  23F1        and esi,ecx
0044676C    .  8D45 C0     lea eax,dword ptr ss:[ebp-40]
0044676F    .  52          push edx
00446770    .  8D4D C4     lea ecx,dword ptr ss:[ebp-3C]
00446773    .  50          push eax
00446774    .  8D55 C8     lea edx,dword ptr ss:[ebp-38]
00446777    .  51          push ecx
00446778    .  8D45 CC     lea eax,dword ptr ss:[ebp-34]
0044677B    .  52          push edx
0044677C    .  8D4D D0     lea ecx,dword ptr ss:[ebp-30]
0044677F    .  50          push eax
00446780    .  8D55 D4     lea edx,dword ptr ss:[ebp-2C]
00446783    .  51          push ecx
00446784    .  8D45 D8     lea eax,dword ptr ss:[ebp-28]
00446787    .  52          push edx
00446788    .  8D4D DC     lea ecx,dword ptr ss:[ebp-24]
0044678B    .  50          push eax
0044678C    .  8D55 E0     lea edx,dword ptr ss:[ebp-20]
0044678F    .  51          push ecx
00446790    .  8D45 E4     lea eax,dword ptr ss:[ebp-1C]
00446793    .  52          push edx
00446794    .  50          push eax
00446795    .  6A 0B       push 0B
00446797    .  FF15 B41140>call dword ptr ds:[<&MSVBVM60.__vbaFreeStrList>] ;  MSVBVM60.__vbaFreeStrList
0044679D    .  8D4D A8     lea ecx,dword ptr ss:[ebp-58]
004467A0    .  8D55 AC     lea edx,dword ptr ss:[ebp-54]
004467A3    .  51          push ecx
004467A4    .  8D45 B0     lea eax,dword ptr ss:[ebp-50]
004467A7    .  52          push edx
004467A8    .  8D4D B4     lea ecx,dword ptr ss:[ebp-4C]
004467AB    .  50          push eax
004467AC    .  8D55 B8     lea edx,dword ptr ss:[ebp-48]
004467AF    .  51          push ecx
004467B0    .  52          push edx
004467B1    .  6A 05       push 5
004467B3    .  FF15 401040>call dword ptr ds:[<&MSVBVM60.__vbaFreeObjList>] ;  MSVBVM60.__vbaFreeObjList
004467B9    .  83C4 48     add esp,48
004467BC    .  66:85F6     test si,si
004467BF    .  0F84 9A0200>je CE2005.00446A5F

从这个地方向上找到的。

0044643A    .  8B3D 0C1240>mov edi,dword ptr ds:[<&MSVBVM60.__vbaStrMove>]  ;  MSVBVM60.__vbaStrMove    这个就是截取它注册码的关键地方,我们在此下断点,运行程序。
    立即中断,在堆栈的地方显示出:

0012E0F8    6A37A931  MSVBVM60.6A37A931
0012E0FC    0828393C  UNICODE "7HGEO-ADXG9-YWHOE-O7LO1"看见了吗?这个就是它的注册码了,简单吧?
0012E100    0022CB24  UNICODE "7HGEOADXG9YWHOEO7LO1"
0012E104    0040F238  CE2005.0040F238
0012E108    00000000
0012E10C    7FFFFFFF
0012E110    00000804
0012E114    00000000
0012E118    0012E328
0012E11C    00000000
0012E120    08282AC0
0012E124    0012E31C
0012E128    0044643A  CE2005.0044643A
0012E12C    0828393C  UNICODE "7HGEO-ADXG9-YWHOE-O7LO1"
0012E130    0040FAF4  CE2005.0040FAF4
0012E134    0040F238  CE2005.0040F238
0012E138    00000001
0012E13C    FFFFFFFF
0012E140    00000000
0012E144    0012E328

好了,程序到此就可以收工了。

菜鸟处女作,请高手指点,先行谢过了
2005年05月04日五月黄金礼品

     QQ:305839588
              381574788
eamil:hxppl@sina.com
            hxp@bn163.net

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 442
活跃值: (1246)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
2
引用:
-------------------------------------------------
   拿出ollydbg 11.09,加载程序,等它自动分析完之后,按ALT+E打开可执行模块,找到MSVBVM60.DLL,双击它,到了这个模块里面,再按Ctrl+N显示出这个模块里面的函数名称,输入rtcmsgbox这个函数,双击它。按F2下断点。按F9执行程序,填试验码后点注册,程序就被断下来了
-------------------------------------------------

不是我咬文嚼字,ollydbg 11.09还是有很大吸引力的
2005-5-5 13:11
0
雪    币: 110
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2005-5-5 16:28
0
雪    币: 108
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
QQ号码真多啊
2005-5-5 17:03
0
雪    币: 186
活跃值: (99)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我看作者前面一大堆*话,不知道该说些什么……
1。VB真的都是那么好破?恐怕未必,我用Vb写个Crackme,作者就不一定能解开
2。考虑到加壳的情况了吗?
3。VB属于编译和解释参半的语言,用W32静态分析当然没有效果,但是对于C++,DELPHI,有时却有很好的效果

我觉得作者怎么没有完全必要这样写,我随便举个软件,均匀设计,VB,UPX加壳,可以写出注册机,但是恐怕这个软件CRC就够作者头痛了
2005-5-5 18:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
对于一个菜鸟来说是不知道天高地厚的,请大家原谅哟!其实我也是一知半解的,对crack不懂的。想找个老师学习一下,不知有没有人愿意做我的老师呀?
2005-5-5 20:27
0
雪    币: 296
活跃值: (265)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
7
明码比较的,突出你的重点即可,不必要贴上一大堆代码
2005-5-5 20:40
0
游客
登录 | 注册 方可回帖
返回