首页
社区
课程
招聘
[旧帖] [求助]如何根据下面算法做出注册机 0.00雪花
发表于: 2007-6-21 02:37 4394

[旧帖] [求助]如何根据下面算法做出注册机 0.00雪花

2007-6-21 02:37
4394
请各位帮个忙,下面算法怎么用 Keymake 做出注册机? 谢谢!

如下:

mov eax, dword ptr [ebp-4] 
mov al, byte ptr [eax+ebx] 
xor al, 20 
mov esi, eax   
and esi, 0FF 
push dword ptr [ebp-8]   
lea eax, dword ptr [ebp-C] 
mov edx, esi 
test edx, edx   
jns short 004F7626
add edx, 0F
sar edx, 4
mov edx, dword ptr [edx*4+567674] 
mov dl, byte ptr [edx+5676F4] 
call 004049AC
push dword ptr [ebp-C]
lea eax, dword ptr [ebp-10]
and esi, 8000000F
jns short 004F764E
dec esi
or esi, FFFFFFF0
inc esi
mov edx, dword ptr [esi*4+567674]
mov dl, byte ptr [edx+5676F4] 
call 004049AC
push dword ptr [ebp-10]
lea eax, dword ptr [ebp-8]
mov edx, 3
call 00404B44
inc ebx
dec edi
jnz short 004F7607  从头再一次循环

取序列号一位一位的计算

另外,下面是部份对应码:

序列号 注册码
0    C6
1    CC
2    C5
3    C9
4    CA
5    C0
6    CD

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
只给出这些别人是无法给你答案。下面红色标志的地方你必须告诉别人都是些什么才行。
mov eax, dword ptr [ebp-4] ; 这里保存着什么
mov al, byte ptr [eax+ebx]
xor al, 20
mov esi, eax   
and esi, 0FF
push dword ptr [ebp-8]   ; 这里保存着什么
lea eax, dword ptr [ebp-C] ; 这里保存着什么
mov edx, esi
test edx, edx   
jns short 004F7626 ; 这里跳向哪里?
add edx, 0F
sar edx, 4
mov edx, dword ptr [edx*4+567674] ;这个似乎是一个表,你必须给出这个表的数据
mov dl, byte ptr [edx+5676F4] ;这个似乎也是一个表,你也必须给出这个表的数据才行。
call 004049AC ;这个Call是干什么的?实现什么功能
push dword ptr [ebp-C] ; 这里保存着什么
lea eax, dword ptr [ebp-10] ; 这里保存着什么
and esi, 8000000F
jns short 004F764E ; 这里跳向哪里?
dec esi
or esi, FFFFFFF0
inc esi
mov edx, dword ptr [esi*4+567674] ;这个似乎是一个表,你必须给出这个表的数据

mov dl, byte ptr [edx+5676F4] ;这个似乎也是一个表,你也必须给出这个表的数据才行。
call 004049AC
push dword ptr [ebp-10] ; 这里保存着什么
lea eax, dword ptr [ebp-8] ; 这里保存着什么
mov edx, 3
call 00404B44 ;这个Call是干什么的?实现什么功能
inc ebx
dec edi
jnz short 004F7607  从头再一次循环
2007-6-21 08:04
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
mov eax, dword ptr [ebp-4]  ; 序列号ASCII
mov al, byte ptr [eax+ebx]   ;取第一位序列号的ASCII(十六进制)如:4D = M , 49 = I
xor al, 20  ;第一位序列号的ASCII(十六进制) xor 20 (十六位计算)
mov esi, eax   ;xor值为内存地址
and esi, 0FF   ;内存地址 And 0FF (不足2位以0补充)
push dword ptr [ebp-8]      ;存计算出的注册码
lea eax, dword ptr [ebp-C]  ;这里无所谓
mov edx, esi    ;这里无所谓
test edx, edx   ;这里无所谓
jns short 004F7626 ; 这里跳向 sar edx, 4
add edx, 0F
sar edx, 4   ; And值右移 , (变成第一位值,前面xor值如果是64,则取6,如果是59,取5)
mov edx, dword ptr [edx*4+567674] ;右移后的第一位值乘 4 +567674 = 内存地址中的值 '注册码就是这个值
mov dl, byte ptr [edx+5676F4] ;这里无所谓
call 004049AC ;这里无所谓
push dword ptr [ebp-C] ; 这里无所谓
lea eax, dword ptr [ebp-10] ; 这里无所谓
and esi, 8000000F ;第二位值 and 8000000F
jns short 004F764E ; 这里跳向mov edx, dword ptr [esi*4+567674]
dec esi
or esi, FFFFFFF0
inc esi
mov edx, dword ptr [esi*4+567674] ;and 乘 4 +567674 = 内存地址中的值 '注册码就是这个值
mov dl, byte ptr [edx+5676F4] ;这里无所谓
call 004049AC ;这里无所谓
push dword ptr [ebp-10] ; 这里无所谓
lea eax, dword ptr [ebp-8] ; 这里无所谓
mov edx, 3 ;这里无所谓
call 00404B44 ;这里无所谓
inc ebx ;这里无所谓
dec edi ;这里无所谓
jnz short 004F7607  从头再一次循环,取下位序列号

