亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ogproexe.pas

?? 詳細的ERP設計資料
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
{*********************************************************}
{*                  OGPROEXE.PAS 1.13                    *}
{*     Copyright (c) 1996-02 TurboPower Software Co      *}
{*                 All rights reserved.                  *}
{*********************************************************}

{$I ONGUARD.INC}

{$B-} {Complete Boolean Evaluation}
{$I+} {Input/Output-Checking}
{$P+} {Open Parameters}
{$T-} {Typed @ Operator}
{$W-} {Windows Stack Frame}
{$X+} {Extended Syntax}

{$IFNDEF Win32}
{$G+} {286 Instructions}
{$N+} {Numeric Coprocessor}

{$C MOVEABLE,DEMANDLOAD,DISCARDABLE}
{$ENDIF}

unit OgProExe;

interface

uses
  {$IFDEF Win32} Windows, {$ELSE} WinTypes, WinProcs, {$ENDIF}
  Classes, MMSystem, SysUtils,
  OgConst, OgUtil;

type
  {exe signature record}
  PSignatureRec = ^TSignatureRec;
  TSignatureRec = packed record
    Sig1   : DWord;                                                  {!!.07}
    Sig2   : DWord;                                                  {!!.07}
    Sig3   : DWord;                                                  {!!.07}
    Offset : DWord;                                                  {!!.07}
    Size   : DWord;                                                  {!!.07}
    CRC    : DWord;                                                  {!!.07}
    Sig4   : DWord;                                                  {!!.07}
    Sig5   : DWord;                                                  {!!.07}
    Sig6   : DWord;                                                  {!!.07}
  end;

  TExeStatus = (
    exeSuccess,             {no error}
    exeSizeError,           {the file size has changed}
    exeIntegrityError,      {CRC does not match}
    exeNotStamped,          {the exe has not been stamped}
    exeAccessDenied         {share violation}                          {!!.05}
  );

type
  TCheckedExeEvent =
    procedure(Sender : TObject; Status : TExeStatus)
    of object;

  TOgProtectExe = class(TComponent)
  protected {private}
    {property variables}
    FAutoCheck  : Boolean;
    FCheckSize  : Boolean;

    {event variables}
    FOnChecked  : TCheckedExeEvent;

    {property methods}
    function GetAbout : string;                                      {!!.08}
    procedure SetAbout(const Value : string);                        {!!.08}

  protected
    procedure DoOnChecked(Status : TExeStatus);
      dynamic;
    procedure Loaded;
      override;

  public
    constructor Create(AOwner : TComponent);
      override;
    function CheckExe(Report : Boolean) : TExeStatus;
      {-test the exe file for tampering}
    function StampExe(const FileName : string ;  EraseMarker : Boolean) : Boolean;
      {-stamp exe with crc and file size. optionally erase search markers}
    function UnStampExe(const FileName : string) : Boolean;
      {-writes uninitialized signature record. marker must not have been erased}

  published
    {properties}
    property AutoCheck : Boolean
      read FAutoCheck
      write FAutoCheck
      default DefAutoCheck;

    property CheckSize : Boolean
      read FCheckSize
      write FCheckSize
      default DefCheckSize;

    property About : string                                          {!!.08}
      read GetAbout                                                  {!!.08}
      write SetAbout                                                 {!!.08}
      stored False;

    {events}
    property OnChecked : TCheckedExeEvent
      read FOnChecked
      write FOnChecked;
  end;


function IsExeTampered(CheckSize : Boolean) : TExeStatus;
  {-return one of the possible TExeResult states}
function ProtectExe(const FileName : string ;  EraseMarker : Boolean) : Boolean;
  {-stamp exe with crc and file size. optionally erase search markers}
function UnprotectExe(const FileName : string) : Boolean;
  {-writes uninitialized signature record. marker must not have been erased}

{checksum/CRC routines}
procedure UpdateChecksum(var Sum : LongInt;  const Buf;  BufSize : LongInt);
function FileCRC32(const FileName : string) : DWord;                     {!!.07}
procedure UpdateCRC32(var CRC : DWord;  const Buf;  BufSize : LongInt);  {!!.07}


implementation

{$IFDEF TRIALRUN} uses OgTrial; {$ENDIF}

{signature = '!~~@CRC32@~~' used before and after}
const
  StoredSignature : TSignatureRec = (
    Sig1:$407E7E21;  Sig2:$33435243;  Sig3:$7E7E4032;
    Offset:1;  Size:2;  CRC:3;
    Sig4:$407E7E21;  Sig5:$33435243;  Sig6:$7E7E4032);

