新手练手用的CM
自已学Delphi写的一个CM,爆破很简单。要求:解释此程序的算法,写出注册机.
算法简单。。。
两组可用的的
12345
50855160
lcg
40369560
不会编程,不会注册机。
关键部分:
00451524 B8 01000000 mov eax,1
00451529 8B4D FC mov ecx,dword ptr ss:
0045152C 0FB64C01 FF movzx ecx,byte ptr ds:
00451531 0FAFC8 imul ecx,eax
00451534 03D9 add ebx,ecx
00451536 40 inc eax
00451537 4A dec edx
00451538 ^ 75 EF jnz short CMNO1.00451529
0045153A 8BC3 mov eax,ebx
0045153C C1E0 10 shl eax,10
0045153F 2BC3 sub eax,ebx
00451541 8BD8 mov ebx,eax
00451543 8BC3 mov eax,ebx
00451545 33D2 xor edx,edx
00451547 52 push edx
00451548 50 push eax 帮ls的大侠补充下:
00451524|.B8 01000000 mov eax, 1
00451529|>8B4D FC /mov ecx, dword ptr
0045152C|.0FB64C01 FF |movzx ecx, byte ptr ;取name的ASCII码
00451531|.0FAFC8 |imul ecx, eax ;乘以循环次数
00451534|.03D9 |add ebx, ecx ;ebx=sum,sum初始为1
00451536|.40 |inc eax
00451537|.4A |dec edx
00451538|.^ 75 EF \jnz short 00451529
0045153A|>8BC3 mov eax, ebx
0045153C|.C1E0 10 shl eax, 10 ;循环的sum乘以2的十次方
0045153F|.2BC3 sub eax, ebx ;再减去初始的循环结果,转换为十进制就是最终的注册码 关注此贴下载玩下... 本帖最后由 xiaocainiaok 于 2010-7-2 13:56 编辑
00407BEE |> \DF28 fild qword ptr ; 1
00407BF0 |> DF0424 fild word ptr
00407BF3 |. D9C1 fld st(1)
00407BF5 |> 4E /dec esi
00407BF6 |. D9F8 |fprem
00407BF8 |. DF1C24 |fistp word ptr
00407BFB |. DCF9 |fdiv st(1), st
00407BFD |. 8A0424 |mov al, byte ptr
00407C00 |. 04 30 |add al, 30
00407C02 |. 3C 3A |cmp al, 3A
00407C04 |. 72 02 |jb short 00407C08
00407C06 |. 04 07 |add al, 7
00407C08 |> 8806 |mov byte ptr , al
00407C0A |. D9C1 |fld st(1)
00407C0C |. D8D3 |fcom st(3)
00407C0E |. 9B |wait
00407C0F |. DFE0 |fstsw ax
00407C11 |. 9E |sahf
00407C12 |.^ 73 E1 \jnb short 00407BF5
00407C14 |. D96C24 02 fldcw word ptr
00407C18 |. 83C4 04 add esp, 4
00407C1B |. DDC3 ffree st(3)
00407C1D |. DDC2 ffree st(2)
00407C1F |. DDC1 ffree st(1)
00407C21 |. DDC0 ffree st
00407C23 |. 59 pop ecx
00407C24 |. 29F1 sub ecx, esi
00407C26 |. 29CA sub edx, ecx
00407C28 |. 76 10 jbe short 00407C3A
00407C2A |. 29D6 sub esi, edx
00407C2C |. B0 30 mov al, 30
00407C2E |. 01D1 add ecx, edx
00407C30 |. EB 03 jmp short 00407C35
00407C32 |> 880432 /mov byte ptr , al
00407C35 |> 4A dec edx
00407C36 |.^ 75 FA \jnz short 00407C32
00407C38 |. 8806 mov byte ptr , al
这段代码看着头疼...竟然只是16进制转10进制分析了一个小时发现楼上已经贴出正确答案了.... 例如1234 取“1”的asc值31累加1+31+2*32+3*33+4*44=1ff lsh10位 =1ff0000 减去1ff=1FEFE01 转为十进制33488385验证下 竟然ok了 分析的都是正确的。哪位能贴一下注册机源码。
稍候我再放出CM的源码。。。。 回复 3# 太虚伪了
0045153C|.C1E0 10 shl eax, 10 ;循环的sum乘以2的十次方
这个指令是不是可以理解为 左移多少位就表示乘以2的多少次方。 膜拜继续关注 希望有贴注册机源码的 继续学习 牛人多多 厉害 回复太虚伪了
0045153C|.C1E0 10 shl eax, 10 ; ...
robey 发表于 2010-7-2 14:46 http://bbs.52pojie.cn/images/common/back.gif
我认为是这样的。。。
页:
[1]
2