标 题:cardIt V1.2
发信人:飞狐
时 间:2002/09/01 08:22pm
详细信息: 万丈高楼平地起,学PJ先打好基础,最好下载后自己先练习追踪一下,否则只是come easy go easy.
cardIt V1.2是专业的名片设计系统,运行于Windows95/98/NT4平台,它不仅适应于名片设计,还适应于各种证件、卡片的制作。
前面的过程,我想你应该了解吧。又给版主添麻烦了。~~~~~~~ :004156B9 E840FC0200 call 004452FE
:004156BE 8BCE mov ecx, esi
:004156C0 E82B000000 call 004156F0此处要按F8进入。
:004156C5 85C0 test eax, eax
:004156C7 6A00 push 00000000
:004156C9 6A00 push 00000000
:004156CB 7412 je 004156DF 为零则跳转到失败处
***************************
:004156F0 64A100000000 mov eax, dword ptr fs:[00000000]
:004156F6 6AFF push FFFFFFFF
:004156F8 68D8834600 push 004683D8
:004156FD 50 push eax
:004156FE 64892500000000 mov dword ptr fs:[00000000], esp
:00415705 83EC38 sub esp, 00000038
:00415708 56 push esi
:00415709 8B74244C mov esi, dword ptr [esp+4C]
:0041570D 837EF810 cmp dword ptr [esi-08], 00000010
[esi-08]是你所输入的注册码的长度。如果不是16个就跳.
:00415711 0F85C0000000 jne 004157D7
:00415717 BAF7FFFFFF mov edx, FFFFFFF7
:0041571C 33C9 xor ecx, ecx
:0041571E 8D4609 lea eax, dword ptr [esi+09]此处是把你所输入的注册码的首地址+9赋值给EAX,也就是取第10位数字
:00415721 2BD6 sub edx, esi * Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00415742(C)
|
:00415723 0FBE70F9 movsx esi, byte ptr [eax-07]此处首先是取第三位数字。
:00415727 83EE30 sub esi, 00000030把其ASCII值减30
:0041572A 89740C04 mov dword ptr [esp+ecx+04], esi存入此处,需要注意此处地址每次地址都不一样。
:0041572E 83C104 add ecx, 00000004 ECX+4
:00415731 0FBE30 movsx esi, byte ptr [eax]见上。
:00415734 83EE30 sub esi, 00000030把其ASCII值减30
:00415737 40 inc eax地址指针加1
:00415738 89740C1C mov dword ptr [esp+ecx+1C], esi存入此处,需要注意此处地址每次地址都不一样。
:0041573C 8D3402 lea esi, dword ptr [edx+eax]
:0041573F 83FE07 cmp esi, 00000007是否循环7次。
:00415742 7CDF jl 00415723低于继续循环,否则进行比较。
上面的取所输入的注册码的的顺序是,第3位、第10位、第4位、第11位、第5位、
第12位、第6位、第13位、第7位、第14位、第8位、第15位、第9位、第16位。
而其ASCII值减30存入地址依次是:70EB20、70EB3C、70EB24、70EB40、70EB28、
70EB44、70EB2C、70EB48、70EB30、70EB4C、70EB34、70EB50、70EB38、70EB54
:00415744 8B442430 mov eax, dword ptr [esp+30]
:00415748 8B4C2404 mov ecx, dword ptr [esp+04]
