欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

请近,我写破文很少,不要骂我哈。:) (7千字)

请近,我写破文很少,不要骂我哈。:) (7千字)

File Protector 2000
name: Free User
Company: [CCG]
Product: 748748
:0040C62F E80C1C0000              call 0040E240 /进入
:0040E240 8B4C2404                mov ecx, dword ptr [esp+04]
:0040E244 83EC08                  sub esp, 00000008
:0040E247 B02D                    mov al, 2D                /初始化"al"="2d"="-"
:0040E249 8A5104                  mov dl, byte ptr [ecx+04]  /取Product第5位到“dl”中
:0040E24C 53                      push ebx
:0040E24D 3AD0                    cmp dl, al                /Product第5位是“-”吗?
:0040E24F 0F85AA020000            jne 0040E4FF              /出错!
:0040E255 384107                  cmp byte ptr [ecx+07], al  /第8位是“-”吗?
:0040E258 0F85A1020000            jne 0040E4FF               
:0040E25E 38410B                  cmp byte ptr [ecx+0B], al  /第12位是“-”吗?
:0040E261 0F8598020000            jne 0040E4FF
:0040E267 38410D                  cmp byte ptr [ecx+0D], al  /第14位
:0040E26A 0F858F020000            jne 0040E4FF
:0040E270 38411C                  cmp byte ptr [ecx+1C], al  /第29位
:0040E273 0F8586020000            jne 0040E4FF
:0040E279 8A410F                  mov al, byte ptr [ecx+0F]  /取出Product的第16位到“al”
:0040E27C 3C30                    cmp al, 30                /30=0
:0040E27E 0F8C7B020000            jl 0040E4FF                /小于30就跳
:0040E284 3C46                    cmp al, 46                /46=F
:0040E286 0F8F73020000            jg 0040E4FF                /大于“F”就跳,此时Product的合法范围在(Hex)30~46之间。
:0040E28C 8A4110                  mov al, byte ptr [ecx+10]
:0040E28F 3C30                    cmp al, 30
:0040E291 0F8C68020000            jl 0040E4FF
:0040E297 3C46                    cmp al, 46
:0040E299 0F8F60020000            jg 0040E4FF
:0040E29F 8A4111                  mov al, byte ptr [ecx+11]
:0040E2A2 3C30                    cmp al, 30
:0040E2A4 0F8C55020000            jl 0040E4FF
:0040E2AA 3C46                    cmp al, 46
:0040E2AC 0F8F4D020000            jg 0040E4FF
:0040E2B2 8A4112                  mov al, byte ptr [ecx+12]
:0040E2B5 3C30                    cmp al, 30
:0040E2B7 0F8C42020000            jl 0040E4FF
:0040E2BD 3C46                    cmp al, 46
:0040E2BF 0F8F3A020000            jg 0040E4FF
:0040E2C5 8A4115                  mov al, byte ptr [ecx+15]
:0040E2C8 3C30                    cmp al, 30
:0040E2CA 0F8C2F020000            jl 0040E4FF
:0040E2D0 3C46                    cmp al, 46
:0040E2D2 0F8F27020000            jg 0040E4FF
:0040E2D8 8A4116                  mov al, byte ptr [ecx+16]
:0040E2DB 3C30                    cmp al, 30
:0040E2DD 0F8C1C020000            jl 0040E4FF
:0040E2E3 3C46                    cmp al, 46
:0040E2E5 0F8F14020000            jg 0040E4FF
:0040E2EB 8A4117                  mov al, byte ptr [ecx+17]
:0040E2EE 3C30                    cmp al, 30
:0040E2F0 0F8C09020000            jl 0040E4FF
:0040E2F6 3C46                    cmp al, 46
:0040E2F8 0F8F01020000            jg 0040E4FF
:0040E2FE 8A4119                  mov al, byte ptr [ecx+19]
:0040E301 3C30                    cmp al, 30
:0040E303 0F8CF6010000            jl 0040E4FF
:0040E309 3C46                    cmp al, 46
:0040E30B 0F8FEE010000            jg 0040E4FF
:0040E311 803946                  cmp byte ptr [ecx], 46    /Product第1位等于46(F)吗?
:0040E314 0F85E5010000            jne 0040E4FF              /不等就跳
:0040E31A 80790150                cmp byte ptr [ecx+01], 50 /第2位50(P)
:0040E31E 0F85DB010000            jne 0040E4FF
:0040E324 80790231                cmp byte ptr [ecx+02], 31 /第3位31(1)
:0040E328 0F85D1010000            jne 0040E4FF
:0040E32E 80790338                cmp byte ptr [ecx+03], 38 /第4位38(8)
:0040E332 0F85C7010000            jne 0040E4FF
:0040E338 8A5105                  mov dl, byte ptr [ecx+05] /算法,不想看!
:0040E33B 8A5908                  mov bl, byte ptr [ecx+08]
:0040E33E 88542410                mov byte ptr [esp+10], dl
:0040E342 8A5117                  mov dl, byte ptr [ecx+17]
:0040E345 02C2                    add al, dl
:0040E347 8A5116                  mov dl, byte ptr [ecx+16]
:0040E34A 02C2                    add al, dl
:0040E34C 8A5115                  mov dl, byte ptr [ecx+15]
:0040E34F 02C2                    add al, dl
:0040E351 8A5112                  mov dl, byte ptr [ecx+12]
:0040E354 02C2                    add al, dl
:0040E356 8A5111                  mov dl, byte ptr [ecx+11]
:0040E359 02C2                    add al, dl
:0040E35B 8A5110                  mov dl, byte ptr [ecx+10]
:0040E35E 02C2                    add al, dl
:0040E360 8A510F                  mov dl, byte ptr [ecx+0F]
:0040E363 02C2                    add al, dl
:0040E365 8A542410                mov dl, byte ptr [esp+10]
:0040E369 32C2                    xor al, dl
:0040E36B 8A510C                  mov dl, byte ptr [ecx+0C]
:0040E36E 32C3                    xor al, bl
:0040E370 32C2                    xor al, dl
:0040E372 3423                    xor al, 23
:0040E374 8AD0                    mov dl, al
:0040E376 C0EA04                  shr dl, 04
:0040E379 80C230                  add dl, 30
:0040E37C 80FA39                  cmp dl, 39
:0040E37F 88542404                mov byte ptr [esp+04], dl
:0040E383 7607                    jbe 0040E38C
:0040E385 80C207                  add dl, 07
:0040E388 88542404                mov byte ptr [esp+04], dl
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040E383(C)
|
:0040E38C 240F                    and al, 0F
:0040E38E 0430                    add al, 30
:0040E390 3C39                    cmp al, 39
:0040E392 88442408                mov byte ptr [esp+08], al 
:0040E396 7606                    jbe 0040E39E
:0040E398 0407                    add al, 07
:0040E39A 88442408                mov byte ptr [esp+08], al
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040E396(C)
|
:0040E39E 0FBE4113                movsx eax, byte ptr [ecx+13] /取Product第14位到EAX中
:0040E3A2 8B542404                mov edx, dword ptr [esp+04] 
:0040E3A6 81E2FF000000            and edx, 000000FF            /正确的Product! 
:0040E3AC 3BC2                    cmp eax, edx                /?EDX ,和输入的Product第14位相等吗?
:0040E3AE 0F854B010000            jne 0040E4FF
:0040E3B4 8A5114                  mov dl, byte ptr [ecx+14]    /输入Product的第15位到DL中
:0040E3B7 56                      push esi                    /弹出的是???
:0040E3B8 8B74240C                mov esi, dword ptr [esp+0C] 
:0040E3BC 0FBEC2                  movsx eax, dl                /DL=>EAX
:0040E3BF 81E6FF000000            and esi, 000000FF            /正确的Product到ESI中,
:0040E3C5 3BC6                    cmp eax, esi                /第15位正确与否!
:0040E3C7 5E                      pop esi                      /压入的是???
:0040E3C8 0F8531010000            jne 0040E4FF                /不能跳走! 
    .
    .    
    .
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040E4C9(C)
|
:0040E4D2 0FBE511D                movsx edx, byte ptr [ecx+1D]
:0040E4D6 8B442404                mov eax, dword ptr [esp+04]
:0040E4DA 25FF000000              and eax, 000000FF
:0040E4DF 3BD0                    cmp edx, eax
:0040E4E1 751C                    jne 0040E4FF
:0040E4E3 0FBE491E                movsx ecx, byte ptr [ecx+1E]
:0040E4E7 8B542408                mov edx, dword ptr [esp+08]
:0040E4EB 33C0                    xor eax, eax               
:0040E4ED 81E2FF000000            and edx, 000000FF
:0040E4F3 5B                      pop ebx
:0040E4F4 3BCA                    cmp ecx, edx                /至此可找出全部的Product。输入后成功,也不知道还有没有校验。
:0040E4F6 0F94C0                  sete al
:0040E4F9 83C408                  add esp, 00000008
:0040E4FC C20400                  ret 0004

                8086[CCG] 17:16 2001-7-10

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功