老文章档案 · 2003 年

irfanview注册器源码

赢政天下 [WINZHENG.COM] · 网络学院 · 2003-06-08 · 作者:egis 人气: · 出处:赢政天下收集整理)

; #########################################################################

;

; Irfan View 32 v3.0 Keymaker

; Coded by Egis/CORE.

;

; Only for educational purpose. I don't want to see anyone release a

; new keymaker for Irfan View future versions based on this source.

;

; Compiler: MASM v6.13

;

; #########################################################################

.386

.model flat, stdcall

option casemap : none

; #########################################################################

include d:\masm32\include\windows.inc

include d:\masm32\include\user32.inc

include d:\masm32\include\kernel32.inc

includelib d:\masm32\lib\user32.lib

includelib d:\masm32\lib\kernel32.lib

; #########################################################################

IDD_REGDIALOG equ 101

IDC_GETBUTTON equ 1000

IDC_NAMEEDIT equ 1002

IDC_CODEEDIT equ 1003

;=============

; Local macros

;=============

szText MACRO Name, Text:VARARG

LOCAL lbl

jmp lbl

Name db Text,0

lbl:

ENDM

;=================

; Local prototypes

;=================

RegWndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD

GetRegNum PROTO :DWORD

; It is hard to declare wsprintf in WINDOWS.INC

; for it demands variable parameters

EXTRN wsprintfA: PROC

;=================

; Local prototypes

;=================

.data

DlgName db "REGDLG",0

szFormat db "%lu", 0

hInstance dd 0

szName db 40 dup (0)

szReg db 20 dup (0)

; #########################################################################

.code

start:

invoke GetModuleHandle, NULL

mov hInstance, eax

; Call the dialog box stored in resource file

invoke DialogBoxParam, hInstance, ADDR DlgName, 0, ADDR RegWndProc, 0

invoke ExitProcess, eax

; #########################################################################

RegWndProc proc hWin: DWORD, uMsg: DWORD, wParam: DWORD, lParam: DWORD

LOCAL hWnd

.if uMsg == WM_SHOWWINDOW

invoke GetDlgItem, hWin, IDC_NAMEEDIT

invoke SetFocus, eax

.elseif uMsg == WM_CLOSE

invoke EndDialog, hWin, 0

.elseif uMsg == WM_COMMAND

jmp WMCOMMAND

.endif

jmp return

WMCOMMAND:

mov eax, wParam

cmp ax, IDC_GETBUTTON

jnz return

invoke GetRegNum, hWin

mov eax,1

ret

return:

mov eax,0

ret

RegWndProc endp

; #########################################################################

GetRegNum proc hDlg: DWORD

pusha

invoke GetDlgItemTextA, hDlg, IDC_NAMEEDIT, ADDR szName, 40

lea esi, szName

cmp byte ptr [esi], 0

jnz @1

szText szErrName, "Invalid registration name.", 0

szText szErr, "Error", 0

invoke MessageBoxA, 0, ADDR szErrName, ADDR szErr, MB_OK

@1:

xor eax, eax

xor ecx, ecx

@2:

lodsb

test al, al

jz @3

add ecx, eax

jmp @2

@3:

mov ebx, 260

sub ebx, ecx

cmp ebx, 7fffffffh

jb @4

neg ebx

@4:

add ebx, 332

imul ebx, 472

