欢迎来到 嗅灵易学

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

yonc v1.12---------------------(二) (18千字)

yonc v1.12---------------------(二) (18千字)

:00427A61 E86A050000              call 00427FD0
:00427A66 83C408                  add esp, 00000008
:00427A69 85C0                    test eax, eax
:00427A6B 740A                    je 00427A77
:00427A6D 885E08                  mov byte ptr [esi+08], bl
:00427A70 C7460C07000000          mov [esi+0C], 00000007
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00427A05(C), :00427A3A(C), :00427A56(C), :00427A6B(C)
|
:00427A77 8D4C2428                lea ecx, dword ptr [esp+28]
:00427A7B C7442444FFFFFFFF        mov [esp+44], FFFFFFFF
:00427A83 E808680000              call 0042E290
:00427A88 8B4C243C                mov ecx, dword ptr [esp+3C]
:00427A8C 5F                      pop edi
:00427A8D 5E                      pop esi
:00427A8E 5D                      pop ebp
:00427A8F 5B                      pop ebx
:00427A90 64890D00000000          mov dword ptr fs:[00000000], ecx
:00427A97 83C438                  add esp, 00000038
:00427A9A C20400                  ret 0004
============================================================================================
* Referenced by a CALL at Address:<--------------------------------call (1.1.1)
|:0042799A 
|
:00427560 6AFF                    push FFFFFFFF
:00427562 683F884500              push 0045883F
:00427567 64A100000000            mov eax, dword ptr fs:[00000000]
:0042756D 50                      push eax
:0042756E 64892500000000          mov dword ptr fs:[00000000], esp
:00427575 83EC24                  sub esp, 00000024
:00427578 53                      push ebx
:00427579 55                      push ebp
:0042757A B820ED4600              mov eax, 0046ED20
:0042757F 33ED                    xor ebp, ebp
:00427581 56                      push esi
:00427582 57                      push edi
:00427583 85C0                    test eax, eax
:00427585 896C241C                mov dword ptr [esp+1C], ebp
:00427589 C644241300              mov [esp+13], 00
:0042758E 896C2414                mov dword ptr [esp+14], ebp
:00427592 896C2420                mov dword ptr [esp+20], ebp
:00427596 896C2424                mov dword ptr [esp+24], ebp
:0042759A 896C2428                mov dword ptr [esp+28], ebp
:0042759E C744242C60000000        mov [esp+2C], 00000060
:004275A6 896C2430                mov dword ptr [esp+30], ebp
:004275AA 740B                    je 004275B7
:004275AC 50                      push eax
:004275AD 55                      push ebp
:004275AE 8D4C2428                lea ecx, dword ptr [esp+28]
:004275B2 E8096D0000              call 0042E2C0
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004275AA(C)
|
:004275B7 C744243C01000000        mov [esp+3C], 00000001
:004275BF 33FF                    xor edi, edi
:004275C1 896C2418                mov dword ptr [esp+18], ebp
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0042767B(U), :004276AC(U)
|
:004275C5 8B4C2448                mov ecx, dword ptr [esp+48]<-------假注册码
:004275C9 8B01                    mov eax, dword ptr [ecx]
:004275CB 3BC5                    cmp eax, ebp
:004275CD 7405                    je 004275D4
:004275CF 8B4904                  mov ecx, dword ptr [ecx+04]<-------假注册码长度
:004275D2 EB02                    jmp 004275D6
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004275CD(C)
|
:004275D4 33C9                    xor ecx, ecx
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004275D2(U)
|
:004275D6 3BF9                    cmp edi, ecx
:004275D8 0F8DD3000000            jnl 004276B1
:004275DE 33C9                    xor ecx, ecx
:004275E0 8A0C38                  mov cl, byte ptr [eax+edi]<-------取一个字
:004275E3 51                      push ecx
:004275E4 E8B30F0200              call 0044859C<--------------------判断大小写
:004275E9 8AD8                    mov bl, al
:004275EB 83C404                  add esp, 00000004
:004275EE 80FB20                  cmp bl, 20<-----------------------判断是否空格
:004275F1 0F84B4000000            je 004276AB
:004275F7 80FB2D                  cmp bl, 2D<-----------------------'-'
:004275FA 0F84AB000000            je 004276AB
:00427600 80FB0D                  cmp bl, 0D
:00427603 0F84A2000000            je 004276AB
:00427609 80FB0A                  cmp bl, 0A
:0042760C 0F8499000000            je 004276AB<----------------------是的话,计数器加1,不比较
:00427612 8B442414                mov eax, dword ptr [esp+14]
:00427616 B905000000              mov ecx, 00000005
:0042761B 99                      cdq
:0042761C F7F9                    idiv ecx
:0042761E 8B442414                mov eax, dword ptr [esp+14]
:00427622 40                      inc eax
:00427623 89442414                mov dword ptr [esp+14], eax
:00427627 33C0                    xor eax, eax
:00427629 8B3495F4814600          mov esi, dword ptr [4*edx+004681F4]<----查表
:00427630 8A0E                    mov cl, byte ptr [esi]
:00427632 84C9                    test cl, cl
:00427634 740D                    je 00427643
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00427641(C)
|
:00427636 3ACB                    cmp cl, bl<-----------------------------比较
:00427638 7409                    je 00427643
:0042763A 8A4C3001                mov cl, byte ptr [eax+esi+01]<----------不等的话,取表中
:0042763E 40                      inc eax                                下一个字
:0042763F 84C9                    test cl, cl
:00427641 75F3                    jne 00427636
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00427634(C), :00427638(C)
|
:00427643 803C3000                cmp byte ptr [eax+esi], 00<------------查完表,还没有相等的
:00427647 7502                    jne 0042764B                          你就完了
:00427649 33C0                    xor eax, eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00427647(C)
|
:0042764B 8B4C2418                mov ecx, dword ptr [esp+18]
:0042764F 8BD1                    mov edx, ecx
:00427651 81E201000080            and edx, 80000001<--------------------判断是奇位数,还是偶位数
:00427657 7905                    jns 0042765E
:00427659 4A                      dec edx
:0042765A 83CAFE                  or edx, FFFFFFFE
:0042765D 42                      inc edx
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00427657(C)
|
:0042765E 41                      inc ecx
:0042765F 85D2                    test edx, edx
:00427661 894C2418                mov dword ptr [esp+18], ecx
:00427665 7519                    jne 00427680
:00427667 250F000080              and eax, 8000000F
:0042766C 7905                    jns 00427673
:0042766E 48                      dec eax
:0042766F 83C8F0                  or eax, FFFFFFF0
:00427672 40                      inc eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0042766C(C)
|
:00427673 C0E004                  shl al, 04
:00427676 88442413                mov byte ptr [esp+13], al
:0042767A 47                      inc edi
:0042767B E945FFFFFF              jmp 004275C5<-----------------------回去,取下一个字
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00427665(C)
|
:00427680 250F000080              and eax, 8000000F
:00427685 7905                    jns 0042768C
:00427687 48                      dec eax
:00427688 83C8F0                  or eax, FFFFFFF0
:0042768B 40                      inc eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00427685(C)
|
:0042768C 8A5C2413                mov bl, byte ptr [esp+13]
:00427690 6A01                    push 00000001
:00427692 0AD8                    or bl, al
:00427694 8D442417                lea eax, dword ptr [esp+17]
:00427698 50                      push eax
:00427699 8D4C2428                lea ecx, dword ptr [esp+28]
:0042769D 885C241B                mov byte ptr [esp+1B], bl
:004276A1 E87A710000              call 0042E820<---------------------注册码在表中的序号
:004276A6 C644241300              mov [esp+13], 00
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004275F1(C), :004275FA(C), :00427603(C), :0042760C(C)
|
:004276AB 47                      inc edi<----------------------------计数器加1
:004276AC E914FFFFFF              jmp 004275C5<-----------------------回去,取下一个字
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004275D8(C)
|
:004276B1 8B742444                mov esi, dword ptr [esp+44]
:004276B5 8B442420                mov eax, dword ptr [esp+20]
:004276B9 8B4C242C                mov ecx, dword ptr [esp+2C]
:004276BD 8B542430                mov edx, dword ptr [esp+30]
:004276C1 3BC5                    cmp eax, ebp
:004276C3 892E                    mov dword ptr [esi], ebp
:004276C5 896E04                  mov dword ptr [esi+04], ebp
:004276C8 896E08                  mov dword ptr [esi+08], ebp
:004276CB 894E0C                  mov dword ptr [esi+0C], ecx
:004276CE 895610                  mov dword ptr [esi+10], edx
:004276D1 740D                    je 004276E0
:004276D3 50                      push eax
:004276D4 8B442428                mov eax, dword ptr [esp+28]
:004276D8 50                      push eax
:004276D9 8BCE                    mov ecx, esi
:004276DB E8E06B0000              call 0042E2C0
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004276D1(C)
|
:004276E0 C744241C01000000        mov [esp+1C], 00000001
:004276E8 8D4C2420                lea ecx, dword ptr [esp+20]
:004276EC C644243C00              mov [esp+3C], 00
:004276F1 E89A6B0000              call 0042E290
:004276F6 8B4C2434                mov ecx, dword ptr [esp+34]
:004276FA 8BC6                    mov eax, esi
:004276FC 5F                      pop edi
:004276FD 5E                      pop esi
:004276FE 5D                      pop ebp
:004276FF 5B                      pop ebx
:00427700 64890D00000000          mov dword ptr fs:[00000000], ecx
:00427707 83C430                  add esp, 00000030
:0042770A C3                      ret
========================================================================================
* Referenced by a CALL at Address:<------------------------------call (1.1.2)
|:004279F1 
|
:004272C0 83EC1C                  sub esp, 0000001C
:004272C3 53                      push ebx
:004272C4 55                      push ebp
:004272C5 56                      push esi<---------------------转换后的注册码(序号)
:004272C6 57                      push edi
:004272C7 8B39                    mov edi, dword ptr [ecx]<-----0x67452310
:004272C9 33C0                    xor eax, eax
:004272CB 8BD7                    mov edx, edi<-----------------0x67452310
:004272CD 89442410                mov dword ptr [esp+10], eax<------0
:004272D1 83E20F                  and edx, 0000000F<------------取第2位
:004272D4 C74424140D000000        mov [esp+14], 0000000D<----|
:004272DC 83FA01                  cmp edx, 00000001          |
:004272DF C744241803000000        mov [esp+18], 00000003<----|注意这几个数字
:004272E7 C744241C01000000        mov [esp+1C], 00000001<----|
:004272EF C744242009000000        mov [esp+20], 00000009<----|
:004272F7 C744242405000000        mov [esp+24], 00000005<----|
:004272FF 89442428                mov dword ptr [esp+28], eax
:00427303 736F                    jnb 00427374<---------------------第2位要为0
:00427305 8B7104                  mov esi, dword ptr [ecx+04]<------0xefcdab89
:00427308 8D1452                  lea edx, dword ptr [edx+2*edx]
:0042730B 8BEE                    mov ebp, esi
:0042730D 83E50F                  and ebp, 0000000F<----------------取第10位'9'
:00427310 8D5CD414                lea ebx, dword ptr [esp+8*edx+14]
:00427314 7519                    jne 0042732F
:00427316 F7C6000E0000            test esi, 00000E00
:0042731C 7511                    jne 0042732F
:0042731E F7C7F0FFFF00            test edi, 00FFFFF0
:00427324 7509                    jne 0042732F
:00427326 33D2                    xor edx, edx
:00427328 B907000000              mov ecx, 00000007
:0042732D EB4C                    jmp 0042737B
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00427314(C), :0042731C(C), :00427324(C)
|
:0042732F 8B4B10                  mov ecx, dword ptr [ebx+10]<------0x00000005 用上了
:00427332 8BD6                    mov edx, esi<---------------------0xefcdab89
:00427334 C1EA04                  shr edx, 04<----------------------0xefcdab89>>4==0x0efcdab8
:00427337 8BC6                    mov eax, esi<---------------------0xefcdab89
:00427339 83E21F                  and edx, 0000001F<----------------0x0efcdab8&0x1f==0x18
:0042733C C1E818                  shr eax, 18<----------------------0xefcdab89>>18==0xef
:0042733F D3E2                    shl edx, cl<----------------------0x18<<0x5==0x300
:00427341 8B4B0C                  mov ecx, dword ptr [ebx+0C]<------0x00000009 用上了
:00427344 83E00F                  and eax, 0000000F<----------------取第16位'f'
:00427347 C1EE09                  shr esi, 09<----------------------0xefcdab89>>9==0x77e6d5
:0042734A D3E0                    shl eax, cl<----------------------第16位 0xf<<9==0x1e00
:0042734C 8B4B04                  mov ecx, dword ptr [ebx+04]<------0x00000003 用上了
:0042734F 83E607                  and esi, 00000007<----------------0x77e6d5&0x7==0x5
:00427352 C1EF04                  shr edi, 04<----------------------0x67452310>>4==0x06745231
:00427355 D3E6                    shl esi, cl<----------------------0x5<<0x3==0x28
:00427357 8B4B08                  mov ecx, dword ptr [ebx+08]<------0x00000001 用上了
:0042735A 81E7FFFF0F00            and edi, 000FFFFF<----------------0x06745231&0xfffff==0x45231
:00427360 D3E7                    shl edi, cl<----------------------0x45231<<0x1==0x8a462
:00427362 8B0B                    mov ecx, dword ptr [ebx]<---------0x0000000d 用上了
:00427364 33D0                    xor edx, eax<---------------------0x300^0x1e00==0x1d00
:00427366 D3E5                    shl ebp, cl<----------------------第10位 0x9<<0xd==0x12000
:00427368 8B4C2410                mov ecx, dword ptr [esp+10]<------0
:0042736C 33D6                    xor edx, esi<---------------------0x1d00^0x28==0x1d28
:0042736E 33D7                    xor edx, edi<---------------------0x1d28^0x8a462==0x8b94a
:00427370 33D5                    xor edx, ebp<---------------------0x8b94a^0x12000==0x9994a
:00427372 EB07                    jmp 0042737B
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00427303(C)
|
:00427374 B903000000              mov ecx, 00000003
:00427379 33D2                    xor edx, edx
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0042732D(U), :00427372(U)
|
:0042737B 8B442430                mov eax, dword ptr [esp+30]
:0042737F 5F                      pop edi
:00427380 5E                      pop esi
:00427381 5D                      pop ebp
:00427382 8810                    mov byte ptr [eax], dl<-----------0x4a
:00427384 8B442428                mov eax, dword ptr [esp+28]
:00427388 C1EA08                  shr edx, 08<----------------------0x9994a>>0x8==0x999
:0042738B 81E2FF0F0000            and edx, 00000FFF
:00427391 5B                      pop ebx
:00427392 668910                  mov word ptr [eax], dx<-----------0x999
:00427395 8BC1                    mov eax, ecx
:00427397 83C41C                  add esp, 0000001C
:0042739A C20800                  ret 0008
===============================================================================================
* Referenced by a CALL at Addresses:<-------------------------------CALL (2)
|:00427B01  , :0042882A  , :0042911D 
|
:00427270 8B4104                  mov eax, dword ptr [ecx+04]
:00427273 C1E818                  shr eax, 18
:00427276 83E00F                  and eax, 0000000F<--------------取最后1位,if
:00427279 C3                      ret                            要为1
================================================================================================