{CRC32 lookup table}
const
  CRC32Table: array[0..255] of DWord = (                             {!!.07}
    $00000000, $77073096, $ee0e612c, $990951ba, $076dc419, $706af48f, $e963a535, $9e6495a3,
    $0edb8832, $79dcb8a4, $e0d5e91e, $97d2d988, $09b64c2b, $7eb17cbd, $e7b82d07, $90bf1d91,
    $1db71064, $6ab020f2, $f3b97148, $84be41de, $1adad47d, $6ddde4eb, $f4d4b551, $83d385c7,
    $136c9856, $646ba8c0, $fd62f97a, $8a65c9ec, $14015c4f, $63066cd9, $fa0f3d63, $8d080df5,
    $3b6e20c8, $4c69105e, $d56041e4, $a2677172, $3c03e4d1, $4b04d447, $d20d85fd, $a50ab56b,
    $35b5a8fa, $42b2986c, $dbbbc9d6, $acbcf940, $32d86ce3, $45df5c75, $dcd60dcf, $abd13d59,
    $26d930ac, $51de003a, $c8d75180, $bfd06116, $21b4f4b5, $56b3c423, $cfba9599, $b8bda50f,
    $2802b89e, $5f058808, $c60cd9b2, $b10be924, $2f6f7c87, $58684c11, $c1611dab, $b6662d3d,
    $76dc4190, $01db7106, $98d220bc, $efd5102a, $71b18589, $06b6b51f, $9fbfe4a5, $e8b8d433,
    $7807c9a2, $0f00f934, $9609a88e, $e10e9818, $7f6a0dbb, $086d3d2d, $91646c97, $e6635c01,
    $6b6b51f4, $1c6c6162, $856530d8, $f262004e, $6c0695ed, $1b01a57b, $8208f4c1, $f50fc457,
    $65b0d9c6, $12b7e950, $8bbeb8ea, $fcb9887c, $62dd1ddf, $15da2d49, $8cd37cf3, $fbd44c65,
    $4db26158, $3ab551ce, $a3bc0074, $d4bb30e2, $4adfa541, $3dd895d7, $a4d1c46d, $d3d6f4fb,
    $4369e96a, $346ed9fc, $ad678846, $da60b8d0, $44042d73, $33031de5, $aa0a4c5f, $dd0d7cc9,
    $5005713c, $270241aa, $be0b1010, $c90c2086, $5768b525, $206f85b3, $b966d409, $ce61e49f,
    $5edef90e, $29d9c998, $b0d09822, $c7d7a8b4, $59b33d17, $2eb40d81, $b7bd5c3b, $c0ba6cad,
    $edb88320, $9abfb3b6, $03b6e20c, $74b1d29a, $ead54739, $9dd277af, $04db2615, $73dc1683,
    $e3630b12, $94643b84, $0d6d6a3e, $7a6a5aa8, $e40ecf0b, $9309ff9d, $0a00ae27, $7d079eb1,
    $f00f9344, $8708a3d2, $1e01f268, $6906c2fe, $f762575d, $806567cb, $196c3671, $6e6b06e7,
    $fed41b76, $89d32be0, $10da7a5a, $67dd4acc, $f9b9df6f, $8ebeeff9, $17b7be43, $60b08ed5,
    $d6d6a3e8, $a1d1937e, $38d8c2c4, $4fdff252, $d1bb67f1, $a6bc5767, $3fb506dd, $48b2364b,
    $d80d2bda, $af0a1b4c, $36034af6, $41047a60, $df60efc3, $a867df55, $316e8eef, $4669be79,
    $cb61b38c, $bc66831a, $256fd2a0, $5268e236, $cc0c7795, $bb0b4703, $220216b9, $5505262f,
    $c5ba3bbe, $b2bd0b28, $2bb45a92, $5cb36a04, $c2d7ffa7, $b5d0cf31, $2cd99e8b, $5bdeae1d,
    $9b64c2b0, $ec63f226, $756aa39c, $026d930a, $9c0906a9, $eb0e363f, $72076785, $05005713,
    $95bf4a82, $e2b87a14, $7bb12bae, $0cb61b38, $92d28e9b, $e5d5be0d, $7cdcefb7, $0bdbdf21,
    $86d3d2d4, $f1d4e242, $68ddb3f8, $1fda836e, $81be16cd, $f6b9265b, $6fb077e1, $18b74777,
    $88085ae6, $ff0f6a70, $66063bca, $11010b5c, $8f659eff, $f862ae69, $616bffd3, $166ccf45,
    $a00ae278, $d70dd2ee, $4e048354, $3903b3c2, $a7672661, $d06016f7, $4969474d, $3e6e77db,
    $aed16a4a, $d9d65adc, $40df0b66, $37d83bf0, $a9bcae53, $debb9ec5, $47b2cf7f, $30b5ffe9,
    $bdbdf21c, $cabac28a, $53b39330, $24b4a3a6, $bad03605, $cdd70693, $54de5729, $23d967bf,
    $b3667a2e, $c4614ab8, $5d681b02, $2a6f2b94, $b40bbe37, $c30c8ea1, $5a05df1b, $2d02ef8d);


