飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3253|回复: 4

[原创] 文件批量复制工具 2.0注册算法浅析

[复制链接]

该用户从未签到

发表于 2008-8-6 10:40:27 | 显示全部楼层 |阅读模式
【文章标题】: 文件批量复制工具 2.0注册算法浅析
【文章作者】: 蚊香/magic659117852
【作者邮箱】: xpi386com@gmail.com
【作者主页】: http://www.xpi386.com
【软件大小】: 803KB
【下载地址】: http://www.newhua.com/soft/70381.htm
【保护方式】: 注册码
【编写语言】: Borland Delphi
【使用工具】: PEiD OllyDBG
【操作平台】: D版XP-SP2
【软件介绍】: 可以一次性将多个文件复制到多个目录下的工具。
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  1. 0048AA18  /.  55            push    ebp                              ;  通过查找字符串在此下断
  2.   0048AA19  |.  8BEC          mov     ebp, esp                         ;  F9运行,输入123456789012试注册
  3.   0048AA1B  |.  81C4 E0FEFFFF add     esp, -120
  4.   0048AA21  |.  53            push    ebx
  5.   0048AA22  |.  56            push    esi
  6.   0048AA23  |.  57            push    edi
  7.   0048AA24  |.  33C9          xor     ecx, ecx
  8.   0048AA26  |.  898D E0FEFFFF mov     dword ptr [ebp-120], ecx
  9.   0048AA2C  |.  898D E4FEFFFF mov     dword ptr [ebp-11C], ecx
  10.   0048AA32  |.  898D E8FEFFFF mov     dword ptr [ebp-118], ecx
  11.   0048AA38  |.  898D ECFEFFFF mov     dword ptr [ebp-114], ecx
  12.   0048AA3E  |.  898D F0FEFFFF mov     dword ptr [ebp-110], ecx
  13.   0048AA44  |.  898D F4FEFFFF mov     dword ptr [ebp-10C], ecx
  14.   0048AA4A  |.  8BD8          mov     ebx, eax
  15.   0048AA4C  |.  33C0          xor     eax, eax
  16.   0048AA4E  |.  55            push    ebp
  17.   0048AA4F  |.  68 E1AB4800   push    0048ABE1
  18.   0048AA54  |.  64:FF30       push    dword ptr fs:[eax]
  19.   0048AA57  |.  64:8920       mov     dword ptr fs:[eax], esp
  20.   0048AA5A  |.  8D95 F4FEFFFF lea     edx, dword ptr [ebp-10C]
  21.   0048AA60  |.  8B83 FC020000 mov     eax, dword ptr [ebx+2FC]
  22.   0048AA66  |.  E8 E5F9FCFF   call    0045A450                         ;  试练码长度
  23.   0048AA6B  |.  8B85 F4FEFFFF mov     eax, dword ptr [ebp-10C]
  24.   0048AA71  |.  E8 FA060000   call    0048B170                         ;  算法CALL,F7进
  25.   0048AA76  |.  84C0          test    al, al
  26.   0048AA78  |.  0F84 DF000000 je      0048AB5D                         ;  关键跳,跳则挂
  27.   0048AA7E  |.  A1 F0E34800   mov     eax, dword ptr [48E3F0]
  28.   0048AA83  |.  C600 01       mov     byte ptr [eax], 1
  29.   0048AA86  |.  8D95 F0FEFFFF lea     edx, dword ptr [ebp-110]
  30.   0048AA8C  |.  8B83 FC020000 mov     eax, dword ptr [ebx+2FC]
  31.   0048AA92  |.  E8 B9F9FCFF   call    0045A450
  32.   0048AA97  |.  8B95 F0FEFFFF mov     edx, dword ptr [ebp-110]
  33.   0048AA9D  |.  A1 18E44800   mov     eax, dword ptr [48E418]
  34.   0048AAA2  |.  E8 8195F7FF   call    00404028
  35.   0048AAA7  |.  68 05010000   push    105                              ; /BufSize = 105 (261.)
  36.   0048AAAC  |.  8D85 FBFEFFFF lea     eax, dword ptr [ebp-105]         ; |
  37.   0048AAB2  |.  50            push    eax                              ; |Buffer
  38.   0048AAB3  |.  E8 7CBAF7FF   call    <jmp.&kernel32.GetSystemDirector>; \GetSystemDirectoryA
  39.   0048AAB8  |.  8D85 ECFEFFFF lea     eax, dword ptr [ebp-114]
  40.   0048AABE  |.  8D95 FBFEFFFF lea     edx, dword ptr [ebp-105]
  41.   0048AAC4  |.  B9 05010000   mov     ecx, 105
  42.   0048AAC9  |.  E8 7697F7FF   call    00404244
  43.   0048AACE  |.  8D85 ECFEFFFF lea     eax, dword ptr [ebp-114]
  44.   0048AAD4  |.  BA F8AB4800   mov     edx, 0048ABF8                    ;  \supercopy.ini
  45.   0048AAD9  |.  E8 BE97F7FF   call    0040429C                         ;  注册码保存位置 C:\WINDOWS\system32

  46. \SuperCopy.ini
  47.   0048AADE  |.  8B8D ECFEFFFF mov     ecx, dword ptr [ebp-114]
  48.   0048AAE4  |.  B2 01         mov     dl, 1
  49.   0048AAE6  |.  A1 FC554300   mov     eax, dword ptr [4355FC]
  50.   0048AAEB  |.  E8 BCABFAFF   call    004356AC
  51.   0048AAF0  |.  8BF0          mov     esi, eax
  52.   0048AAF2  |.  8D95 E8FEFFFF lea     edx, dword ptr [ebp-118]
  53.   0048AAF8  |.  8B83 FC020000 mov     eax, dword ptr [ebx+2FC]
  54.   0048AAFE  |.  E8 4DF9FCFF   call    0045A450
  55.   0048AB03  |.  8B85 E8FEFFFF mov     eax, dword ptr [ebp-118]
  56.   0048AB09  |.  50            push    eax
  57.   0048AB0A  |.  B9 10AC4800   mov     ecx, 0048AC10                    ;  key
  58.   0048AB0F  |.  BA 1CAC4800   mov     edx, 0048AC1C                    ;  regcode
  59.   0048AB14  |.  8BC6          mov     eax, esi
  60.   0048AB16  |.  8B38          mov     edi, dword ptr [eax]
  61.   0048AB18  |.  FF57 04       call    dword ptr [edi+4]
  62.   0048AB1B  |.  8BC6          mov     eax, esi
  63.   0048AB1D  |.  E8 9E86F7FF   call    004031C0
  64.   0048AB22  |.  6A 40         push    40
  65.   0048AB24  |.  8D95 E4FEFFFF lea     edx, dword ptr [ebp-11C]
  66.   0048AB2A  |.  A1 A4E64800   mov     eax, dword ptr [48E6A4]
  67.   0048AB2F  |.  8B00          mov     eax, dword ptr [eax]
  68.   0048AB31  |.  E8 B6F2FEFF   call    00479DEC
  69.   0048AB36  |.  8B85 E4FEFFFF mov     eax, dword ptr [ebp-11C]
  70.   0048AB3C  |.  E8 5399F7FF   call    00404494
  71.   0048AB41  |.  50            push    eax
  72.   0048AB42  |.  68 24AC4800   push    0048AC24                         ;  注册成功!
  73.   0048AB47  |.  8BC3          mov     eax, ebx
  74.   0048AB49  |.  E8 2261FDFF   call    00460C70
  75.   0048AB4E  |.  50            push    eax                              ; |hOwner
  76.   0048AB4F  |.  E8 28C1F7FF   call    <jmp.&user32.MessageBoxA>        ; \MessageBoxA
  77.   0048AB54  |.  8BC3          mov     eax, ebx
  78.   0048AB56  |.  E8 3DC0FEFF   call    00476B98
  79.   0048AB5B  |.  EB 40         jmp     short 0048AB9D
  80.   0048AB5D  |>  6A 40         push    40
  81.   0048AB5F  |.  8D95 E0FEFFFF lea     edx, dword ptr [ebp-120]
  82.   0048AB65  |.  A1 A4E64800   mov     eax, dword ptr [48E6A4]
  83.   0048AB6A  |.  8B00          mov     eax, dword ptr [eax]
  84.   0048AB6C  |.  E8 7BF2FEFF   call    00479DEC
  85.   0048AB71  |.  8B85 E0FEFFFF mov     eax, dword ptr [ebp-120]
  86.   0048AB77  |.  E8 1899F7FF   call    00404494
  87.   0048AB7C  |.  50            push    eax
  88.   0048AB7D  |.  68 30AC4800   push    0048AC30                         ;  注册码错误,请重新输入!
  89.   0048AB82  |.  8BC3          mov     eax, ebx
  90.   0048AB84  |.  E8 E760FDFF   call    00460C70
  91.   0048AB89  |.  50            push    eax                              ; |hOwner
  92.   0048AB8A  |.  E8 EDC0F7FF   call    <jmp.&user32.MessageBoxA>        ; \MessageBoxA
  93.   0048AB8F  |.  8B83 FC020000 mov     eax, dword ptr [ebx+2FC]
  94.   0048AB95  |.  8B10          mov     edx, dword ptr [eax]
  95.   0048AB97  |.  FF92 C4000000 call    dword ptr [edx+C4]
  96.   0048AB9D  |>  33C0          xor     eax, eax
  97.   0048AB9F  |.  5A            pop     edx
  98.   0048ABA0  |.  59            pop     ecx
  99.   0048ABA1  |.  59            pop     ecx
  100.   0048ABA2  |.  64:8910       mov     dword ptr fs:[eax], edx
  101.   0048ABA5  |.  68 E8AB4800   push    0048ABE8
  102.   0048ABAA  |>  8D85 E0FEFFFF lea     eax, dword ptr [ebp-120]
  103.   0048ABB0  |.  BA 02000000   mov     edx, 2
  104.   0048ABB5  |.  E8 3E94F7FF   call    00403FF8
  105.   0048ABBA  |.  8D85 E8FEFFFF lea     eax, dword ptr [ebp-118]
  106.   0048ABC0  |.  E8 0F94F7FF   call    00403FD4
  107.   0048ABC5  |.  8D85 ECFEFFFF lea     eax, dword ptr [ebp-114]
  108.   0048ABCB  |.  E8 0494F7FF   call    00403FD4
  109.   0048ABD0  |.  8D85 F0FEFFFF lea     eax, dword ptr [ebp-110]
  110.   0048ABD6  |.  BA 02000000   mov     edx, 2
  111.   0048ABDB  |.  E8 1894F7FF   call    00403FF8
  112.   0048ABE0  \.  C3            retn
  113.   0048ABE1   .^ E9 6E8DF7FF   jmp     00403954
  114.   0048ABE6   .^ EB C2         jmp     short 0048ABAA
  115.   0048ABE8   .  5F            pop     edi
  116.   0048ABE9   .  5E            pop     esi
  117.   0048ABEA   >  5B            pop     ebx
  118.   0048ABEB   .  8BE5          mov     esp, ebp
  119.   0048ABED   .  5D            pop     ebp
  120.   0048ABEE   .  C3            retn