* Referenced by a CALL at Addresses:<-------------------------------CALL (3)
|:00427B0F  , :00428846  , :0042913C 
|
:00427250 8B4104                  mov eax, dword ptr [ecx+04]
:00427253 83E00F                  and eax, 0000000F
:00427256 83C041                  add eax, 00000041<-------------i9+0x41==0x4e
:00427259 C3                      ret                            i9==0xd
================================================================================================
文中程序所查的表:
\  0 1 2 3 4 5 6 7 8 9 A B C D E F   
0: A B C D E F G H I J K L M N O P
1: Q R S T U V W X Y A B C D E F G<-----------有没有发现少了点什么
2: H I J K L M N O P Q R S T U V W
3: X Y Z A B C D E F G H I J K L M
4: N O P Q R S T U V W X Y Z A B C

注册码:i0 i1 i2 i3 i4  - i5 i6 i7 i8 i9 - ia ib ic - id ie if <-------共16位
注册码: B  Q  J  A  R  - F  W  O  F  W  - K  C  T  - K  B  P <--------原来输入的注册码
序号:  1  0  2  3  4    5  6  7  8  9    a  b  c    d  e  f <--------这样比较容易看出是那一位 
   
       
已知: i1==0,i9==0xd,if==1
假设: i0==1,i2==1,i3==1,i4==1,i5==1,i8==0,ib==0,ie==0
则:  (1) 0xi4i5i2i3i0<<1==0xi4i5i2i3i0*2==0x11111*0x2==0x22222
      (2) 0xif<<0x9==0xif*0x200==0x1*0x200==0x200
      (3) i9<<0xd==0xi9*0x2000==0xd*0x2000==0x1a000
      (4) 0xi8<<0x5==0xi8*0x20==0x0
      (5) (0xieificidiaibi8i9>>0x9)&0x7==>(0xib/2)&0x7==0
      (6) (((0x200 xor 0) xor 0) xor 0x22222) xor 0x1a000==0xicidiai6i7==0x38022
       
所以:  i0 i1 i2 i3 i4  - i5 i6 i7 i8 i9 - ia ib ic - id ie if
序号:  1  0  1  1  1    1  2  2  0  d    0  0  3    8  0  1
注册码: B  Q  I  Y  O  - B  S  J  X  A  - A  Q  K  - F  N  B

            ,;~;,
                /\_
              (  /
              (()      //)
              | \\  ,,;;'\
          __ _(  )m=(lancelot(================--------
        /'  ' '()/~' '.(, |
      ,;(      )||    |  ~
    ,;' \    /-(.;,  )            兰斯洛特[CCG][FCG]
          ) /      ) /
        //        ||                      2001.09.18
        )_\        )_\

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

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

0 0 0 举报
复制成功