; Cannot use INVOKE macro here :(

push ebx

push offset szFormat

push offset szReg

call wsprintfA

; And you must reset stack pointer yourself

add esp, 4*3

cmp ebx, 1000000

jge @5

xor eax, eax

xor ebx, ebx

xor ecx, ecx

xor edx, edx

mov cl, byte ptr [4+szReg]

mov al, byte ptr [5+szReg]

mov dl, byte ptr [3+szReg]

mov 6+szReg, cl

mov cl,byte ptr [1+szReg]

mov 8+szReg, al

mov al,byte ptr [2+szReg]

mov 2+szReg, cl

mov cl,byte ptr [8+szReg]

mov 3+szReg, al

mov 5+szReg, dl

mov dl,byte ptr [4+szReg]

lea eax, [ecx+ecx*4]

and edx, 0ffh

shl eax, 3

sub eax, ecx

mov ecx, edx

shl ecx, 5

sub ecx, edx

lea edx, [ecx+ecx*2]

sub eax, edx

cdq

mov ecx, eax

xor ecx, edx

sub ecx, edx

lea eax, [ecx+ecx*4]

shl eax, 3

sub eax, ecx

mov ecx, 9

cdq

idiv ecx

mov al, byte ptr [3+szReg]

and eax, 0ffh

add edx, 30h

mov szReg+7, dl

lea edx, [eax+eax*2]

shl edx, 4

sub edx, eax

mov al, byte ptr [5+szReg]

and eax, 0ffh

lea ecx, [eax+eax*8]

lea eax, [eax+ecx*4]

lea eax, [edx+eax*2]

cdq

xor eax, edx

sub eax, edx

lea ecx, [eax+eax*8]

lea eax, [eax+ecx*4]

mov ecx, 9

shl eax, 1

cdq

idiv ecx

mov cl, byte ptr [szReg]

and ecx, 0ffh

lea eax, [ecx+ecx*2]

lea eax, [eax+eax*8]

shl eax, 1

sub eax, ecx

add edx, 30h

mov szReg+4, dl

mov dl, byte ptr [1+szReg]

and edx, 0ffh

mov ecx, edx

shl ecx, 3

sub ecx, edx

lea edx, [ecx+ecx*4]

sub eax, edx

cdq

mov ecx, eax

xor ecx, edx

sub ecx, edx

lea eax, [ecx+ecx*2]

lea eax, [eax+eax*8]

shl eax, 1

sub eax, ecx

cdq

mov ecx, 9

idiv ecx

add dl,30h

mov szReg+1, dl

mov szReg+9, 0

jmp @print

@5:

xor eax, eax

xor ebx, ebx

xor ecx, ecx

xor edx, edx

mov al, byte ptr [5+szReg]

mov dl, byte ptr [6+szReg]

mov cl, byte ptr [4+szReg]

mov szReg+6, al

mov al, byte ptr [1+szReg]

mov szReg+8, dl

mov dl, byte ptr [2+szReg]

mov szReg+5, cl

mov cl, byte ptr [6+szReg]

mov szReg+2, al

mov al, byte ptr [8+szReg]

mov szReg+3, dl

mov edx, ecx

lea eax, [eax+eax*8]

shl edx, 6

shl eax, 2

sub edx, ecx

mov ecx, 9

sub eax, edx

cdq

xor eax, edx

sub eax, edx

lea eax, [eax+eax*8]

shl eax, 2

cdq

idiv ecx

mov al, byte ptr [3+szReg]

and eax, 0ffh

add edx, 30h

mov szReg+7,dl

lea edx, [eax+eax*4]

shl edx, 3

sub edx, eax

mov al, byte ptr [4+szReg]

and eax, 0ffh

add eax, 20h

mov ecx, eax

shl ecx, 3

sub ecx, eax

lea eax, [eax+ecx*4]

lea eax, [eax+eax*2]

lea eax, [eax+edx*2]

cdq

xor eax, edx

sub eax, edx

mov ecx, eax

shl ecx, 3

sub ecx, eax

lea eax, [eax+ecx*4]

mov ecx, 9

lea eax, [eax+eax*2]

cdq

idiv ecx

mov al, byte ptr [szReg]

and eax, 0ffh

add dl, 30h

mov szReg+4, dl

mov edx, eax

shl edx, 3

sub edx, eax

lea eax, [eax+edx*4]

mov dl, byte ptr [1+szReg]

and edx, 0ffh

mov ecx, edx

shl ecx, 4

add ecx, edx

shl eax, 1

lea ecx, [ecx+ecx*4]

sub eax, ecx

cdq

xor eax, edx

sub eax, edx

mov edx, eax

shl edx, 3

sub edx, eax

lea eax, [eax+edx*4]

shl eax, 1

cdq

mov ecx, 9

idiv ecx

add dl, 30h

mov szReg+1, dl

mov szReg+9, 0

@print:

invoke SetDlgItemTextA, hDlg, IDC_CODEEDIT, ADDR szReg

popa

ret

GetRegNum endp

; #########################################################################

end start

; #########################################################################

标 题:赶紧学习一下~~~顺便贴上我的~~~~~呵呵~~~~~~ (1千字)

发信人:真·伪装者

时 间:2001-2-3 15:31:14

详细信息:

#include "stdio.h"

main()

{

char string[81];

long i,a=0,b=0,d=0;

unsigned c;

printf("This keygen is maked by Pretender\nPlease input your name ");

gets(string);

for(i=0;(c=string[i])!='\0';i++)

a+=c;

a=(a-260+332)*472;

printf("Your name is ");

puts(string);

if(a<1000000)

{for(b=0;b<6;b++)

{string[b]=a%10;a=a/10;}

printf("%d",string[5]);

b=string[5]+48;

a=2809*b;

b=string[4]+48;

d=1855*b;

a=a-d;

if(a<0) a=-a;

a=a%9;

printf("%ld",a);

printf("%d",string[4]);

printf("%d",string[3]);

b=string[3]+48;

a=3478*b;

b=string[2]+48;

d=5476*b;

a=a+d;

if(a<0) a=-a;

a=a%9;

printf("%ld",a);

printf("%d",string[2]);

printf("%d",string[1]);

b=string[1]+48;

a=3627*b;

b=string[0]+48;

d=1521*b;

a=a-d;

if(a<0) a=-a;

a=a%9;

printf("%ld",a);

printf("%d",string[0]);}

else

{for(b=0;b<7;b++)

{string[b]=a%10;a=a/10;}

printf("%d",string[6]);

b=string[6]+48;

a=3364*b;

b=string[5]+48;

d=4930*b;

a=a-d;

if(a<0) a=-a;

a=a%9;

printf("%ld",a);

printf("%d",string[5]);

printf("%d",string[4]);

b=string[2]+48+50;

a=7569*b;

b=string[4]+48;

d=6786*b;

a=a+d;

if(a<0) a=-a;

a=a%9;

printf("%ld",a);

printf("%d",string[2]);

printf("%d",string[1]);

b=string[1]+48;

a=2268*b;

b=string[0]+48;

d=1296*b;

a=a-d;

if(a<0) a=-a;

a=a%9;

printf("%ld",a);

printf("%d",string[0]);};

}



标 题:好! (4千字)

发信人:真·伪装者

时 间:2001-2-3 15:34:21

详细信息:

这段是程序本身的计算注册码过程

什么时候我要是也能编这样的注册机就好了~~~~~

cmp ebx, 1000000

jge @5

xor eax, eax

xor ebx, ebx

xor ecx, ecx

xor edx, edx

mov cl, byte ptr [4+szReg]

mov al, byte ptr [5+szReg]

mov dl, byte ptr [3+szReg]

mov 6+szReg, cl

mov cl,byte ptr [1+szReg]

mov 8+szReg, al

mov al,byte ptr [2+szReg]

mov 2+szReg, cl

mov cl,byte ptr [8+szReg]

mov 3+szReg, al

mov 5+szReg, dl

mov dl,byte ptr [4+szReg]

lea eax, [ecx+ecx*4]

and edx, 0ffh

shl eax, 3

sub eax, ecx

mov ecx, edx

shl ecx, 5

sub ecx, edx

lea edx, [ecx+ecx*2]

sub eax, edx

cdq

mov ecx, eax

xor ecx, edx

sub ecx, edx

lea eax, [ecx+ecx*4]

shl eax, 3

sub eax, ecx

mov ecx, 9

cdq

idiv ecx

mov al, byte ptr [3+szReg]

and eax, 0ffh

add edx, 30h

mov szReg+7, dl

lea edx, [eax+eax*2]

shl edx, 4

sub edx, eax

mov al, byte ptr [5+szReg]

and eax, 0ffh

lea ecx, [eax+eax*8]

lea eax, [eax+ecx*4]

lea eax, [edx+eax*2]

cdq

xor eax, edx

sub eax, edx

lea ecx, [eax+eax*8]

lea eax, [eax+ecx*4]

mov ecx, 9

shl eax, 1

cdq

idiv ecx

mov cl, byte ptr [szReg]

and ecx, 0ffh

lea eax, [ecx+ecx*2]

lea eax, [eax+eax*8]

shl eax, 1

sub eax, ecx

add edx, 30h

mov szReg+4, dl

mov dl, byte ptr [1+szReg]

and edx, 0ffh

mov ecx, edx

shl ecx, 3

sub ecx, edx

lea edx, [ecx+ecx*4]

sub eax, edx

cdq

mov ecx, eax

xor ecx, edx

sub ecx, edx

lea eax, [ecx+ecx*2]

lea eax, [eax+eax*8]

shl eax, 1

sub eax, ecx

cdq

mov ecx, 9

idiv ecx

add dl,30h

mov szReg+1, dl

mov szReg+9, 0

jmp @print

@5:

xor eax, eax

xor ebx, ebx

xor ecx, ecx

xor edx, edx

mov al, byte ptr [5+szReg]

mov dl, byte ptr [6+szReg]

mov cl, byte ptr [4+szReg]

mov szReg+6, al

mov al, byte ptr [1+szReg]

mov szReg+8, dl

mov dl, byte ptr [2+szReg]

mov szReg+5, cl

mov cl, byte ptr [6+szReg]

mov szReg+2, al

mov al, byte ptr [8+szReg]

mov szReg+3, dl

mov edx, ecx

lea eax, [eax+eax*8]

shl edx, 6

shl eax, 2

sub edx, ecx

mov ecx, 9

sub eax, edx

cdq

xor eax, edx

sub eax, edx

lea eax, [eax+eax*8]

shl eax, 2

cdq

idiv ecx

mov al, byte ptr [3+szReg]

and eax, 0ffh

add edx, 30h

mov szReg+7,dl

lea edx, [eax+eax*4]

shl edx, 3

sub edx, eax

mov al, byte ptr [4+szReg]

and eax, 0ffh

add eax, 20h

mov ecx, eax

shl ecx, 3

sub ecx, eax

lea eax, [eax+ecx*4]

lea eax, [eax+eax*2]

lea eax, [eax+edx*2]

cdq

xor eax, edx

sub eax, edx

mov ecx, eax

shl ecx, 3

sub ecx, eax

lea eax, [eax+ecx*4]

mov ecx, 9

lea eax, [eax+eax*2]

cdq

idiv ecx

mov al, byte ptr [szReg]

and eax, 0ffh

add dl, 30h

mov szReg+4, dl

mov edx, eax

shl edx, 3

sub edx, eax

lea eax, [eax+edx*4]

mov dl, byte ptr [1+szReg]

and edx, 0ffh

mov ecx, edx

shl ecx, 4

add ecx, edx

shl eax, 1

lea ecx, [ecx+ecx*4]

sub eax, ecx

cdq

xor eax, edx

sub eax, edx

mov edx, eax

shl edx, 3

sub edx, eax

lea eax, [eax+edx*4]

shl eax, 1

cdq

mov ecx, 9

idiv ecx

add dl, 30h

mov szReg+1, dl

mov szReg+9, 0

(出处:赢政天下收集整理)

相关文章:

·关于注册Flag在破解中的应用

·从轻松试卷 v4.03 的破解看 r fl z 的妙用

·破解圣经之------滚瓜烂熟篇

·破解API Spy for Windows 95/98/NT/2000

·chm帮助编辑器v2.6 注册码破解详谈之一*脱壳篇*

·破解NetAlert v2 [热点] 指导如何自动脱壳!!

·破解的理由

·对于破解的一些想法

·Audio Converter 3.0 破解要点

·破解 Matcom 4.0 for BC

相关软件:

·美萍安全卫士密码破解器 3.0+

·网文快爪 v1.0 破解版

·坏猫网页编辑 v2.0完整版破解文件

·pakmarker1.0破解版

·IE Plus!破解版

·邮件服务器2.6+破解版

·登录奇兵 3.01破解文件

·易思多媒体网络教室-4用户演示版破解文件

·网络三国智能机器人1.0.0.101版破解

·网络三国智能机器人1.0.0.103版破解

→ 特别推荐

→ 热点TOP10

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

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

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

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