欢迎来到 嗅灵易学

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

补充详细注解~~~~新手参考~~~~~高手请指点~~~~~~~~多谢大家~~~~ (14千字)

补充详细注解~~~~新手参考~~~~~高手请指点~~~~~~~~多谢大家~~~~ (14千字)

不好意思上次漏掉些重要的东西~~~~~这次补上~~~~~~可能写得太多太罗嗦啦~~~请不要见怪~~~因为这是我一边跟一边写的~~~所以很详细~~~~毕竟我是新手嘛~~~~很多不懂的都要作下记录~~~而且也想让一些新手看得懂~~~现丑啦~~我跟的部分是注册码运算的过程~~~~至于核心判断的地方我还没找到~~~应该在下面的好几个call当中~~~但我功力有限~~~~只能先去补习补习~~~~还请各位高手跟下去~~~~~~先多谢啦~~~~~~

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041A734(C)
|
:0041A739 C1FA02                  sar edx, 02
:0041A73C 8955BC                  mov dword ptr [ebp-44], edx
:0041A73F 33C9                    xor ecx, ecx
:0041A741 894DB0                  mov dword ptr [ebp-50], ecx
:0041A744 8B45B0                  mov eax, dword ptr [ebp-50]
:0041A747 3B45BC                  cmp eax, dword ptr [ebp-44]
:0041A74A 0F8DC1000000            jnl 0041A811
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041A80B(C)
|
:0041A750 8B55C8                  mov edx, dword ptr [ebp-38]
:0041A753 8B4DB0                  mov ecx, dword ptr [ebp-50]        假注册码首位数
:0041A756 8A048A                  mov al, byte ptr [edx+4*ecx]  <----我用的是67676767
:0041A759 04D0                    add al, D0                    <----36=>6                      :0041A75B 8B55C8                  mov edx, dword ptr [ebp-38]    <----注册码地址C74454=>edx
:0041A75E 8B4DB0                  mov ecx, dword ptr [ebp-50]    <----0=>ecx
:0041A761 8A548A01                mov dl, byte ptr [edx+4*ecx+01]<----假注册码第二位edx=C74437
:0041A765 80C2D0                  add dl, D0                    <----edx=C74407
:0041A768 C1E206                  shl edx, 06                    <----edx=31D101C0
:0041A76B 0AC2                    or al, dl                      <----eax=000000C6
:0041A76D 8B4DB0                  mov ecx, dword ptr [ebp-50]
:0041A770 8D0C49                  lea ecx, dword ptr [ecx+2*ecx]
:0041A773 8B55C0                  mov edx, dword ptr [ebp-40]
:0041A776 88040A                  mov byte ptr [edx+ecx], al    <----结果写入地址C8C604
:0041A779 8B45BC                  mov eax, dword ptr [ebp-44]    <----eax=2
:0041A77C 85C0                    test eax, eax
:0041A77E 7903                    jns 0041A783                  <----Jump!
:0041A780 83C003                  add eax, 00000003
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041A77E(C)
|
:0041A783 C1F802                  sar eax, 02
:0041A786 8D0C40                  lea ecx, dword ptr [eax+2*eax] <----0
:0041A789 41                      inc ecx
:0041A78A 83C104                  add ecx, 00000004              <----5
:0041A78D 894D9C                  mov dword ptr [ebp-64], ecx    <----地址74F928
:0041A790 33C0                    xor eax, eax
:0041A792 8945A0                  mov dword ptr [ebp-60], eax
:0041A795 DF6D9C                  fild qword ptr [ebp-64]    -----|此处何解
:0041A798 DC0524AA4100            fadd qword ptr [0041AA24]      |是否浮点<--46BACF74
:0041A79E DD5DA4                  fstp qword ptr [ebp-5C]    -----|运算??<--E23C5905
:0041A7A1 8B55C8                  mov edx, dword ptr [ebp-38]
:0041A7A4 8B4DB0                  mov ecx, dword ptr [ebp-50]
:0041A7A7 33C0                    xor eax, eax
:0041A7A9 8A448A01                mov al, byte ptr [edx+4*ecx+01]<----注册码第二位7
:0041A7AD 83C0D0                  add eax, FFFFFFD0              <----37=>6
:0041A7B0 C1F802                  sar eax, 02                    <----eax=1
:0041A7B3 8B55C8                  mov edx, dword ptr [ebp-38]
:0041A7B6 8B4DB0                  mov ecx, dword ptr [ebp-50]
:0041A7B9 8A548A02                mov dl, byte ptr [edx+4*ecx+02]<----注册码第三位6
:0041A7BD 80C2D0                  add dl, D0                    <----edx=00C74406
:0041A7C0 C1E204                  shl edx, 04                    <----edx=0C744060
:0041A7C3 0AC2                    or al, dl                      <----eax=61
:0041A7C5 8B4DB0                  mov ecx, dword ptr [ebp-50]   
:0041A7C8 8D0C49                  lea ecx, dword ptr [ecx+2*ecx]
:0041A7CB 8B55C0                  mov edx, dword ptr [ebp-40]
:0041A7CE 88440A01                mov byte ptr [edx+ecx+01], al  <----地址C8C604
:0041A7D2 8B45C8                  mov eax, dword ptr [ebp-38]
:0041A7D5 8B4DB0                  mov ecx, dword ptr [ebp-50]
:0041A7D8 0FB6448802              movzx eax, byte ptr [eax+4*ecx+02]<----注册码第三位6
:0041A7DD 83C0D0                  add eax, FFFFFFD0              <----36=>6
:0041A7E0 C1F804                  sar eax, 04                    <----eax=0
:0041A7E3 8B55C8                  mov edx, dword ptr [ebp-38]
:0041A7E6 8B4DB0                  mov ecx, dword ptr [ebp-50]
:0041A7E9 8A548A03                mov dl, byte ptr [edx+4*ecx+03]<----注册码第四位7
:0041A7ED 80C2D0                  add dl, D0                    <----edx=00C74407
:0041A7F0 C1E202                  shl edx, 02                    <----edx=31D101C
:0041A7F3 0AC2                    or al, dl                      <----eax=1C
:0041A7F5 8B4DB0                  mov ecx, dword ptr [ebp-50]
:0041A7F8 8D0C49                  lea ecx, dword ptr [ecx+2*ecx]
:0041A7FB 8B55C0                  mov edx, dword ptr [ebp-40]
:0041A7FE 88440A02                mov byte ptr [edx+ecx+02], al
:0041A802 FF45B0                  inc [ebp-50]
:0041A805 8B45B0                  mov eax, dword ptr [ebp-50]    <----eax=1
:0041A808 3B45BC                  cmp eax, dword ptr [ebp-44]    <----[ebp-44]=2
:0041A80B 0F8C3FFFFFFF            jl 0041A750                    <----小于2就跳了程序将我后四位注册
                                                                      用同样方法运算最后得结果放在
                                                                      地址C8C604中结果是:
                                                                      C6 61 1C C6 61 1C---结果1

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041A74A(C)
|
:0041A811 8B4DBC                  mov ecx, dword ptr [ebp-44]
:0041A814 8D0C49                  lea ecx, dword ptr [ecx+2*ecx] <----ecx=6
:0041A817 894DBC                  mov dword ptr [ebp-44], ecx
:0041A81A 8B45B8                  mov eax, dword ptr [ebp-48]    <----eax=A
:0041A81D 0345BC                  add eax, dword ptr [ebp-44]    <----eax=10
:0041A820 8945B4                  mov dword ptr [ebp-4C], eax
:0041A823 8B55B4                  mov edx, dword ptr [ebp-4C]
:0041A826 4A                      dec edx
:0041A827 8955B0                  mov dword ptr [ebp-50], edx
:0041A82A 837DB000                cmp dword ptr [ebp-50], 00000000 <--F cmp 0
:0041A82E 0F8CC4000000            jl 0041A8F8                    <----小于0就跳
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041A8F2(C)
|
:0041A834 33C9                    xor ecx, ecx
:0041A836 894DAC                  mov dword ptr [ebp-54], ecx
:0041A839 EB36                    jmp 0041A871                  <----Jump!!
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041A878(C)
|
:0041A83B 8B45AC                  mov eax, dword ptr [ebp-54]<---eax=0
:0041A83E 0345B0                  add eax, dword ptr [ebp-50]<---eax=F
:0041A841 99                      cdq
:0041A842 F77DB8                  idiv [ebp-48]              <---F mod A=>edx=5
:0041A845 8B4DC4                  mov ecx, dword ptr [ebp-3C]<---ecx=C7Bd50
                                                                d ecx->060347221N----字串1
