首页
社区
课程
招聘
求助!!!Ollydbg下什么断点??
发表于: 2004-9-8 09:18 6769

求助!!!Ollydbg下什么断点??

2004-9-8 09:18
6769
Ollydbg下什么断点才能断下一个重启验证注册码的软件???

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不知道是不是这个呢?

注册表常用中断
RegQueryvalueA
RegQueryvalueExA
2004-9-8 09:48
0
雪    币: 201
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
不行我试了!!
2004-9-8 10:08
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
【转贴】关于重启时验证的软件一般方法

【破解作者】 clide2000[DFCG][OCN]
【使用工具】 OD1.10;C32Asm
【破解平台】 win2000
【软件名称】 Exe Password
【下载地址】 http://www.salfeld.com/prg/exepw04.exe
【软件简介】 一个可以给EXE文件加密码的工具
【软件大小】 1.15M
【加壳方式】 无壳
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】

一个偶然机会看到了这个软件,发现她是一个标准的重启验证类的程序,很适合初学者做练习。
我先来说说,重启验证类软件大致的验证过程。
1、运行软件输入注册信息,点注册后。一般软件会提示你重新运行软件,以便验证注册信息的正确性(如FlashGet);
也有的只在你输入正确的注册信息时才有这个提示,不然会告诉你输入的注册信息有问题(此软件就属这类)

2、要破解这种软件,首先是判断一下她把注册信息存在哪里(因为她重启验证时要用)。大致有两种存放方式,第一种是放在注册表里;第二种是放在文件里。(我们可以在输入注册信息,点击确定前,利用监视类软件来查看一下,如FileMon和RegShot等)

3、知道她的注册信息的存放地点后,就可以选则相应的API断点,来调试了

访问注册表类常用API
RegOpenKeyA  打开一个现有的注册表项
RegOpenKeyExA  打开一个现有的注册表项
RegCreateKeyA 在指定的项下创建或打开一个项
RegCreateKeyExA 在指定项下创建新项的更复杂的方式
RegDeleteKeyA 删除现有项下方一个指定的子项
RegDeleteValueA 删除指定项下方的一个值
RegQueryValueA 获取一个项的设置值
RegQueryValueExA 获取一个项的设置值
RegSetValueA 设置指定项或子项的值  
RegSetValueExA 设置指定项的值
RegCloseKey 关闭系统注册表中的一个项(或键)

访问文件类常用API
CreateFileA 打开和创建文件、管道、邮槽、通信服务、设备以及控制台  
OpenFile 这个函数能执行大量不同的文件操作
ReadFile 从文件中读出数据  
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调

好了,下面我们开工。
第一步,让软件保存我们输入的注册信息,并判断出其保存位置
1、首先用PEID检查,无壳。
2、运行软件,输入注册信息,用户名:clide 注册码:12345678

   结果出现“Please enter a name with at least 6 characters!"的错误提示,意思是说用户名须大于6位。好,用C32Asm载入此程序,在字符串信息里找到关于"Please enter a name with at least 6 characters!"这个的调用
结果如下:
Please enter a name with at least 6 characters!
        ::005511D2->MOV EAX,551508
3、下面我们关闭软件,并用OD载入,然后Ctrl+G,输入上面的调用地址5511D2,回车,来到5511D2一行,并向上看看,找到跳转处,注意加****的这行