复制代码
进入算法CALL 0048AA71
  1. 0048B170      55            push    ebp                              ;  直接在此赋1给AL后返回可实现爆破
  2.   0048B171      8BEC          mov     ebp, esp
  3.   0048B173      51            push    ecx
  4.   0048B174  |.  53            push    ebx
  5.   0048B175  |.  8945 FC       mov     dword ptr [ebp-4], eax
  6.   0048B178  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
  7.   0048B17B  |.  E8 0493F7FF   call    00404484
  8.   0048B180  |.  33C0          xor     eax, eax
  9.   0048B182  |.  55            push    ebp
  10.   0048B183  |.  68 DBB14800   push    0048B1DB
  11.   0048B188  |.  64:FF30       push    dword ptr fs:[eax]
  12.   0048B18B  |.  64:8920       mov     dword ptr fs:[eax], esp
  13.   0048B18E  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
  14.   0048B191  |.  E8 FE90F7FF   call    00404294                         ;  注册码长度
  15.   0048B196  |.  83F8 0C       cmp     eax, 0C                          ;  必须为12位
  16.   0048B199  |.  74 04         je      short 0048B19F
  17.   0048B19B  |.  33DB          xor     ebx, ebx
  18.   0048B19D  |.  EB 26         jmp     short 0048B1C5
  19.   0048B19F  |>  BB 05000000   mov     ebx, 5                           ;  EBX=5
  20.   0048B1A4  |>  8B45 FC       /mov     eax, dword ptr [ebp-4]
  21.   0048B1A7  |.  8A4418 FF     |mov     al, byte ptr [eax+ebx-1]        ;  依次取试练码的5-8位
  22.   0048B1AB  |.  E8 60FFFFFF   |call    0048B110                        ;  查表
  23.   0048B1B0  |.  8B55 FC       |mov     edx, dword ptr [ebp-4]
  24.   0048B1B3  |.  3A441A 03     |cmp     al, byte ptr [edx+ebx+3]        ;  查表所得分别依次与试练码的9-12位比较
  25.   0048B1B7  |.  74 04         |je      short 0048B1BD                  ;  遇不相同则跳向失败
  26.   0048B1B9  |.  33DB          |xor     ebx, ebx
  27.   0048B1BB  |.  EB 08         |jmp     short 0048B1C5
  28.   0048B1BD      43            |inc     ebx
  29.   0048B1BE      83FB 09       |cmp     ebx, 9
  30.   0048B1C1    ^ 75 E1         \jnz     short 0048B1A4                  ;  循环4次
  31.   0048B1C3      B3 01         mov     bl, 1                            ;  关键赋值
  32.   0048B1C5      33C0          xor     eax, eax
  33.   0048B1C7      5A            pop     edx
  34.   0048B1C8      59            pop     ecx
  35.   0048B1C9      59            pop     ecx
  36.   0048B1CA  |.  64:8910       mov     dword ptr fs:[eax], edx
  37.   0048B1CD  |.  68 E2B14800   push    0048B1E2
  38.   0048B1D2  |>  8D45 FC       lea     eax, dword ptr [ebp-4]
  39.   0048B1D5      E8 FA8DF7FF   call    00403FD4
  40.   0048B1DA      C3            retn
  41.   0048B1DB    ^ E9 7487F7FF   jmp     00403954
  42.   0048B1E0    ^ EB F0         jmp     short 0048B1D2
  43.   0048B1E2      8BC3          mov     eax, ebx                         ;  关键传递
  44.   0048B1E4      5B            pop     ebx
  45.   0048B1E5      59            pop     ecx
  46.   0048B1E6      5D            pop     ebp
  47.   0048B1E7      C3            retn
