老文章档案 · 2003 年

龙文五笔(9千字) 算法分析

赢政资讯 · 破解文章 · 2003-08-06 · 作者:Fpc 人气: · 出处:赢政天下整理收藏

;

;keymake of LongWen WuBi 2.0

;by: Fpc/CCG

;@ : 2002-11-13

;

.386

.model flat,stdcall

option casemap:none

include hd.h

_ProcDlg proto :DWORD,:DWORD,:DWORD,:DWORD

GetOurCode proto :DWORD, :DWORD

;->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>data seg

.const

BUFF_SIZE equ 36

ID_MAKE equ 1002

ID_ABOUT equ 1003

ID_CLOSE equ 1004

IDC_MECHINE equ 1010

IDC_CODE equ 1011

IDC_STATUS equ 1015

DLG_MAIN equ 1000

.data

szMechine db BUFF_SIZE dup (0) ;mechine code

szCode db BUFF_SIZE dup (0) ;legal code for input :)

MsgTitle db "+CCG+", 0

MsgContend db "XXXXX2.0注册机", 0dh, 0ah, 0dh, 0ah

db "Cracker: Fpc", 0dh, 0ah

db "Team : China Cracking Group", 0dh, 0ah

db "Release: 2002-11-13", 0dh, 0ah

db "Website: www.ccg.com", 0dh, 0ah, 0dh, 0ah

db " 本软件受版权法保护,请合法使用。", 0

szSucceed db "完毕:)", 0

szNoInput db "请输入机器码", 0

szSizeError db "机器码位数不对", 0

szIllegalMC db "机器码含非法字符", 0

LibName db "msvcrt.dll",0

DllNotFound db "无法加载msvcrt.dll",0

AppName db "CCG",0

F_ltoa db "_ltoa", 0

.data?

hInstance HANDLE ?

hLib dd ?

hMake HANDLE ?

A_ltoa dd ?

.code

start:

invoke GetModuleHandle,NULL

mov hInstance,eax

invoke DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlg,0

invoke ExitProcess,NULL

_ProcDlg proc uses ebx edi esi, \

hWnd:DWORD,wMsg:DWORD,wParam:DWORD,lParam:DWORD

LOCAL Ps :PAINTSTRUCT

mov eax,wMsg

.if eax == WM_CLOSE

invoke FreeLibrary,hLib

invoke EndDialog,hWnd,NULL

.elseif eax==WM_INITDIALOG

invoke LoadLibrary,addr LibName

.if eax==NULL

invoke MessageBox,NULL,addr DllNotFound,addr AppName,MB_OK

.else

mov hLib,eax

invoke GetProcAddress,hLib,addr F_ltoa

mov A_ltoa, eax

.endif

.elseif eax == WM_PAINT

invoke BeginPaint,hWnd,ADDR Ps

; ----------------------------------------

; The following function are in MASM32.LIB

; ----------------------------------------

invoke FrameWindow,hWnd,0,1,1

invoke FrameWindow,hWnd,1,1,0

invoke EndPaint,hWnd,ADDR Ps

xor eax, eax

.elseif eax == WM_COMMAND

mov eax,wParam

.IF lParam!=0

.if ax==ID_MAKE

invoke RtlZeroMemory, addr szMechine, BUFF_SIZE

invoke RtlZeroMemory, addr szCode, BUFF_SIZE

invoke GetDlgItemText,hWnd,IDC_MECHINE,addr szMechine, BUFF_SIZE

.if eax == 0

invoke SetDlgItemText,hWnd,IDC_STATUS,addr szNoInput

ret

.elseif eax==29

;delete '-'

lea esi, szMechine

mov edi, esi

mov ecx, eax

xor eax, eax

@movch:

lodsb

cmp al, '-'

jnz @nextch

lodsb

@nextch:

stosb

test al, al

jz @end1

jmp @movch

.elseif eax == 24

@end1:

lea esi, szMechine

lea edi, szCode

invoke GetOurCode, edi, esi

.if eax==0

invoke SetDlgItemText,hWnd,IDC_STATUS,addr szSucceed

.elseif eax==1

invoke SetDlgItemText,hWnd,IDC_STATUS,addr szSizeError

.elseif eax==2

invoke SetDlgItemText,hWnd,IDC_STATUS,addr szIllegalMC

.endif

invoke SetDlgItemText,hWnd,IDC_CODE,addr szCode

.else

invoke SetDlgItemText,hWnd,IDC_STATUS,addr szSizeError

.endif

.elseif ax==ID_CLOSE

invoke EndDialog,hWnd,NULL

.elseif ax==ID_ABOUT

invoke MessageBox, hWnd, Addr MsgContend, Addr MsgTitle, MB_OK

.endif

.ENDIF

.else

mov eax,FALSE

ret

.endif

mov eax,TRUE

ret

_ProcDlg ENDP

GetOurCode proc pCode:DWORD, pMechine:DWORD

invoke lstrlen, pMechine

cmp eax, 24

jz @next1

push 1

pop eax

ret

@charerror:

push 2

pop eax

ret

nop

@next1:

invoke CharUpperA, pMechine

;

;main math

;

push 6

pop ecx

mov esi, pMechine

mov edi, esi

;

@next4ch:

push 4

pop edx

xor ebx, ebx

xor eax, eax

@this4ch:

lodsb

cmp al, 'F'

jg @charerror

cmp al, 'A'

jl @next2

sub al, 'A'

add al, 0ah

jmp @next3

@next2:

cmp al, '9'

jg @charerror

cmp al, '0'

jl @charerror

sub al, '0'

@next3:

shl ebx, 4

or bl, al

dec edx

