yunfeng 发表于 2007-2-23 20:24:00

三维立体图像制作大师v3.15

【文章标题】: [入门算法]三维立体图像制作大师v3.15
【文章作者】: KuNgBiM
【作者邮箱】: [email protected]
【作者主页】: http://www.crkcn.com
【软件名称】: 三维立体图像制作大师v3.15
【软件大小】: 2875 KB
【下载地址】: 自己搜索下载
【加壳方式】: tElock 0.98b1
【保护方式】: 序列号+水印
【编写语言】: Microsoft Visual Basic 5.0 / 6.0
【使用工具】: OD+untElock98(heXer)
【操作平台】: 盗版XPsp2
【软件介绍】: 三维立体画,看似平面却隐藏了奇妙的3D世界。欣赏立体画是一种奇妙的体验, 那么亲手制作这样的三维立体画呢? 事实上,那也不是一件难事!使用《三维立体图像制作大师》,几分钟之内便可以制作出多层次立体感的精美作品!
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
一切从壳开始,我们查壳为tElock 0.98b1,用现成的脱壳机脱壳,感谢heXer大侠的作品。
再查,程序为Microsoft Visual Basic 5.0 / 6.0编译。
运行程序,注册它,有错误提示,OD载入再说。

载入后下函数断点:bpx rtcMsgBox

运行输入试炼信息,中断:

---------------------
机器码:-2013092884
试炼码:99999999999
---------------------