:0041A848 8B45C0                  mov eax, dword ptr [ebp-40]<---上面运算结果1的地址
:0041A84B 8B5DAC                  mov ebx, dword ptr [ebp-54]
:0041A84E 0FB6441801              movzx eax, byte ptr [eax+ebx+01]<---结果1的第二位61
:0041A853 0FAF45B0                imul eax, dword ptr [ebp-50]    <---61*F=5AF
:0041A857 8B5DC0                  mov ebx, dword ptr [ebp-40]
:0041A85A 8B75AC                  mov esi, dword ptr [ebp-54]
:0041A85D 8A1C33                  mov bl, byte ptr [ebx+esi] <---结果1的第一位C6=>ebx=C8C6C6
:0041A860 2AD8                    sub bl, al                <---C6-AF=17
:0041A862 2A1C11                  sub bl, byte ptr [ecx+edx] <---17-37=E0(bl减字串1的第6位)
:0041A865 8B45C0                  mov eax, dword ptr [ebp-40]
:0041A868 8B55AC                  mov edx, dword ptr [ebp-54]
:0041A86B 881C10                  mov byte ptr [eax+edx], bl <---将E0放入结果1的首地址中
:0041A86E FF45AC                  inc [ebp-54]              <---加1
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041A839(U)
|
:0041A871 8B4DBC                  mov ecx, dword ptr [ebp-44]<----ecx=6
:0041A874 49                      dec ecx
:0041A875 3B4DAC                  cmp ecx, dword ptr [ebp-54]<----5 cmp 0
:0041A878 7FC1                    jg 0041A83B                <----大于就跳,循环5次最后结果放在结
                                                                  果1的地址里结果是:E0 8B 50 E6 6F
                                                                  1C(最后一位仍有用)----结果2
