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

📄 appack.pas

📁 Cracker终结者——提供最优秀的软件保护技术
💻 PAS
字号:
{$M 32000}
{$I+}
program test__aplib_pack;

(*
 * aPLib compression library  -  the smaller the better :)
 *
 * VPascal packing example
 *
 * Copyright (c) 1998-2002 by Joergen Ibsen / Jibz
 * All Rights Reserved
 *
 * -> VPascal by Veit Kannegieser, 23.09.1998
 *)


{$IfDef DYNAMIC_VERSION}
uses aplibud;
{$Else}
uses aplibu;
{$EndIf}

var
  infile   ,outfile     :file;
  inbuffer ,outbuffer   :pointer;
  workmem               :pointer;
  insize   ,outsize     :longint;

begin
  (* check number of parameters *)
  if ParamCount<1 then
    begin
      WriteLn;
      WriteLn('Syntax:   APPACK <input file> [output file]');
      WriteLn;
      Halt(1);
    end;

  (* open input file and read data *)
  Assign(infile,ParamStr(1));
  Reset(infile,1);
  insize:=FileSize(infile);
  GetMem(inbuffer,insize);
  BlockRead(infile,inbuffer^,insize);
  Close(infile);

  (* get output mem and workmem *)
  GetMem(outbuffer,_aP_max_packed_size(insize));
  GetMem(workmem,_aP_workmem_size(insize));

  (* pack data *)
  outsize:=_aPsafe_pack(inbuffer^,outbuffer^,insize,workmem^,cb1);
  Writeln;

  if outsize=0 then Halt(1);

  (* write packed data *)
  if ParamCount<2 then
    begin
      Assign(outfile,'out.apk');
      WriteLn;
      WriteLn('No output file specified, writing to ''out.apk''');
    end
  else
    Assign(outfile,ParamStr(2));
  Rewrite(outfile,1);
  BlockWrite(outfile,outbuffer^,outsize);
  Close(outfile);

  (* free mem *)
  Dispose(inbuffer);
  Dispose(outbuffer);
  Dispose(workmem);

end.

⌨️ 快捷键说明

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