首页
社区
课程
招聘
[原创][网络验证破解]某外挂验证转本地化
发表于: 2007-3-28 16:06 247659

[原创][网络验证破解]某外挂验证转本地化

2007-3-28 16:06
247659

【文章标题】: [网络验证破解]某外挂验证转本地化
【文章作者】: KuNgBiM
【作者邮箱】: kungbim@163.com
【作者主页】: http://www.crkcn.com
【软件名称】: 惊天伴侣2.2.5会员增强版(2007年3月26日更新)
【软件大小】: 1.71 MB
【下载地址】: 自己搜索下载
【加壳方式】: ASProtect 2.1x SKE
【保护方式】: 网络验证
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: OllyICE
【操作平台】: 盗版非标准XPsp2
【软件介绍】: 大型网游惊天动地辅助工具,俗称“外挂”。
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  由于该程序加的壳为标准的ASProtect 2.1x SKE,并未偷代码,所以为了方便起见,脱之分析。。。
  
  脱壳后,OllyICE载入分析,由于程序关键字符处理的比较好,字符插件就不起作用了。
  我们还是利用常用的办法“API函数断点”来调试它吧。
  
  命令下断:bpx closesocket
  
  F9运行,输入用户名后点击“登陆”断下:
  
  00418E79   .  6A 10                     push    10                                 ;  外挂网络验证开始
  00418E7B   .  8D85 60FEFFFF             lea     eax, dword ptr [ebp-1A0]           ;  计算游戏ID长度
  00418E81   .  50                        push    eax
  00418E82   .  6A 60                     push    60
  00418E84   .  8D8D 74FFFFFF             lea     ecx, dword ptr [ebp-8C]
  00418E8A   .  51                        push    ecx
  00418E8B   .  8D95 74FFFFFF             lea     edx, dword ptr [ebp-8C]
  00418E91   .  52                        push    edx
  00418E92   .  E8 B9320100               call    0042C150                           ;  判断外挂是否已经处于通信状态
  00418E97   .  83C4 18                   add     esp, 18
  00418E9A   .  833D 9C826500 00          cmp     dword ptr [65829C], 0
  00418EA1   .  74 16                     je      short 00418EB9                     ;  还未通信则跳(不管)
  00418EA3   .  A1 9C826500               mov     eax, dword ptr [65829C]
  00418EA8   .  50                        push    eax                                ; /Socket => 384
  00418EA9   .  FF15 E4A54600             call    dword ptr [<&ws2_32.closesocket>]  ; \closesocket
  00418EAF   .  C705 9C826500 00000000    mov     dword ptr [65829C], 0
  00418EB9   >  833D 9C826500 00          cmp     dword ptr [65829C], 0
  00418EC0   .  75 11                     jnz     short 00418ED3                     ;  还未通信则准备获取验证服务器地址
  00418EC2   .  6A 00                     push    0                                  ; /Protocol = IPPROTO_IP
  00418EC4   .  6A 01                     push    1                                  ; |Type = SOCK_STREAM
  00418EC6   .  6A 02                     push    2                                  ; |Family = AF_INET
  00418EC8   .  FF15 E0A54600             call    dword ptr [<&ws2_32.socket>]       ; \socket
  00418ECE   .  A3 9C826500               mov     dword ptr [65829C], eax
  00418ED3   >  66:C785 18FAFFFF 0200     mov     word ptr [ebp-5E8], 2
  00418EDC   .  68 AC836500               push    006583AC                           ; /ASCII "203.174.87.234"
  00418EE1   .  FF15 DCA54600             call    dword ptr [<&ws2_32.inet_addr>]    ; \inet_addr
  00418EE7   .  8985 1CFAFFFF             mov     dword ptr [ebp-5E4], eax
  00418EED   .  66:8B0D 38105D00          mov     cx, word ptr [5D1038]
  00418EF4   .  51                        push    ecx                                ; /NetShort
  00418EF5   .  FF15 E8A54600             call    dword ptr [<&ws2_32.htons>]        ; \ntohs
  00418EFB   .  66:8985 1AFAFFFF          mov     word ptr [ebp-5E6], ax
  00418F02   .  6A 10                     push    10                                 ; /AddrLen = 10 (16.)
  00418F04   .  8D95 18FAFFFF             lea     edx, dword ptr [ebp-5E8]           ; |
  00418F0A   .  52                        push    edx                                ; |pSockAddr
  00418F0B   .  A1 9C826500               mov     eax, dword ptr [65829C]            ; |
  00418F10   .  50                        push    eax                                ; |Socket => 384
  00418F11   .  FF15 D0A54600             call    dword ptr [<&ws2_32.connect>]      ; \connect
  00418F17   .  8985 58FEFFFF             mov     dword ptr [ebp-1A8], eax           ;  获取服务器数据
  00418F1D   .  83BD 58FEFFFF FF          cmp     dword ptr [ebp-1A8], -1            ;  返回值是否大于等于FFFFFFFF
                                                                                     ;  是则挂(通信不正常)
  00418F24      75 14                     jnz     short 00418F3A                     ;  ★所以这里必须跳!改为JMP★
  00418F26   .  C705 3C105D00 0D000000    mov     dword ptr [5D103C], 0D
  00418F30   .  E8 EB180100               call    0042A820
  00418F35   .  E9 5C0A0000               jmp     00419996
  00418F3A   >  6A 00                     push    0                                  ; /Flags = 0
  00418F3C   .  6A 60                     push    60                                 ; |DataSize = 60 (96.)
  00418F3E   .  8D8D 74FFFFFF             lea     ecx, dword ptr [ebp-8C]            ; |
  00418F44   .  51                        push    ecx                                ; |Data
  00418F45   .  8B15 9C826500             mov     edx, dword ptr [65829C]            ; |
  00418F4B   .  52                        push    edx                                ; |Socket => 384
  00418F4C   .  FF15 D8A54600             call    dword ptr [<&ws2_32.send>]         ; \send
  00418F52   .  8985 58FEFFFF             mov     dword ptr [ebp-1A8], eax           ;  再次获取服务器数据
  00418F58   .  83BD 58FEFFFF 60          cmp     dword ptr [ebp-1A8], 60            ;  返回值是否小于等于96
                                                                                     ;  是则挂(数据包不正确)
  00418F5F      74 05                     je      short 00418F66                     ;  ★所以这里必须跳!改为JMP★
  00418F61   .  E9 300A0000               jmp     00419996
  00418F66   >  6A 00                     push    0                                  ; /Flags = 0
  00418F68   .  6A 60                     push    60                                 ; |BufSize = 60 (96.)
  00418F6A   .  8D85 74FFFFFF             lea     eax, dword ptr [ebp-8C]            ; |
  00418F70   .  50                        push    eax                                ; |Buffer
  00418F71   .  8B0D 9C826500             mov     ecx, dword ptr [65829C]            ; |
  00418F77   .  51                        push    ecx                                ; |Socket => 384
  00418F78   .  FF15 D4A54600             call    dword ptr [<&ws2_32.recv>]         ; \recv
  00418F7E   .  8985 58FEFFFF             mov     dword ptr [ebp-1A8], eax           ;  再次获取服务器数据
  00418F84   .  83BD 58FEFFFF 00          cmp     dword ptr [ebp-1A8], 0             ;  返回值是否大于等于0
                                                                                     ;  是则挂(数据包不正确)
  00418F8B      75 05                     jnz     short 00418F92                     ;  ★则里可改可不改,保险起见改为JMP★
  00418F8D   .  E9 040A0000               jmp     00419996
  00418F92   >  8B15 9C826500             mov     edx, dword ptr [65829C]            ;  服务器通信结束
  00418F98   .  52                        push    edx                                ; /Socket => 384
  00418F99   .  FF15 E4A54600             call    dword ptr [<&ws2_32.closesocket>]  ; \closesocket
  00418F9F   .  6A 01                     push    1
  00418FA1   .  6A 10                     push    10
  00418FA3   .  8D85 48FEFFFF             lea     eax, dword ptr [ebp-1B8]
  00418FA9   .  50                        push    eax
  00418FAA   .  6A 60                     push    60
  00418FAC   .  8D8D 74FFFFFF             lea     ecx, dword ptr [ebp-8C]
  00418FB2   .  51                        push    ecx
  00418FB3   .  8D95 74FFFFFF             lea     edx, dword ptr [ebp-8C]
  00418FB9   .  52                        push    edx
  00418FBA   .  E8 91310100               call    0042C150                           ;  判断服务器是否有数据返回
  00418FBF   .  83C4 18                   add     esp, 18
  00418FC2   .  75 04                     jnz     short 00418FC8                     ;  有数据返回则跳!(必须跳)
  00418FC4   .  74 02                     je      short 00418FC8
  00418FC6      9A                        db      9A
  00418FC7      E8                        db      E8
  00418FC8   >  83BD 74FFFFFF 09          cmp     dword ptr [ebp-8C], 9              ;  检测外挂程序版本是否有更新
  00418FCF   .  0F85 A7000000             jnz     0041907C                           ;  大于等于则跳
                                                                                     ;  (为了不让它自动更新,改为JMP)
  00418FD5   .  6A 00                     push    0
  00418FD7   .  68 502E4800               push    00482E50
  00418FDC   .  68 082E4800               push    00482E08
  00418FE1   .  8B8D 98F9FFFF             mov     ecx, dword ptr [ebp-668]
  00418FE7   .  E8 CCF40300               call    004584B8
  00418FEC   .  B9 11000000               mov     ecx, 11
  00418FF1   .  33C0                      xor     eax, eax
  00418FF3   .  8DBD C0F9FFFF             lea     edi, dword ptr [ebp-640]
  00418FF9   .  F3:AB                     rep     stos dword ptr es:[edi]
  00418FFB   .  C785 C0F9FFFF 44000000    mov     dword ptr [ebp-640], 44
  00419005   .  33C0                      xor     eax, eax
  00419007   .  8985 04FAFFFF             mov     dword ptr [ebp-5FC], eax
  0041900D   .  8985 08FAFFFF             mov     dword ptr [ebp-5F8], eax
  00419013   .  8985 0CFAFFFF             mov     dword ptr [ebp-5F4], eax
  00419019   .  8985 10FAFFFF             mov     dword ptr [ebp-5F0], eax
  0041901F   .  8D8D 04FAFFFF             lea     ecx, dword ptr [ebp-5FC]
  00419025   .  51                        push    ecx                                ; /pProcessInfo
  00419026   .  8D95 C0F9FFFF             lea     edx, dword ptr [ebp-640]           ; |
  0041902C   .  52                        push    edx                                ; |pStartupInfo
  0041902D   .  6A 00                     push    0                                  ; |CurrentDir = NULL
  0041902F   .  6A 00                     push    0                                  ; |pEnvironment = NULL
  00419031   .  6A 00                     push    0                                  ; |CreationFlags = 0
  00419033   .  6A 00                     push    0                                  ; |InheritHandles = FALSE
  00419035   .  6A 00                     push    0                                  ; |pThreadSecurity = NULL
  00419037   .  6A 00                     push    0                                  ; |pProcessSecurity = NULL
  00419039   .  68 E42D4800               push    00482DE4                           ; |CommandLine = "explorer
  http://www.jtlover.net/"
  0041903E   .  6A 00                     push    0                                  ; |ModuleFileName = NULL
  00419040   .  FF15 34A24600             call    dword ptr [<&kernel32.CreateProces>; \CreateProcessA
  00419046   .  85C0                      test    eax, eax
  00419048   .  75 07                     jnz     short 00419051
  0041904A   .  6A 00                     push    0
  0041904C   .  E8 87C30100               call    004353D8
  00419051   >  8B85 04FAFFFF             mov     eax, dword ptr [ebp-5FC]
  00419057   .  50                        push    eax                                ; /hObject
  00419058   .  FF15 44A24600             call    dword ptr [<&kernel32.CloseHandle>>; \CloseHandle
  0041905E   .  8B8D 08FAFFFF             mov     ecx, dword ptr [ebp-5F8]
  00419064   .  51                        push    ecx                                ; /hObject
  00419065   .  FF15 44A24600             call    dword ptr [<&kernel32.CloseHandle>>; \CloseHandle
  0041906B   .  8B95 74FFFFFF             mov     edx, dword ptr [ebp-8C]
  00419071   .  8915 3C105D00             mov     dword ptr [5D103C], edx
  00419077   .  E9 1A090000               jmp     00419996
  0041907C   >  75 04                     jnz     short 00419082
  0041907E   .  74 02                     je      short 00419082
  00419080      9A                        db      9A
  00419081      E8                        db      E8
  00419082   >  83BD 74FFFFFF 00          cmp     dword ptr [ebp-8C], 0              ;  检测验证数据最后结果是否小于等于0
                                                                                     ;  是则正确!
  00419089   .  74 15                     je      short 004190A0                     ;  ★所以这里必须跳!改为JMP★
  0041908B   .  8B85 74FFFFFF             mov     eax, dword ptr [ebp-8C]
  00419091   .  A3 3C105D00               mov     dword ptr [5D103C], eax
  00419096   .  E8 85170100               call    0042A820
  0041909B   .  E9 F6080000               jmp     00419996
  004190A0   >  8B4D CC                   mov     ecx, dword ptr [ebp-34]            ;  从这里就开始控制程序窗口、配置文件了
  004190A3   .  890D C0836500             mov     dword ptr [6583C0], ecx
  004190A9   .  C705 3C105D00 58000000    mov     dword ptr [5D103C], 58
  004190B3   .  68 F4030000               push    3F4
  004190B8   .  8B8D 98F9FFFF             mov     ecx, dword ptr [ebp-668]
  004190BE   .  E8 25050400               call    004595E8
  004190C3   .  8985 5CFEFFFF             mov     dword ptr [ebp-1A4], eax
  004190C9   .  6A 00                     push    0
  004190CB   .  8B8D 5CFEFFFF             mov     ecx, dword ptr [ebp-1A4]
  004190D1   .  E8 3E080400               call    00459914
  004190D6   .  51                        push    ecx
  004190D7   .  8BCC                      mov     ecx, esp
  004190D9   .  89A5 ACF9FFFF             mov     dword ptr [ebp-654], esp
  004190DF   .  68 DC2D4800               push    00482DDC                           ;  ASCII "TIP2"
  004190E4   .  E8 8BD50300               call    00456674
  004190E9   .  8985 94F9FFFF             mov     dword ptr [ebp-66C], eax
  004190EF   .  8B95 94F9FFFF             mov     edx, dword ptr [ebp-66C]
  004190F5   .  8995 90F9FFFF             mov     dword ptr [ebp-670], edx
  004190FB   .  C745 FC 00000000          mov     dword ptr [ebp-4], 0
  00419102   .  51                        push    ecx
  00419103   .  8BCC                      mov     ecx, esp
  00419105   .  89A5 A8F9FFFF             mov     dword ptr [ebp-658], esp
  0041910B   .  68 D42D4800               push    00482DD4                           ;  ASCII "Dialog1"
  00419110   .  E8 5FD50300               call    00456674
  00419115   .  8985 8CF9FFFF             mov     dword ptr [ebp-674], eax           ; |
  0041911B   .  8D85 A4F9FFFF             lea     eax, dword ptr [ebp-65C]           ; |
  00419121   .  50                        push    eax                                ; |Arg1
  00419122   .  B9 04156500               mov     ecx, 00651504                      ; |
  00419127   .  C745 FC FFFFFFFF          mov     dword ptr [ebp-4], -1              ; |
  0041912E   .  E8 DD610000               call    0041F310                           ; \jtbl.0041F310
  00419133   .  8985 88F9FFFF             mov     dword ptr [ebp-678], eax
  00419139   .  8B8D 88F9FFFF             mov     ecx, dword ptr [ebp-678]
  0041913F   .  898D A0F9FFFF             mov     dword ptr [ebp-660], ecx
  00419145   .  C745 FC 01000000          mov     dword ptr [ebp-4], 1
  0041914C   .  8B95 A0F9FFFF             mov     edx, dword ptr [ebp-660]
  00419152   .  8B02                      mov     eax, dword ptr [edx]
  00419154   .  8985 9CF9FFFF             mov     dword ptr [ebp-664], eax
  0041915A   .  8B8D 9CF9FFFF             mov     ecx, dword ptr [ebp-664]
  00419160   .  51                        push    ecx
  00419161   .  68 B5040000               push    4B5
  00419166   .  B9 C87A6500               mov     ecx, 00657AC8
  0041916B   .  E8 69050400               call    004596D9
  00419170   .  C745 FC FFFFFFFF          mov     dword ptr [ebp-4], -1
  00419177   .  8D8D A4F9FFFF             lea     ecx, dword ptr [ebp-65C]
  0041917D   .  E8 84D40300               call    00456606
  00419182   .  68 0000FF00               push    0FF0000
  00419187   .  B9 E8806500               mov     ecx, 006580E8
  0041918C   .  E8 FF4F0000               call    0041E190
  00419191   .  C645 D8 00                mov     byte ptr [ebp-28], 0
  00419195   .  C645 D9 00                mov     byte ptr [ebp-27], 0
  00419199   .  33D2                      xor     edx, edx
  0041919B   .  8955 DA                   mov     dword ptr [ebp-26], edx
  0041919E   .  8955 DE                   mov     dword ptr [ebp-22], edx
  004191A1   .  8955 E2                   mov     dword ptr [ebp-1E], edx
  004191A4   .  8955 E6                   mov     dword ptr [ebp-1A], edx
  004191A7   .  8955 EA                   mov     dword ptr [ebp-16], edx
  004191AA   .  66:8955 EE                mov     word ptr [ebp-12], dx
  004191AE   .  8855 F0                   mov     byte ptr [ebp-10], dl
  004191B1   .  6A 18                     push    18                                 ; /Arg3 = 00000018
  004191B3   .  8D45 D8                   lea     eax, dword ptr [ebp-28]            ; |
  004191B6   .  50                        push    eax                                ; |Arg2
  004191B7   .  68 05040000               push    405                                ; |Arg1 = 00000405
  004191BC   .  8B8D 98F9FFFF             mov     ecx, dword ptr [ebp-668]           ; |
  004191C2   .  E8 AB040400               call    00459672                           ; \jtbl.00459672
  004191C7   .  68 382D4800               push    00482D38                           ; /FileName = ".\Setting\config.ini"
  004191CC   .  8D4D D8                   lea     ecx, dword ptr [ebp-28]            ; |
  004191CF   .  51                        push    ecx                                ; |String
  004191D0   .  68 182D4800               push    00482D18                           ; |Key = "Account"
  004191D5   .  68 282D4800               push    00482D28                           ; |Section = "Config"
  004191DA   .  FF15 48A24600             call    dword ptr [<&kernel32.WritePrivate>; \WritePrivateProfileStringA
  004191E0   .  C685 70FEFFFF 00          mov     byte ptr [ebp-190], 0
  004191E7   .  C685 71FEFFFF 00          mov     byte ptr [ebp-18F], 0
  004191EE   .  B9 40000000               mov     ecx, 40
  004191F3   .  33C0                      xor     eax, eax
  004191F5   .  8DBD 72FEFFFF             lea     edi, dword ptr [ebp-18E]
  004191FB   .  F3:AB                     rep     stos dword ptr es:[edi]
  004191FD   .  66:AB                     stos    word ptr es:[edi]
  004191FF   .  C745 D4 00000000          mov     dword ptr [ebp-2C], 0
  00419206   .  68 04010000               push    104                                ; /BufSize = 104 (260.)
  0041920B   .  8D95 70FEFFFF             lea     edx, dword ptr [ebp-190]           ; |
  00419211   .  52                        push    edx                                ; |PathBuffer
  00419212   .  6A 00                     push    0                                  ; |hModule = NULL
  00419214   .  FF15 ECA14600             call    dword ptr [<&kernel32.GetModuleFil>; \GetModuleFileNameA
  0041921A   .  8DBD 70FEFFFF             lea     edi, dword ptr [ebp-190]
  00419220   .  83C9 FF                   or      ecx, FFFFFFFF
  00419223   .  33C0                      xor     eax, eax
  00419225   .  F2:AE                     repne   scas byte ptr es:[edi]
  00419227   .  F7D1                      not     ecx
  00419229   .  83C1 FE                   add     ecx, -2
  0041922C   .  894D D4                   mov     dword ptr [ebp-2C], ecx
  0041922F   >  8B45 D4                   mov     eax, dword ptr [ebp-2C]
  00419232   .  0FBE8C05 70FEFFFF         movsx   ecx, byte ptr [ebp+eax-190]
  0041923A   .  83F9 5C                   cmp     ecx, 5C
  0041923D   .  74 16                     je      short 00419255
  0041923F   .  8B55 D4                   mov     edx, dword ptr [ebp-2C]
  00419242   .  C68415 70FEFFFF 00        mov     byte ptr [ebp+edx-190], 0
  0041924A   .  8B45 D4                   mov     eax, dword ptr [ebp-2C]
  0041924D   .  83E8 01                   sub     eax, 1
  00419250   .  8945 D4                   mov     dword ptr [ebp-2C], eax
  00419253   .^ EB DA                     jmp     short 0041922F
  00419255   >  8D7D D8                   lea     edi, dword ptr [ebp-28]            ;  获取用户名(准备计算试用时间验证)
  00419258   .  8B15 787D5F00             mov     edx, dword ptr [5F7D78]            ;  kudrtgov.10213000
  0041925E   .  83C9 FF                   or      ecx, FFFFFFFF
  00419261   .  33C0                      xor     eax, eax
  00419263   .  F2:AE                     repne   scas byte ptr es:[edi]
  00419265   .  F7D1                      not     ecx
  00419267   .  2BF9                      sub     edi, ecx
  00419269   .  8BF7                      mov     esi, edi
  0041926B   .  8BC1                      mov     eax, ecx
  0041926D   .  8BFA                      mov     edi, edx
  0041926F   .  C1E9 02                   shr     ecx, 2
  00419272   .  F3:A5                     rep     movs dword ptr es:[edi], dword ptr>
  00419274   .  8BC8                      mov     ecx, eax
  00419276   .  83E1 03                   and     ecx, 3
  00419279   .  F3:A4                     rep     movs byte ptr es:[edi], byte ptr [>
  0041927B   .  8DBD 70FEFFFF             lea     edi, dword ptr [ebp-190]
  00419281   .  8B0D 787D5F00             mov     ecx, dword ptr [5F7D78]            ;  kudrtgov.10213000
  00419287   .  83C1 1E                   add     ecx, 1E
  0041928A   .  8BD1                      mov     edx, ecx
  0041928C   .  83C9 FF                   or      ecx, FFFFFFFF
  0041928F   .  33C0                      xor     eax, eax
  00419291   .  F2:AE                     repne   scas byte ptr es:[edi]
  00419293   .  F7D1                      not     ecx
  00419295   .  2BF9                      sub     edi, ecx
  00419297   .  8BF7                      mov     esi, edi
  00419299   .  8BC1                      mov     eax, ecx
  0041929B   .  8BFA                      mov     edi, edx
  0041929D   .  C1E9 02                   shr     ecx, 2
  004192A0   .  F3:A5                     rep     movs dword ptr es:[edi], dword ptr>
  004192A2   .  8BC8                      mov     ecx, eax
  004192A4   .  83E1 03                   and     ecx, 3
  004192A7   .  F3:A4                     rep     movs byte ptr es:[edi], byte ptr [>
  004192A9   .  C685 38FBFFFF 00          mov     byte ptr [ebp-4C8], 0
  004192B0   .  C685 39FBFFFF 00          mov     byte ptr [ebp-4C7], 0
  004192B7   .  B9 40000000               mov     ecx, 40
  004192BC   .  33C0                      xor     eax, eax
  004192BE   .  8DBD 3AFBFFFF             lea     edi, dword ptr [ebp-4C6]
  004192C4   .  F3:AB                     rep     stos dword ptr es:[edi]
  004192C6   .  66:AB                     stos    word ptr es:[edi]
  004192C8   .  C685 3CFCFFFF 00          mov     byte ptr [ebp-3C4], 0
  004192CF   .  C685 3DFCFFFF 00          mov     byte ptr [ebp-3C3], 0
  004192D6   .  B9 40000000               mov     ecx, 40
  004192DB   .  33C0                      xor     eax, eax
  004192DD   .  8DBD 3EFCFFFF             lea     edi, dword ptr [ebp-3C2]
  004192E3   .  F3:AB                     rep     stos dword ptr es:[edi]
  004192E5   .  66:AB                     stos    word ptr es:[edi]
  004192E7   .  C685 44FDFFFF 00          mov     byte ptr [ebp-2BC], 0
  004192EE   .  C685 45FDFFFF 00          mov     byte ptr [ebp-2BB], 0
  004192F5   .  B9 40000000               mov     ecx, 40
  004192FA   .  33C0                      xor     eax, eax
  004192FC   .  8DBD 46FDFFFF             lea     edi, dword ptr [ebp-2BA]
  00419302   .  F3:AB                     rep     stos dword ptr es:[edi]
  00419304   .  66:AB                     stos    word ptr es:[edi]
  00419306   .  BF CC2D4800               mov     edi, 00482DCC                      ;  ASCII "\Users\"
  0041930B   .  8D95 70FEFFFF             lea     edx, dword ptr [ebp-190]
  00419311   .  83C9 FF                   or      ecx, FFFFFFFF
  00419314   .  33C0                      xor     eax, eax
  00419316   .  F2:AE                     repne   scas byte ptr es:[edi]
  00419318   .  F7D1                      not     ecx
  0041931A   .  2BF9                      sub     edi, ecx
  0041931C   .  8BF7                      mov     esi, edi
  0041931E   .  8BD9                      mov     ebx, ecx
  00419320   .  8BFA                      mov     edi, edx
  00419322   .  83C9 FF                   or      ecx, FFFFFFFF
  00419325   .  33C0                      xor     eax, eax
  00419327   .  F2:AE                     repne   scas byte ptr es:[edi]
  00419329   .  83C7 FF                   add     edi, -1
  0041932C   .  8BCB                      mov     ecx, ebx
  0041932E   .  C1E9 02                   shr     ecx, 2
  00419331   .  F3:A5                     rep     movs dword ptr es:[edi], dword ptr>
  00419333   .  8BCB                      mov     ecx, ebx
  00419335   .  83E1 03                   and     ecx, 3
  00419338   .  F3:A4                     rep     movs byte ptr es:[edi], byte ptr [>
  0041933A   .  8DBD 70FEFFFF             lea     edi, dword ptr [ebp-190]
  00419340   .  8D95 38FBFFFF             lea     edx, dword ptr [ebp-4C8]
  00419346   .  83C9 FF                   or      ecx, FFFFFFFF
  00419349   .  33C0                      xor     eax, eax
  0041934B   .  F2:AE                     repne   scas byte ptr es:[edi]
  0041934D   .  F7D1                      not     ecx
  0041934F   .  2BF9                      sub     edi, ecx
  00419351   .  8BF7                      mov     esi, edi
  00419353   .  8BC1                      mov     eax, ecx
  00419355   .  8BFA                      mov     edi, edx
  00419357   .  C1E9 02                   shr     ecx, 2
  0041935A   .  F3:A5                     rep     movs dword ptr es:[edi], dword ptr>
  0041935C   .  8BC8                      mov     ecx, eax
  0041935E   .  83E1 03                   and     ecx, 3
  00419361   .  F3:A4                     rep     movs byte ptr es:[edi], byte ptr [>
  00419363   .  8B3D 787D5F00             mov     edi, dword ptr [5F7D78]            ;  kudrtgov.10213000
  00419369   .  8D95 38FBFFFF             lea     edx, dword ptr [ebp-4C8]
  0041936F   .  83C9 FF                   or      ecx, FFFFFFFF
  00419372   .  33C0                      xor     eax, eax
  00419374   .  F2:AE                     repne   scas byte ptr es:[edi]
  00419376   .  F7D1                      not     ecx
  00419378   .  2BF9                      sub     edi, ecx
  0041937A   .  8BF7                      mov     esi, edi
  0041937C   .  8BD9                      mov     ebx, ecx
  0041937E   .  8BFA                      mov     edi, edx
  00419380   .  83C9 FF                   or      ecx, FFFFFFFF
  00419383   .  33C0                      xor     eax, eax
  00419385   .  F2:AE                     repne   scas byte ptr es:[edi]
  00419387   .  83C7 FF                   add     edi, -1
  0041938A   .  8BCB                      mov     ecx, ebx
  0041938C   .  C1E9 02                   shr     ecx, 2
  0041938F   .  F3:A5                     rep     movs dword ptr es:[edi], dword ptr>
  00419391   .  8BCB                      mov     ecx, ebx
  00419393   .  83E1 03                   and     ecx, 3
  00419396   .  F3:A4                     rep     movs byte ptr es:[edi], byte ptr [>
  00419398   .  BF BC2D4800               mov     edi, 00482DBC                      ;  ASCII "\NewConfig.ini"
  0041939D   .  8D95 38FBFFFF             lea     edx, dword ptr [ebp-4C8]
  004193A3   .  83C9 FF                   or      ecx, FFFFFFFF
  004193A6   .  33C0                      xor     eax, eax
  004193A8   .  F2:AE                     repne   scas byte ptr es:[edi]
  004193AA   .  F7D1                      not     ecx
  004193AC   .  2BF9                      sub     edi, ecx
  004193AE   .  8BF7                      mov     esi, edi
  004193B0   .  8BD9                      mov     ebx, ecx
  004193B2   .  8BFA                      mov     edi, edx
  004193B4   .  83C9 FF                   or      ecx, FFFFFFFF
  004193B7   .  33C0                      xor     eax, eax
  004193B9   .  F2:AE                     repne   scas byte ptr es:[edi]
  004193BB   .  83C7 FF                   add     edi, -1
  004193BE   .  8BCB                      mov     ecx, ebx
  004193C0   .  C1E9 02                   shr     ecx, 2
  004193C3   .  F3:A5                     rep     movs dword ptr es:[edi], dword ptr>
  004193C5   .  8BCB                      mov     ecx, ebx
  004193C7   .  83E1 03                   and     ecx, 3
  004193CA   .  F3:A4                     rep     movs byte ptr es:[edi], byte ptr [>
  004193CC   .  8DBD 70FEFFFF             lea     edi, dword ptr [ebp-190]
  004193D2   .  8D95 3CFCFFFF             lea     edx, dword ptr [ebp-3C4]
  004193D8   .  83C9 FF                   or      ecx, FFFFFFFF
  004193DB   .  33C0                      xor     eax, eax
  004193DD   .  F2:AE                     repne   scas byte ptr es:[edi]
  004193DF   .  F7D1                      not     ecx
  004193E1   .  2BF9                      sub     edi, ecx
  004193E3   .  8BF7                      mov     esi, edi
  004193E5   .  8BC1                      mov     eax, ecx
  004193E7   .  8BFA                      mov     edi, edx
  004193E9   .  C1E9 02                   shr     ecx, 2
  004193EC   .  F3:A5                     rep     movs dword ptr es:[edi], dword ptr>
  004193EE   .  8BC8                      mov     ecx, eax
  004193F0   .  83E1 03                   and     ecx, 3
  004193F3   .  F3:A4                     rep     movs byte ptr es:[edi], byte ptr [>
  004193F5   .  8B3D 787D5F00             mov     edi, dword ptr [5F7D78]            ;  kudrtgov.10213000
  004193FB   .  8D95 3CFCFFFF             lea     edx, dword ptr [ebp-3C4]
  00419401   .  83C9 FF                   or      ecx, FFFFFFFF
  00419404   .  33C0                      xor     eax, eax
  00419406   .  F2:AE                     repne   scas byte ptr es:[edi]
  00419408   .  F7D1                      not     ecx
  0041940A   .  2BF9                      sub     edi, ecx
  0041940C   .  8BF7                      mov     esi, edi
  0041940E   .  8BD9                      mov     ebx, ecx
  00419410   .  8BFA                      mov     edi, edx
  00419412   .  83C9 FF                   or      ecx, FFFFFFFF
  00419415   .  33C0                      xor     eax, eax
  00419417   .  F2:AE                     repne   scas byte ptr es:[edi]
  00419419   .  83C7 FF                   add     edi, -1
  0041941C   .  8BCB                      mov     ecx, ebx
  0041941E   .  C1E9 02                   shr     ecx, 2
  00419421   .  F3:A5                     rep     movs dword ptr es:[edi], dword ptr>
  00419423   .  8BCB                      mov     ecx, ebx
  00419425   .  83E1 03                   and     ecx, 3
  00419428   .  F3:A4                     rep     movs byte ptr es:[edi], byte ptr [>
  0041942A   .  BF AC2D4800               mov     edi, 00482DAC                      ;  ASCII "\ListFile.ini"
  0041942F   .  8D95 3CFCFFFF             lea     edx, dword ptr [ebp-3C4]
  00419435   .  83C9 FF                   or      ecx, FFFFFFFF
  00419438   .  33C0                      xor     eax, eax
  0041943A   .  F2:AE                     repne   scas byte ptr es:[edi]
  0041943C   .  F7D1                      not     ecx
  0041943E   .  2BF9                      sub     edi, ecx
  00419440   .  8BF7                      mov     esi, edi
  00419442   .  8BD9                      mov     ebx, ecx
  00419444   .  8BFA                      mov     edi, edx
  00419446   .  83C9 FF                   or      ecx, FFFFFFFF
  00419449   .  33C0                      xor     eax, eax
  0041944B   .  F2:AE                     repne   scas byte ptr es:[edi]
  0041944D   .  83C7 FF                   add     edi, -1
  00419450   .  8BCB                      mov     ecx, ebx
  00419452   .  C1E9 02                   shr     ecx, 2
  00419455   .  F3:A5                     rep     movs dword ptr es:[edi], dword ptr>
  00419457   .  8BCB                      mov     ecx, ebx
  00419459   .  83E1 03                   and     ecx, 3
  0041945C   .  F3:A4                     rep     movs byte ptr es:[edi], byte ptr [>
  0041945E   .  8DBD 70FEFFFF             lea     edi, dword ptr [ebp-190]
  00419464   .  8D95 44FDFFFF             lea     edx, dword ptr [ebp-2BC]
  0041946A   .  83C9 FF                   or      ecx, FFFFFFFF
  0041946D   .  33C0                      xor     eax, eax
  0041946F   .  F2:AE                     repne   scas byte ptr es:[edi]
  00419471   .  F7D1                      not     ecx
  00419473   .  2BF9                      sub     edi, ecx
  00419475   .  8BF7                      mov     esi, edi
  00419477   .  8BC1                      mov     eax, ecx
  00419479   .  8BFA                      mov     edi, edx
  0041947B   .  C1E9 02                   shr     ecx, 2
  0041947E   .  F3:A5                     rep     movs dword ptr es:[edi], dword ptr>
  00419480   .  8BC8                      mov     ecx, eax
  00419482   .  83E1 03                   and     ecx, 3
  00419485   .  F3:A4                     rep     movs byte ptr es:[edi], byte ptr [>
  00419487   .  8B3D 787D5F00             mov     edi, dword ptr [5F7D78]            ;  kudrtgov.10213000
  0041948D   .  8D95 44FDFFFF             lea     edx, dword ptr [ebp-2BC]
  00419493   .  83C9 FF                   or      ecx, FFFFFFFF
  00419496   .  33C0                      xor     eax, eax
  00419498   .  F2:AE                     repne   scas byte ptr es:[edi]
  0041949A   .  F7D1                      not     ecx
  0041949C   .  2BF9                      sub     edi, ecx
  0041949E   .  8BF7                      mov     esi, edi
  004194A0   .  8BD9                      mov     ebx, ecx
  004194A2   .  8BFA                      mov     edi, edx
  004194A4   .  83C9 FF                   or      ecx, FFFFFFFF
  004194A7   .  33C0                      xor     eax, eax
  004194A9   .  F2:AE                     repne   scas byte ptr es:[edi]
  004194AB   .  83C7 FF                   add     edi, -1
  004194AE   .  8BCB                      mov     ecx, ebx
  004194B0   .  C1E9 02                   shr     ecx, 2
  004194B3   .  F3:A5                     rep     movs dword ptr es:[edi], dword ptr>
  004194B5   .  8BCB                      mov     ecx, ebx
  004194B7   .  83E1 03                   and     ecx, 3
  004194BA   .  F3:A4                     rep     movs byte ptr es:[edi], byte ptr [>
  004194BC   .  BF 9C2D4800               mov     edi, 00482D9C                      ;  ASCII "\GuoLvFile.ini"
  004194C1   .  8D95 44FDFFFF             lea     edx, dword ptr [ebp-2BC]
  004194C7   .  83C9 FF                   or      ecx, FFFFFFFF
  004194CA   .  33C0                      xor     eax, eax
  004194CC   .  F2:AE                     repne   scas byte ptr es:[edi]
  004194CE   .  F7D1                      not     ecx
  004194D0   .  2BF9                      sub     edi, ecx
  004194D2   .  8BF7                      mov     esi, edi
  004194D4   .  8BD9                      mov     ebx, ecx
  004194D6   .  8BFA                      mov     edi, edx
  004194D8   .  83C9 FF                   or      ecx, FFFFFFFF
  004194DB   .  33C0                      xor     eax, eax
  004194DD   .  F2:AE                     repne   scas byte ptr es:[edi]
  004194DF   .  83C7 FF                   add     edi, -1
  004194E2   .  8BCB                      mov     ecx, ebx
  004194E4   .  C1E9 02                   shr     ecx, 2
  004194E7   .  F3:A5                     rep     movs dword ptr es:[edi], dword ptr>
  004194E9   .  8BCB                      mov     ecx, ebx
  004194EB   .  83E1 03                   and     ecx, 3
  004194EE   .  F3:A4                     rep     movs byte ptr es:[edi], byte ptr [>
  004194F0   .  68 982D4800               push    00482D98
  004194F5   .  8D85 38FBFFFF             lea     eax, dword ptr [ebp-4C8]
  004194FB   .  50                        push    eax
  004194FC   .  E8 97BE0100               call    00435398                           ;  配置文件A是否已经存在
  00419501   .  83C4 08                   add     esp, 8
  00419504   .  8985 14FAFFFF             mov     dword ptr [ebp-5EC], eax
  0041950A   .  83BD 14FAFFFF 00          cmp     dword ptr [ebp-5EC], 0
  00419511   .  75 5A                     jnz     short 0041956D                     ;  如果文件已经存在则跳
  00419513   .  8B3D 787D5F00             mov     edi, dword ptr [5F7D78]            ;  kudrtgov.10213000
  00419519   .  8D95 70FEFFFF             lea     edx, dword ptr [ebp-190]
  0041951F   .  83C9 FF                   or      ecx, FFFFFFFF
  00419522   .  33C0                      xor     eax, eax
  00419524   .  F2:AE                     repne   scas byte ptr es:[edi]
  00419526   .  F7D1                      not     ecx
  00419528   .  2BF9                      sub     edi, ecx
  0041952A   .  8BF7                      mov     esi, edi
  0041952C   .  8BD9                      mov     ebx, ecx
  0041952E   .  8BFA                      mov     edi, edx
  00419530   .  83C9 FF                   or      ecx, FFFFFFFF
  00419533   .  33C0                      xor     eax, eax
  00419535   .  F2:AE                     repne   scas byte ptr es:[edi]
  00419537   .  83C7 FF                   add     edi, -1
  0041953A   .  8BCB                      mov     ecx, ebx
  0041953C   .  C1E9 02                   shr     ecx, 2
  0041953F   .  F3:A5                     rep     movs dword ptr es:[edi], dword ptr>
  00419541   .  8BCB                      mov     ecx, ebx
  00419543   .  83E1 03                   and     ecx, 3
  00419546   .  F3:A4                     rep     movs byte ptr es:[edi], byte ptr [>
  00419548   .  6A 00                     push    0                                  ; /pSecurity = NULL
  0041954A   .  8D85 70FEFFFF             lea     eax, dword ptr [ebp-190]           ; |
  00419550   .  50                        push    eax                                ; |Path
  00419551   .  FF15 F0A14600             call    dword ptr [<&kernel32.CreateDirect>; \CreateDirectoryA
  00419557   .  6A 01                     push    1                                  ; /FailIfExists = TRUE
  00419559   .  8D8D 38FBFFFF             lea     ecx, dword ptr [ebp-4C8]           ; |使用默认的配置文件A
  0041955F   .  51                        push    ecx                                ; |NewFileName
  00419560   .  68 842D4800               push    00482D84                           ; |ExistingFileName =
                                                                                     ;  "Setting\Default.ini"
  00419565   .  FF15 F4A14600             call    dword ptr [<&kernel32.CopyFileA>]  ; \CopyFileA
  0041956B   .  EB 0F                     jmp     short 0041957C
  0041956D   >  8B95 14FAFFFF             mov     edx, dword ptr [ebp-5EC]
  00419573   .  52                        push    edx
  00419574   .  E8 71BD0100               call    004352EA
  00419579   .  83C4 04                   add     esp, 4
  0041957C   >  68 982D4800               push    00482D98
  00419581   .  8D85 3CFCFFFF             lea     eax, dword ptr [ebp-3C4]
  00419587   .  50                        push    eax
  00419588   .  E8 0BBE0100               call    00435398                           ;  配置文件B是否已经存在
  0041958D   .  83C4 08                   add     esp, 8
  00419590   .  8985 14FAFFFF             mov     dword ptr [ebp-5EC], eax
  00419596   .  83BD 14FAFFFF 00          cmp     dword ptr [ebp-5EC], 0
  0041959D   .  75 25                     jnz     short 004195C4                     ;  如果文件已经存在则跳
  0041959F   .  6A 00                     push    0                                  ; /pSecurity = NULL
  004195A1   .  8D8D 70FEFFFF             lea     ecx, dword ptr [ebp-190]           ; |
  004195A7   .  51                        push    ecx                                ; |Path
  004195A8   .  FF15 F0A14600             call    dword ptr [<&kernel32.CreateDirect>; \CreateDirectoryA
  004195AE   .  6A 01                     push    1                                  ; /FailIfExists = TRUE
  004195B0   .  8D95 3CFCFFFF             lea     edx, dword ptr [ebp-3C4]           ; |使用默认的配置文件B
  004195B6   .  52                        push    edx                                ; |NewFileName
  004195B7   .  68 6C2D4800               push    00482D6C                           ; |ExistingFileName =
                                                                                     ;  "Setting\DefaultList.ini"
  004195BC   .  FF15 F4A14600             call    dword ptr [<&kernel32.CopyFileA>]  ; \CopyFileA
  004195C2   .  EB 0F                     jmp     short 004195D3
  004195C4   >  8B85 14FAFFFF             mov     eax, dword ptr [ebp-5EC]
  004195CA   .  50                        push    eax
  004195CB   .  E8 1ABD0100               call    004352EA
  004195D0   .  83C4 04                   add     esp, 4
  004195D3   >  68 982D4800               push    00482D98
  004195D8   .  8D8D 44FDFFFF             lea     ecx, dword ptr [ebp-2BC]
  004195DE   .  51                        push    ecx
  004195DF   .  E8 B4BD0100               call    00435398                           ;  配置文件C是否已经存在
  004195E4   .  83C4 08                   add     esp, 8
  004195E7   .  8985 14FAFFFF             mov     dword ptr [ebp-5EC], eax
  004195ED   .  83BD 14FAFFFF 00          cmp     dword ptr [ebp-5EC], 0
  004195F4   .  75 25                     jnz     short 0041961B                     ;  如果文件已经存在则跳
  004195F6   .  6A 00                     push    0                                  ; /pSecurity = NULL
  004195F8   .  8D95 70FEFFFF             lea     edx, dword ptr [ebp-190]           ; |
  004195FE   .  52                        push    edx                                ; |Path
  004195FF   .  FF15 F0A14600             call    dword ptr [<&kernel32.CreateDirect>; \CreateDirectoryA
  00419605   .  6A 01                     push    1                                  ; /FailIfExists = TRUE
  00419607   .  8D85 44FDFFFF             lea     eax, dword ptr [ebp-2BC]           ; |使用默认的配置文件C
  0041960D   .  50                        push    eax                                ; |NewFileName
  0041960E   .  68 502D4800               push    00482D50                           ; |ExistingFileName =
                                                                                     ;  "Setting\DefaultGuoLv.ini"
  00419613   .  FF15 F4A14600             call    dword ptr [<&kernel32.CopyFileA>]  ; \CopyFileA
  00419619   .  EB 0F                     jmp     short 0041962A
  0041961B   >  8B8D 14FAFFFF             mov     ecx, dword ptr [ebp-5EC]
  00419621   .  51                        push    ecx
  00419622   .  E8 C3BC0100               call    004352EA
  00419627   .  83C4 04                   add     esp, 4
  0041962A   >  68 382D4800               push    00482D38                           ; /IniFileName = ".\Setting\config.ini"
  0041962F   .  6A 00                     push    0                                  ; |Default = 0
  00419631   .  68 0C2D4800               push    00482D0C                           ; |Key = "virtualcode"
  00419636   .  68 282D4800               push    00482D28                           ; |Section = "Config"
  0041963B   .  FF15 F8A14600             call    dword ptr [<&kernel32.GetPrivatePr>; \GetPrivateProfileIntA
  00419641   .  66:8985 34FBFFFF          mov     word ptr [ebp-4CC], ax
  00419648   .  68 382D4800               push    00482D38                           ; /IniFileName = ".\Setting\config.ini"
  0041964D   .  6A 00                     push    0                                  ; |Default = 0
  0041964F   .  68 002D4800               push    00482D00                           ; |Key = "modifiers"
  00419654   .  68 282D4800               push    00482D28                           ; |Section = "Config"
  00419659   .  FF15 F8A14600             call    dword ptr [<&kernel32.GetPrivatePr>; \GetPrivateProfileIntA
  0041965F   .  66:8985 2CFBFFFF          mov     word ptr [ebp-4D4], ax
  00419666   .  8B95 34FBFFFF             mov     edx, dword ptr [ebp-4CC]
  0041966C   .  81E2 FFFF0000             and     edx, 0FFFF
  00419672   .  A1 787D5F00               mov     eax, dword ptr [5F7D78]
  00419677   .  8990 22010000             mov     dword ptr [eax+122], edx
  0041967D   .  8B8D 2CFBFFFF             mov     ecx, dword ptr [ebp-4D4]
  00419683   .  81E1 FFFF0000             and     ecx, 0FFFF
  00419689   .  8B15 787D5F00             mov     edx, dword ptr [5F7D78]            ;  kudrtgov.10213000
  0041968F   .  898A 26010000             mov     dword ptr [edx+126], ecx
  00419695   .  A1 787D5F00               mov     eax, dword ptr [5F7D78]
  0041969A   .  C780 90010000 64000000    mov     dword ptr [eax+190], 64
  004196A4   .  C685 28FAFFFF 00          mov     byte ptr [ebp-5D8], 0
  004196AB   .  C685 29FAFFFF 00          mov     byte ptr [ebp-5D7], 0
  004196B2   .  B9 40000000               mov     ecx, 40
  004196B7   .  33C0                      xor     eax, eax
  004196B9   .  8DBD 2AFAFFFF             lea     edi, dword ptr [ebp-5D6]
  004196BF   .  F3:AB                     rep     stos dword ptr es:[edi]
  004196C1   .  66:AB                     stos    word ptr es:[edi]
  004196C3   .  6A 12                     push    12                                 ; /Arg3 = 00000012
  004196C5   .  8D8D 28FAFFFF             lea     ecx, dword ptr [ebp-5D8]           ; |
  004196CB   .  51                        push    ecx                                ; |Arg2
  004196CC   .  68 05040000               push    405                                ; |Arg1 = 00000405
  004196D1   .  8B8D 98F9FFFF             mov     ecx, dword ptr [ebp-668]           ; |
  004196D7   .  E8 96FF0300               call    00459672                           ; \jtbl.00459672
  004196DC   .  C785 40FDFFFF 00000000    mov     dword ptr [ebp-2C0], 0
  004196E6   .  EB 0F                     jmp     short 004196F7
  004196E8   >  8B95 40FDFFFF             mov     edx, dword ptr [ebp-2C0]
  004196EE   .  83C2 01                   add     edx, 1
  004196F1   .  8995 40FDFFFF             mov     dword ptr [ebp-2C0], edx
  004196F7   >  8B85 40FDFFFF             mov     eax, dword ptr [ebp-2C0]
  004196FD   .  3B05 687D5F00             cmp     eax, dword ptr [5F7D68]
  00419703   .  0F83 A6000000             jnb     004197AF
  00419709   .  8D8D 28FAFFFF             lea     ecx, dword ptr [ebp-5D8]
  0041970F   .  898D 84F9FFFF             mov     dword ptr [ebp-67C], ecx
  00419715   .  8B95 40FDFFFF             mov     edx, dword ptr [ebp-2C0]
  0041971B   .  6BD2 68                   imul    edx, edx, 68
  0041971E   .  81C2 18E65D00             add     edx, 005DE618                      ;  获取曾经本地使用过的用户名
  00419724   .  8995 80F9FFFF             mov     dword ptr [ebp-680], edx
  0041972A   >  8B85 80F9FFFF             mov     eax, dword ptr [ebp-680]
  00419730   .  8A08                      mov     cl, byte ptr [eax]
  00419732   .  888D 7FF9FFFF             mov     byte ptr [ebp-681], cl
  00419738   .  8B95 84F9FFFF             mov     edx, dword ptr [ebp-67C]
  0041973E   .  3A0A                      cmp     cl, byte ptr [edx]
  00419740   .  75 46                     jnz     short 00419788
  00419742   .  80BD 7FF9FFFF 00          cmp     byte ptr [ebp-681], 0
  00419749   .  74 31                     je      short 0041977C
  0041974B   .  8B85 80F9FFFF             mov     eax, dword ptr [ebp-680]
  00419751   .  8A48 01                   mov     cl, byte ptr [eax+1]
  00419754   .  888D 7EF9FFFF             mov     byte ptr [ebp-682], cl
  0041975A   .  8B95 84F9FFFF             mov     edx, dword ptr [ebp-67C]
  00419760   .  3A4A 01                   cmp     cl, byte ptr [edx+1]
  00419763   .  75 23                     jnz     short 00419788
  00419765   .  8385 80F9FFFF 02          add     dword ptr [ebp-680], 2
  0041976C   .  8385 84F9FFFF 02          add     dword ptr [ebp-67C], 2
  00419773   .  80BD 7EF9FFFF 00          cmp     byte ptr [ebp-682], 0
  0041977A   .^ 75 AE                     jnz     short 0041972A
  0041977C   >  C785 78F9FFFF 00000000    mov     dword ptr [ebp-688], 0
  00419786   .  EB 0B                     jmp     short 00419793
  00419788   >  1BC0                      sbb     eax, eax
  0041978A   .  83D8 FF                   sbb     eax, -1
  0041978D   .  8985 78F9FFFF             mov     dword ptr [ebp-688], eax
  00419793   >  8B8D 78F9FFFF             mov     ecx, dword ptr [ebp-688]
  00419799   .  898D 74F9FFFF             mov     dword ptr [ebp-68C], ecx
  0041979F   .  83BD 74F9FFFF 00          cmp     dword ptr [ebp-68C], 0
  004197A6   .  75 02                     jnz     short 004197AA
  004197A8   .  EB 05                     jmp     short 004197AF
  004197AA   >^ E9 39FFFFFF               jmp     004196E8
  004197AF   >  8B95 40FDFFFF             mov     edx, dword ptr [ebp-2C0]
  004197B5   .  3B15 687D5F00             cmp     edx, dword ptr [5F7D68]            ;  判断是否该用户名为新用户名
  004197BB   .  0F82 EF000000             jb      004198B0                           ;  ★所以这里不能跳!NOP掉★
  004197C1   .  A1 687D5F00               mov     eax, dword ptr [5F7D68]
  004197C6   .  A3 6C7D5F00               mov     dword ptr [5F7D6C], eax
  004197CB   .  8DBD 28FAFFFF             lea     edi, dword ptr [ebp-5D8]
  004197D1   .  8B0D 687D5F00             mov     ecx, dword ptr [5F7D68]
  004197D7   .  6BC9 68                   imul    ecx, ecx, 68
  004197DA   .  81C1 18E65D00             add     ecx, 005DE618                      ;  ASCII "test"
  004197E0   .  898D 70F9FFFF             mov     dword ptr [ebp-690], ecx
  004197E6   .  8B95 70F9FFFF             mov     edx, dword ptr [ebp-690]
  004197EC   .  A1 687D5F00               mov     eax, dword ptr [5F7D68]
  004197F1   .  83C0 01                   add     eax, 1
  004197F4   .  A3 687D5F00               mov     dword ptr [5F7D68], eax
  004197F9   .  83C9 FF                   or      ecx, FFFFFFFF
  004197FC   .  33C0                      xor     eax, eax
  004197FE   .  F2:AE                     repne   scas byte ptr es:[edi]
  00419800   .  F7D1                      not     ecx
  00419802   .  2BF9                      sub     edi, ecx
  00419804   .  8BF7                      mov     esi, edi
  00419806   .  8BC1                      mov     eax, ecx
  00419808   .  8BFA                      mov     edi, edx
  0041980A   .  C1E9 02                   shr     ecx, 2
  0041980D   .  F3:A5                     rep     movs dword ptr es:[edi], dword ptr>
  0041980F   .  8BC8                      mov     ecx, eax
  00419811   .  83E1 03                   and     ecx, 3
  00419814   .  F3:A4                     rep     movs byte ptr es:[edi], byte ptr [>
  00419816   .  6A 00                     push    0                                  ; /准备写入用于本地记录的数据文件
  00419818   .  68 00000002               push    2000000                            ; |Attributes = BACKUP_SEMANTICS
  0041981D   .  6A 04                     push    4                                  ; |Mode = OPEN_ALWAYS
  0041981F   .  6A 00                     push    0                                  ; |pSecurity = NULL
  00419821   .  6A 02                     push    2                                  ; |ShareMode = FILE_SHARE_WRITE
  00419823   .  68 00000040               push    40000000                           ; |Access = GENERIC_WRITE
  00419828   .  68 F42C4800               push    00482CF4                           ; |FileName = "Account.dat"
  0041982D   .  FF15 3CA24600             call    dword ptr [<&kernel32.CreateFileA>>; \CreateFileA
  00419833   .  8985 B8F9FFFF             mov     dword ptr [ebp-648], eax
  00419839   .  6A 00                     push    0                                  ; /pOverlapped = NULL
  0041983B   .  8D8D BCF9FFFF             lea     ecx, dword ptr [ebp-644]           ; |
  00419841   .  51                        push    ecx                                ; |pBytesWritten
  00419842   .  6A 04                     push    4                                  ; |nBytesToWrite = 4
  00419844   .  68 687D5F00               push    005F7D68                           ; |Buffer = jtbl.005F7D68
  00419849   .  8B95 B8F9FFFF             mov     edx, dword ptr [ebp-648]           ; |
  0041984F   .  52                        push    edx                                ; |hFile
  00419850   .  FF15 40A24600             call    dword ptr [<&kernel32.WriteFile>]  ; \WriteFile
  00419856   .  6A 00                     push    0                                  ; /pOverlapped = NULL
  00419858   .  8D85 BCF9FFFF             lea     eax, dword ptr [ebp-644]           ; |
  0041985E   .  50                        push    eax                                ; |pBytesWritten
  0041985F   .  6A 04                     push    4                                  ; |nBytesToWrite = 4
  00419861   .  68 6C7D5F00               push    005F7D6C                           ; |Buffer = jtbl.005F7D6C
  00419866   .  8B8D B8F9FFFF             mov     ecx, dword ptr [ebp-648]           ; |
  0041986C   .  51                        push    ecx                                ; |hFile
  0041986D   .  FF15 40A24600             call    dword ptr [<&kernel32.WriteFile>]  ; \WriteFile
  00419873   .  6A 00                     push    0                                  ; /pOverlapped = NULL
  00419875   .  8D95 BCF9FFFF             lea     edx, dword ptr [ebp-644]           ; |
  0041987B   .  52                        push    edx                                ; |pBytesWritten
  0041987C   .  68 40960100               push    19640                              ; |nBytesToWrite = 19640 (104000.)
  00419881   .  68 18E65D00               push    005DE618                           ; |Buffer = jtbl.005DE618
  00419886   .  8B85 B8F9FFFF             mov     eax, dword ptr [ebp-648]           ; |
  0041988C   .  50                        push    eax                                ; |hFile
  0041988D   .  FF15 40A24600             call    dword ptr [<&kernel32.WriteFile>]  ; \WriteFile
  00419893   .  8B8D B8F9FFFF             mov     ecx, dword ptr [ebp-648]
  00419899   .  51                        push    ecx                                ; /hObject
  0041989A   .  FF15 44A24600             call    dword ptr [<&kernel32.CloseHandle>>; \CloseHandle
  004198A0   .  8B8D 98F9FFFF             mov     ecx, dword ptr [ebp-668]
  004198A6   .  E8 350E0000               call    0041A6E0
  004198AB   .  E9 A1000000               jmp     00419951
  004198B0   >  8B95 40FDFFFF             mov     edx, dword ptr [ebp-2C0]
  004198B6   .  8915 6C7D5F00             mov     dword ptr [5F7D6C], edx
  004198BC   .  6A 00                     push    0                                  ; /hTemplateFile = NULL
  004198BE   .  68 00000002               push    2000000                            ; |Attributes = BACKUP_SEMANTICS
  004198C3   .  6A 04                     push    4                                  ; |Mode = OPEN_ALWAYS
  004198C5   .  6A 00                     push    0                                  ; |pSecurity = NULL
  004198C7   .  6A 02                     push    2                                  ; |ShareMode = FILE_SHARE_WRITE
  004198C9   .  68 00000040               push    40000000                           ; |Access = GENERIC_WRITE
  004198CE   .  68 F42C4800               push    00482CF4                           ; |FileName = "Account.dat"
  004198D3   .  FF15 3CA24600             call    dword ptr [<&kernel32.CreateFileA>>; \CreateFileA
  004198D9   .  8985 B0F9FFFF             mov     dword ptr [ebp-650], eax
  004198DF   .  6A 00                     push    0                                  ; /pOverlapped = NULL
  004198E1   .  8D85 B4F9FFFF             lea     eax, dword ptr [ebp-64C]           ; |
  004198E7   .  50                        push    eax                                ; |pBytesWritten
  004198E8   .  6A 04                     push    4                                  ; |nBytesToWrite = 4
  004198EA   .  68 687D5F00               push    005F7D68                           ; |Buffer = jtbl.005F7D68
  004198EF   .  8B8D B0F9FFFF             mov     ecx, dword ptr [ebp-650]           ; |
  004198F5   .  51                        push    ecx                                ; |hFile
  004198F6   .  FF15 40A24600             call    dword ptr [<&kernel32.WriteFile>]  ; \WriteFile
  004198FC   .  6A 00                     push    0                                  ; /pOverlapped = NULL
  004198FE   .  8D95 B4F9FFFF             lea     edx, dword ptr [ebp-64C]           ; |
  00419904   .  52                        push    edx                                ; |pBytesWritten
  00419905   .  6A 04                     push    4                                  ; |nBytesToWrite = 4
  00419907   .  68 6C7D5F00               push    005F7D6C                           ; |Buffer = jtbl.005F7D6C
  0041990C   .  8B85 B0F9FFFF             mov     eax, dword ptr [ebp-650]           ; |
  00419912   .  50                        push    eax                                ; |hFile
  00419913   .  FF15 40A24600             call    dword ptr [<&kernel32.WriteFile>]  ; \WriteFile
  00419919   .  6A 00                     push    0                                  ; /pOverlapped = NULL
  0041991B   .  8D8D B4F9FFFF             lea     ecx, dword ptr [ebp-64C]           ; |
  00419921   .  51                        push    ecx                                ; |pBytesWritten
  00419922   .  68 40960100               push    19640                              ; |nBytesToWrite = 19640 (104000.)
  00419927   .  68 18E65D00               push    005DE618                           ; |Buffer = jtbl.005DE618
  0041992C   .  8B95 B0F9FFFF             mov     edx, dword ptr [ebp-650]           ; |
  00419932   .  52                        push    edx                                ; |hFile
  00419933   .  FF15 40A24600             call    dword ptr [<&kernel32.WriteFile>]  ; \WriteFile
  00419939   .  8B85 B0F9FFFF             mov     eax, dword ptr [ebp-650]
  0041993F   .  50                        push    eax                                ; /hObject
  00419940   .  FF15 44A24600             call    dword ptr [<&kernel32.CloseHandle>>; \CloseHandle
  00419946   .  8B8D 98F9FFFF             mov     ecx, dword ptr [ebp-668]
  0041994C   .  E8 8F0D0000               call    0041A6E0
  00419951   >  68 04040000               push    404
  00419956   .  8B8D 98F9FFFF             mov     ecx, dword ptr [ebp-668]
  0041995C   .  E8 87FC0300               call    004595E8
  00419961   .  8985 5CFEFFFF             mov     dword ptr [ebp-1A4], eax
  00419967   .  6A 01                     push    1
  00419969   .  8B8D 5CFEFFFF             mov     ecx, dword ptr [ebp-1A4]
  0041996F   .  E8 A0FF0300               call    00459914
  00419974   .  8B0D 787D5F00             mov     ecx, dword ptr [5F7D78]            ;  kudrtgov.10213000
  0041997A   .  890D A0126500             mov     dword ptr [6512A0], ecx
  00419980   .  6A 00                     push    0                                  ; /Timerproc = NULL
  00419982   .  6A 64                     push    64                                 ; |Timeout = 100. ms
  00419984   .  6A 01                     push    1                                  ; |TimerID = 1
  00419986   .  8B95 98F9FFFF             mov     edx, dword ptr [ebp-668]           ; |
  0041998C   .  8B42 1C                   mov     eax, dword ptr [edx+1C]            ; |
  0041998F   .  50                        push    eax                                ; |hWnd
  00419990   .  FF15 6CA54600             call    dword ptr [<&user32.SetTimer>]     ; \SetTimer
  00419996   >  8B4D F4                   mov     ecx, dword ptr [ebp-C]
  00419999   .  64:890D 00000000          mov     dword ptr fs:[0], ecx
  004199A0   .  5F                        pop     edi
  004199A1   .  5E                        pop     esi
  004199A2   .  5B                        pop     ebx
  004199A3   .  8BE5                      mov     esp, ebp
  004199A5   .  5D                        pop     ebp
  004199A6   .  C3                        retn                                       ;  网络、本地验证全部结束
  
--------------------------------------------------------------------------------
【经验总结】
  其实网络验证并不可怕,可怕的是它们身上穿着的“衣服(壳)”,不过随着大伙儿们的技术的不断提高,工具的不断更新
  强大,不脱壳也可以调试它了。最重要的就是细心!
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2007年03月28日 PM 04:03:21


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (245)
雪    币: 150
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
老K.巨作....顶一下吧....
2007-3-28 16:14
0
雪    币: 97697
活跃值: (200834)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
apprehend.
2007-3-28 16:15
0
雪    币: 253
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
4
支持~~强出格了!
2007-3-28 16:16
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
猛的没法挡。。。
2007-3-28 16:24
0
雪    币: 242
活跃值: (1664)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
6
收藏下来
2007-3-28 16:29
0
雪    币: 108
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
强烈支持
2007-3-28 16:48
0
雪    币: 297
活跃值: (21)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
8
这方面的教程好少呢,这个要严重支持一下
2007-3-28 16:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
强,不过把外挂名字写出来啦 ^_^
2007-3-28 17:25
0
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
10
最初由 xiaohuaigx 发布
强,不过把外挂名字写出来啦 ^_^


请仔细阅读!
2007-3-28 18:22
0
雪    币: 400
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
不错啊.现在就是这些太少了支持老K.
2007-3-28 21:35
0
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
12
怎么很像武林的一个外挂的代码?
2007-3-28 22:05
0
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
13
怎么很像武林的一个外挂的代码?
2007-3-28 22:11
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
这种软件详细脱壳过程,能写个教程也来看看吗?不用插件的那一种,
2007-3-29 00:13
0
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
15
最初由 overlayer 发布
这种软件详细脱壳过程,能写个教程也来看看吗?不用插件的那一种,


该软件是ASPR的标准壳,论坛上教程有很多,搜索“ASProtect  脱壳”
2007-3-29 00:35
0
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
16
好文章~向老K学习~
2007-3-29 00:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
严重支持!顶上大佬。
2007-3-29 00:48
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
Borland C++ 1999.编的软件如和调试,有这方面的文章吗
2007-3-29 16:43
0
雪    币: 82
活跃值: (531)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
偶想问一下.有的外挂按热键调出一个窗体。
这个要怎么下断点呢
比如 F12
2007-3-29 17:11
0
雪    币: 200
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
用热键弹出窗体

一般是

if ( IsWindowVisible(hWnd) )
  ShowWindow(hWnd, SW_HIDE);
else
  ShowWindow(hWnd, SW_SHOW);
2007-3-29 18:12
0
雪    币: 236
活跃值: (11)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
21
牛啊~顶
2007-3-29 19:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
大哥真是强人,小弟佩服
2007-3-29 23:29
0
雪    币: 136
活跃值: (105)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
23
我来晚了呵呵k以后是外挂专杀!!!
2007-3-30 00:39
0
雪    币: 690
活跃值: (1826)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
24
sustain!
2007-3-30 07:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
强悍
我只是脱了壳
怎么都不能破解它的认证
希望他的更新版你也能破
2007-3-30 10:45
0
游客
登录 | 注册 方可回帖
返回
//