飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2867|回复: 3

优盘搬运工 V2.3 算法分析

[复制链接]
  • TA的每日心情
    慵懒
    2019-1-18 17:27
  • 签到天数: 30 天

    [LV.5]常住居民I

    发表于 2006-4-17 07:46:35 | 显示全部楼层 |阅读模式
    【文章标题】: 优盘搬运工 V2.3 算法分析
    【文章作者】: lzq1973[PYG][CZG][OCN]
    【作者邮箱】: lzq9888@126.com
    【作者QQ号】: 150787972
    【软件名称】: 优盘搬运工 2.3
    【软件大小】: 2039KB
    【下载地址】: http://nj.onlinedown.net/soft/46244.htm
    【加壳方式】: ASPack 2.12 -> Alexey Solodovnikov
    【保护方式】: SN
    【编写语言】: Borland Delphi 6.0 - 7.0
    【使用工具】: OD、PEID
    【操作平台】: WIN2000
    【软件介绍】:     软件时刻监控电脑USB端口,对所有插入的移动存贮设备(优盘、移动硬盘、读卡器)进行操作,依据预先设置把搜索到的符合条件的文件转移到电脑指定位置。
    软件采用多线程高速拷贝,智能识别分拣文件。
    软件有两种方式启动拷贝操作:
    一种是监测到移动存贮设备后自动拷贝,一种是软件启动后立即进行拷贝操作。
    完成拷贝操作后可根据设置自动打开目标文件夹或自动卸载移动存贮设备。

    软件运行后隐藏在后台,设置或关闭时请用热键呼出:
    默认热键为: Ctrl+Alt+U为呼出主界面; Alt+F9为设置是否允许在后台拷贝;
    热键可以根据用户使用习惯自定义
    【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
    --------------------------------------------------------------------------------
    【详细过程】
      PEID查壳为ASPack 2.12 -> Alexey Solodovnikov,用其插件轻松脱之。
      OD载入(属重启验证)断在这里
      
      0048BC1C   $  55            PUSH EBP
      0048BC1D   .  8BEC          MOV EBP,ESP
      0048BC1F   .  B9 04000000   MOV ECX,4
      0048BC24   >  6A 00         PUSH 0
      0048BC26   .  6A 00         PUSH 0
      0048BC28   .  49            DEC ECX
      0048BC29   .^ 75 F9         JNZ SHORT ucopy_ex.0048BC24
      0048BC2B   .  51            PUSH ECX
      0048BC2C   .  53            PUSH EBX
      0048BC2D   .  56            PUSH ESI
      0048BC2E   .  57            PUSH EDI
      0048BC2F   .  8BD8          MOV EBX,EAX
      0048BC31   .  33C0          XOR EAX,EAX
      0048BC33   .  55            PUSH EBP
      0048BC34   .  68 D3BD4800   PUSH ucopy_ex.0048BDD3
      0048BC39   .  64:FF30       PUSH DWORD PTR FS:[EAX]
      0048BC3C   .  64:8920       MOV DWORD PTR FS:[EAX],ESP
      0048BC3F   .  C645 FF 00    MOV BYTE PTR SS:[EBP-1],0
      0048BC43   .  B2 01         MOV DL,1
      0048BC45   .  A1 002F4300   MOV EAX,DWORD PTR DS:[432F00]
      0048BC4A   .  E8 B173FAFF   CALL ucopy_ex.00433000
      0048BC4F   .  8945 F0       MOV DWORD PTR SS:[EBP-10],EAX
      0048BC52   .  BA 02000080   MOV EDX,80000002
      0048BC57   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
      0048BC5A   .  E8 4174FAFF   CALL ucopy_ex.004330A0
      0048BC5F   .  B1 01         MOV CL,1
      0048BC61   .  BA ECBD4800   MOV EDX,ucopy_ex.0048BDEC                ;  software\yuelusoft\ucopy
      0048BC66   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
      0048BC69   .  E8 9674FAFF   CALL ucopy_ex.00433104
      0048BC6E   .  84C0          TEST AL,AL
      0048BC70   .  0F84 2D010000 JE ucopy_ex.0048BDA3
      0048BC76   .  33C9          XOR ECX,ECX
      0048BC78   .  55            PUSH EBP
      0048BC79   .  68 69BD4800   PUSH ucopy_ex.0048BD69
      0048BC7E   .  64:FF31       PUSH DWORD PTR FS:[ECX]
      0048BC81   .  64:8921       MOV DWORD PTR FS:[ECX],ESP
      0048BC84   .  BA 10BE4800   MOV EDX,ucopy_ex.0048BE10                ;  sflag
      0048BC89   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
      0048BC8C   .  E8 2377FAFF   CALL ucopy_ex.004333B4
      0048BC91   .  84C0          TEST AL,AL
      0048BC93   .  0F84 88000000 JE ucopy_ex.0048BD21
      0048BC99   .  8D4D E8       LEA ECX,DWORD PTR SS:[EBP-18]
      0048BC9C   .  BA 20BE4800   MOV EDX,ucopy_ex.0048BE20                ;  ASCII "ucopystr"
      0048BCA1   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
      0048BCA4   .  E8 4376FAFF   CALL ucopy_ex.004332EC
      0048BCA9   .  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]            ;  假码
      0048BCAC   .  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
      0048BCAF   .  E8 04CDF7FF   CALL ucopy_ex.004089B8
      0048BCB4   .  8D4D E4       LEA ECX,DWORD PTR SS:[EBP-1C]
      0048BCB7   .  BA 34BE4800   MOV EDX,ucopy_ex.0048BE34                ;  ASCII "Name"
      0048BCBC   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
      0048BCBF   .  E8 2876FAFF   CALL ucopy_ex.004332EC
      0048BCC4   .  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]            ;  用户名
      0048BCC7   .  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]
      0048BCCA   .  E8 E9CCF7FF   CALL ucopy_ex.004089B8
      0048BCCF   .  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
      0048BCD2   .  E8 7D8CF7FF   CALL ucopy_ex.00404954
      0048BCD7   .  48            DEC EAX                                  ;  用户名长度-1
      0048BCD8   .  85C0          TEST EAX,EAX
      0048BCDA   .  7C 12         JL SHORT ucopy_ex.0048BCEE
      0048BCDC   .  40            INC EAX                                  ;  加1
      0048BCDD   .  33D2          XOR EDX,EDX
      0048BCDF   >  8B4D F4       MOV ECX,DWORD PTR SS:[EBP-C]             ;  用户名        [用户名长度-1,即除最后一位的前面各位字符16进制累加]
      0048BCE2   .  0FB64C11 FF   MOVZX ECX,BYTE PTR DS:[ECX+EDX-1]        ;  各字符16进制
      0048BCE7   .  014D EC       ADD DWORD PTR SS:[EBP-14],ECX            ;  累加
      0048BCEA   .  42            INC EDX
      0048BCEB   .  48            DEC EAX
      0048BCEC   .^ 75 F1         JNZ SHORT ucopy_ex.0048BCDF              ;  循环(加完为止)
      0048BCEE   >  8D45 DC       LEA EAX,DWORD PTR SS:[EBP-24]
      0048BCF1   .  50            PUSH EAX
      0048BCF2   .  8B93 DC030000 MOV EDX,DWORD PTR DS:[EBX+3DC]           ;  硬件号 (ASCII "KEA52V7144")
      0048BCF8   .  66:8B4D EC    MOV CX,WORD PTR SS:[EBP-14]              ;  累加和赋给CX   堆栈 SS:[0012FC4C]=01F8
      0048BCFC   .  8BC3          MOV EAX,EBX
      0048BCFE   .  E8 2D480000   CALL ucopy_ex.00490530                   ;  算法关键1
      0048BD03   .  8B55 DC       MOV EDX,DWORD PTR SS:[EBP-24]            ;  (ASCII "4A5E0F9A0FB0E5DD15A2")
      0048BD06   .  8D4D E0       LEA ECX,DWORD PTR SS:[EBP-20]
      0048BD09   .  8BC3          MOV EAX,EBX
      0048BD0B   .  E8 E0450000   CALL ucopy_ex.004902F0                   ;  ;  算法关键2(b1g与b0相连即为注册码)
      0048BD10   .  8B45 E0       MOV EAX,DWORD PTR SS:[EBP-20]            ;  (ASCII "EB09054AEFAF05")
      0048BD13   .  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]             ;  假码
      0048BD16   .  E8 858DF7FF   CALL ucopy_ex.00404AA0
      0048BD1B   .  75 04         JNZ SHORT ucopy_ex.0048BD21
      0048BD1D   .  C645 FF 01    MOV BYTE PTR SS:[EBP-1],1
      0048BD21   >  33D2          XOR EDX,EDX
      0048BD23   .  55            PUSH EBP
      0048BD24   .  68 46BD4800   PUSH ucopy_ex.0048BD46
      0048BD29   .  64:FF32       PUSH DWORD PTR FS:[EDX]
      0048BD2C   .  64:8922       MOV DWORD PTR FS:[EDX],ESP
      0048BD2F   .  BA 44BE4800   MOV EDX,ucopy_ex.0048BE44                ;  ASCII "sShow"
      0048BD34   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
      0048BD37   .  E8 7876FAFF   CALL ucopy_ex.004333B4
      0048BD3C   .  33C0          XOR EAX,EAX
      0048BD3E   .  5A            POP EDX
      0048BD3F   .  59            POP ECX
      0048BD40   .  59            POP ECX
      0048BD41   .  64:8910       MOV DWORD PTR FS:[EAX],EDX
      0048BD44   .  EB 19         JMP SHORT ucopy_ex.0048BD5F
      0048BD46   .^ E9 1580F7FF   JMP ucopy_ex.00403D60
      0048BD4B   .  B1 01         MOV CL,1
      0048BD4D   .  BA 44BE4800   MOV EDX,ucopy_ex.0048BE44                ;  ASCII "sShow"
      0048BD52   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
      0048BD55   .  E8 4E76FAFF   CALL ucopy_ex.004333A8
      0048BD5A   .  E8 6983F7FF   CALL ucopy_ex.004040C8
      0048BD5F   >  33C0          XOR EAX,EAX
      0048BD61   .  5A            POP EDX
      0048BD62   .  59            POP ECX
      0048BD63   .  59            POP ECX
      0048BD64   .  64:8910       MOV DWORD PTR FS:[EAX],EDX
      0048BD67   .  EB 3A         JMP SHORT ucopy_ex.0048BDA3
      0048BD69   .^ E9 F27FF7FF   JMP ucopy_ex.00403D60
      0048BD6E   .  33C9          XOR ECX,ECX
      0048BD70   .  BA 10BE4800   MOV EDX,ucopy_ex.0048BE10                ;  ASCII "sFlag"
      0048BD75   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
      0048BD78   .  E8 2B76FAFF   CALL ucopy_ex.004333A8
      0048BD7D   .  B9 54BE4800   MOV ECX,ucopy_ex.0048BE54                ;  ASCII "www.new81.com"
      0048BD82   .  BA 20BE4800   MOV EDX,ucopy_ex.0048BE20                ;  ASCII "ucopystr"
      0048BD87   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
      0048BD8A   .  E8 3175FAFF   CALL ucopy_ex.004332C0
      0048BD8F   .  B1 01         MOV CL,1
      0048BD91   .  BA 44BE4800   MOV EDX,ucopy_ex.0048BE44                ;  ASCII "sShow"
      0048BD96   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
      0048BD99   .  E8 0A76FAFF   CALL ucopy_ex.004333A8
      0048BD9E   .  E8 2583F7FF   CALL ucopy_ex.004040C8
      0048BDA3   >  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
      0048BDA6   .  E8 157BF7FF   CALL ucopy_ex.004038C0
      0048BDAB   .  33C0          XOR EAX,EAX
      0048BDAD   .  5A            POP EDX
      0048BDAE   .  59            POP ECX
      0048BDAF   .  59            POP ECX
      0048BDB0   .  64:8910       MOV DWORD PTR FS:[EAX],EDX
      0048BDB3   .  68 DABD4800   PUSH ucopy_ex.0048BDDA
      0048BDB8   >  8D45 DC       LEA EAX,DWORD PTR SS:[EBP-24]
      0048BDBB   .  BA 04000000   MOV EDX,4
      0048BDC0   .  E8 F388F7FF   CALL ucopy_ex.004046B8
      0048BDC5   .  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
      0048BDC8   .  BA 02000000   MOV EDX,2
      0048BDCD   .  E8 E688F7FF   CALL ucopy_ex.004046B8
      0048BDD2   .  C3            RETN
      0048BDD3   .^ E9 3C82F7FF   JMP ucopy_ex.00404014
      0048BDD8   .^ EB DE         JMP SHORT ucopy_ex.0048BDB8
      0048BDDA   .  8A45 FF       MOV AL,BYTE PTR SS:[EBP-1]
      0048BDDD   .  5F            POP EDI
      0048BDDE   .  5E            POP ESI
      0048BDDF   .  5B            POP EBX
      0048BDE0   .  8BE5          MOV ESP,EBP
      0048BDE2   .  5D            POP EBP
      0048BDE3   .  C3            RETN
      
      
      --------------- 在这里 0048BCFE   .  E8 2D480000   CALL ucopy_ex.00490530 F7跟进 ----
      
      
      00490530  /$  55            PUSH EBP                                 ; 来到这里
      00490531  |.  8BEC          MOV EBP,ESP
      00490533  |.  83C4 F0       ADD ESP,-10
      00490536  |.  53            PUSH EBX
      00490537  |.  56            PUSH ESI
      00490538  |.  57            PUSH EDI
      00490539  |.  33DB          XOR EBX,EBX
      0049053B  |.  895D F0       MOV DWORD PTR SS:[EBP-10],EBX
      0049053E  |.  8BF9          MOV EDI,ECX                              ;  ECX=000001F8赋给EDI
      00490540  |.  8955 F8       MOV DWORD PTR SS:[EBP-8],EDX             ;  (ASCII "KEA52V7144")
      00490543  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
      00490546  |.  8B75 08       MOV ESI,DWORD PTR SS:[EBP+8]
      00490549  |.  33C0          XOR EAX,EAX
      0049054B  |.  55            PUSH EBP
      0049054C  |.  68 F5054900   PUSH ucopy_ex.004905F5
      00490551  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
      00490554  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
      00490557  |.  8BC6          MOV EAX,ESI
      00490559  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]             ;  (ASCII "KEA52V7144")
      0049055C  |.  E8 8741F7FF   CALL ucopy_ex.004046E8
      00490561  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  机器码
      00490564  |.  E8 EB43F7FF   CALL ucopy_ex.00404954
      00490569  |.  85C0          TEST EAX,EAX                             ;  测试长度
      0049056B  |.  7E 5B         JLE SHORT ucopy_ex.004905C8
      0049056D  |.  8945 F4       MOV DWORD PTR SS:[EBP-C],EAX             ;  机器码长度10
      00490570  |.  BB 01000000   MOV EBX,1                                ;  EBX=1
      00490575  |>  8BC6          /MOV EAX,ESI
      00490577  |.  E8 3046F7FF   |CALL ucopy_ex.00404BAC
      0049057C  |.  8B55 F8       |MOV EDX,DWORD PTR SS:[EBP-8]            ;  机器码(ASCII "KEA52V7144")
      0049057F  |.  8A541A FF     |MOV DL,BYTE PTR DS:[EDX+EBX-1]          ;  对应字符16进制,设为a
      00490583  |.  0FB7CF        |MOVZX ECX,DI                            ;  DI初始值为用户名累加而来
      00490586  |.  C1E9 08       |SHR ECX,8                               ;  逻辑右移8位,为c
      00490589  |.  32D1          |XOR DL,CL                               ;  DL=XOR(DL,c)  DL为对应字符的16进制
      0049058B  |.  885418 FF     |MOV BYTE PTR DS:[EAX+EBX-1],DL          ;  将其转为字符
      0049058F  |.  8B06          |MOV EAX,DWORD PTR DS:[ESI]              ;  逐一转换后的
      00490591  |.  0FB64418 FF   |MOVZX EAX,BYTE PTR DS:[EAX+EBX-1]       ;  对应的转换后的字符16进制,设其为a
      00490596  |.  66:03F8       |ADD DI,AX                               ;  DI=DI+a
      00490599  |.  8BC7          |MOV EAX,EDI                             ;  EAX=DI
      0049059B  |.  C1E0 02       |SHL EAX,2                               ;  逻辑左移2,即*4
      0049059E  |.  8D0440        |LEA EAX,DWORD PTR DS:[EAX+EAX*2]        ;  EAX*3
      004905A1  |.  66:83C0 62    |ADD AX,62                               ;  +62
      004905A5  |.  8BF8          |MOV EDI,EAX                             ;  EDI=EAX
      004905A7  |.  8B06          |MOV EAX,DWORD PTR DS:[ESI]
      004905A9  |.  807C18 FF 00  |CMP BYTE PTR DS:[EAX+EBX-1],0
      004905AE  |.  75 12         |JNZ SHORT ucopy_ex.004905C2
      004905B0  |.  8BC6          |MOV EAX,ESI
      004905B2  |.  E8 F545F7FF   |CALL ucopy_ex.00404BAC
      004905B7  |.  8B55 F8       |MOV EDX,DWORD PTR SS:[EBP-8]
      004905BA  |.  8A541A FF     |MOV DL,BYTE PTR DS:[EDX+EBX-1]
      004905BE  |.  885418 FF     |MOV BYTE PTR DS:[EAX+EBX-1],DL
      004905C2  |>  43            |INC EBX
      004905C3  |.  FF4D F4       |DEC DWORD PTR SS:[EBP-C]
      004905C6  |.^ 75 AD         \JNZ SHORT ucopy_ex.00490575
      004905C8  |>  8D4D F0       LEA ECX,DWORD PTR SS:[EBP-10]
      004905CB  |.  8B16          MOV EDX,DWORD PTR DS:[ESI]
      004905CD  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
      004905D0  |.  E8 77FEFFFF   CALL ucopy_ex.0049044C                   ;  将字符串转为16进制
      004905D5  |.  8B55 F0       MOV EDX,DWORD PTR SS:[EBP-10]            ;   (ASCII "4A5E0F9A0FB0E5DD15A2")
      004905D8  |.  8BC6          MOV EAX,ESI
      004905DA  |.  E8 0941F7FF   CALL ucopy_ex.004046E8
      004905DF  |.  33C0          XOR EAX,EAX
      004905E1  |.  5A            POP EDX
      004905E2  |.  59            POP ECX
      004905E3  |.  59            POP ECX
      004905E4  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
      004905E7  |.  68 FC054900   PUSH ucopy_ex.004905FC
      004905EC  |>  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
      004905EF  |.  E8 A040F7FF   CALL ucopy_ex.00404694
      004905F4  \.  C3            RETN
      004905F5   .^ E9 1A3AF7FF   JMP ucopy_ex.00404014
      004905FA   .^ EB F0         JMP SHORT ucopy_ex.004905EC
      004905FC   .  5F            POP EDI
      004905FD   .  5E            POP ESI
      004905FE   .  5B            POP EBX
      004905FF   .  8BE5          MOV ESP,EBP
      00490601   .  5D            POP EBP
      00490602   .  C2 0400       RETN 4
      
      ---- 在这里 0048BD0B   .  E8 E0450000   CALL ucopy_ex.004902F0 F7跟进-------
      
      004902F0  /$  55            PUSH EBP                                到这里
      004902F1  |.  8BEC          MOV EBP,ESP
      004902F3  |.  6A 00         PUSH 0
      004902F5  |.  6A 00         PUSH 0
      004902F7  |.  6A 00         PUSH 0
      004902F9  |.  6A 00         PUSH 0
      004902FB  |.  6A 00         PUSH 0
      004902FD  |.  53            PUSH EBX
      004902FE  |.  56            PUSH ESI
      004902FF  |.  8BF1          MOV ESI,ECX
      00490301  |.  8955 FC       MOV DWORD PTR SS:[EBP-4],EDX             ;   (ASCII "4A5E0F9A0FB0E5DD15A2"),设其为B
      00490304  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
      00490307  |.  E8 3848F7FF   CALL ucopy_ex.00404B44
      0049030C  |.  33C0          XOR EAX,EAX
      0049030E  |.  55            PUSH EBP
      0049030F  |.  68 A7034900   PUSH ucopy_ex.004903A7
      00490314  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
      00490317  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
      0049031A  |.  8BC6          MOV EAX,ESI
      0049031C  |.  E8 7343F7FF   CALL ucopy_ex.00404694
      00490321  |.  BB 01000000   MOV EBX,1
      00490326  |>  8BC3          /MOV EAX,EBX                             ;  在B中取前14位的奇偶数位组成两组字串
      00490328  |.  25 01000080   |AND EAX,80000001
      0049032D  |.  79 05         |JNS SHORT ucopy_ex.00490334
      0049032F  |.  48            |DEC EAX
      00490330  |.  83C8 FE       |OR EAX,FFFFFFFE
      00490333  |.  40            |INC EAX
      00490334  |>  85C0          |TEST EAX,EAX                            ;  是否为单或双
      00490336  |.  75 20         |JNZ SHORT ucopy_ex.00490358
      00490338  |.  8D45 F0       |LEA EAX,DWORD PTR SS:[EBP-10]           ;  是双(即0)就不跳
      0049033B  |.  50            |PUSH EAX
      0049033C  |.  B9 01000000   |MOV ECX,1
      00490341  |.  8BD3          |MOV EDX,EBX
      00490343  |.  8B45 FC       |MOV EAX,DWORD PTR SS:[EBP-4]
      00490346  |.  E8 6948F7FF   |CALL ucopy_ex.00404BB4
      0049034B  |.  8B55 F0       |MOV EDX,DWORD PTR SS:[EBP-10]
      0049034E  |.  8D45 F8       |LEA EAX,DWORD PTR SS:[EBP-8]
      00490351  |.  E8 0646F7FF   |CALL ucopy_ex.0040495C
      00490356  |.  EB 21         |JMP SHORT ucopy_ex.00490379
      00490358  |>  8D45 EC       |LEA EAX,DWORD PTR SS:[EBP-14]           ;  是单(即1)就跳到这里
      0049035B  |.  50            |PUSH EAX
      0049035C  |.  B9 01000000   |MOV ECX,1
      00490361  |.  8BD3          |MOV EDX,EBX
      00490363  |.  8B45 FC       |MOV EAX,DWORD PTR SS:[EBP-4]            ;  (ASCII "4A5E0F9A0FB0E5DD15A2")
      00490366  |.  E8 4948F7FF   |CALL ucopy_ex.00404BB4                  ;  从右往左连接
      0049036B  |.  8B55 EC       |MOV EDX,DWORD PTR SS:[EBP-14]
      0049036E  |.  8D45 F4       |LEA EAX,DWORD PTR SS:[EBP-C]
      00490371  |.  8B4D F4       |MOV ECX,DWORD PTR SS:[EBP-C]            ;  连接后的赋给ECX
      00490374  |.  E8 2746F7FF   |CALL ucopy_ex.004049A0
      00490379  |>  43            |INC EBX
      0049037A  |.  83FB 0F       |CMP EBX,0F                              ;  取前14位
      0049037D  |.^ 75 A7         \JNZ SHORT ucopy_ex.00490326
      0049037F  |.  8BC6          MOV EAX,ESI
      00490381  |.  8B4D F8       MOV ECX,DWORD PTR SS:[EBP-8]             ;   奇数位(ASCII "AEFAF05")设其为b0
      00490384  |.  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]             ;  偶数位翻转(ASCII "EB09054"),设其为b1
      00490387  |.  E8 1446F7FF   CALL ucopy_ex.004049A0
      0049038C  |.  33C0          XOR EAX,EAX
      0049038E  |.  5A            POP EDX
      0049038F  |.  59            POP ECX
      00490390  |.  59            POP ECX
      00490391  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
      00490394  |.  68 AE034900   PUSH ucopy_ex.004903AE
      00490399  |>  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
      0049039C  |.  BA 05000000   MOV EDX,5
      004903A1  |.  E8 1243F7FF   CALL ucopy_ex.004046B8
      004903A6  \.  C3            RETN
      004903A7   .^ E9 683CF7FF   JMP ucopy_ex.00404014
      004903AC   .^ EB EB         JMP SHORT ucopy_ex.00490399
      004903AE   .  5E            POP ESI
      004903AF   .  5B            POP EBX
      004903B0   .  8BE5          MOV ESP,EBP
      004903B2   .  5D            POP EBP
      004903B3   .  C3            RETN
      
      
      
      
    --------------------------------------------------------------------------------
    【经验总结】
      
    1、x为用户名(除最后一位外的其它各字符16制)累加和
      2、a为对应的机器码字符转为的16进制,其初始值为0
      
      3、DI初始值为x
         则DI=DI+a,
         d=DI*4*3+62(取低位)
      
         那转换后的对应字符16进制b
         b=XOR(a,SHR(d,8))
      
         将b逐一相连成B
      
      4、再取B的前14位的奇数(奇数取后要翻转)偶数位分别分为b1、b0,相连就是注册码。
      
      
      如我的机码为KEA52V7144,用户名为lzq1973,则用户名前6位16进制累加和x为1F8
      
      机器码转各字符分别转为16进制后为4B 45 41 35 32 56 37 31 34 34,即a所对应的值
      
      经运算后B为4A5E0F9A0FB0E5DD15A2,则b0=AEFAF05 ,b1=EB09054(即将45090BE翻转)
      
      注册码=b1+b0=EB09054AEFAF05
       
    --------------------------------------------------------------------------------
    【版权声明】: 本文纯属技术交流[请支持正版], 转载请注明作者并保持文章的完整, 谢谢!

                                                           2006年04月16日 17:30:50

    [ 本帖最后由 lzq1973 于 2006-4-17 05:35 编辑 ]
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-3-3 14:36
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2006-4-21 14:27:04 | 显示全部楼层
    我现在学的就应该是这里了。谢谢详细的分析。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2006-4-21 16:56:14 | 显示全部楼层
    好祥细。。。学习的说!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-4-23 21:06:28 | 显示全部楼层
    好文章,值得学习。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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