KeyMakeMe 20091010
软件名称:KeyMakeMe 20091010软件编写:Keymake 2.0 ZHOU2X
加壳与否:无壳
难易程序:中初级(明码)
软件要求:算法分析及用KeyMake编写注册机
活动目的:提升对Keymake编写注册机的信心
活动奖励:已奖啦,公布源代码,呵呵。2009-10-13
注册参考:
用户名:WildCatIII
注册码:DPM-LJWZ-NSM
[ 本帖最后由 野猫III 于 2009-10-11 11:49 编辑 ]
[ 本帖最后由 野猫III 于 2009-10-21 16:58 编辑 ] 先占座...留位置
0040121C .0BC0 OR EAX,EAX
0040121E .75 05 JNZ SHORT KeyMakeM.00401225
00401220 .E9 C3000000 JMP KeyMakeM.004012E8
00401225 >8D0D 60324000 LEA ECX,DWORD PTR DS:
0040122B .8D1D 98314000 LEA EBX,DWORD PTR DS: ;获取注册码给EBX
00401231 .8D05 D0304000 LEA EAX,DWORD PTR DS: ;获取注册用户名给EAX
00401237 .55 PUSH EBP
00401238 .892D CC304000 MOV DWORD PTR DS:,EBP
0040123E .895D FC MOV DWORD PTR SS:,EBX
00401241 .BB 01000000 MOV EBX,1
00401246 .A3 65304000 MOV DWORD PTR DS:,EAX
0040124B .50 PUSH EAX ; /String => "sniy"
0040124C .E8 C3010000 CALL <JMP.&kernel32.lstrlenA> ; \用户名长度
00401251 .8B3D 65304000 MOV EDI,DWORD PTR DS: ;KeyMakeM.004030D0
00401257 .8BF0 MOV ESI,EAX
00401259 .8BC3 MOV EAX,EBX
0040125B .B9 1A000000 MOV ECX,1A
00401260 >8BC3 MOV EAX,EBX ;EBX——>EAX
00401262 .99 CDQ
00401263 .6BC0 03 IMUL EAX,EAX,3 ;乘3
00401266 .C1E0 03 SHL EAX,3 ;EAX左移三位
00401269 .2BC3 SUB EAX,EBX ;EAX+EBX
0040126B .D1E0 SHL EAX,1 ;EAX左移一位
0040126D .4E DEC ESI ;ESI减1
0040126E .79 05 JNS SHORT KeyMakeM.00401275
00401270 .83C0 20 ADD EAX,20
00401273 .EB 08 JMP SHORT KeyMakeM.0040127D
00401275 >33D2 XOR EDX,EDX ;异或EDX
00401277 .8A543B FF MOV DL,BYTE PTR DS: ;逐次取每位
0040127B .03C2 ADD EAX,EDX ;EAX+EDX
0040127D >99 CDQ
0040127E .F7F9 IDIV ECX ;除ECX
00401280 .80C2 41 ADD DL,41 ;DL+65
00401283 .8893 50304000 MOV BYTE PTR DS:,DL;得到相应对应ASCII的注册码
00401289 .43 INC EBX ;EBX减1
0040128A .80FB 0C CMP BL,0C ;BL与12比较
0040128D .^ 76 D1 JBE SHORT KeyMakeM.00401260 ;小于则跳
0040128F .C605 54304000>MOV BYTE PTR DS:,2D ;去掉一个T
00401296 .C605 59304000>MOV BYTE PTR DS:,2D ;去掉一个E
0040129D .8D05 51304000 LEA EAX,DWORD PTR DS: ;获得注册码
004012A3 .50 PUSH EAX ; /String => "FUJ-CWQK-YSM"
004012A4 .E8 6B010000 CALL <JMP.&kernel32.lstrlenA> ; \lstrlenA
[ 本帖最后由 sniy 于 2009-10-11 12:44 编辑 ] 我要源码/:010 算法不难,复制代码就行
提示框是怎么做出来的
猫:用Keymake编译的时候,选择第二种方式的。
[ 本帖最后由 野猫III 于 2009-10-11 14:54 编辑 ] 再占个位置...观望.... 由于生活琐事好久没来了,真不好意思,练习下:00401241 .BB 01000000 mov ebx,1 //赋初值=1
00401246 .A3 65304000 mov dword ptr ds:,eax
0040124B .50 push eax ///用户名入栈
0040124C .E8 C3010000 call <jmp.&kernel32.lstrlenA> \//取用户名长度
00401251 .8B3D 65304000 mov edi,dword ptr ds: KeyMakeM.004030D0
00401257 .8BF0 mov esi,eax //用户名长度给ESI
00401259 .8BC3 mov eax,ebx //循环初值给EAX
0040125B .B9 1A000000 mov ecx,1A //ecx赋值为1A
00401260 >8BC3 mov eax,ebx //循环变量给EAX
00401262 .99 cdq
00401263 .6BC0 03 imul eax,eax,3 //EAX=EAX*3
00401266 .C1E0 03 shl eax,3 //EAX左移3位
00401269 .2BC3 sub eax,ebx //EAX=EAX-EBX
0040126B .D1E0 shl eax,1 //EAX左移1位
0040126D .4E dec esi //用户名长度-1
0040126E .79 05 jns short KeyMakeM.00401275
00401270 .83C0 20 add eax,20 //EAX加20
00401273 .EB 08 jmp short KeyMakeM.0040127D
00401275 >33D2 xor edx,edx
00401277 .8A543B FF mov dl,byte ptr ds: //依次取用户名
0040127B .03C2 add eax,edx //依次取的用户名ASC码加上面计算结果
0040127D >99 cdq
0040127E .F7F9 idiv ecx //除1A
00401280 .80C2 41 add dl,41 //余数+41
00401283 .8893 50304000 mov byte ptr ds:,dl //dl存入ebx+403050
00401289 .43 inc ebx //循环变量加1
0040128A .80FB 0C cmp bl,0C //bl和0C进行比较,也就是说要循环12次
0040128D .^ 76 D1 jbe short KeyMakeM.00401260
0040128F .C605 54304000 2D mov byte ptr ds:,2D //用"-"替换字符串第4位
00401296 .C605 59304000 2D mov byte ptr ds:,2D //用"-"替换字符串第9位
0040129D .8D05 51304000 lea eax,dword ptr ds: //取字符串地址
004012A3 .50 push eax /String => "CWU-ECQK-YSM"
写了个注册机,后发现要求是要keymake来做,又弄了个,2个注册机都上传吧,支持猫老大!
[ 本帖最后由 pptppt 于 2009-10-11 16:54 编辑 ] 原帖由 pptppt 于 2009-10-11 16:48 发表 https://www.chinapyg.com/images/common/back.gif
由于生活琐事好久没来了,真不好意思,练习下:00401241 .BB 01000000 mov ebx,1 //赋初值=1
00401246 .A3 65304000 mov dword ptr ds:,eax
0040124B ...
强悍!!! 原帖由 pptppt 于 2009-10-11 16:48 发表 https://www.chinapyg.com/images/common/back.gif
由于生活琐事好久没来了,真不好意思,练习下:00401241 .BB 01000000 mov ebx,1 //赋初值=1
00401246 .A3 65304000 mov dword ptr ds:,eax
0040124B ...
赞一个...