复制代码
0048B1AB处表内容为:
  1. 0048B14C  |> \B0 38         mov     al, 38                           ;  Case 30 ('0') of switch 0048B115
  2.   0048B14E  |.  C3            retn
  3.   0048B14F  |>  B0 36         mov     al, 36                           ;  Case 31 ('1') of switch 0048B115
  4.   0048B151  |.  C3            retn
  5.   0048B152  |>  B0 34         mov     al, 34                           ;  Case 32 ('2') of switch 0048B115
  6.   0048B154  |.  C3            retn
  7.   0048B155  |>  B0 30         mov     al, 30                           ;  Case 33 ('3') of switch 0048B115
  8.   0048B157  |.  C3            retn
  9.   0048B158  |>  B0 35         mov     al, 35                           ;  Case 34 ('4') of switch 0048B115
  10.   0048B15A  |.  C3            retn
  11.   0048B15B  |>  B0 32         mov     al, 32                           ;  Case 35 ('5') of switch 0048B115
  12.   0048B15D  |.  C3            retn
  13.   0048B15E  |>  B0 39         mov     al, 39                           ;  Case 36 ('6') of switch 0048B115
  14.   0048B160  |.  C3            retn
  15.   0048B161  |>  B0 31         mov     al, 31                           ;  Case 37 ('7') of switch 0048B115
  16.   0048B163  |.  C3            retn
  17.   0048B164  |>  B0 33         mov     al, 33                           ;  Case 38 ('8') of switch 0048B115
  18.   0048B166  |.  C3            retn
  19.   0048B167  |>  B0 37         mov     al, 37                           ;  Case 39 ('9') of switch 0048B115
  20.   0048B169  |.  C3            retn