00551196   .  E8 B933EBFF   CALL ExePW.00404554
0055119B   .  83F8 06       CMP EAX,6                      *******这里判断输入的用户名的倍数是否大于6
0055119E   .  7F 4F         JG SHORT ExePW.005511EF        诺大于,这里会跳。(上次输入clide时,这里就没跳)
005511A0   .  833D CC775600>CMP DWORD PTR DS:[5677CC],0
005511A7   .  75 15         JNZ SHORT ExePW.005511BE
005511A9   .  6A 00         PUSH 0                                   ; /Arg1 = 00000000
005511AB   .  66:8B0D 80135>MOV CX,WORD PTR DS:[551380]              ; |
005511B2   .  33D2          XOR EDX,EDX                              ; |
005511B4   .  B8 CC145500   MOV EAX,ExePW.005514CC                   ; |ASCII "Geben Sie mindestens einen 6-stelligen Namen ein !"
005511B9   .  E8 964AEEFF   CALL ExePW.00435C54                      ; \ExePW.00435C54
005511BE   >  833D CC775600>CMP DWORD PTR DS:[5677CC],1
005511C5   .  75 15         JNZ SHORT ExePW.005511DC
005511C7   .  6A 00         PUSH 0                                   ; /Arg1 = 00000000
005511C9   .  66:8B0D 80135>MOV CX,WORD PTR DS:[551380]              ; |
005511D0   .  33D2          XOR EDX,EDX                              ; |
005511D2   .  B8 08155500   MOV EAX,ExePW.00551508                   ; |ASCII "Please enter a name with at least 6 characters!"
005511D7   .  E8 784AEEFF   CALL ExePW.00435C54                      ; \ExePW.00435C54
005511DC   >  8B83 6C030000 MOV EAX,DWORD PTR DS:[EBX+36C]
005511E2   .  8B10          MOV EDX,DWORD PTR DS:[EAX]
005511E4   .  FF92 C4000000 CALL DWORD PTR DS:[EDX+C4]
005511EA   .  E9 68010000   JMP ExePW.00551357
005511EF   >  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]      
005511F2   .  8B83 70030000 MOV EAX,DWORD PTR DS:[EBX+370]
005511F8   .  E8 1BB1EFFF   CALL ExePW.0044C318

好,这次我们直接在0055119E  JG SHORT ExePW.005511EF这句目标地址下断,在005511EF这行按F2下断,然后F9运行软件

这次我们输入信息时,用户名:clide2000 注册码:12345678  输入完毕后,点击注册按钮
会中断在005511EF,此时,我们用F8一步步走下去,会发现0055121A JE ExePW.0055130D这句会跳转,而且是直接跳向的出错窗口

005511EF   > \8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]
005511F2   .  8B83 70030000 MOV EAX,DWORD PTR DS:[EBX+370]
005511F8   .  E8 1BB1EFFF   CALL ExePW.0044C318
005511FD   .  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
00551200   .  50            PUSH EAX
00551201   .  8D55 F0       LEA EDX,DWORD PTR SS:[EBP-10]
00551204   .  8B83 6C030000 MOV EAX,DWORD PTR DS:[EBX+36C]
0055120A   .  E8 09B1EFFF   CALL ExePW.0044C318
0055120F   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
00551212   .  5A            POP EDX
00551213   .  E8 8CA9FFFF   CALL ExePW.0054BBA4
00551218   .  84C0          TEST AL,AL
0055121A   .  0F84 ED000000 JE ExePW.0055130D
00551220   .  33C0          XOR EAX,EAX
00551222   .  55            PUSH EBP
00551223   .  68 EF125500   PUSH ExePW.005512EF
00551228   .  64:FF30       PUSH DWORD PTR FS:[EAX]
0055122B   .  64:8920       MOV DWORD PTR FS:[EAX],ESP
0055122E   .  B2 01         MOV DL,1
00551230   .  A1 9CB44300   MOV EAX,DWORD PTR DS:[43B49C]
00551235   .  E8 62A3EEFF   CALL ExePW.0043B59C
0055123A   .  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
0055123D   .  BA 02000080   MOV EDX,80000002
00551242   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00551245   .  E8 2EA4EEFF   CALL ExePW.0043B678
0055124A   .  B1 01         MOV CL,1
0055124C   .  BA 40155500   MOV EDX,ExePW.00551540         ;  ASCII "Software\Salfeld\Exelock"
00551251   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00551254   .  E8 87A4EEFF   CALL ExePW.0043B6E0
00551259   .  8D55 EC       LEA EDX,DWORD PTR SS:[EBP-14]
0055125C   .  8B83 6C030000 MOV EAX,DWORD PTR DS:[EBX+36C]
00551262   .  E8 B1B0EFFF   CALL ExePW.0044C318
00551267   .  8B4D EC       MOV ECX,DWORD PTR SS:[EBP-14]
0055126A   .  BA 64155500   MOV EDX,ExePW.00551564         ;  ASCII "User"
0055126F   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00551272   .  E8 9DA9EEFF   CALL ExePW.0043BC14
00551277   .  8D55 E8       LEA EDX,DWORD PTR SS:[EBP-18]
0055127A   .  8B83 70030000 MOV EAX,DWORD PTR DS:[EBX+370]
00551280   .  E8 93B0EFFF   CALL ExePW.0044C318
00551285   .  8B4D E8       MOV ECX,DWORD PTR SS:[EBP-18]
00551288   .  BA 74155500   MOV EDX,ExePW.00551574         ;  ASCII "ID"
0055128D   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00551290   .  E8 7FA9EEFF   CALL ExePW.0043BC14
00551295   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00551298   .  E8 6722EBFF   CALL ExePW.00403504
0055129D   .  833D CC775600>CMP DWORD PTR DS:[5677CC],0
005512A4   .  75 15         JNZ SHORT ExePW.005512BB
005512A6   .  6A 00         PUSH 0                         ; /Arg1 = 00000000
005512A8   .  66:8B0D 80135>MOV CX,WORD PTR DS:[551380]    ; |
005512AF   .  B2 02         MOV DL,2                       ; |
005512B1   .  B8 80155500   MOV EAX,ExePW.00551580         ; |ASCII "Programm wurde erfolgreich in Vollversion verwandelt.
Bitte Programm neu starten."
005512B6   .  E8 9949EEFF   CALL ExePW.00435C54            ; \ExePW.00435C54
005512BB   >  833D CC775600>CMP DWORD PTR DS:[5677CC],1
005512C2   .  75 15         JNZ SHORT ExePW.005512D9
005512C4   .  6A 00         PUSH 0                         ; /Arg1 = 00000000
005512C6   .  66:8B0D 80135>MOV CX,WORD PTR DS:[551380]    ; |
005512CD   .  B2 02         MOV DL,2                       ; |
005512CF   .  B8 DC155500   MOV EAX,ExePW.005515DC         ; |ASCII "Programm was successfully registered.
Please restart this program now."
005512D4   .  E8 7B49EEFF   CALL ExePW.00435C54            ; \ExePW.00435C54
005512D9   >  A1 D4375600   MOV EAX,DWORD PTR DS:[5637D4]
005512DE   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
005512E0   .  E8 F7AEF1FF   CALL ExePW.0046C1DC
005512E5   .  33C0          XOR EAX,EAX
005512E7   .  5A            POP EDX
005512E8   .  59            POP ECX
005512E9   .  59            POP ECX
005512EA   .  64:8910       MOV DWORD PTR FS:[EAX],EDX
005512ED   .  EB 68         JMP SHORT ExePW.00551357
005512EF   .^ E9 F026EBFF   JMP ExePW.004039E4
005512F4   .  B8 2C165500   MOV EAX,ExePW.0055162C         ;  ASCII "Error writing licence information to registry.
Please contact developer: [email]support@salfeld.com[/email]"
005512F9   .  E8 4E4AEEFF   CALL ExePW.00435D4C
005512FE   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00551301   .  E8 FE21EBFF   CALL ExePW.00403504
00551306   .  E8 412AEBFF   CALL ExePW.00403D4C
0055130B   .  EB 4A         JMP SHORT ExePW.00551357
0055130D   >  833D CC775600>CMP DWORD PTR DS:[5677CC],0
00551314   .  75 15         JNZ SHORT ExePW.0055132B
00551316   .  6A 00         PUSH 0                         ; /Arg1 = 00000000
00551318   .  66:8B0D 80135>MOV CX,WORD PTR DS:[551380]    ; |
0055131F   .  33D2          XOR EDX,EDX                    ; |
00551321   .  B8 94165500   MOV EAX,ExePW.00551694         ; |ASCII "Die eingegebene Seriennummer ist falsch."
00551326   .  E8 2949EEFF   CALL ExePW.00435C54            ; \ExePW.00435C54
0055132B   >  833D CC775600>CMP DWORD PTR DS:[5677CC],1
00551332   .  75 15         JNZ SHORT ExePW.00551349
00551334   .  6A 00         PUSH 0                         ; /Arg1 = 00000000
00551336   .  66:8B0D 80135>MOV CX,WORD PTR DS:[551380]    ; |
0055133D   .  33D2          XOR EDX,EDX                    ; |
0055133F   .  B8 C8165500   MOV EAX,ExePW.005516C8         ; |ASCII "Sorry, wrong serial number."
00551344   .  E8 0B49EEFF   CALL ExePW.00435C54            ; \ExePW.00435C54
00551349   >  8B83 6C030000 MOV EAX,DWORD PTR DS:[EBX+36C]
0055134F   .  8B10          MOV EDX,DWORD PTR DS:[EAX]
00551351   .  FF92 C4000000 CALL DWORD PTR DS:[EDX+C4]
00551357   >  33C0          XOR EAX,EAX
00551359   .  5A            POP EDX
0055135A   .  59            POP ECX
0055135B   .  59            POP ECX
0055135C   .  64:8910       MOV DWORD PTR FS:[EAX],EDX
0055135F   .  68 79135500   PUSH ExePW.00551379
00551364   >  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]
00551367   .  BA 05000000   MOV EDX,5
0055136C   .  E8 472FEBFF   CALL ExePW.004042B8
00551371   .  C3            RETN

好,现在我们在软件的错误提示窗口Sorry, wrong serial number.里点击OK后。再次点击注册按钮,以便再次中断在005511EF
这次,当我们走到0055121A JE ExePW.0055130D,把它nop掉,不让她跳转(在这行上按空格,直接在新窗口里输入NOP即可)。
然后,我们F8继续往下走.

当我们看到下面的提示后,可以断定她已经把我们输入的注册信息放进注册表了(所以也省去用监视工具的麻烦了)

;  ASCII "Software\Salfeld\Exelock"
;  ASCII "User"
;  ASCII "ID"

而执行到|ASCII "Programm was successfully registered.
Please restart this program now."这里时,程序提示我们要重新运行,当我们在软件介面点OK后,反回到OD中,直接按F9,程序已自动退出了。

第二步,根据上面分析得到的结果,确定API断点
好了,既然我们已经知道软件把注册信息放在注册表里,那我们就用RegOpenKeyExA  打开一个现有的注册表项 来试试吧。
具体操作:
1、Ctrl+F2使OD重新加载该软件
2、在命令行下bp RegOpenKeyExA,并回车(注册字母的大小)
3、F9运行,此时注意观察堆栈的提示,以确定在什么时候读取保存的注册信息了
   当按下F9后,第一次中断时堆栈的内容如下:

0012F8E8   00405E03  /CALL to RegOpenKeyExA from ExePW.00405DFE
0012F8EC   80000001  |hKey = HKEY_CURRENT_USER
0012F8F0   00405FF4  |Subkey = "Software\Borland\Locales" ;看这里,这里要访问的路径
0012F8F4   00000000  |Reserved = 0
0012F8F8   000F0019  |Access = KEY_QUERY_VALUE|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY|F0000
0012F8FC   0012FA20  \pHandle = 0012FA20

4、我们继续一下一下的按F9,当Sukey="Software\Salfeld\Exelock"时停下(因为此时离读取注册信息已不远了)

即看到堆栈出现下面的内容时,就要停止按F9了
0012F17C   0043B875  /CALL to RegOpenKeyExA from ExePW.0043B870
0012F180   80000002  |hKey = HKEY_LOCAL_MACHINE
0012F184   0054D9E4  |Subkey = "Software\Salfeld\Exelock"
0012F188   00000000  |Reserved = 0
0012F18C   00020019  |Access = KEY_READ
0012F190   0012F1AC  \pHandle = 0012F1AC