:0041A87A 8B45BC                  mov eax, dword ptr [ebp-44]<----eax=6
:0041A87D 85C0                    test eax, eax
:0041A87F 7903                    jns 0041A884              <----Jump!!!
:0041A881 83C003                  add eax, 00000003
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041A87F(C)
|
:0041A884 C1F802                  sar eax, 02                  <---eax=1
:0041A887 8D1440                  lea edx, dword ptr [eax+2*eax]<---edx=3
:0041A88A 42                      inc edx
:0041A88B 83C204                  add edx, 00000004
:0041A88E 89559C                  mov dword ptr [ebp-64], edx  <---edx=8
:0041A891 33C9                    xor ecx, ecx
:0041A893 894DA0                  mov dword ptr [ebp-60], ecx
:0041A896 DF6D9C                  fild qword ptr [ebp-64]    <---这三个地址里的数是(我不懂结果):8
:0041A899 DC0524AA4100            fadd qword ptr [0041AA24]  <---46BACF74
:0041A89F DD5DA4                  fstp qword ptr [ebp-5C]    <---A35D67BA
:0041A8A2 8B45BC                  mov eax, dword ptr [ebp-44]
:0041A8A5 48                      dec eax
:0041A8A6 8945AC                  mov dword ptr [ebp-54], eax<---eax=5
:0041A8A9 837DAC00                cmp dword ptr [ebp-54], 00000000
:0041A8AD 7E3C                    jle 0041A8EB              <---小于或等于就跳
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041A8E9(C)
|
:0041A8AF 8B45AC                  mov eax, dword ptr [ebp-54] <---eax=5
:0041A8B2 0345B0                  add eax, dword ptr [ebp-50] <---5+F=14
:0041A8B5 99                      cdq
:0041A8B6 F77DB8                  idiv [ebp-48]              <---14/A=>edx=0
:0041A8B9 8B4DC4                  mov ecx, dword ptr [ebp-3C] <---字串1首地址C7Bd50
:0041A8BC 8B45C0                  mov eax, dword ptr [ebp-40]
:0041A8BF 8B5DAC                  mov ebx, dword ptr [ebp-54]
:0041A8C2 0FB64418FF              movzx eax, byte ptr [eax+ebx-01]<---结果2第五位 eax=6F
:0041A8C7 0FAF45B0                imul eax, dword ptr [ebp-50]    <---6F*F=681
:0041A8CB 8B5DC0                  mov ebx, dword ptr [ebp-40]
:0041A8CE 8B75AC                  mov esi, dword ptr [ebp-54]
:0041A8D1 8A1C33                  mov bl, byte ptr [ebx+esi]      <---结果2最后一位ebx=C8C61C
:0041A8D4 2AD8                    sub bl, al                      <---1C-81=9B
:0041A8D6 2A1C11                  sub bl, byte ptr [ecx+edx]      <---9B-30=6B(bl减字串1的第1位)
                                                                      第二次是减字串1的最后一位第
                                                                      三次是第9位第四次第8位第五次                                                                      第7位