全部过程:序列号 -> 取第一位序列号ASCII码的(十六位) -> xor 20 -> and 0FF(不足2位前面0补充)
-> 取第一位 -> 第一位*4+567674(取内存地址值) -> 存注册码 ->
-> 取第二位 -> 第二位*4+567674(取内存地址值) -> 存注册码 ->
循环取第二位序列号
2007-6-21 17:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这是表值

00567674  06 00 00 00 0C 00 00 00 05 00 00 00 09 00 00 00  ..............
00567684  0A 00 00 00 00 00 00 00 0D 00 00 00 08 00 00 00  ...............
00567694  0F 00 00 00 03 00 00 00 0E 00 00 00 04 00 00 00  ............
005676A4  02 00 00 00 0B 00 00 00 01 00 00 00 07 00 00 00  ... .........
005676B4  05 00 00 00 0E 00 00 00 0C 00 00 00 09 00 00 00  ..............
005676C4  0B 00 00 00 02 00 00 00 00 00 00 00 0F 00 00 00   .............
005676D4  07 00 00 00 03 00 00 00 04 00 00 00 0D 00 00 00  .............
005676E4  01 00 00 00 06 00 00 00 0A 00 00 00 08 00 00 00  .............
005676F4  30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46  0123456789ABCDEF
2007-6-21 17:41
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
进来学习一下···
2007-6-21 18:07
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
6
; 明白了
; 下面的代码可以用刘健英的KeyMake生成注册机。

.const

.data
szHomePage db "http://www.365hz.net",0
szEmail    db "mailto:ljyljx@163.com",0
szErrMess  db "输入的序列号不正确!",0
ddTable dd 06h,0ch,05h,09h
        dd 0ah,00h,0dh,08h
        dd 0fh,03h,0eh,04h
        dd 02h,0bh,01h,07h
        dd 05h,0eh,0ch,09h
        dd 0bh,02h,00h,0fh
        dd 07h,03h,04h,0dh
        dd 01h,06h,0ah,08h
szFormat db "%X",0
szTmpBuffer db 4 dup(0)
szSnBuffer db 255 dup(0)

.code
xor ebx,ebx
invoke lstrlen,eax
mov edi,eax
Log_Start:
lea eax,hInput1
mov al,byte ptr [eax+ebx]
xor al,20h
mov esi,eax
and esi,0ffh
mov edx,esi
test edx,edx
jns @f
add edx,0fh
@@:
sar edx,4
mov edx,dword ptr [edx*4+ddTable]
invoke wsprintf,offset szTmpBuffer,offset szFormat,edx
invoke lstrcat,offset szSnBuffer,offset szTmpBuffer
and esi,8000000fh
jns @f
dec esi
or esi,0fffffff0h
inc esi
@@:
mov edx,dword ptr [esi*4+ddTable]
invoke wsprintf,offset szTmpBuffer,offset szFormat,edx
invoke lstrcat,offset szSnBuffer,offset szTmpBuffer
inc ebx
dec edi
jnz Log_Start
lea eax,szSnBuffer
2007-6-21 18:19
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
7
注册机图片:
上传的附件:
2007-6-21 18:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
ok....谢谢了!
2007-6-21 18:45
0
游客
登录 | 注册 方可回帖
返回
//