⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 一个可以保护软件不被反调试破解的DLL
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Edit1: TEdit;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Label1: TLabel;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

///////////////////////////////////////////////////
/////////////kpsd.dll/////////////////////////////

const dlls = 'KPSD.dll';

function E16(Str, Key: pchar): pchar; far; external dlls //DES加密
function D16(StrHex, Key: pchar): pchar; far; external dlls //DES解密

procedure C32(FileName: pchar; var CRC32: DWORD); far; external dlls //CRC32校验
function FileDT11(s: pchar): pchar; far; external dlls //文件目期 S是文件路径
function FileSz(s: pchar): integer; far; external dlls //文件大小

procedure DM; far; external dlls //自删除的啦。
function HDID: Cardinal; far; external dlls //返回C盘ID号

function ChkIce: boolean; far; external dlls //检查softice是否运行
function FRMON: boolean; far; external dlls //检查filemon和Regmon是否运行

procedure HaltOut(classname: pchar = nil; captions: pchar = nil); far; external dlls //终止外部调试程序
procedure Adbgx; far; external dlls //反破解1
procedure Ans; far; external dlls //反破解2
//(反破解3和4是别人的代码,版权问题,只在DLL内部使用,没有导出)

procedure Youhalt(Classname, CaptionName: Pchar); far; external dlls
//你想要关闭的程序(类名,标题)没有请填nil
function Isrun(Classname, CaptionName: Pchar): boolean; far; external dlls
//查看某程序是否运行(类名,标题)没有请填nil
procedure Keylock; far; external dlls //键盘鼠标锁
procedure hei; far; external dlls //使电脑黑屏
procedure Ver; far; external dlls //DLL版本信息

///////////////  kpsd.dll  //////////////////////
///////////////////////////////////////////////////

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin // 这个很有必要。定时关闭调试软件。
  HaltOut;
  Ans;
  adbgx;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  HaltOut;
  Adbgx; //这些我在DLL里面已经加进去了
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  hei;
  Keylock;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Youhalt(nil, 'TEST');
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  edit1.Text := '解密结果' + d16('36BDA2DE7A726998', '0'); //解密
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  edit1.Text := '解密结果' + e16('asdfasdf', '0'); //加密
end;

procedure TForm1.Button5Click(Sender: TObject);
var c: Dword;
  s: string;
begin
  s := application.ExeName;
  c32(pchar(s), c);
  edit1.Text := '本程序的CRC32值:' + inttohex(c, 8);
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  if ChkIce or FRMON
    or (Isrun(nil, 'TEST')) //如果标题为TEST的程序运行也为真。
    then
  begin
    showmessage('have a debug or monitor tools.');
{hei;      //这会让电脑的键盘和鼠标禁止使用和电脑黑屏
Keylock;}
  end;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
//可以用这方法要检查程序是否修改过。
  edit1.Text := '本程序的创建目期是:' + Filedt11(pchar(application.ExeName)) +
    '大小是:' + inttostr(Filesz(pchar(application.ExeName)));
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  edit1.Text := '程序关闭后自动删除';
  dm
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
  edit1.Text := '硬盘ID是:' + inttohex(HDID, 8);
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
  HaltOut(nil, 'TEST');
  //加自已加入你要半闭的类名或标题名,在DLL启动之时就执行
  //(未执行EXE的时候执行的。也可以省略后面的参数如 HaltOut;)
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
  ans;
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
  adbgx;
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
  ver;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -