首页
社区
课程
招聘
Mr.Captor V2.3 破解分析
发表于: 2004-5-7 14:29 6362

Mr.Captor V2.3 破解分析

David 活跃值
20
2004-5-7 14:29
6362
【破文标题】 Mr.Captor V2.3 破解分析  

【破文作者】 weiyi75[Dfcg]

【作者邮箱】 [email]weiyi75@sohu.com[/email]

【作者主页】 Dfcg官方大本营 ---   www.chinadfcg.com

【使用工具】 peid,w32dasm,olldbg,keymake

【破解平台】 Win2000

【软件名称】 Mr.Captor V2.3

【下载地址】 本地下载

【软件简介】 Mr.Captor 是一个非常好用的屏幕截图程序!他除了一般抓图工具具有的功能之外,还可以进行屏幕录像,并可以将结果保存为BMP, PCX, GIF, JPEG, PNG, TIFF, TGA, CUR, ICO, AVI等多种格式!他还支持滚动截图,现在可以抓下整个网页了。右图即为Mr.Captor所捕捉。

【软件大小】 1.42M

【破解目的】 学习olldbg动态跟踪程序,寻找注册码。这里没有研究软件算法,其实现在我还不懂算法。

【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)

------------------------------------------------------------
      

【详细过程】  

这个软件是我写爱的中体验之Armadillo3.x双进程之Mr.Captor V2.7 的脱壳文章找不到目标软件,在百度引擎里面搜索无意中找到的,由于感觉汉化精美,虽然版本很旧,试了一下功能还可以,不忍删除。汉化使用说明已经有注册码,但二哥有个习惯,不喜欢用别人的注册机和非自己姓名的固定注册码,除非自己没有破解能力时。今天就看了一下这个程序,黑名单校验,明码注册方式。

几天前装的,今天想在看看。启动就过期,直接弹出注册画面。后悔平时没有练习CrackMe,可我要用它,又不想用别人的注册码,只好自己动手了。

先观察一下注册方式和漏洞提示,什么也没有输或输入错误信息,确定注册弹出漏洞提示注册码错误,其它的没什么破绽。

关闭程序,Peid查程序为Microsoft Visual C++ 6.0 [Overlay],今天来个实时校验注册跟踪。

OD载入程序,F9运行。

命令行下断点

bp GetWindowTextA       //当然它优先考虑

用户输入

Mr.David

注册码输入

88888888

F9运行中断两处后取消断点,Ctrl+F9执行到程序领空,取消断点。

第一次中断取用户名,第二次中断取注册码,然后返回程序领空,GetWindowTextA只负责获取文本框中的内容,比较注册码真伪可不是它的事情。

中断1

77DFCF80 >  55              PUSH EBP
77DFCF81    8BEC            MOV EBP,ESP
77DFCF83    6A FF           PUSH -1
77DFCF85    68 10D0DF77     PUSH USER32.77DFD010
77DFCF8A    68 4716E477     PUSH USER32.77E41647
77DFCF8F    64:A1 00000000  MOV EAX,DWORD PTR FS:[0]
77DFCF95    50              PUSH EAX
77DFCF96    64:8925 0000000>MOV DWORD PTR FS:[0],ESP
77DFCF9D    51              PUSH ECX
77DFCF9E    51              PUSH ECX
77DFCF9F    51              PUSH ECX
77DFCFA0    53              PUSH EBX
77DFCFA1    56              PUSH ESI
77DFCFA2    57              PUSH EDI
77DFCFA3    8965 E8         MOV DWORD PTR SS:[EBP-18],ESP
77DFCFA6    8B7D 0C         MOV EDI,DWORD PTR SS:[EBP+C]
77DFCFA9    85FF            TEST EDI,EDI
77DFCFAB    0F84 19DE0100   JE USER32.77E1ADCA

中断2

77DFCF80 >  55              PUSH EBP  //双击取消断点。
77DFCF81    8BEC            MOV EBP,ESP
77DFCF83    6A FF           PUSH -1
77DFCF85    68 10D0DF77     PUSH USER32.77DFD010
77DFCF8A    68 4716E477     PUSH USER32.77E41647
77DFCF8F    64:A1 00000000  MOV EAX,DWORD PTR FS:[0]
77DFCF95    50              PUSH EAX
77DFCF96    64:8925 0000000>MOV DWORD PTR FS:[0],ESP
77DFCF9D    51              PUSH ECX
77DFCF9E    51              PUSH ECX
77DFCF9F    51              PUSH ECX
77DFCFA0    53              PUSH EBX
77DFCFA1    56              PUSH ESI
77DFCFA2    57              PUSH EDI
77DFCFA3    8965 E8         MOV DWORD PTR SS:[EBP-18],ESP
77DFCFA6    8B7D 0C         MOV EDI,DWORD PTR SS:[EBP+C]
77DFCFA9    85FF            TEST EDI,EDI
77DFCFAB    0F84 19DE0100   JE USER32.77E1ADCA