jnz @this4ch

mov ax, bx

stosw

dec ecx

jnz @next4ch

xor eax, eax

stosb

;

mov esi, pMechine

push ebp

mov ebp, esi

mov ax, word ptr [ebp+00]

shl eax, 05

mov word ptr [ebp+00], ax

xor eax, eax

mov ax, word ptr [ebp+02]

lea eax, dword ptr [eax+8*eax]

shl eax, 02

mov word ptr [ebp+02], ax

xor eax, eax

mov ax, word ptr [ebp+04]

lea ecx, dword ptr [8*eax+0]

sub ecx, eax

lea eax, dword ptr [ecx+4*ecx]

xor ecx, ecx

mov word ptr [ebp+04], ax

mov cx, word ptr [ebp+06]

mov eax, ecx

shl eax, 04

add eax, ecx

shl eax, 1

mov word ptr [ebp+06], ax

xor eax, eax

mov ax, word ptr [ebp+08]

lea ecx, dword ptr [eax+4*eax]

shl ecx, 03

sub ecx, eax

mov word ptr [ebp+08], cx

xor eax, eax

mov ax, word ptr [ebp+0Ah]

lea ecx, dword ptr [eax+8*eax]

lea eax, dword ptr [eax+4*ecx]

mov word ptr [ebp+0Ah], ax

xor eax, eax

mov ax, word ptr [ebp+00]

mov ecx, eax

xor eax, eax

mov ax, word ptr [ebp+0Ah]

mov edx, eax

shl edx, 05

add edx, eax

lea eax, dword ptr [edx+2*ecx]

mov word ptr [ebp+0Ah], ax

xor eax, eax

xor ecx, ecx

mov ax, word ptr [ebp+04]

mov cx, word ptr [ebp+08]

lea eax, dword ptr [ecx+2*eax]

mov word ptr [ebp+08], ax

;don't need to imul 0x39, damned

;mov esi, ebp

;add esi, 4

;mov edi, esi

pop ebp

;push 4

;pop ecx

;xor eax, eax

;@@small:

;lodsw

;imul ax, 39h

;and eax, 0FFFFh

;stosw

;loop @@small

nop

mov esi, pMechine

push 6

pop ebx

mov edi, pCode

@@small2:

xor eax, eax

lodsw

push 16

push edi

push eax

call [A_ltoa]

add esp, 0ch

add edi, 4

mov al, '-'

stosb

dec ebx

jnz @@small2

mov byte ptr [edi-1], 0

nop

mov ebx, pCode

mov al, byte ptr [ebx]

mov cl, byte ptr [ebx+06]

mov byte ptr [ebx+06], al

mov byte ptr [ebx], cl

mov al, byte ptr [ebx+08]

mov dl, byte ptr [ebx+1Bh]

mov byte ptr [ebx+08], dl

mov byte ptr [ebx+1Bh], al

mov al, byte ptr [ebx+0Dh]

mov dl, byte ptr [ebx+17h]

mov byte ptr [esp+2Ch], al

mov byte ptr [ebx+17h], al

mov byte ptr [ebx+0Dh], dl

invoke CharUpperA, pCode

xor eax, eax

ret

GetOurCode endp

end start

********rsrc.rc

;rsrc.rc

#include <d:\masm32\include\resource.h>

#define ID_MAKE 1002

#define ID_ABOUT 1003

#define ID_CLOSE 1004

#define IDC_MECHINE 1010

#define IDC_CODE 1011

#define IDC_STATUS 1015

#define MyIcon 1020

#define MyBmp 1025

#define DLG_MAIN 1000

MyIcon ICON MOVEABLE PURE DISCARDABLE "CCG.ico"

BIT_CCG BITMAP CCG.BMP

DLG_MAIN DIALOG 108, 90, 180, 110

STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CENTER | DS_3DLOOK

CAPTION "CCG KeyGen: XXXXX2.0"

FONT 8, "Fixedsys"

{

CONTROL "BIT_CCG",MyBmp,"Static",SS_BITMAP,4,3,0,0

DEFPUSHBUTTON "生成", ID_MAKE, 35, 81, 30, 14, BS_FLAT

PUSHBUTTON "关于", ID_ABOUT, 85, 81, 30, 14, BS_FLAT

PUSHBUTTON "退出", ID_CLOSE, 135, 81, 30, 14, BS_FLAT

LTEXT "机器码:", -1, 14, 52, 30, 8

LTEXT "注册码:", -1, 14, 67, 30, 8

LTEXT "就绪", IDC_STATUS, 15, 98, 120, 10, WS_DISABLED

LTEXT "Fpc/CCG", -1, 145, 98, 30, 8, WS_DISABLED

EDITTEXT IDC_MECHINE, 46, 51, 120, 12, WS_BORDER | WS_TABSTOP,

EDITTEXT IDC_CODE, 46, 66, 120, 12, ES_READONLY | WS_BORDER | WS_TABSTOP,

}

相关资讯:

·语音界面2.0算法分析及注册机源码!

·侠客系统修改器1.21破解手记--算法分析

·中文拨号上网计时计费器 V4.12注册算法分析

·ClockWise 3.22e注册码算法分析

·CoolClock V1.02注册算法分析

·Directory Scanner v1.5 注册算法分析

·Disk Chief 1.2 简单注册算法分析

·EffeTech HTTP Sniffer 3.2注册算法分析

·eLib2.01算法分析

·EZ MP3 Recorder 1.15 注册算法分析

相关软件:

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)|

广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright (C) 1998-2004 winzheng.com All Rights Reserved.

特别感谢 蓝芒科技 提供下载站及论坛服务器

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史