5、现在我们在命令行里下BC RegOpenKeyExA来清除断点,然后Ctrl+f9返回到(需要返回到程序的领空):
0043B875  |.  85C0          TEST EAX,EAX
0043B877  |.  0F9445 FF     SETE BYTE PTR SS:[EBP-1]
0043B87B  |.  807D FF 00    CMP BYTE PTR SS:[EBP-1],0
0043B87F  |.  74 3C         JE SHORT ExePW.0043B8BD
0043B881  |.  C746 18 19000>MOV DWORD PTR DS:[ESI+18],2001>
0043B888  |.  837E 04 00    CMP DWORD PTR DS:[ESI+4],0
0043B88C  |.  0F95C0        SETNE AL

6、再次Ctrl+f9,这次返回到:
0043B9A5   .  8A45 FF       MOV AL,BYTE PTR SS:[EBP-1]
0043B9A8   .  5E            POP ESI
0043B9A9   .  5B            POP EBX
0043B9AA   .  8BE5          MOV ESP,EBP
0043B9AC   .  5D            POP EBP
0043B9AD   .  C3            RETN
7、当再次Ctrl+f9时,会返回到0054D19B这一行:
0054D18E   .  BA E4D95400   MOV EDX,ExePW.0054D9E4         ;  ASCII "Software\Salfeld\Exelock"
0054D193   .  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
0054D196   .  E8 69E6EEFF   CALL ExePW.0043B804
0054D19B   .  8D4D E4       LEA ECX,DWORD PTR SS:[EBP-1C]
0054D19E   .  BA 08DA5400   MOV EDX,ExePW.0054DA08         ;  ASCII "User"
0054D1A3   .  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
0054D1A6   .  E8 95EAEEFF   CALL ExePW.0043BC40
0054D1AB   .  8D4D E0       LEA ECX,DWORD PTR SS:[EBP-20]
0054D1AE   .  BA 18DA5400   MOV EDX,ExePW.0054DA18         ;  ASCII "ID"
0054D1B3   .  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
0054D1B6   .  E8 85EAEEFF   CALL ExePW.0043BC40

8、现在开始我们要仔细分析了(但到底按多少次Ctrl+f9才能返回程序领空,这个我就说不太清楚了,我自己觉昨只能靠经难了。记得原来用SoftIce时,有当前所处的进程的提示可以参考,但在OD里我没找到。诺有其它方法,希望多多指教)
   