{*** TOgProtectExe ***}

constructor TOgProtectExe.Create(AOwner : TComponent);
begin
  inherited Create(AOwner);

  FAutoCheck := DefAutoCheck;
  FCheckSize := DefCheckSize;
  {$IFDEF TRIALRUN}
    _CC_; _VC_;
  {$ENDIF}
end;

function TOgProtectExe.CheckExe(Report : Boolean) : TExeStatus;
begin
  Result := IsExeTampered(FCheckSize);

  if Report then
    DoOnChecked(Result);
end;

procedure TOgProtectExe.DoOnChecked(Status : TExeStatus);
begin
  if Assigned(FOnChecked) then
    FOnChecked(Self, Status);
end;

function TOgProtectExe.GetAbout : string;                            {!!.08}
begin
  Result := OgVersionStr;
end;

procedure TOgProtectExe.Loaded;
begin
  inherited Loaded;

  if FAutoCheck then
    CheckExe(True);
end;

procedure TOgProtectExe.SetAbout(const Value : string);              {!!.08}
begin
end;

function TOgProtectExe.StampExe(const FileName : string ;  EraseMarker : Boolean) : Boolean;
begin
  Result := ProtectExe(FileName,  EraseMarker);
end;

function TOgProtectExe.UnStampExe(const FileName : string) : Boolean;
begin
  Result := UnprotectExe(FileName);
end;


{$IFDEF Win32}
function IsExeTampered(CheckSize : Boolean) : TExeStatus;
  {-return one of the possible TExeResult states}
var
  Fh      : THandle;
  FileMap : THandle;
  Memory  : PByteArray;
  CRC     : DWord;                                                   {!!.07}
  Buf     : array [0..MAX_PATH - 1] of AnsiChar;