:0041A8D9 8B45C0                  mov eax, dword ptr [ebp-40]
:0041A8DC 8B55AC                  mov edx, dword ptr [ebp-54]
:0041A8DF 881C10                  mov byte ptr [eax+edx], bl  <---将结果放入结果1的地址最后一位里
:0041A8E2 FF4DAC                  dec [ebp-54]
:0041A8E5 837DAC00                cmp dword ptr [ebp-54], 00000000<---4
:0041A8E9 7FC4                    jg 0041A8AF                <---大于就跳
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041A8AD(C)
|
:0041A8EB FF4DB0                  dec [ebp-50]                <---F-1
:0041A8EE 837DB000                cmp dword ptr [ebp-50], 00000000
:0041A8F2 0F8D3CFFFFFF            jnl 0041A834                <---跳了,循环15次最后结果是:
                                                                  AF EB 75 01 F6 EA---结果3
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041A82E(C)
|
:0041A8F8 6A04                    push 00000004
:0041A8FA FF75C0                  push [ebp-40]
:0041A8FD 8D4DB8                  lea ecx, dword ptr [ebp-48]
:0041A900 51                      push ecx
:0041A901 E812BF0800              call 004A6818  <-----此call将运算结果放到74F944里,但程序只取了                                                        前四个字,以下的比较搞不懂
:0041A906 83C40C                  add esp, 0000000C
:0041A909 8B45B8                  mov eax, dword ptr [ebp-48]<---01 75 EB AF(结果3)
:0041A90C 3B45BC                  cmp eax, dword ptr [ebp-44]<---00 00 00 06
:0041A90F 7E08                    jle 0041A919              <--此处和下面的比较不知是否
                                                                是关键,我改动后没结果下面的几个                                                                call可能才是关键,我有时间再跟下去
:0041A911 8B55BC                  mov edx, dword ptr [ebp-44]
:0041A914 8955B8                  mov dword ptr [ebp-48], edx
:0041A917 EB0B                    jmp 0041A924
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041A90F(C)
|
:0041A919 837DB800                cmp dword ptr [ebp-48], 00000000
:0041A91D 7D05                    jge 0041A924
:0041A91F 33C9                    xor ecx, ecx
:0041A921 894DB8                  mov dword ptr [ebp-48], ecx
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0041A917(U), :0041A91D(C)
|
:0041A924 8B45C0                  mov eax, dword ptr [ebp-40]
:0041A927 8B55B8                  mov edx, dword ptr [ebp-48]
:0041A92A C644100400              mov [eax+edx+04], 00
:0041A92F 66C745DC2000            mov [ebp-24], 0020
:0041A935 DD45A4                  fld qword ptr [ebp-5C]
:0041A938 DC0D1CAA4100            fmul qword ptr [0041AA1C]
:0041A93E DD5DA4                  fstp qword ptr [ebp-5C]
:0041A941 66C745DC2C00            mov [ebp-24], 002C
:0041A947 8B55C0                  mov edx, dword ptr [ebp-40]
:0041A94A 83C204                  add edx, 00000004
:0041A94D 8D45F4                  lea eax, dword ptr [ebp-0C]
:0041A950 E857900900              call 004B39AC            <---此call将结果3后两位数进行处理,不过
                                                              太复杂啦,搞不清楚~~~~~~

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

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

0 0 0 举报
复制成功