Ctrl+F9 返回
77DFD001    C2 0C00         RETN 0C  //F8步过

00464AC4  |.  FF15 DC064800 CALL DWORD PTR DS:[<&USER32.GetWindowTex>; \GetWindowTextA
00464ACA  |.  8B4D 10       MOV ECX,DWORD PTR SS:[EBP+10] //返回到这里,好啦,下面F8慢慢步过每个代码,遇到Call时先看旁边有没有跳转,没有时无需跟进去,注意各个寄存器的值和堆栈内容,及信息框提示。虽然我们爆破者不分析算法,但动态跟踪的火眼精睛术决不会输与算法分析的人,同样要判断动脑筋。
00464ACD  |.  6A FF         PUSH -1
00464ACF  |.  E8 6748FFFF   CALL MrCaptor.0045933B
00464AD4  |.  EB 0B         JMP SHORT MrCaptor.00464AE1

00464AE1  |> \5F            POP EDI                                  ;  0012FEDC
00464AE2  |.  5E            POP ESI
00464AE3  |.  5D            POP EBP
00464AE4  \.  C2 0C00       RETN 0C

004361D0   .  6A 28         PUSH 28
004361D2   .  57            PUSH EDI
004361D3   .  56            PUSH ESI
004361D4   .  E8 B2EA0200   CALL MrCaptor.00464C8B
004361D9   .  5F            POP EDI
004361DA   .  5E            POP ESI
004361DB   .  5B            POP EBX
004361DC   .  C2 0400       RETN 4

0045C002   .  C745 08 01000>MOV DWORD PTR SS:[EBP+8],1
0045C009   .  EB 27         JMP SHORT MrCaptor.0045C032

0045C032   > \8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
0045C035   .  8B4D F4       MOV ECX,DWORD PTR SS:[EBP-C]
0045C038   .  8987 B8000000 MOV DWORD PTR DS:[EDI+B8],EAX
0045C03E   .  8B45 08       MOV EAX,DWORD PTR SS:[EBP+8]
0045C041   .  5F            POP EDI
0045C042   .  5E            POP ESI
0045C043   .  64:890D 00000>MOV DWORD PTR FS:[0],ECX
0045C04A   .  5B            POP EBX
0045C04B   .  C9            LEAVE
0045C04C   .  C2 0400       RETN 4

004361FC   .  8D5E 5C       LEA EBX,DWORD PTR DS:[ESI+5C]
004361FF   .  8D6E 60       LEA EBP,DWORD PTR DS:[ESI+60]
00436202   .  53            PUSH EBX
00436203   .  55            PUSH EBP
00436204   .  E8 37F0FFFF   CALL MrCaptor.00435240  //这个一看就是关键Call,写注册机就要F7跟进去
00436209   .  83C4 08       ADD ESP,8
0043620C   .  85C0          TEST EAX,EAX
0043620E   .  74 36         JE SHORT MrCaptor.00436246  //爆破点,从这里开始分界,不跳走即可注册成功。爆过一些程序后发现,有些共享软件作者喜欢偷懒,实时比较和启动时校验注册码真伪喜欢用一个公共Call,那我们看看这个程序是不是也是一样的,转标签1
00436210   .  57            PUSH EDI
00436211   .  E8 32AC0300   CALL MrCaptor.00470E48
00436216   .  8B78 04       MOV EDI,DWORD PTR DS:[EAX+4]
00436219   .  55            PUSH EBP
0043621A   .  8D8F 64020000 LEA ECX,DWORD PTR DS:[EDI+264]
00436220   .  E8 112E0200   CALL MrCaptor.00459036
00436225   .  53            PUSH EBX
00436226   .  8D8F 68020000 LEA ECX,DWORD PTR DS:[EDI+268]
0043622C   .  E8 052E0200   CALL MrCaptor.00459036
00436231   .  8BCF          MOV ECX,EDI
00436233   .  E8 B821FFFF   CALL MrCaptor.004283F0
00436238   .  6A 01         PUSH 1
0043623A   .  8BCE          MOV ECX,ESI
0043623C   .  E8 17820200   CALL MrCaptor.0045E458
00436241   .  5F            POP EDI
00436242   .  5E            POP ESI
00436243   .  5D            POP EBP
00436244   .  5B            POP EBX
00436245   .  C3            RETN
00436246   >  68 73E70000   PUSH 0E773
0043624B   .  E8 E09EFDFF   CALL MrCaptor.00410130
00436250   .  83C4 04       ADD ESP,4
00436253   .  5E            POP ESI
00436254   .  5D            POP EBP
00436255   .  5B            POP EBX
00436256   .  C3            RETN
.............................................................

标签1

* Referenced by a CALL at Addresses:
|:00428D96   , :00436204   //00436204是实时比较Call,那00428D96肯定就是启动比较Call了,去哪里看看。转标签2
|
:00435240 6AFF                    push FFFFFFFF
:00435242 6818D14700              push 0047D118
:00435247 64A100000000            mov eax, dword ptr fs:[00000000]
:0043524D 50                      push eax
:0043524E 64892500000000          mov dword ptr fs:[00000000], esp
:00435255 51                      push ecx
:00435256 A110D24900              mov eax, dword ptr [0049D210]
:0043525B 53                      push ebx
:0043525C 56                      push esi
:0043525D 57                      push edi
:0043525E 8944240C                mov dword ptr [esp+0C], eax
:00435262 8B542420                mov edx, dword ptr [esp+20]
:00435266 8D4C240C                lea ecx, dword ptr [esp+0C]
:0043526A 51                      push ecx
:0043526B 52                      push edx
:0043526C C744242000000000        mov [esp+20], 00000000
:00435274 E877FEFFFF              call 004350F0
:00435279 8B7C242C                mov edi, dword ptr [esp+2C]
:0043527D 83C408                  add esp, 00000008

* Possible Indirect StringData Ref from Data Obj ->"Mz9CSkwtGy4CBgwjETNufkMBHxEX"  //这个可不是注册码,是黑名单,后来知道的。
                                  |
:00435280 BE5CCC4900              mov esi, 0049CC5C
........................................................................

标签2

:00428D96 E8A5C40000              call 00435240
:00428D9B 83C408                  add esp, 00000008
:00428D9E 85C0                    test eax, eax
:00428DA0 754B                    jne 00428DED  //爆破点,我们修改为je 00428DED后,程序爆破了,看关于注册给?,抓图时也没有没注册的标记,但感觉不爽。

* Possible StringData Ref from Data Obj ->"?"
                                  |
:00428DA2 684CC54900              push 0049C54C
:00428DA7 8BCB                    mov ecx, ebx
:00428DA9 E8D8020300              call 00459086

* Possible StringData Ref from Data Obj ->"?"
                                  |
:00428DAE 684CC54900              push 0049C54C
:00428DB3 8BCF                    mov ecx, edi
:00428DB5 E8CC020300              call 00459086
:00428DBA 8D86A8020000            lea eax, dword ptr [esi+000002A8]
:00428DC0 8D8EA4020000            lea ecx, dword ptr [esi+000002A4]
:00428DC6 50                      push eax
:00428DC7 51                      push ecx
:00428DC8 E863BC0000              call 00434A30
:00428DCD 8BE8                    mov ebp, eax
:00428DCF 83C408                  add esp, 00000008
:00428DD2 83FD04                  cmp ebp, 00000004
:00428DD5 7740                    ja 00428E17
.....................................................................

为了写出注册机,我们用OD动态跟踪

00436204   .  E8 37F0FFFF   CALL MrCaptor.00435240  //这个一看就是关键Call,写注册机就要F7跟进去

00435240  /$  6A FF         PUSH -1
00435242  |.  68 18D14700   PUSH MrCaptor.0047D118                   ;  SE handler installation
00435247  |.  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
0043524D  |.  50            PUSH EAX
0043524E  |.  64:8925 00000>MOV DWORD PTR FS:[0],ESP
00435255  |.  51            PUSH ECX
00435256  |.  A1 10D24900   MOV EAX,DWORD PTR DS:[49D210]
0043525B  |.  53            PUSH EBX
0043525C  |.  56            PUSH ESI
0043525D  |.  57            PUSH EDI
0043525E  |.  894424 0C     MOV DWORD PTR SS:[ESP+C],EAX
00435262  |.  8B5424 20     MOV EDX,DWORD PTR SS:[ESP+20]
00435266  |.  8D4C24 0C     LEA ECX,DWORD PTR SS:[ESP+C]
0043526A  |.  51            PUSH ECX
0043526B  |.  52            PUSH EDX
0043526C  |.  C74424 20 000>MOV DWORD PTR SS:[ESP+20],0
00435274  |.  E8 77FEFFFF   CALL MrCaptor.004350F0 //我们跟踪时多次发现"PYH"字符,不清楚是什么意思。
00435279  |.  8B7C24 2C     MOV EDI,DWORD PTR SS:[ESP+2C]  //这句过后,我们在堆栈里看到

堆栈内容

0012F970   0012F980
0012F974   0012FE7C  ASCII "PYH"
0012F978   0012FE7C  ASCII "PYH"
0012F97C   0012FED8
0012F980   009C7208  ASCII "LCgNYEQ2Ez4OdCEdGCJQJkNTEQsN"  //注册码?不忙,写注册机一般位于Call xxxxx 地址处,尽量取寄存器地址,内存地址也可以,先看看流程。

0043527D  |.  83C4 08       ADD ESP,8
00435280  |.  BE 5CCC4900   MOV ESI,MrCaptor.0049CC5C
00435285  |>  8B06          /MOV EAX,DWORD PTR DS:[ESI]
00435287  |.  8D4C24 20     |LEA ECX,DWORD PTR SS:[ESP+20]
0043528B  |.  50            |PUSH EAX
0043528C  |.  E8 DA3C0200   |CALL MrCaptor.00458F6B    //这句过后看到寄存器EAX出现注册码?

EAX  Mz9CSkwtGy4CBgwjETNufkMBHxEX  将这个注册码填入程序中

程序告诉你,这个注册码已经列入黑名单。

继续往下看吧。

00435291  |.  8B0F          |MOV ECX,DWORD PTR DS:[EDI]  ECX=88888888 //假码
00435293  |.  8B00          |MOV EAX,DWORD PTR DS:[EAX]  EAX=Mz9CSkwtGy4CBgwjETNufkMBHxEX //黑名单
00435295  |.  51            |PUSH ECX                                ; /Arg2
00435296  |.  50            |PUSH EAX                                ; |Arg1
00435297  |.  E8 B2970000   |CALL MrCaptor.0043EA4E  //到这里,我们就可以写内存注册机了。

呵呵,在00435297下断点,F9运行不断中断看看有多少黑名单上的人,转标签3

此时堆栈内容

0012F96C   009C7258  |Arg1 = 009C7258 ASCII "Mz9CSkwtGy4CBgwjETNufkMBHxEX"  //黑名单
0012F970   009C72A8  \Arg2 = 009C72A8 ASCII "99999999"   //假注册码
0012F974   0012FE7C  ASCII "PYH"
0012F978   0012FE7C  ASCII "PYH"
0012F97C   0012FED8
0012F980   009C7208  ASCII "LCgNYEQ2Ez4OdCEdGCJQJkNTEQsN"   //真注册码

0043529C  |.  83C4 08       |ADD ESP,8
0043529F  |.  8D4C24 20     |LEA ECX,DWORD PTR SS:[ESP+20]
004352A3  |.  85C0          |TEST EAX,EAX
004352A5  |.  0F94C3        |SETE BL
004352A8  |.  E8 503C0200   |CALL MrCaptor.00458EFD
004352AD  |.  84DB          |TEST BL,BL
.................................................................

标签3

四个黑名单上的人

0012F96C   009C7258  |Arg1 = 009C7258 ASCII "Mz9CSkwtGy4CBgwjETNufkMBHxEX"

0012F96C   009C7258  |Arg1 = 009C7258 ASCII "MipMSkIlWg8GdDEdGihFflMBHRsC"

0012F96C   009C7258  |Arg1 = 009C7258 ASCII "Nz9TQVcnHzQJJisHEiNBJ0gRGR4H"

0012F96C   009C7258  |Arg1 = 009C7258 ASCII "MipKQEASWnUsFR0sNyJQJkNTEQsN"

真注册码始终不变

0012F980   009C7208  ASCII "LCgNYEQ2Ez4OdCEdGCJQJkNTEQsN"

既然注册码已经得到,就不继续分析了,写内存注册机吧。

【破解小结】

爆破程序

0043620E   .  74 36         JE SHORT MrCaptor.00436246
         
               改为

0043620E   .  75 36         JNE SHORT MrCaptor.00436246

00428DA0      754B          jne 00428DED  

               改为

00428DA0      744B          je 00428DED  

内存注册机

中断地址: 436204

第一字节 E8

指令长度 5

继续添加数据

中断地址: 435297

中断次数: 1

第一字节: E8

指令长度: 5

内存地址

9C7208   //这个地址最关键,存放真注册码

又测试了一下,发现这样做的注册机无法跨平台。

回想一下这里

00435274  |.  E8 77FEFFFF   CALL MrCaptor.004350F0 //我们跟踪时多次发现"PYH"字符,不清楚是什么意思。
00435279  |.  8B7C24 2C     MOV EDI,DWORD PTR SS:[ESP+2C]  //这句过后,我们在堆栈里看到

堆栈内容

0012F970   0012F980
0012F974   0012FE7C  ASCII "PYH"
0012F978   0012FE7C  ASCII "PYH"
0012F97C   0012FED8
0012F980   009C7208  ASCII "LCgNYEQ2Ez4OdCEdGCJQJkNTEQsN"  //注册码?不忙,写注册机一般位于Call xxxxx 地址处,尽量取寄存器地址,内存地址也可以,先看看流程。

于是我们F7跟进 CALL MrCaptor.004350F0

004350F0  /$  6A FF         PUSH -1
004350F2  |.  68 F8D04700   PUSH MrCaptor.0047D0F8                   ;  SE handler installation
004350F7  |.  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
004350FD  |.  50            PUSH EAX
004350FE  |.  64:8925 00000>MOV DWORD PTR FS:[0],ESP
00435105  |.  83EC 78       SUB ESP,78
00435108  |.  56            PUSH ESI
00435109  |.  57            PUSH EDI
0043510A  |.  B9 08000000   MOV ECX,8
0043510F  |.  BE 64CD4900   MOV ESI,MrCaptor.0049CD64                ;  ASCII "blgsprv crjhc srhbvxc dryhbcgyh"
00435114  |.  8D7C24 3C     LEA EDI,DWORD PTR SS:[ESP+3C]
00435118  |.  33C0          XOR EAX,EAX
0043511A  |.  F3:A5         REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
0043511C  |.  B9 08000000   MOV ECX,8
00435121  |.  BE 40CD4900   MOV ESI,MrCaptor.0049CD40                ;  ASCII "aZ#$%@zZmTRop@&^ suytre uyui &^%$"
00435126  |.  8D7C24 5C     LEA EDI,DWORD PTR SS:[ESP+5C]
0043512A  |.  894424 08     MOV DWORD PTR SS:[ESP+8],EAX
0043512E  |.  F3:A5         REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
00435130  |.  8B8C24 900000>MOV ECX,DWORD PTR SS:[ESP+90]
00435137  |.  894424 0C     MOV DWORD PTR SS:[ESP+C],EAX
0043513B  |.  894424 10     MOV DWORD PTR SS:[ESP+10],EAX
0043513F  |.  894424 14     MOV DWORD PTR SS:[ESP+14],EAX
00435143  |.  894424 18     MOV DWORD PTR SS:[ESP+18],EAX
00435147  |.  66:894424 1C  MOV WORD PTR SS:[ESP+1C],AX
0043514C  |.  8B01          MOV EAX,DWORD PTR DS:[ECX]
0043514E  |.  66:A5         MOVS WORD PTR ES:[EDI],WORD PTR DS:[ESI]
00435150  |.  8B48 F8       MOV ECX,DWORD PTR DS:[EAX-8]
00435153  |.  83F9 15       CMP ECX,15
00435156  |.  72 05         JB SHORT MrCaptor.0043515D
00435158  |.  B9 15000000   MOV ECX,15
0043515D  |>  51            PUSH ECX
0043515E  |.  8D5424 0C     LEA EDX,DWORD PTR SS:[ESP+C]
00435162  |.  50            PUSH EAX
00435163  |.  52            PUSH EDX
00435164  |.  E8 A7A40000   CALL MrCaptor.0043F610
00435169  |.  8D7C24 48     LEA EDI,DWORD PTR SS:[ESP+48]
0043516D  |.  83C9 FF       OR ECX,FFFFFFFF
00435170  |.  33C0          XOR EAX,EAX
00435172  |.  83C4 0C       ADD ESP,0C
00435175  |.  F2:AE         REPNE SCAS BYTE PTR ES:[EDI]
00435177  |.  F7D1          NOT ECX
00435179  |.  49            DEC ECX
0043517A  |.  8D7C24 08     LEA EDI,DWORD PTR SS:[ESP+8]
0043517E  |.  8BF1          MOV ESI,ECX
00435180  |.  83C9 FF       OR ECX,FFFFFFFF
00435183  |.  F2:AE         REPNE SCAS BYTE PTR ES:[EDI]
00435185  |.  F7D1          NOT ECX
00435187  |.  49            DEC ECX
00435188  |.  33D2          XOR EDX,EDX
0043518A  |.  85C9          TEST ECX,ECX
0043518C  |.  7E 0C         JLE SHORT MrCaptor.0043519A
0043518E  |>  0FBE7C14 08   /MOVSX EDI,BYTE PTR SS:[ESP+EDX+8]
00435193  |.  03C7          |ADD EAX,EDI
00435195  |.  42            |INC EDX
00435196  |.  3BD1          |CMP EDX,ECX
00435198  |.^ 7C F4         \JL SHORT MrCaptor.0043518E
0043519A  |>  33D2          XOR EDX,EDX
0043519C  |.  F7F6          DIV ESI
0043519E  |.  83F9 15       CMP ECX,15
004351A1  |.  8D4414 3C     LEA EAX,DWORD PTR SS:[ESP+EDX+3C]
004351A5  |.  73 1D         JNB SHORT MrCaptor.004351C4
004351A7  |>  8BD0          /MOV EDX,EAX
004351A9  |.  8D7C24 3C     |LEA EDI,DWORD PTR SS:[ESP+3C]
004351AD  |.  2BD7          |SUB EDX,EDI
004351AF  |.  3BD6          |CMP EDX,ESI
004351B1  |.  7C 04         |JL SHORT MrCaptor.004351B7
004351B3  |.  8D4424 3C     |LEA EAX,DWORD PTR SS:[ESP+3C]
004351B7  |>  8A10          |MOV DL,BYTE PTR DS:[EAX]
004351B9  |.  40            |INC EAX
004351BA  |.  88540C 08     |MOV BYTE PTR SS:[ESP+ECX+8],DL
004351BE  |.  41            |INC ECX
004351BF  |.  83F9 15       |CMP ECX,15
004351C2  |.^ 72 E3         \JB SHORT MrCaptor.004351A7
004351C4  |>  8D4424 5C     LEA EAX,DWORD PTR SS:[ESP+5C]
004351C8  |.  8D4C24 08     LEA ECX,DWORD PTR SS:[ESP+8]
004351CC  |.  50            PUSH EAX
004351CD  |.  51            PUSH ECX
004351CE  |.  E8 EDFBFFFF   CALL MrCaptor.00434DC0
004351D3  |.  83C4 08       ADD ESP,8
004351D6  |.  8D4C24 20     LEA ECX,DWORD PTR SS:[ESP+20]
004351DA  |.  E8 E1C3FCFF   CALL MrCaptor.004015C0
004351DF  |.  8D5424 08     LEA EDX,DWORD PTR SS:[ESP+8]
004351E3  |.  8D4C24 20     LEA ECX,DWORD PTR SS:[ESP+20]
004351E7  |.  52            PUSH EDX
004351E8  |.  C78424 8C0000>MOV DWORD PTR SS:[ESP+8C],0
004351F3  |.  E8 88C6FCFF   CALL MrCaptor.00401880
004351F8  |.  8D4C24 20     LEA ECX,DWORD PTR SS:[ESP+20]
004351FC  |.  E8 3FC4FCFF   CALL MrCaptor.00401640
00435201  |.  8B8C24 940000>MOV ECX,DWORD PTR SS:[ESP+94]
00435208  |.  50            PUSH EAX       //经过上面一大堆复杂算法得出
EAX=LCgNYEQ2Ez4OdCEdGCJQJkNTEQsN  

呵呵,谢了

00435209  |.  E8 783E0200   CALL MrCaptor.00459086
..........................................................

于是修正

内存注册机

中断地址: 436204

第一字节 E8

指令长度 5

继续添加数据

中断地址: 435209

中断次数: 1

第一字节: E8

指令长度: 5

内存方式

寄存器 EAX

有改进才会有进步。

再狡猾的狐狸也逃不过猎人的眼睛。

请看胜利截图,就是用Mr.Captor截取的。



--------------------------------------------------------------------------------

【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 6
支持
分享
最新回复 (2)
雪    币: 690
活跃值: (1826)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
2
破的真痛快。
2004-5-7 14:51
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
3
最初由 daxia200N 发布
破的真痛快。


:D 是啊,比算什么的爽多了。
2004-5-7 14:53
0
游客
登录 | 注册 方可回帖
返回
//