004D6EE0   > \55               push    ebp                                        ;来到这里设断,F9运行
004D6EE1   .8BEC               mov   ebp, esp
004D6EE3   .83EC 0C            sub   esp, 0C
004D6EE6   .68 362E4000      push    <jmp.&MSVBVM60.__vbaExceptHandler>         ;SE 处理程序安装
004D6EEB   .64:A1 00000000   mov   eax, dword ptr fs:
004D6EF1   .50               push    eax
004D6EF2   .64:8925 00000000   mov   dword ptr fs:, esp
004D6EF9   .81EC B8000000      sub   esp, 0B8
004D6EFF   .53               push    ebx
004D6F00   .56               push    esi
004D6F01   .57               push    edi
004D6F02   .8965 F4            mov   dword ptr , esp
004D6F05   .C745 F8 E01E4000   mov   dword ptr , 00401EE0
004D6F0C   .8B75 08            mov   esi, dword ptr
004D6F0F   .8BC6               mov   eax, esi
004D6F11   .83E0 01            and   eax, 1
004D6F14   .8945 FC            mov   dword ptr , eax
004D6F17   .83E6 FE            and   esi, FFFFFFFE
004D6F1A   .56               push    esi
004D6F1B   .8975 08            mov   dword ptr , esi
004D6F1E   .8B0E               mov   ecx, dword ptr
004D6F20   .FF51 04            call    dword ptr
004D6F23   .8B16               mov   edx, dword ptr
004D6F25   .33DB               xor   ebx, ebx
004D6F27   .56               push    esi
004D6F28   .895D DC            mov   dword ptr , ebx
004D6F2B   .895D D8            mov   dword ptr , ebx
004D6F2E   .895D D4            mov   dword ptr , ebx
004D6F31   .895D D0            mov   dword ptr , ebx
004D6F34   .895D CC            mov   dword ptr , ebx
004D6F37   .895D BC            mov   dword ptr , ebx
004D6F3A   .895D AC            mov   dword ptr , ebx
004D6F3D   .895D 9C            mov   dword ptr , ebx
004D6F40   .895D 8C            mov   dword ptr , ebx
004D6F43   .899D 7CFFFFFF      mov   dword ptr , ebx
004D6F49   .889D 68FFFFFF      mov   byte ptr , bl
004D6F4F   .FF92 0C030000      call    dword ptr
004D6F55   .50               push    eax
004D6F56   .8D45 CC            lea   eax, dword ptr
004D6F59   .50               push    eax
004D6F5A   .FF15 AC104000      call    dword ptr [<&MSVBVM60.__vbaObjSet>]      ;MSVBVM60.__vbaObjSet
004D6F60   .8B45 CC            mov   eax, dword ptr
004D6F63   .8D4D BC            lea   ecx, dword ptr
004D6F66   .6A 04            push    4                                          ;取4位带符号数
004D6F68   .8D55 AC            lea   edx, dword ptr
004D6F6B   .51               push    ecx
004D6F6C   .52               push    edx
004D6F6D   .895D CC            mov   dword ptr , ebx
004D6F70   .8945 C4            mov   dword ptr , eax
004D6F73   .C745 BC 09000000   mov   dword ptr , 9
004D6F7A   .FF15 38124000      call    dword ptr [<&MSVBVM60.#617>]         ;MSVBVM60.rtcLeftCharVar(从左开始取数)
004D6F80   .8B3D 20104000      mov   edi, dword ptr [<&MSVBVM60.__vbaVarMove>];MSVBVM60.__vbaVarMove
004D6F86   .8D55 AC            lea   edx, dword ptr
004D6F89   .8D4D DC            lea   ecx, dword ptr
004D6F8C   .FFD7               call    edi                                        ;<&MSVBVM60.__vbaVarMove>
004D6F8E   .8D4D CC            lea   ecx, dword ptr
004D6F91   .FF15 74124000      call    dword ptr [<&MSVBVM60.__vbaFreeObj>]       ;MSVBVM60.__vbaFreeObj
004D6F97   .8D4D BC            lea   ecx, dword ptr
004D6F9A   .FF15 2C104000      call    dword ptr [<&MSVBVM60.__vbaFreeVar>]       ;MSVBVM60.__vbaFreeVar
004D6FA0   .8D45 DC            lea   eax, dword ptr
004D6FA3   .8D8D 7CFFFFFF      lea   ecx, dword ptr
004D6FA9   .50               push    eax
004D6FAA   .8D55 BC            lea   edx, dword ptr
004D6FAD   .51               push    ecx
004D6FAE   .52               push    edx
004D6FAF   .C745 84 674E0000   mov   dword ptr , 4E67                   ;关键值:4E67[十进制:20071]
004D6FB6   .C785 7CFFFFFF 0200>mov   dword ptr , 2
004D6FC0   .FF15 6C114000      call    dword ptr [<&MSVBVM60.__vbaVarMul>]      ;变量相乘,在eax中返回
004D6FC6   .8BD0               mov   edx, eax
004D6FC8   .8D4D DC            lea   ecx, dword ptr
004D6FCB   .FFD7               call    edi
004D6FCD   .8D45 DC            lea   eax, dword ptr
004D6FD0   .6A 08            push    8                                          ;取8位带符号数
004D6FD2   .8D4D BC            lea   ecx, dword ptr
004D6FD5   .50               push    eax
004D6FD6   .51               push    ecx
004D6FD7   .FF15 38124000      call    dword ptr [<&MSVBVM60.#617>]            ;MSVBVM60.rtcLeftCharVar(从左开始取数)
004D6FDD   .8D55 BC            lea   edx, dword ptr
004D6FE0   .8D4D DC            lea   ecx, dword ptr
004D6FE3   .FFD7               call    edi
004D6FE5   .8B16               mov   edx, dword ptr
004D6FE7   .56               push    esi
004D6FE8   .FF92 08030000      call    dword ptr
004D6FEE   .50               push    eax
004D6FEF   .8D45 CC            lea   eax, dword ptr
004D6FF2   .50               push    eax
004D6FF3   .FF15 AC104000      call    dword ptr [<&MSVBVM60.__vbaObjSet>]      ;MSVBVM60.__vbaObjSet
004D6FF9   .8BF8               mov   edi, eax
004D6FFB   .8B0F               mov   ecx, dword ptr
004D6FFD   .8D55 D8            lea   edx, dword ptr
004D7000   .52               push    edx
004D7001   .57               push    edi
004D7002   .FF91 A0000000      call    dword ptr
004D7008   .3BC3               cmp   eax, ebx
004D700A   .DBE2               fclex
004D700C   .7D 12            jge   short 004D7020
004D700E   .68 A0000000      push    0A0
004D7013   .68 34E54000      push    0040E534
004D7018   .57               push    edi
004D7019   .50               push    eax
004D701A   .FF15 70104000      call    dword ptr [<&MSVBVM60.__vbaHresultCheckObj>;MSVBVM60.__vbaHresultCheckObj
004D7020   >8B45 D8            mov   eax, dword ptr                   ;假码,UNICODE "99999999999"
004D7023   .8D4D DC            lea   ecx, dword ptr
004D7026   .8945 C4            mov   dword ptr , eax                  ;真码,UNICODE "-4034271"
004D7029   .8D45 BC            lea   eax, dword ptr
004D702C   .50               push    eax
004D702D   .51               push    ecx
004D702E   .895D D8            mov   dword ptr , ebx
004D7031   .C745 BC 08800000   mov   dword ptr , 8008                   ;特定值:8008[十进制:32776]
004D7038   .FF15 F0114000      call    dword ptr [<&MSVBVM60.__vbaVarTstNe>]      ;变量比较(不用管,可能是上一版本的)
004D703E   .8D4D CC            lea   ecx, dword ptr
004D7041   .66:8BF8            mov   di, ax                                     ;ax=FFFF,di=7FDC(ax必须为0)
004D7044   .FF15 74124000      call    dword ptr [<&MSVBVM60.__vbaFreeObj>]       ;MSVBVM60.__vbaFreeObj
004D704A   .8D4D BC            lea   ecx, dword ptr
004D704D   .FF15 2C104000      call    dword ptr [<&MSVBVM60.__vbaFreeVar>]       ;MSVBVM60.__vbaFreeVar
004D7053   .66:3BFB            cmp   di, bx                                     ;全部为0则通过
004D7056   .0F84 29010000      je      004D7185                                 ;如果相等则注册成功!
004D705C   .B9 19000000      mov   ecx, 19
004D7061   .66:891D 34E04F00   mov   word ptr , bx
004D7068   .FF15 58114000      call    dword ptr [<&MSVBVM60.__vbaUI1I2>]         ;MSVBVM60.__vbaUI1I2
004D706E   .BA B0BE4000      mov   edx, 0040BEB0
004D7073   .8D4D D8            lea   ecx, dword ptr
004D7076   .8885 68FFFFFF      mov   byte ptr , al
004D707C   .FF15 CC114000      call    dword ptr [<&MSVBVM60.__vbaStrCopy>]       ;MSVBVM60.__vbaStrCopy
004D7082   .8D95 68FFFFFF      lea   edx, dword ptr
004D7088   .8D45 D8            lea   eax, dword ptr
004D708B   .52               push    edx
004D708C   .50               push    eax
004D708D   .E8 3EBEFEFF      call    004C2ED0
004D7092   .8BD0               mov   edx, eax
004D7094   .8D4D D0            lea   ecx, dword ptr
004D7097   .FF15 48124000      call    dword ptr [<&MSVBVM60.__vbaStrMove>]       ;MSVBVM60.__vbaStrMove
004D709D   .391D 88EA4F00      cmp   dword ptr , ebx
004D70A3   .75 10            jnz   short 004D70B5
004D70A5   .68 88EA4F00      push    004FEA88
004D70AA   .68 18C64000      push    0040C618
004D70AF   .FF15 BC114000      call    dword ptr [<&MSVBVM60.__vbaNew2>]          ;MSVBVM60.__vbaNew2
004D70B5   >8B35 88EA4F00      mov   esi, dword ptr
004D70BB   .8D55 CC            lea   edx, dword ptr
004D70BE   .52               push    edx
004D70BF   .56               push    esi
004D70C0   .8B0E               mov   ecx, dword ptr
004D70C2   .FF51 14            call    dword ptr
004D70C5   .3BC3               cmp   eax, ebx
004D70C7   .DBE2               fclex
004D70C9   .7D 0F            jge   short 004D70DA
004D70CB   .6A 14            push    14
004D70CD   .68 08C64000      push    0040C608
004D70D2   .56               push    esi
004D70D3   .50               push    eax
004D70D4   .FF15 70104000      call    dword ptr [<&MSVBVM60.__vbaHresultCheckObj>;MSVBVM60.__vbaHresultCheckObj
004D70DA   >8B45 CC            mov   eax, dword ptr
004D70DD   .8D55 D4            lea   edx, dword ptr
004D70E0   .52               push    edx
004D70E1   .50               push    eax
004D70E2   .8B08               mov   ecx, dword ptr
004D70E4   .8BF0               mov   esi, eax
004D70E6   .FF51 60            call    dword ptr
004D70E9   .3BC3               cmp   eax, ebx
004D70EB   .DBE2               fclex
004D70ED   .7D 0F            jge   short 004D70FE
004D70EF   .6A 60            push    60
004D70F1   .68 28C64000      push    0040C628
004D70F6   .56               push    esi
004D70F7   .50               push    eax
004D70F8   .FF15 70104000      call    dword ptr [<&MSVBVM60.__vbaHresultCheckObj>;MSVBVM60.__vbaHresultCheckObj
004D70FE   >B8 0A000000      mov   eax, 0A
004D7103   .B9 04000280      mov   ecx, 80020004
004D7108   .8945 8C            mov   dword ptr , eax
004D710B   .8945 9C            mov   dword ptr , eax
004D710E   .8B45 D4            mov   eax, dword ptr
004D7111   .894D 94            mov   dword ptr , ecx
004D7114   .8945 B4            mov   dword ptr , eax
004D7117   .8B45 D0            mov   eax, dword ptr
004D711A   .894D A4            mov   dword ptr , ecx
004D711D   .B9 08000000      mov   ecx, 8
004D7122   .8945 C4            mov   dword ptr , eax
004D7125   .894D AC            mov   dword ptr , ecx
004D7128   .894D BC            mov   dword ptr , ecx
004D712B   .8D45 8C            lea   eax, dword ptr
004D712E   .8D4D 9C            lea   ecx, dword ptr
004D7131   .50               push    eax
004D7132   .8D55 AC            lea   edx, dword ptr
004D7135   .51               push    ecx
004D7136   .52               push    edx
004D7137   .8D45 BC            lea   eax, dword ptr
004D713A   .6A 30            push    30
004D713C   .50               push    eax
004D713D   .895D D4            mov   dword ptr , ebx
004D7140   .895D D0            mov   dword ptr , ebx
004D7143   .FF15 B0104000      call    dword ptr [<&MSVBVM60.#595>]               ;MSVBVM60.rtcMsgBox(注册失败提示)
004D7149   .8D4D D0            lea   ecx, dword ptr
004D714C   .8D55 D8            lea   edx, dword ptr
004D714F   .51               push    ecx
004D7150   .52               push    edx
004D7151   .6A 02            push    2
004D7153   .FF15 DC114000      call    dword ptr [<&MSVBVM60.__vbaFreeStrList>]   ;MSVBVM60.__vbaFreeStrList
004D7159   .83C4 0C            add   esp, 0C
004D715C   .8D4D CC            lea   ecx, dword ptr
004D715F   .FF15 74124000      call    dword ptr [<&MSVBVM60.__vbaFreeObj>]       ;MSVBVM60.__vbaFreeObj
004D7165   .8D45 8C            lea   eax, dword ptr
004D7168   .8D4D 9C            lea   ecx, dword ptr
004D716B   .50               push    eax
004D716C   .8D55 AC            lea   edx, dword ptr
004D716F   .51               push    ecx
004D7170   .8D45 BC            lea   eax, dword ptr
004D7173   .52               push    edx
004D7174   .50               push    eax
004D7175   .6A 04            push    4
004D7177   .FF15 48104000      call    dword ptr [<&MSVBVM60.__vbaFreeVarList>]   ;MSVBVM60.__vbaFreeVarList
004D717D   .83C4 14            add   esp, 14
004D7180   .E9 E6010000      jmp   004D736B
004D7185   >66:C705 34E04F00 F>mov   word ptr , 0FFFF
004D718E   .8B0E               mov   ecx, dword ptr
004D7190   .56               push    esi
004D7191   .FF91 08030000      call    dword ptr
004D7197   .8D55 CC            lea   edx, dword ptr
004D719A   .50               push    eax
004D719B   .52               push    edx
004D719C   .FF15 AC104000      call    dword ptr [<&MSVBVM60.__vbaObjSet>]      ;MSVBVM60.__vbaObjSet
004D71A2   .8BF8               mov   edi, eax
004D71A4   .8D4D D8            lea   ecx, dword ptr
004D71A7   .51               push    ecx
004D71A8   .57               push    edi
004D71A9   .8B07               mov   eax, dword ptr
004D71AB   .FF90 A0000000      call    dword ptr
004D71B1   .3BC3               cmp   eax, ebx
004D71B3   .DBE2               fclex
004D71B5   .7D 12            jge   short 004D71C9
004D71B7   .68 A0000000      push    0A0
004D71BC   .68 34E54000      push    0040E534
004D71C1   .57               push    edi
004D71C2   .50               push    eax
004D71C3   .FF15 70104000      call    dword ptr [<&MSVBVM60.__vbaHresultCheckObj>;MSVBVM60.__vbaHresultCheckObj
004D71C9   >8B55 D8            mov   edx, dword ptr                   ;保存注册信息
004D71CC   .52               push    edx
004D71CD   .68 ECCD4000      push    0040CDEC                                 ;P(UNICODE "PCode")
004D71D2   .68 CCCD4000      push    0040CDCC                                 ;R(UNICODE "Registration")
004D71D7   .68 B8CD4000      push    0040CDB8                                 ;3(UNICODE "3DMaker")
004D71DC   .FF15 0C104000      call    dword ptr [<&MSVBVM60.#690>]               ;MSVBVM60.rtcSaveSetting
004D71E2   .8D4D D8            lea   ecx, dword ptr
004D71E5   .FF15 78124000      call    dword ptr [<&MSVBVM60.__vbaFreeStr>]       ;MSVBVM60.__vbaFreeStr
004D71EB   .8D4D CC            lea   ecx, dword ptr
004D71EE   .FF15 74124000      call    dword ptr [<&MSVBVM60.__vbaFreeObj>]       ;MSVBVM60.__vbaFreeObj
004D71F4   .B9 19000000      mov   ecx, 19
004D71F9   .FF15 58114000      call    dword ptr [<&MSVBVM60.__vbaUI1I2>]         ;MSVBVM60.__vbaUI1I2
004D71FF   .BA 98BD4000      mov   edx, 0040BD98
004D7204   .8D4D D8            lea   ecx, dword ptr
004D7207   .8885 68FFFFFF      mov   byte ptr , al
004D720D   .FF15 CC114000      call    dword ptr [<&MSVBVM60.__vbaStrCopy>]       ;MSVBVM60.__vbaStrCopy
004D7213   .8D85 68FFFFFF      lea   eax, dword ptr
004D7219   .8D4D D8            lea   ecx, dword ptr
004D721C   .50               push    eax
004D721D   .51               push    ecx
004D721E   .E8 ADBCFEFF      call    004C2ED0
004D7223   .8BD0               mov   edx, eax
004D7225   .8D4D D0            lea   ecx, dword ptr
004D7228   .FF15 48124000      call    dword ptr [<&MSVBVM60.__vbaStrMove>]       ;MSVBVM60.__vbaStrMove
004D722E   .391D 88EA4F00      cmp   dword ptr , ebx
004D7234   .75 10            jnz   short 004D7246
004D7236   .68 88EA4F00      push    004FEA88
004D723B   .68 18C64000      push    0040C618
004D7240   .FF15 BC114000      call    dword ptr [<&MSVBVM60.__vbaNew2>]          ;MSVBVM60.__vbaNew2
004D7246   >8B3D 88EA4F00      mov   edi, dword ptr
004D724C   .8D45 CC            lea   eax, dword ptr
004D724F   .50               push    eax
004D7250   .57               push    edi
004D7251   .8B17               mov   edx, dword ptr
004D7253   .FF52 14            call    dword ptr
004D7256   .3BC3               cmp   eax, ebx
004D7258   .DBE2               fclex
004D725A   .7D 0F            jge   short 004D726B
004D725C   .6A 14            push    14
004D725E   .68 08C64000      push    0040C608
004D7263   .57               push    edi
004D7264   .50               push    eax
004D7265   .FF15 70104000      call    dword ptr [<&MSVBVM60.__vbaHresultCheckObj>;MSVBVM60.__vbaHresultCheckObj
004D726B   >8B45 CC            mov   eax, dword ptr
004D726E   .8D55 D4            lea   edx, dword ptr
004D7271   .52               push    edx
004D7272   .50               push    eax
004D7273   .8B08               mov   ecx, dword ptr
004D7275   .8BF8               mov   edi, eax
004D7277   .FF51 60            call    dword ptr
004D727A   .3BC3               cmp   eax, ebx
004D727C   .DBE2               fclex
004D727E   .7D 0F            jge   short 004D728F
004D7280   .6A 60            push    60
004D7282   .68 28C64000      push    0040C628
004D7287   .57               push    edi
004D7288   .50               push    eax
004D7289   .FF15 70104000      call    dword ptr [<&MSVBVM60.__vbaHresultCheckObj>;MSVBVM60.__vbaHresultCheckObj
004D728F   >B8 0A000000      mov   eax, 0A
004D7294   .B9 04000280      mov   ecx, 80020004
004D7299   .8945 8C            mov   dword ptr , eax
004D729C   .8945 9C            mov   dword ptr , eax
004D729F   .8B45 D4            mov   eax, dword ptr
004D72A2   .894D 94            mov   dword ptr , ecx
004D72A5   .8945 B4            mov   dword ptr , eax
004D72A8   .8B45 D0            mov   eax, dword ptr
004D72AB   .894D A4            mov   dword ptr , ecx
004D72AE   .B9 08000000      mov   ecx, 8
004D72B3   .8945 C4            mov   dword ptr , eax
004D72B6   .894D AC            mov   dword ptr , ecx
004D72B9   .894D BC            mov   dword ptr , ecx
004D72BC   .8D45 8C            lea   eax, dword ptr
004D72BF   .8D4D 9C            lea   ecx, dword ptr
004D72C2   .50               push    eax
004D72C3   .8D55 AC            lea   edx, dword ptr
004D72C6   .51               push    ecx
004D72C7   .52               push    edx
004D72C8   .8D45 BC            lea   eax, dword ptr
004D72CB   .53               push    ebx
004D72CC   .50               push    eax
004D72CD   .895D D4            mov   dword ptr , ebx
004D72D0   .895D D0            mov   dword ptr , ebx
004D72D3   .FF15 B0104000      call    dword ptr [<&MSVBVM60.#595>]               ;MSVBVM60.rtcMsgBox(注册成功)
004D72D9   .8D4D D0            lea   ecx, dword ptr
004D72DC   .8D55 D8            lea   edx, dword ptr
004D72DF   .51               push    ecx
004D72E0   .52               push    edx
004D72E1   .6A 02            push    2
004D72E3   .FF15 DC114000      call    dword ptr [<&MSVBVM60.__vbaFreeStrList>]   ;MSVBVM60.__vbaFreeStrList
004D72E9   .83C4 0C            add   esp, 0C
004D72EC   .8D4D CC            lea   ecx, dword ptr
004D72EF   .FF15 74124000      call    dword ptr [<&MSVBVM60.__vbaFreeObj>]       ;MSVBVM60.__vbaFreeObj
004D72F5   .8D45 8C            lea   eax, dword ptr
004D72F8   .8D4D 9C            lea   ecx, dword ptr
004D72FB   .50               push    eax
004D72FC   .8D55 AC            lea   edx, dword ptr
004D72FF   .51               push    ecx
004D7300   .8D45 BC            lea   eax, dword ptr
004D7303   .52               push    edx
004D7304   .50               push    eax
004D7305   .6A 04            push    4
004D7307   .FF15 48104000      call    dword ptr [<&MSVBVM60.__vbaFreeVarList>]   ;MSVBVM60.__vbaFreeVarList
004D730D   .A1 88EA4F00      mov   eax, dword ptr
004D7312   .83C4 14            add   esp, 14
004D7315   .3BC3               cmp   eax, ebx
004D7317   .75 10            jnz   short 004D7329
004D7319   .68 88EA4F00      push    004FEA88
004D731E   .68 18C64000      push    0040C618
004D7323   .FF15 BC114000      call    dword ptr [<&MSVBVM60.__vbaNew2>]          ;MSVBVM60.__vbaNew2
004D7329   >8B3D 88EA4F00      mov   edi, dword ptr
004D732F   .8D4D CC            lea   ecx, dword ptr
004D7332   .56               push    esi
004D7333   .51               push    ecx
004D7334   .8B17               mov   edx, dword ptr
004D7336   .8995 34FFFFFF      mov   dword ptr , edx
004D733C   .FF15 BC104000      call    dword ptr [<&MSVBVM60.__vbaObjSetAddref>];MSVBVM60.__vbaObjSetAddref
004D7342   .8B95 34FFFFFF      mov   edx, dword ptr
004D7348   .50               push    eax
004D7349   .57               push    edi
004D734A   .FF52 10            call    dword ptr
004D734D   .3BC3               cmp   eax, ebx
004D734F   .DBE2               fclex
004D7351   .7D 0F            jge   short 004D7362
004D7353   .6A 10            push    10
004D7355   .68 08C64000      push    0040C608
004D735A   .57               push    edi
004D735B   .50               push    eax
004D735C   .FF15 70104000      call    dword ptr [<&MSVBVM60.__vbaHresultCheckObj>;MSVBVM60.__vbaHresultCheckObj
004D7362   >8D4D CC            lea   ecx, dword ptr
004D7365   .FF15 74124000      call    dword ptr [<&MSVBVM60.__vbaFreeObj>]       ;MSVBVM60.__vbaFreeObj
004D736B   >895D FC            mov   dword ptr , ebx
004D736E   .68 BB734D00      push    004D73BB
004D7373   .EB 3C            jmp   short 004D73B1
004D7375   .8D45 D0            lea   eax, dword ptr
004D7378   .8D4D D4            lea   ecx, dword ptr
004D737B   .50               push    eax
004D737C   .8D55 D8            lea   edx, dword ptr
004D737F   .51               push    ecx
004D7380   .52               push    edx
004D7381   .6A 03            push    3
004D7383   .FF15 DC114000      call    dword ptr [<&MSVBVM60.__vbaFreeStrList>]   ;MSVBVM60.__vbaFreeStrList
004D7389   .83C4 10            add   esp, 10
004D738C   .8D4D CC            lea   ecx, dword ptr
004D738F   .FF15 74124000      call    dword ptr [<&MSVBVM60.__vbaFreeObj>]       ;MSVBVM60.__vbaFreeObj
004D7395   .8D45 8C            lea   eax, dword ptr
004D7398   .8D4D 9C            lea   ecx, dword ptr
004D739B   .50               push    eax
004D739C   .8D55 AC            lea   edx, dword ptr
004D739F   .51               push    ecx
004D73A0   .8D45 BC            lea   eax, dword ptr
004D73A3   .52               push    edx
004D73A4   .50               push    eax
004D73A5   .6A 04            push    4
004D73A7   .FF15 48104000      call    dword ptr [<&MSVBVM60.__vbaFreeVarList>]   ;MSVBVM60.__vbaFreeVarList
004D73AD   .83C4 14            add   esp, 14
004D73B0   .C3               retn
004D73B1   >8D4D DC            lea   ecx, dword ptr
004D73B4   .FF15 2C104000      call    dword ptr [<&MSVBVM60.__vbaFreeVar>]       ;MSVBVM60.__vbaFreeVar
004D73BA   .C3               retn
004D73BB   .8B45 08            mov   eax, dword ptr
004D73BE   .50               push    eax
004D73BF   .8B08               mov   ecx, dword ptr
004D73C1   .FF51 08            call    dword ptr
004D73C4   .8B45 FC            mov   eax, dword ptr
004D73C7   .8B4D EC            mov   ecx, dword ptr
004D73CA   .5F               pop   edi
004D73CB   .5E               pop   esi
004D73CC   .64:890D 00000000   mov   dword ptr fs:, ecx
004D73D3   .5B               pop   ebx
004D73D4   .8BE5               mov   esp, ebp
004D73D6   .5D               pop   ebp
004D73D7   .C2 0400            retn    4                                          ;返回程序

注册机代码:

============ 以下程序在盗版XPsp2、VB6.0下编译测试通过 ============

Private Sub Text1_Change()
Dim MacID, SN As Long
Const X = 20071

MacID = Text1.Text

If Len(MacID) <= 0 Then
Else
SN = Left(Left(MacID, 4) * X, 8)
End If

Text2.Text = SN

End Sub

============ 以下程序在盗版XPsp2、Delphi 6.0下编译测试通过 ============

procedure TForm1.Edit1Change(Sender: TObject);
const
    X = 20071;
var
    MacID : Variant;
    SN : Longint;
begin
    MacID := Edit1.Text;

    ifsizeof(MacID)<=0 then begin
   end else begin
      SN :=LeftStr( LeftStr(MacID, 4)*X, 8);
    end;

    Edit2.Text := SN;

end;

end.
--------------------------------------------------------------------------------
【经验总结】
1.取机器码取前4位作为运算码(带符号)
2.运算码乘以固定变量4E67[十进制:20071]
3.计算结果取8位作为注册码(带符号)

--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2007年02月23日 16:44:13转

[ 本帖最后由 yunfeng 于 2007-2-23 20:32 编辑 ]

yunfeng 发表于 2007-2-23 20:32:49

没法上传附件
页: [1]
查看完整版本: 三维立体图像制作大师v3.15