begin
  {$IFDEF TRIALRUN}
    _CC_; _VC_;
  {$ENDIF}
  Result := exeIntegrityError;

  {check if exe has been stamped}
  if (StoredSignature.Offset = 1) and (StoredSignature.Size = 2) and
     (StoredSignature.CRC = 3) then begin
    Result := exeNotStamped;
    Exit;
  end;

  Windows.GetModuleFileName(HInstance, Buf, SizeOf(Buf));
  Fh := CreateFile(Buf, GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,
    nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  if (Fh <> INVALID_HANDLE_VALUE) then begin                         {!!.07}
    if CheckSize and (StoredSignature.Size <> Windows.GetFileSize(Fh, nil)) then
      Result := exeSizeError
    else begin
      FileMap := CreateFileMapping(Fh, nil, PAGE_READONLY, 0, 0, nil);
      if (FileMap <> 0) then begin
        Memory := MapViewOfFile(FileMap, FILE_MAP_READ, 0, 0, 0);
        if (Memory <> nil) then begin
          CRC := $FFF00FFF;  {special CRC init}
          UpdateCRC32(CRC, Memory^, StoredSignature.Offset);
          UpdateCRC32(CRC, Memory^[StoredSignature.Offset + SizeOf(TSignatureRec)],
           StoredSignature.Size - (StoredSignature.Offset + SizeOf(TSignatureRec)));
          if (StoredSignature.CRC = not CRC) then
            Result := exeSuccess;
          UnmapViewOfFile(Memory);
        end;
        CloseHandle(FileMap);
      end;
    end;
    CloseHandle(Fh);
  end else begin                                                       {!!.05}
    if GetLastError = ERROR_ACCESS_DENIED then                         {!!.05}
      Result := exeAccessDenied;                                       {!!.05}
  end;                                                                 {!!.05}
end;
{$ELSE}
function IsExeTampered(CheckSize : Boolean) : TExeStatus;
  {-return one of the possible TExeResult states}
const
  BufSize = 4096;
var
  Fh          : Integer;
  TotalRead   : LongInt;
  BytesToRead : LongInt;
  BytesRead   : LongInt;
  Size        : LongInt;
  Buf         : PAnsiChar;
  CRC         : LongInt;
begin
  {$IFDEF TRIALRUN}
    _CC_; _VC_;
  {$ENDIF}
  Result := exeIntegrityError;

  {check if exe has been stamped}
  if (StoredSignature.Offset = 1) and (StoredSignature.Size = 2) and   {!!.07}
     (StoredSignature.CRC = 3) then begin                              {!!.07}
    Result := exeNotStamped;
    Exit;
  end;

  Buf := StrAlloc(BufSize);
  try
    GetModuleFileName(HInstance, Buf, BufSize-1);
    Fh := FileOpen(StrPas(Buf), fmOpenRead or fmShareDenyWrite);
    if (Fh >= 0 {HFILE_ERROR}) then begin
      Size := FileSeek(Fh, 0, 2); {get file size}
      FileSeek(Fh, 0, 0);  {reset to beginning of file}
      if CheckSize and (StoredSignature.Size <> Size) then
        Result := exeSizeError
      else begin
        CRC := $FFF00FFF;    {special CRC init}
        TotalRead := 0;
        {read and compute crc up to the signature record}
        while (TotalRead < StoredSignature.Offset) do begin
          if (TotalRead + BufSize <= StoredSignature.Offset) then
            BytesToRead := BufSize
          else
            BytesToRead := (StoredSignature.Offset - TotalRead);
          BytesRead := FileRead(Fh, Buf^, BytesToRead);
          Inc(TotalRead, BytesRead);
          UpdateCRC32(CRC, Buf^, BytesRead);
        end;
        {jump past signature record}
        FileSeek(Fh, SizeOf(StoredSignature), 1);
        repeat
          BytesRead := FileRead(Fh, Buf^, BufSize);
          Inc(TotalRead, BytesRead);
          UpdateCRC32(CRC, Buf^, BytesRead);
        until (BytesRead < BufSize);
        if (StoredSignature.CRC = not CRC) then
          Result := exeSuccess;
      end;
      FileClose(Fh);
    end else begin                                                     {!!.05}
      if Fh = -5 then                                                  {!!.05}
        Result := exeAccessDenied;                                     {!!.05}
    end;                                                               {!!.05}

  finally
    StrDispose(Buf);
  end;
end;
{$ENDIF}

{$IFDEF Win32}
function ProtectExe(const FileName : string;  EraseMarker : Boolean) : Boolean;
  {-stamp exe with crc and file size. optionally erase search markers}
var
  Fh      : THandle;
  FileMap : THandle;
  Memory  : PByteArray;
  I, Size : LongInt;
  Sig     : PSignatureRec;
begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99视频热这里只有精品免费| 亚洲欧美日韩在线| 精油按摩中文字幕久久| 欧美一区二区三区影视| 日本不卡一区二区三区 | 国产欧美日韩中文久久| 国产精品影视在线| 久久久久久久一区| 粉嫩蜜臀av国产精品网站| 国产精品毛片大码女人| 成人午夜私人影院| 亚洲综合偷拍欧美一区色| 在线观看日产精品| 性久久久久久久| 精品国产精品一区二区夜夜嗨| 日本欧美大码aⅴ在线播放| 在线看日本不卡| 精品一区二区三区视频在线观看| 日韩精品一区国产麻豆| 成人夜色视频网站在线观看| 国产精品乱码人人做人人爱| 成人午夜激情影院| 亚洲成a人片综合在线| 欧美日韩中文精品| 蜜臀精品久久久久久蜜臀 | 精品视频999| 午夜精品一区二区三区三上悠亚| 欧美成人官网二区| www.av精品| 午夜国产精品影院在线观看| 国产亚洲一二三区| 欧美在线观看视频一区二区| 久久爱另类一区二区小说| 国产视频一区二区三区在线观看| a级精品国产片在线观看| 日本欧美在线看| 国产精品嫩草影院com| 91麻豆精品国产自产在线 | 久久理论电影网| 99久久国产免费看| 国内精品伊人久久久久av影院| 欧美激情综合网| 精品久久久久香蕉网| 成人免费视频免费观看| 亚洲一二三区不卡| 最新久久zyz资源站| 91精品国产一区二区| 91亚洲国产成人精品一区二三| 丝袜亚洲另类丝袜在线| 欧美极品少妇xxxxⅹ高跟鞋| 日韩一级大片在线| 99久久婷婷国产| 日本在线不卡视频| 亚洲欧美在线另类| 久久综合一区二区| 色爱区综合激月婷婷| 国产精品综合网| 亚洲成人资源在线| 亚洲一区二区三区国产| 国产片一区二区| 久久久国产综合精品女国产盗摄| 在线播放中文一区| gogogo免费视频观看亚洲一| 国产一区二区精品久久91| 亚洲成人动漫精品| 亚洲午夜国产一区99re久久| 国产精品久久精品日日| 26uuu精品一区二区在线观看| 欧美二区在线观看| 欧美亚洲动漫制服丝袜| 色综合久久中文字幕| 高清不卡在线观看av| 亚洲中国最大av网站| 亚洲精品高清在线| 国产精品国产三级国产普通话99| wwwwxxxxx欧美| 欧美一区二区播放| 色综合天天综合网国产成人综合天| 成人午夜电影小说| 国产精品影视天天线| 日本一区二区三区四区| 波多野结衣亚洲一区| 国产精品亚洲一区二区三区在线| 激情图区综合网| 国模冰冰炮一区二区| 国产一区999| 国产成人免费视频| 国产91综合网| 91在线无精精品入口| jlzzjlzz欧美大全| 欧洲另类一二三四区| 欧美在线啊v一区| 欧美日韩国产大片| 欧美日韩精品免费| 欧美乱熟臀69xxxxxx| 精品国产乱码久久久久久老虎| 日韩一二三区视频| 国产精品久久久久一区二区三区| 国产日韩欧美在线一区| 久久先锋影音av鲁色资源| 中文字幕欧美国产| 国产精品久久久久久久久免费桃花 | 国产精品国产三级国产| 国产精品美女久久福利网站| 2022国产精品视频| 1区2区3区精品视频| 亚洲人妖av一区二区| 视频一区视频二区中文字幕| 久久成人免费网| 理论片日本一区| 91麻豆精品在线观看| 在线观看国产一区二区| 久久综合久久综合久久| 久久亚洲免费视频| 伊人夜夜躁av伊人久久| 午夜婷婷国产麻豆精品| 激情六月婷婷综合| 欧美性色黄大片| 精品国产乱码久久久久久图片 | 久久狠狠亚洲综合| 国产精品一区二区男女羞羞无遮挡| 国产成人综合亚洲网站| 欧美午夜寂寞影院| 日韩欧美亚洲另类制服综合在线| 国产欧美日韩另类一区| 亚洲午夜羞羞片| 国内精品不卡在线| 欧美日韩夫妻久久| 久久久久高清精品| 蜜臀av在线播放一区二区三区| 国产精品一区免费在线观看| 国产黑丝在线一区二区三区| 欧美日韩在线播放三区| 精品少妇一区二区三区免费观看| 亚洲女人的天堂| 激情国产一区二区| 99久久免费视频.com| 日韩欧美成人激情| 亚洲丝袜自拍清纯另类| 国产91丝袜在线播放| 91精品国产乱| 精品99999| 天堂在线一区二区| av电影一区二区| 国产亚洲人成网站| 日韩精品视频网站| 欧美三级在线播放| 亚洲女人****多毛耸耸8| 亚洲一区二区精品3399| 97se亚洲国产综合自在线| 日韩精品一区二区在线观看| 丝袜美腿亚洲一区| 日本久久电影网| 亚洲欧洲一区二区三区| 国产精品伊人色| 欧美日韩中文精品| 亚洲成人福利片| 91热门视频在线观看| **性色生活片久久毛片| 国产美女精品一区二区三区| 精品国产乱码久久久久久图片 | 国产精品久久久久久久第一福利| 免费在线欧美视频| 色哟哟国产精品| 国产精品美女久久久久久2018| 精品亚洲porn| 久久女同性恋中文字幕| 蜜桃视频在线一区| 欧美色倩网站大全免费| 一区二区成人在线视频 | 最新久久zyz资源站| 91伊人久久大香线蕉| 日本一区二区动态图| av电影一区二区| 中文字幕第一区二区| 成人av中文字幕| 欧美经典一区二区三区| 麻豆一区二区在线| 久久久久久久久久久99999| 麻豆精品视频在线观看视频| 日韩精品一区在线| 精品一区二区影视| 中文字幕二三区不卡| 成人午夜视频免费看| 中文字幕一区av| 99久久99久久精品免费观看| 国产精品久久久久久亚洲毛片| 色94色欧美sute亚洲线路一久| 日韩理论电影院| 欧美另类一区二区三区| 天天亚洲美女在线视频| 精品入口麻豆88视频| 国模冰冰炮一区二区| 日韩欧美综合一区| 精品亚洲免费视频| 亚洲国产成人午夜在线一区| 99久久精品99国产精品 | 波多野结衣精品在线| 午夜国产精品影院在线观看| 欧美一区二区三区视频免费播放|