复制代码
--------------------------------------------------------------------------------
【算法总结】
  注册码12位,前4位任意。
  5-8位根据以下规则转换成另一个数字:
  0 → 8
  1 → 6
  2 → 4
  3 → 0
  4 → 5
  5 → 2
  6 → 9
  7 → 1
  8 → 3
  9 → 7
  转换后的5-8位分别依次与9-12位比较,均相等则注册成功(例如:123456782913)。注册码保存到C:\WINDOWS\system32

\SuperCopy.ini
  
  算号器源码(VB Code):
  Private Sub Command1_Click()
  Randomize
  X1 = Int(Rnd * 90000000) + 10000000
  Text1.Text = X1
  For i = 5 To 8
  temp = Mid(Text1.Text, i, 1)
  Select Case temp
  Case 0
  sn = sn & 8
  Case 1
  sn = sn & 6
  Case 2
  sn = sn & 4
  Case 3
  sn = sn & 0
  Case 4
  sn = sn & 5
  Case 5
  sn = sn & 2
  Case 6
  sn = sn & 9
  Case 7
  sn = sn & 1
  Case 8
  sn = sn & 3
  Case 9
  sn = sn & 7
  End Select
  Next
  Text1.Text = X1 & sn
  End Sub
  
  VB6.0精简版测试通过~~~~~~~
  
--------------------------------------------------------------------------------
【版权声明】: 本文 蚊香 原创, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2008年08月06日 上午 10:12:22

KG.rar

3.24 KB, 下载次数: 2, 下载积分: 飘云币 -2 枚

评分

参与人数 1威望 +20 飘云币 +40 收起 理由
tianxj + 20 + 40 您发布的主题属于精品!

查看全部评分

PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-12-18 12:34
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2008-8-6 18:06:05 | 显示全部楼层
    写的不错,学习了。
    PYG19周年生日快乐!
  • TA的每日心情
    郁闷
    2017-10-30 11:22
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2008-9-18 14:31:44 | 显示全部楼层
    写的不错,学习了。
    PYG19周年生日快乐!
  • TA的每日心情
    郁闷
    2017-10-30 11:22
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2008-9-18 14:32:32 | 显示全部楼层
    不错啊,,学习了一下啊
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2015-12-6 20:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-9-18 16:14:21 | 显示全部楼层
    这个写的不错,挺详细,支持一下
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表