好友
阅读权限40
听众
最后登录1970-1-1
|
小试锋芒
发表于 2013-8-9 09:17
本帖最后由 zjh16529 于 2019-6-6 21:49 编辑
数学函数图像描绘器是一款基于数学函数图像的全自动图像描绘软件,该软件不但可以动态地绘出一次函数、二次函数、幂函数、指数函数、对数函数、正弦函数的图象,还可以描绘自定义各种函数的图线。具有图象迭加、分步取消功能,可以任意设置图像颜色。
软件提拱的模板中包括几乎所有中学数学函数,输出的500*500位图图片分辩率高,可以在windows自带的绘图程序中继续修改。在数学课件或论文中插入由数学函数图像描绘器绘制的函数图片能够大大提高多媒体课件的教学效率和教学论文的表达效果,该软件界面简洁,速度快捷,方便易用。
下载地址:http://www.onlinedown.net/soft/86522.htm
1、PEID查壳:Borland Delphi 6.0 - 7.0
2、任意输入假码,点击注册,弹出如下提示:
说明是重启验证类型,并且注册信息保存在sdip.ini文件里。
3、
bp CreateFileA 下断,观察堆栈窗口,alt+F9,返回到程序领口,F8单步跟踪,很快就到达关键位置。
[C] 纯文本查看 复制代码 0012FD00 00408E63 /CALL 到 CreateFileA 来自 FunImage.00408E5E
0012FD04 00AB98C4 |FileName = "C:\Program Files\数学函数图像描绘器\sdip.ini"
0012FD08 80000000 |Access = GENERIC_READ
0012FD0C 00000001 |ShareMode = FILE_SHARE_READ
0012FD10 00000000 |pSecurity = NULL
0012FD14 00000003 |Mode = OPEN_EXISTING
0012FD18 00000080 |Attributes = NORMAL
0012FD1C 00000000 \hTemplateFile = NULL4
4、来到算法部分:
[ColdFusion] 纯文本查看 复制代码 004D7435 |. BA 88764D00 mov edx,FunImage.004D7688 ; ASCII "sdip.ini"
004D743A |. E8 25D0F2FF call FunImage.00404464
004D743F |. 8B55 D4 mov edx,[local.11]
004D7442 |. 8BC6 mov eax,esi
004D7444 |. 8B08 mov ecx,dword ptr ds:[eax]
004D7446 |. FF51 68 call dword ptr ds:[ecx+68]
004D7449 |. 8D4D F4 lea ecx,[local.3]
004D744C |. 33D2 xor edx,edx
004D744E |. 8BC6 mov eax,esi
004D7450 |. 8B18 mov ebx,dword ptr ds:[eax]
004D7452 |. FF53 0C call dword ptr ds:[ebx+C]
004D7455 |. 8D45 CC lea eax,[local.13]
004D7458 |. E8 97DEFBFF call FunImage.004952F4
004D745D |. 8B45 CC mov eax,[local.13]
004D7460 |. 8D55 F8 lea edx,[local.2]
004D7463 |. E8 38DFFBFF call FunImage.004953A0
004D7468 |. BB 01000000 mov ebx,1
004D746D |> 8D55 C8 /lea edx,[local.14]
004D7470 |. 8B45 F8 |mov eax,[local.2]
004D7473 |. E8 28DFFBFF |call FunImage.004953A0 ; 循环体产生注册码
004D7478 |. 8B55 C8 |mov edx,[local.14]
004D747B |. 8D45 F8 |lea eax,[local.2]
004D747E |. E8 B1CDF2FF |call FunImage.00404234
004D7483 |. 4B |dec ebx
004D7484 |.^ 75 E7 \jnz short FunImage.004D746D
004D7486 |. 8B45 F8 mov eax,[local.2] ; 注册码“BXTPLRBDVBNHFJXTPLHDYJOZRFWHHJRJ”
004D7489 |. 8B55 F4 mov edx,[local.3] ; 假码
004D748C |. E8 17D1F2FF call FunImage.004045A8 ; 比较
004D7491 |. 75 18 jnz short FunImage.004D74AB
5、跟进循环体产生注册码的CALL:
[ColdFusion] 纯文本查看 复制代码 004953A0 /$ 55 push ebp
004953A1 |. 8BEC mov ebp,esp
004953A3 |. 83C4 F0 add esp,-10
004953A6 |. 53 push ebx
004953A7 |. 56 push esi
004953A8 |. 57 push edi
004953A9 |. 33C9 xor ecx,ecx
004953AB |. 894D F0 mov [local.4],ecx
004953AE |. 894D F4 mov [local.3],ecx
004953B1 |. 8955 F8 mov [local.2],edx
004953B4 |. 8945 FC mov [local.1],eax
004953B7 |. 8B45 FC mov eax,[local.1]
004953BA |. E8 8DF2F6FF call FunImage.0040464C
004953BF |. 33C0 xor eax,eax
004953C1 |. 55 push ebp
004953C2 |. 68 76544900 push FunImage.00495476
004953C7 |. 64:FF30 push dword ptr fs:[eax]
004953CA |. 64:8920 mov dword ptr fs:[eax],esp
004953CD |. 8B45 F8 mov eax,[local.2]
004953D0 |. E8 C7EDF6FF call FunImage.0040419C
004953D5 |. 8D55 F4 lea edx,[local.3]
004953D8 |. 8B45 FC mov eax,[local.1]
004953DB |. E8 1C33F7FF call FunImage.004086FC
004953E0 |. 33FF xor edi,edi
004953E2 |. 8B45 F4 mov eax,[local.3]
004953E5 |. E8 72F0F6FF call FunImage.0040445C
004953EA |. 8BF0 mov esi,eax ; 机器码Q1长度 =0x20
004953EC |. 85F6 test esi,esi
004953EE |. 7E 13 jle short FunImage.00495403
004953F0 |. BB 01000000 mov ebx,1
004953F5 |> 8B45 F4 /mov eax,[local.3] ; Q1
004953F8 |. 0FB64418 FF |movzx eax,byte ptr ds:[eax+ebx-1]
004953FD |. 03F8 |add edi,eax
004953FF |. 43 |inc ebx
00495400 |. 4E |dec esi
00495401 |.^ 75 F2 \jnz short FunImage.004953F5
00495403 |> 8BC7 mov eax,edi ; Q2=Q1的ASCII累积和=0x9A5
00495405 |. B9 61000000 mov ecx,61
0049540A |. 99 cdq
0049540B |. F7F9 idiv ecx ; Q2/0x61
0049540D |. 8BFA mov edi,edx ; 余数Q3
0049540F |. 8B45 F4 mov eax,[local.3]
00495412 |. E8 45F0F6FF call FunImage.0040445C
00495417 |. 8BF0 mov esi,eax
00495419 |. 85F6 test esi,esi
0049541B |. 7E 36 jle short FunImage.00495453
0049541D |. BB 01000000 mov ebx,1
00495422 |> 8B45 F4 /mov eax,[local.3] ; Q1
00495425 |. 0FB64418 FF |movzx eax,byte ptr ds:[eax+ebx-1]
0049542A |. F7EB |imul ebx
0049542C |. 03C7 |add eax,edi ; Q2* i +Q3
[i]0049542E |. B9 1A000000 |mov ecx,1A[/i]
00495433 |. 99 |cdq
00495434 |. F7F9 |idiv ecx ; (Q2 * i +Q3) /0x1A
00495436 |. 83C2 41 |add edx,41 ; RegCode=余数Q4+41的ASCII字符
00495439 |. 8D45 F0 |lea eax,[local.4]
0049543C |. E8 43EFF6FF |call FunImage.00404384
00495441 |. 8B55 F0 |mov edx,[local.4]
00495444 |. 8B45 F8 |mov eax,[local.2]
00495447 |. E8 18F0F6FF |call FunImage.00404464
0049544C |. 8B45 F8 |mov eax,[local.2]
0049544F |. 43 |inc ebx
00495450 |. 4E |dec esi
00495451 |.^ 75 CF \jnz short FunImage.00495422
算法总结:
设Q1 = 机器码,以我的机器码为例:
Q1 ="BXTPLRBDVBNHFJXTPLHDYJOZRFWHHJRJ"
Q2 = Q1的ASCII累加和 =0x9A5=2709
Q3 = Q2 MOD 0x61
Q4 = (Q1 * i +Q3) mod 0x1A
注册码RegCode = Q4 + 0x41 对应的字符
-----------------------------------------
附上我的注册信息:
机器码
"BXTPLRBDVBNHFJXTPLHDYJOZRFWHHJRJ"
注册码:
"GMKAIQMQMCSYSOMKAIIAPIPUOSBGACMU"
Delphi注册机源码:
[Delphi] 纯文本查看 复制代码 unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, jpeg, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
img1: TImage;
grp1: TGroupBox;
lbl1: TLabel;
Edit1: TEdit;
lbl3: TLabel;
btn1: TBitBtn;
lbl2: TLabel;
Edit2: TEdit;
procedure Edit1Click(Sender: TObject);
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
// 计算字符串的ASCII总和
function Sum_Ascii(str:string):Integer;
var
i:integer;
begin
Result := 0;
for i := 1 to Length(str) do Result := Result + byte(str);
end;
{$R *.dfm}
procedure TForm1.Edit1Click(Sender: TObject);
begin
Edit1.Clear;
end;
procedure TForm1.btn1Click(Sender: TObject);
var
Q1,RegCode : string;
Q2,Q3,Q4,i,j: Integer;
begin
Q1 := Edit1.Text;
Q2 := Sum_Ascii(Q1);
Q3 := Q2 MOD $61;
j := Length(Q1);
RegCode := '';
for i := 1 to j do
begin
Q4 := (Byte(Q1) * i + Q3) mod $1A;
RegCode := RegCode + Char(Q4 + $41);
end;
Edit2.Text := RegCode;
end;
end.
|
免费评分
-
查看全部评分
|