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

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

?? unitclass.pas

?? 本代碼實現在bmp中隱藏文件的功能
?? PAS
字號:

{*******************************************************}
{                                                       }
{       eulB's 魔法BMP                                  }
{                                                       }
{       基本函數和過程的類封裝                          }
{                                                       }
{       2001年10月19日                                  }
{                                                       }
{*******************************************************}


unit unitClass;

interface

uses
  classes,Windows, SysUtils;

const
  //用于GetBMPInfo
  BMPFlag=1;
  BMPSize=2;
  BMPBitsperPixel=3;
  BMPDataOffset=4;
  //用于SetBMPFlag
  BMPFilePushed=5;
  BMPFilePswAdded=6;
  UN_BMPFilePswAdded=7;
  UN_BMPFilePushed=8;
  mask:array[0..7] of byte=(1,2,4,8,16,32,64,128);

//基本過程和函數類
type
  Tprocfunc=class(Tobject)
    protected
      procedure SetBMPFlag(bmpname:string;Flag:integer);
      procedure AddFileName(bmpfile:string;FileName:string);

      function  GetBMPInfo(bmpname:string;Flag:integer):string;
      function  GetFileSize(filename:string):integer;
      function  GetFileNameFromBMP(bmpfile:string):string;
    public
      constructor create;
  end;

//提取隱藏文件類

implementation
constructor Tprocfunc.create;
begin
end;

function Tprocfunc.GetBMPInfo(bmpname:string;Flag:integer):string;
var
  p: Hfile;
  wTemp: WORD;
  dwTemp: DWORD;
begin
  p:=_lopen(pchar(bmpname),OF_READ);
  case Flag of
  BMPFlag :
    begin
      _lread(p,@wTemp,1);
      result:=chr(wTemp);
      _lread(p,@wTemp,1);
      result:=result+chr(wTemp);
      _lclose(p);
    end;
  BMPSize :
    begin
      _llseek(p,2,FILE_BEGIN);
      _lread(p,@dwTemp,4);
      _lclose(p);
      result:=inttostr(dwTemp);
    end;
  BMPBitsperPixel:
    begin
      _llseek(p,28,FILE_BEGIN);
      _lread(p,@wTemp,2);
      _lclose(p);
      result:=inttostr(wTemp);
    end;
  BMPDataOffset:
    begin
      _llseek(p,10,FILE_BEGIN);
      _lread(p,@dwTemp,4);
      _lclose(p);
      result:=inttostr(dwTemp);
    end;
  BMPFilePushed:         //'J'
    begin
      _llseek(p,6,0);
      _lread(p,@wTemp,1);
      _lclose(p);
      result:=chr(wTemp xor ord('B'));
    end;
  BMPFilePswAdded:       //'P'
    begin
      _llseek(p,7,0);
      _lread(p,@wTemp,1);
      _lclose(p);
      result:=chr(wTemp xor ord('B'));
    end;
  end;
end;

function Tprocfunc.GetFileSize(filename:string):integer;
var
  f:file of byte;
begin
  AssignFile(f, filename);
  Reset(f);
  result:=filesize(f);
  CloseFile(f);
end;

function Tprocfunc.GetFileNameFromBMP(bmpfile: string): string;
var
  p: hfile;
  name_len,i,j: shortint;
  Offset,file_len: integer;
  byte_buf: byte;
  byte_bufs: array[0..7] of byte;
begin
  Offset:=strtoint(GetBMPInfo(bmpfile,BMPDataOffset));
  p:=_lopen(pchar(bmpfile),OF_READ);

  //從圖像頭部偏移2處讀取被隱藏文件長度
  _llseek(p,2,0);
  _lread(p,@file_len,4);

  //讀取文件名長度
  _llseek(p,8,0);
  _lread(p,@name_len,1);

  //計算放入文件名的偏移量
  case (file_len Mod 3) of
    0: Offset:=Offset + 24 + (file_len div 3) * 12;
    1: Offset:=Offset + 24 + (file_len div 3) * 12 + 6;
    2: Offset:=Offset + 24 + (file_len div 3) * 12 + 9;
  end;

  //定位致文件名開始處
  _llseek(p,Offset,0);
  for i:= 1 to name_len do
  begin
    byte_buf:=0;
    _lread(p,@byte_bufs,8);
  for j:=0 to 7 do
    if (byte_bufs[j] and 1 ) = 1 then
      byte_buf:= byte_buf or mask[j];
  result:=result+chr(byte_buf);
  end;
  _lclose(p);
end;

procedure Tprocfunc.AddFileName(bmpfile: string;FileName: string);
var
  p:hfile;
  file_len,Offset,j:integer;
  temp:byte;
  name_len,i:shortint;
  byte_bufs:array[0..7] of byte;
begin
  Offset:=strtoint(GetBMPInfo(bmpfile,BMPDataOffset));
  p:=_lopen(pchar(bmpfile),OF_READWRITE);

  //從圖像頭部偏移2處讀取被隱藏文件長度
  _llseek(p,2,0);
  _lread(p,@file_len,4);

  //在0008h處寫入shortint(8bit)類型的文件名長度
  _llseek(p,8,0);
  name_len:=length(FileName);
  _lwrite(p,@name_len,1);

  //計算放入文件名的偏移量
  case (file_len Mod 3) of
    0: Offset:=Offset + 24 + (file_len div 3) * 12;
    1: Offset:=Offset + 24 + (file_len div 3) * 12 + 6;
    2: Offset:=Offset + 24 + (file_len div 3) * 12 + 9;
  end;

  //定位讀寫指針
  _llseek(p,Offset,0);
  for i:=1 to name_len do
  begin
    //temp:=ord(FileName[i]);
    _lread(p,@byte_bufs,8);
    for j:=0 to 7 do
      if (ord(FileName[i]) and mask[j]) >j then
        byte_bufs[j]:=byte_bufs[j] or 1
      else
        byte_bufs[j]:=byte_bufs[j] and $FE;
    _llseek(p,-8,FILE_CURRENT);
    for j:=0 to 7 do
      _lwrite(p,@byte_bufs[j],1);
  end;
  _lclose(p);
end;

procedure Tprocfunc.SetBMPFlag(bmpname:string;Flag:integer);
var
  p:hfile;
  temp:byte;
begin
  p:=_lopen(pchar(bmpname),OF_WRITE);
  case Flag of
  BMPFilePushed:
    begin
      temp:=ord('J') xor ord('B');  // 作XOR處理,以增加保密性
      _llseek(p,6,0);
      _lwrite(p,@temp,1);
    end;
  BMPFilePswAdded:
    begin
      temp:=ord('P') xor ord('B');
      _llseek(p,7,0);
      _lwrite(p,@temp,1);
    end;
  UN_BMPFilePswAdded:
    begin
      temp:=ord('.'); //若已經置有'P',則改寫為'.'
      _llseek(p,7,0);
      _lwrite(p,@temp,1);
    end;
  UN_BMPFilePushed:
    begin
      temp:=0;
      _llseek(p,6,0);
      _lwrite(p,@temp,1);
    end;
  end;
  _lclose(p);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
伊人夜夜躁av伊人久久| 久久久九九九九| 亚洲国产va精品久久久不卡综合| 成人99免费视频| 国产精品久久二区二区| 91色|porny| 亚洲综合一区二区三区| 欧美视频三区在线播放| 偷拍一区二区三区| 欧美成人一区二区三区片免费| 狠狠色综合播放一区二区| 国产欧美视频一区二区| av午夜一区麻豆| 午夜在线成人av| 精品理论电影在线观看 | 精品国产乱码久久| 国产一区二区在线观看免费| 国产精品美女www爽爽爽| 欧美亚洲丝袜传媒另类| 蜜臀久久久99精品久久久久久| 精品国产sm最大网站免费看| 国产91精品一区二区麻豆网站 | 洋洋av久久久久久久一区| 6080午夜不卡| 国产精品一区二区不卡| 亚洲免费av高清| 精品国产青草久久久久福利| 91亚洲精品乱码久久久久久蜜桃| 香蕉加勒比综合久久| 日本一区二区三区在线不卡| 精品视频999| 丁香六月久久综合狠狠色| 亚洲国产精品尤物yw在线观看| 欧美大片一区二区三区| 91免费小视频| 国产一区 二区 三区一级| 亚洲精品网站在线观看| 久久综合色8888| 欧美亚洲综合一区| 福利一区二区在线观看| 日韩av一级电影| 亚洲欧美激情小说另类| 精品91自产拍在线观看一区| 日本黄色一区二区| 成人开心网精品视频| 麻豆精品视频在线观看免费| 亚洲精品国产一区二区精华液 | 蜜桃传媒麻豆第一区在线观看| 国产精品久久久久国产精品日日| 日韩欧美国产精品| 欧美在线视频日韩| 成人国产精品免费网站| 国精产品一区一区三区mba视频 | 亚洲免费观看在线观看| 国产校园另类小说区| 制服丝袜亚洲播放| 在线观看91精品国产入口| 国产成人在线视频网址| 久久国产免费看| 日韩不卡一区二区| 午夜精品福利在线| 亚洲与欧洲av电影| 亚洲精品久久嫩草网站秘色| 亚洲丝袜另类动漫二区| 久久九九久久九九| 日韩欧美123| 91精品国产色综合久久不卡蜜臀 | 国产在线不卡视频| 日韩av一区二区在线影视| 午夜精品国产更新| 日韩电影一区二区三区| 日韩电影一二三区| 蜜桃视频一区二区三区在线观看| 天堂资源在线中文精品| 一个色在线综合| 亚洲v中文字幕| 天天亚洲美女在线视频| 舔着乳尖日韩一区| 免费成人美女在线观看.| 美女免费视频一区二区| 蜜臀精品一区二区三区在线观看| 日本不卡123| 激情综合色综合久久| 国产精品一区二区三区乱码| 国产精品综合视频| 粉嫩久久99精品久久久久久夜| 国产精品一区专区| www.综合网.com| 色综合久久久久综合99| 欧美日韩一区精品| 日韩欧美资源站| 久久精品在线免费观看| 国产精品视频一区二区三区不卡| 成人欧美一区二区三区在线播放| 亚洲蜜臀av乱码久久精品| 三级一区在线视频先锋| 久久精品国产色蜜蜜麻豆| 国产精品一区二区无线| 91丝袜呻吟高潮美腿白嫩在线观看| 91美女视频网站| 欧美一区二区三区思思人| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 亚洲三级视频在线观看| 一区二区三区电影在线播| 日韩福利电影在线观看| 国产毛片精品国产一区二区三区| 99久久精品国产导航| 欧美日韩国产综合一区二区三区| 在线播放91灌醉迷j高跟美女 | 欧美一级在线观看| 国产亚洲一区二区三区四区| 日韩理论在线观看| 麻豆中文一区二区| 91免费看`日韩一区二区| 91 com成人网| 中文字幕一区二区三区四区不卡 | 青青草原综合久久大伊人精品| 激情综合色综合久久| 色www精品视频在线观看| 日韩一区二区精品| 亚洲色图欧美激情| 久久99久久精品欧美| 一本久久综合亚洲鲁鲁五月天| 日韩欧美电影一二三| 18欧美亚洲精品| 久久99精品网久久| 色综合av在线| 国产欧美日韩不卡免费| 午夜久久久久久久久| av色综合久久天堂av综合| 精品88久久久久88久久久| 亚洲一区二区三区四区五区黄 | 91色综合久久久久婷婷| 久久天堂av综合合色蜜桃网| 亚洲综合视频网| 不卡的av在线| 久久久久久久精| 久久精品国产亚洲a| 欧美日本在线视频| 一区二区激情小说| 高清日韩电视剧大全免费| 日韩一级精品视频在线观看| 亚洲精品成人精品456| 成人一区二区三区中文字幕| 欧美大白屁股肥臀xxxxxx| 亚洲国产精品麻豆| 色狠狠色狠狠综合| 亚洲欧洲精品一区二区三区不卡| 激情成人综合网| 日韩视频一区二区三区在线播放 | 亚洲黄一区二区三区| 成人综合在线视频| 久久免费的精品国产v∧| 麻豆成人av在线| 51精品视频一区二区三区| 亚洲曰韩产成在线| 欧美亚洲动漫精品| 亚洲免费资源在线播放| 不卡一区中文字幕| 国产精品久久综合| 成人一区二区三区| 国产精品视频九色porn| 国产成人午夜视频| 国产精品蜜臀av| 成人av网站大全| 日韩毛片在线免费观看| 99精品视频中文字幕| 亚洲视频一二三区| 91在线视频免费91| 一区二区三区四区五区视频在线观看 | 欧美一区二区视频在线观看2022 | 精品久久免费看| 久久国产乱子精品免费女| 精品国产三级电影在线观看| 国产精品影视在线| 国产精品护士白丝一区av| 色婷婷综合久久久久中文 | www.久久久久久久久| 国产精品福利一区二区| 处破女av一区二区| 亚洲精品日韩专区silk| 欧洲亚洲精品在线| 日本在线不卡视频| 精品99久久久久久| 成人久久久精品乱码一区二区三区| 国产精品久久久久久久久免费樱桃 | 精品三级在线看| 国产成人精品免费视频网站| 中文字幕亚洲综合久久菠萝蜜| 97精品国产97久久久久久久久久久久| 亚洲精品乱码久久久久久黑人| 欧美日韩精品一二三区| 激情五月激情综合网| 国产精品每日更新在线播放网址| 欧美性色黄大片手机版| 日韩经典一区二区| 久久嫩草精品久久久久| 精品国产免费视频| 成人免费的视频| 精品综合久久久久久8888|