让我们来仔细看看加#############的部分吧
0054D19B   .  8D4D E4       LEA ECX,DWORD PTR SS:[EBP-1C]
0054D19E   .  BA 08DA5400   MOV EDX,ExePW.0054DA08         ;  ASCII "User"
0054D1A3   .  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
0054D1A6   .  E8 95EAEEFF   CALL ExePW.0043BC40
0054D1AB   .  8D4D E0       LEA ECX,DWORD PTR SS:[EBP-20]
0054D1AE   .  BA 18DA5400   MOV EDX,ExePW.0054DA18         ;  ASCII "ID"
0054D1B3   .  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
0054D1B6   .  E8 85EAEEFF   CALL ExePW.0043BC40
0054D1BB   .  8B55 E0       MOV EDX,DWORD PTR SS:[EBP-20]
0054D1BE   .  B8 DC775600   MOV EAX,ExePW.005677DC
0054D1C3   .  E8 2071EBFF   CALL ExePW.004042E8
0054D1C8   .  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
0054D1CB   .  E8 3463EBFF   CALL ExePW.00403504
0054D1D0   .  33C0          XOR EAX,EAX
0054D1D2   .  5A            POP EDX
0054D1D3   .  59            POP ECX
0054D1D4   .  59            POP ECX
0054D1D5   .  64:8910       MOV DWORD PTR FS:[EAX],EDX
0054D1D8   .  EB 12         JMP SHORT ExePW.0054D1EC
0054D1DA   .^ E9 0568EBFF   JMP ExePW.004039E4
0054D1DF   .  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
0054D1E2   .  E8 1D63EBFF   CALL ExePW.00403504
0054D1E7   .  E8 606BEBFF   CALL ExePW.00403D4C
0054D1EC   >  E8 EB600000   CALL ExePW.005532DC
0054D1F1   .  3C 01         CMP AL,1
0054D1F3   .  75 68         JNZ SHORT ExePW.0054D25D
0054D1F5   .  833D CC775600>CMP DWORD PTR DS:[5677CC],0
0054D1FC   .  75 28         JNZ SHORT ExePW.0054D226
0054D1FE   .  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]    ################################
0054D201   .  BA 24DA5400   MOV EDX,ExePW.0054DA24         ;  ASCII "Unregistrierte Testversion"
0054D206   .  E8 2171EBFF   CALL ExePW.0040432C
0054D20B   .  8D45 DC       LEA EAX,DWORD PTR SS:[EBP-24]
0054D20E   .  8B4D EC       MOV ECX,DWORD PTR SS:[EBP-14]
0054D211   .  BA 48DA5400   MOV EDX,ExePW.0054DA48         ;  ASCII "EXE Passwort / "
0054D216   .  E8 8573EBFF   CALL ExePW.004045A0
0054D21B   .  8B55 DC       MOV EDX,DWORD PTR SS:[EBP-24]
0054D21E   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0054D221   .  E8 22F1EFFF   CALL ExePW.0044C348
0054D226   >  833D CC775600>CMP DWORD PTR DS:[5677CC],1
0054D22D   .  0F85 A6000000 JNZ ExePW.0054D2D9
0054D233   .  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]    ##############################
0054D236   .  BA 60DA5400   MOV EDX,ExePW.0054DA60         ;  ASCII "Unregistered Trial Version"
0054D23B   .  E8 EC70EBFF   CALL ExePW.0040432C
0054D240   .  8D45 D8       LEA EAX,DWORD PTR SS:[EBP-28]
0054D243   .  8B4D EC       MOV ECX,DWORD PTR SS:[EBP-14]
0054D246   .  BA 84DA5400   MOV EDX,ExePW.0054DA84         ;  ASCII "EXE Password / "
0054D24B   .  E8 5073EBFF   CALL ExePW.004045A0
0054D250   .  8B55 D8       MOV EDX,DWORD PTR SS:[EBP-28]

  
我们从加################的ASCII提示部分可以猜测到,这部分是在软件未注册时才会执行到的地方,为验证我们的猜测是正确的,可在程序执行到0054D1F3 JNZ SHORT ExePW.0054D25D时使其强行跳转看看
结果如我们所料,软件启动已经显示是注册版了。

--------------------------------------------------------------------------------
【破解总结】
爆破修改:
方法一:
0055121A  JE ExePW.0055130D                 改成 NOP
0054D1F3 JNZ SHORT ExePW.0054D25D           改成 JMP
做上面两处修改后就可以了
其实,只要把0054D1F3 JNZ 改成JMP就已经是注册版了,但问题是诺此时注册表里没有注册信息。软件里也不有用户名的。
诺想要用任意注册名都可以注册,需要跟进0054D1EC   >  E8 EB600000   CALL ExePW.005532DC
在里面,你会看到一个很熟悉的跳转:
00553357   .  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]
0055335A   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
0055335D   .  E8 4288FFFF   CALL ExePW.0054BBA4
00553362   .  84C0          TEST AL,AL
00553364   .  74 15         JE SHORT ExePW.0055337B   ; 就是这里
00553366   .  C645 FF 00    MOV BYTE PTR SS:[EBP-1],0

方法二:
0055121A  JE ExePW.0055130D                 改成 NOP
00553364  JE SHORT ExePW.0055337B           改成 NOP
这样就可以在注册时输入任意用户名和密码注册了(但记得用户名位数要大于6位啊,这里没我们可没有改过)

关于重启时验证的软件,主要是确定注册信息的保存位置,然后再确定对就的API断点调试就可以了
2004-9-8 10:18
0
游客
登录 | 注册 方可回帖
返回
//