zaas 发表于 2010-6-21 14:57

初学Delphi,写个CM大家玩玩

本帖最后由 zaas 于 2010-6-21 18:38 编辑

以前玩vb,最近改完delphi啦~~
难度。。。未知吧。。。
都来试试看~~~



更新:修改一个bug,回避一个按钮事件

qhd11 发表于 2010-6-21 15:04

写得不错,继续

小糊涂虫 发表于 2010-6-21 15:34

回复 1# zaas


    是不是有问题哦。。。

a6670110 发表于 2010-6-21 15:58

看不懂 是 弄啥 的

zaas 发表于 2010-6-21 18:41

回复zaas


    是不是有问题哦。。。
小糊涂虫 发表于 2010-6-21 15:34 http://52pojie.cn/images/common/back.gif


    已更正。

8567 发表于 2010-6-21 19:33

拿不下,呵呵

热火朝天 发表于 2010-6-22 00:56

:rggrg玩不了,闪了

elyt 发表于 2010-8-11 02:37

先放个长的用户的:-)
用户名: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzN
注册码: zaasQ

再放个短的:
用户名:0
注册码:ZAASAAQ

其中用户区分大小写,注册码不区分大小写


004574D0/.55            push    ebp
004574D1|.8BEC          mov   ebp, esp
004574D3|.B9 09000000   mov   ecx, 9
004574D8|>6A 00         /push    0
004574DA|.6A 00         |push    0
004574DC|.49            |dec   ecx
004574DD|.^ 75 F9         \jnz   short 004574D8
004574DF|.51            push    ecx
004574E0|.53            push    ebx
004574E1|.56            push    esi
004574E2|.8945 FC       mov   dword ptr , eax
004574E5|.33C0          xor   eax, eax
004574E7|.55            push    ebp
004574E8|.68 F6764500   push    004576F6
004574ED|.64:FF30       push    dword ptr fs:
004574F0|.64:8920       mov   dword ptr fs:, esp
004574F3|.8D55 F0       lea   edx, dword ptr
004574F6|.8B45 FC       mov   eax, dword ptr
004574F9|.8B80 FC020000 mov   eax, dword ptr
004574FF|.E8 A4E9FDFF   call    00435EA8                         ;取用户名
00457504|.8B45 F0       mov   eax, dword ptr
00457507|.E8 3CCCFAFF   call    00404148
0045750C|.85C0          test    eax, eax
0045750E|.0F84 8D010000 je      004576A1
00457514|.8D55 EC       lea   edx, dword ptr
00457517|.8B45 FC       mov   eax, dword ptr
0045751A|.8B80 00030000 mov   eax, dword ptr
00457520|.E8 83E9FDFF   call    00435EA8
00457525|.8B45 EC       mov   eax, dword ptr
00457528|.E8 1BCCFAFF   call    00404148
0045752D|.85C0          test    eax, eax
0045752F|.0F84 6C010000 je      004576A1
00457535|.8D55 E4       lea   edx, dword ptr
00457538|.8B45 FC       mov   eax, dword ptr
0045753B|.8B80 FC020000 mov   eax, dword ptr
00457541|.E8 62E9FDFF   call    00435EA8
00457546|.8B45 E4       mov   eax, dword ptr
00457549|.8D55 E8       lea   edx, dword ptr
0045754C|.E8 4306FBFF   call    00407B94
00457551|.8B45 E8       mov   eax, dword ptr
00457554|.E8 EFCDFAFF   call    00404348
00457559|.8BF0          mov   esi, eax
0045755B|.33C0          xor   eax, eax
0045755D|.8945 F4       mov   dword ptr , eax
00457560|.33DB          xor   ebx, ebx
00457562|.8D45 E0       lea   eax, dword ptr
00457565|.8BD6          mov   edx, esi
00457567|.E8 14CBFAFF   call    00404080
0045756C|.8B45 E0       mov   eax, dword ptr
0045756F|.E8 D4CBFAFF   call    00404148
00457574|.48            dec   eax
00457575|.85C0          test    eax, eax
00457577|.7C 0F         jl      short 00457588
00457579|.40            inc   eax
0045757A|.33D2          xor   edx, edx
0045757C|>33C9          /xor   ecx, ecx
0045757E|.8A0C16      |mov   cl, byte ptr
00457581|.014D F4       |add   dword ptr , ecx          ;=用户的累加
00457584|.42            |inc   edx
00457585|.48            |dec   eax
00457586|.^ 75 F4         \jnz   short 0045757C
00457588|>8175 F4 10200>xor   dword ptr , 2010          ;再与0x2010 异或, 记为 f(name)
0045758F|.8D55 D4       lea   edx, dword ptr
00457592|.8B45 FC       mov   eax, dword ptr
00457595|.8B80 00030000 mov   eax, dword ptr
0045759B|.E8 08E9FDFF   call    00435EA8                         ;取密码
004575A0|.8B45 D4       mov   eax, dword ptr
004575A3|.8D55 D8       lea   edx, dword ptr
004575A6|.E8 E905FBFF   call    00407B94
004575AB|.8B45 D8       mov   eax, dword ptr
004575AE|.8D55 DC       lea   edx, dword ptr
004575B1|.E8 C203FBFF   call    00407978                         ;UPCASE(注册码) 将注册码转换成大写
004575B6|.8B45 DC       mov   eax, dword ptr
004575B9|.E8 8ACDFAFF   call    00404348
004575BE|.8BF0          mov   esi, eax
004575C0|.8D45 D0       lea   eax, dword ptr
004575C3|.8A15 F48D4500 mov   dl, byte ptr           ;=常量'Z'
004575C9|.8850 01       mov   byte ptr , dl
004575CC|.C600 01       mov   byte ptr , 1
004575CF|.8D55 D0       lea   edx, dword ptr
004575D2|.8D45 CC       lea   eax, dword ptr
004575D5|.E8 5EB4FAFF   call    00402A38                         ;注册码第1位比较
004575DA|.8D45 C8       lea   eax, dword ptr
004575DD|.8A15 F88D4500 mov   dl, byte ptr             ;=常量'A'
004575E3|.8850 01       mov   byte ptr , dl
004575E6|.C600 01       mov   byte ptr , 1
004575E9|.8D55 C8       lea   edx, dword ptr
004575EC|.8D45 CC       lea   eax, dword ptr
004575EF|.B1 02         mov   cl, 2
004575F1|.E8 12B4FAFF   call    00402A08
004575F6|.8D55 CC       lea   edx, dword ptr
004575F9|.8D45 C4       lea   eax, dword ptr
004575FC|.E8 37B4FAFF   call    00402A38                         ;注册码第2位比较
00457601|.8D45 C8       lea   eax, dword ptr
00457604|.8A15 F88D4500 mov   dl, byte ptr           ;=常量'A'
0045760A|.8850 01       mov   byte ptr , dl
0045760D|.C600 01       mov   byte ptr , 1
00457610|.8D55 C8       lea   edx, dword ptr
00457613|.8D45 C4       lea   eax, dword ptr
00457616|.B1 03         mov   cl, 3
00457618|.E8 EBB3FAFF   call    00402A08
0045761D|.8D55 C4       lea   edx, dword ptr
00457620|.8D45 BC       lea   eax, dword ptr
00457623|.E8 10B4FAFF   call    00402A38                         ;注册码第3位比较
00457628|.8D45 C8       lea   eax, dword ptr
0045762B|.8A15 FC8D4500 mov   dl, byte ptr             ;=常量'S',注册码第4位将与这个比较
00457631|.8850 01       mov   byte ptr , dl
00457634|.C600 01       mov   byte ptr , 1
00457637|.8D55 C8       lea   edx, dword ptr
0045763A|.8D45 BC       lea   eax, dword ptr
0045763D|.B1 04         mov   cl, 4
0045763F|.E8 C4B3FAFF   call    00402A08
00457644|.8D55 BC       lea   edx, dword ptr
00457647|.8D45 F8       lea   eax, dword ptr
0045764A|.E8 9DCAFAFF   call    004040EC
0045764F|.8D45 B8       lea   eax, dword ptr
00457652|.8BD6          mov   edx, esi
00457654|.E8 27CAFAFF   call    00404080
00457659|.8B55 B8       mov   edx, dword ptr
0045765C|.8B45 F8       mov   eax, dword ptr
0045765F|.E8 28CEFAFF   call    0040448C
00457664|.85C0          test    eax, eax
00457666|.74 39         je      short 004576A1
00457668|.8D45 B4       lea   eax, dword ptr
0045766B|.8BD6          mov   edx, esi
0045766D|.E8 0ECAFAFF   call    00404080
00457672|.8B45 B4       mov   eax, dword ptr
00457675|.E8 CECAFAFF   call    00404148
0045767A|.48            dec   eax
0045767B|.85C0          test    eax, eax
0045767D|.7C 0E         jl      short 0045768D
0045767F|.40            inc   eax
00457680|.33D2          xor   edx, edx
00457682|>33C9          /xor   ecx, ecx
00457684|.8A0C16      |mov   cl, byte ptr           ;注册码的累加
00457687|.03D9          |add   ebx, ecx
00457689|.42            |inc   edx
0045768A|.48            |dec   eax
0045768B|.^ 75 F5         \jnz   short 00457682
0045768D|>8BC3          mov   eax, ebx
0045768F|.C1E0 04       shl   eax, 4                           ;然后左移动4位, 记为 g(code)
00457692|.8BD8          mov   ebx, eax
00457694|.8BCB          mov   ecx, ebx
00457696|.8B55 F4       mov   edx, dword ptr
00457699|.8B45 FC       mov   eax, dword ptr
0045769C|.E8 0FFCFFFF   call    004572B0                         ;f(name) 与 g(code) 进行比较
页: [1]
查看完整版本: 初学Delphi,写个CM大家玩玩