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

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

?? psmfirew.dpr

?? 一款防火墻源碼
?? DPR
?? 第 1 頁 / 共 3 頁
字號:
{
Injected DLL for PSM Firewall.
(C) 2003 PSMKorea, http://www.psmkorea.co.kr
Written by DoDucTruong, Truong2D@Yahoo.com
}

Library PSMFireW;

uses
  SysUtils,
  Windows,
  Classes,
  Registry,
  Messages,
  madCodeHook,
  madRemote,
  StrUtils,
  WinSock,
  InitAndFina in 'InitAndFina.pas';

{$R *.res}

Const
  PSM_REG_KEY=HKEY_LOCAL_MACHINE;
  //PSM_REG_KEY=HKEY_CURRENT_USER;
  PSM_REG_FIREWALL_PATH='SOFTWARE\PSMFirewall';

  REQUEST_TIMEOUT = 100;
  MAX_HIS = 20;
  MAX_DOMAIN_HIS=20;
Var

  acceptNext: function(s: TSocket; addr: PSockAddr; addrlen: PInteger): TSocket; stdcall;
  connectNext: function(s: TSocket; var name: TSockAddr; namelen: Integer): Integer; stdcall;

  recvNext: function(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;
  recvfromNext: function(s: TSocket; var Buf; len, flags: Integer; var from: TSockAddr; var fromlen: Integer): Integer; stdcall;
  sendNext: function(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;
  sendtoNext: function(s: TSocket; var Buf; len, flags: Integer; var addrto: TSockAddr; tolen: Integer): Integer; stdcall;

  AcceptExNext: function(sListenSocket, sAcceptSocket: TSocket;
  lpOutputBuffer: Pointer; dwReceiveDataLength, dwLocalAddressLength,
  dwRemoteAddressLength: DWORD; var lpdwBytesReceived: DWORD;
  lpOverlapped: POverlapped): BOOL; stdcall;

  (*DeviceIoControlNext: function(hDevice: THandle; dwIoControlCode: DWORD; lpInBuffer: Pointer;
  nInBufferSize: DWORD; lpOutBuffer: Pointer; nOutBufferSize: DWORD;
  var lpBytesReturned: DWORD; lpOverlapped: POverlapped): BOOL; stdcall;
  *)

  gethostbynameNext:function (name: PChar): PHostEnt; stdcall;

  //f:textfile;

  Level: Byte=1;
  PermitPath: Byte=2;

  //Idea for Speed
  Allow: Array[0..MAX_HIS] of string[30];
  Deny: Array[0..MAX_HIS] of string[30];
  iAllow: Byte=0;
  iDeny: Byte=0;

  //Idea for AntiRepeated
  oldIPPort: String[30]='';
  oldTime: Cardinal=0;

  //Total Bytes Received/Sent
  bRec: DWORD=0;
  bSen: DWORD=0;
  bTotal: DWORD=0;

  //DoMainName<->IPs
  DomainName:array[0..MAX_DOMAIN_HIS] of shortstring;
  DomainIP:array[0..MAX_DOMAIN_HIS] of string[30];
  iDomain: Byte=0;

  //AntiQ
  dT: Cardinal=0;
  dM: WORD=0;
  stopT: Cardinal=0;

//Registry**********************************************************************
(*
function GetSettings(myKey: HKEY;RegPath:string;Key:string):string;
var
  reg: Tregistry;
begin
  result:='';
  Reg:=TRegistry.Create;
  try
    Reg.RootKey:=myKey;
    try
      if Reg.OpenKey(RegPath,False) then
        result:=Reg.ReadString(Key);
    finally
    end;
  finally
    Reg.Free;
  end;{try}
end;

function SaveSettings(myKey: HKEY;RegPath:string;Key:string;Value:string):Boolean;
var
  reg: Tregistry;
begin
  result:=false;
  Reg:=TRegistry.Create;
  try
    Reg.RootKey:=myKey;
    try
      if Reg.OpenKey(RegPath,True) then
      begin
        Reg.WriteString(Key,Value);
        result:=true;
        Reg.CloseKey;
      end;
    finally
    end;
  finally
    Reg.Free;
  end;{try}
end;
*)
//******************************************************************************

Procedure GetIPAndPort(s: TSocket;var ip: string; var port: integer; var localport: integer);
Var
  name: TSockAddr;
  namelen: Integer;
Begin
  try
  namelen:=sizeof(name);
  getpeername(s,name,namelen);
  ip:=inet_ntoa(name.sin_addr);
  port:=ntohs(name.sin_port);

  getsockname(s,name,namelen);
  localport:=ntohs(name.sin_port);
  except
    SendIpcMessage('PSMFirewall', Pchar(' Error at GetIPAndPort()'#0),length(' Error at GetIPAndPort()'#0),nil,0);
    SysUtils.Beep;
  end;
End;

Function CheckPermission(ip: string; port: integer): Byte;
{
0:Permit
1:Not Permit
2:Default;
}
Var
  //I, j, pos1, pos2: Integer;
  I, j: Integer;
  FromIP, ToIP, st: String;
  FromPort, ToPort: Integer;
  MyIP: String;
Begin
  //12345678911234567892123456789312345678941234567890
  //211.233.011.101|211.233.011.101|00080|00080|0|0

  Result:=2;

  Try

  if PermitPath=0 then
    Result:=0
  else
  Begin
    MyIP:='000.000.000.000';
    j:=Length(ip);
    For i:=15 downto 1 do
    Begin
      if j<1 then break;
      if (ip[j]<>'.') then
      begin
        MyIP[i]:=ip[j];
        j:=j-1;
      end
      else if MyIP[i]='.' then j:=j-1;
    End;

    //MessageBox(0,Pchar(MyIP),'MyIP',MB_OK);

    for I:=0 to Rules.Count-1 do
    begin
      st:=Rules.Strings[I];

      FromIP:=copy(st,1,15);
      ToIP:=copy(st,17,15);
      FromPort:=StrToInt(copy(st,33,5));
      ToPort:=StrToint(copy(st,39,5));

      //MessageBox(0,Pchar(FromIP + #9 + ToIP + #9 + IntToStr(FromPort) + #9 + IntToStr(ToPort)),'Rule',MB_OK);

      if (myip>=FromIP)and(myip<=ToIP)and(port>=FromPort)and(port<=ToPort)then
      Begin
        if st[47]='0' then Result:=0
        else Result:=1;
        Break;
      End;

    {
    pos2:=0;
    for j:= 1 to length(st) do if st[j]='|' then
    begin
      pos1:=pos2+1;
      pos2:=j;
    end;

    pos2:=pos('|',st);if pos2< 1 then continue;
    FromIP:=copy(st,pos1,pos2-pos1);
    }

    End;
    if (Result=2)and(PermitPath=1) then Result:=1;
  End;

  Except
    //SendIpcMessage('PSMFirewall', Pchar(' Error at CheckPermission(): ' + IntToStr(GetLastError()) + #0),Length(' Error at CheckPermission(): ' + IntToStr(GetLastError()) + #0),nil,0,IGNORE, TRUE);
    SendIpcMessage('PSMFirewall', Pchar(' Error at CheckPermission(): ' + IntToStr(GetLastError()) + #0),Length(' Error at CheckPermission(): ' + IntToStr(GetLastError()) + #0),nil,0);
    SysUtils.Beep;
  End;
End;

Procedure LoadRules();
Var
  I: Integer;
  reg: Tregistry;
  regPath:string;

  Rules1 :TStringList;
Begin
  Try
  //Next Version, rules will be loaded to share memory by Application. This procedure will open this map file for use only.

  iAllow:=0;
  iDeny:=0;
  Level:=1;
  PermitPath:=2;
  oldIPPort:='';
  FillChar(Allow,SizeOf(Allow),' ');
  FillChar(Deny,SizeOf(Allow),' ');

  {
  dT:=0;
  dM:=0;
  oldTime:=0;
  stopT:=GetTickCount;
  }

  {
  for i:=0 to MAX_HIS do begin
    Allow[i]:='!';
    Deny[i]:='!';
  end;
  }

  //SendIpcMessage('PSMFirewall', Pchar(' Loading Rules: ' + DLLPath + #0),Length(' Loading Rules: ' + DLLPath + #0),nil,0,IGNORE, TRUE);
  SendIpcMessage('PSMFirewall', Pchar(' Loading Rules: ' + DLLPath + #0),Length(' Loading Rules: ' + DLLPath + #0),nil,0);

  regPath:=PSM_REG_FIREWALL_PATH + '\Rules';
  Reg:=TRegistry.Create;

  try
    Reg.RootKey:=PSM_REG_KEY;

    if Reg.OpenKey(PSM_REG_FIREWALL_PATH,False) then
    begin
      try
        Level:=Reg.ReadInteger('Level');
      except
        Level:=1;//Default
      end;
    end
    else
      //SendIpcMessage('PSMFirewall', Pchar(' Error OpenKey(1): ' + PSM_REG_FIREWALL_PATH + #0),length(' Error OpenKey(1): ' + PSM_REG_FIREWALL_PATH + #0),nil,0,IGNORE, TRUE);;//Error trap
      SendIpcMessage('PSMFirewall', Pchar(' Error OpenKey(1): ' + PSM_REG_FIREWALL_PATH + #0),length(' Error OpenKey(1): ' + PSM_REG_FIREWALL_PATH + #0),nil,0);;//Error trap
    Reg.CloseKey;

    if Reg.OpenKey(regPath,False) then
    begin
      if Rules<>nil then Rules.Free;
      Rules:=TStringList.Create;
      Reg.GetValueNames(Rules);
      for I:=0 to Rules.Count-1 do
        //SendIpcMessage('PSMFirewall', Pchar(' ' + IntToStr(Level) + '     ' + Rules.Strings[I]  + '     ' + DllPath + #0),strlen(Pchar(' ' + IntToStr(Level) + '     ' + Rules.Strings[I] + '     ' + DllPath + #0)),nil,0);
    end
    else
      //SendIpcMessage('PSMFirewall', Pchar(' Error OpenKey(2): ' + regPath + #0),length(' Error OpenKey(2): ' + regPath + #0),nil,0,IGNORE, TRUE);;//Error trap
      SendIpcMessage('PSMFirewall', Pchar(' Error OpenKey(2): ' + regPath + #0),length(' Error OpenKey(2): ' + regPath + #0),nil,0);;//Error trap
    Reg.CloseKey;

    PermitPath:=2;
    regPath:=PSM_REG_FIREWALL_PATH + '\Rules1';
    if Reg.OpenKey(regPath,False) then
    begin
      Rules1:=TStringList.Create;
      Reg.GetValueNames(Rules1);
      for I:=0 to Rules1.Count-1 do
      begin
        if (pos(DllPath,Rules1.Strings[I])>0)then
          if (Rules1.Strings[I][Length(Rules1.Strings[I])]='0') then
            PermitPath:=0
          else
            PermitPath:=1;
        //SendIpcMessage('PSMFirewall', Pchar(' ' + IntToStr(Level) + '     ' + Rules1.Strings[I]  + '     ' + DllPath),strlen(Pchar(' ' + IntToStr(Level) + '     ' + Rules1.Strings[I] + '     ' + DllPath)),nil,0);
      end;
      Rules1.Free;
    end
    else
      //SendIpcMessage('PSMFirewall', Pchar(' Error OpenKey(3): ' + regPath),length(' Error OpenKey(3): ' + regPath),nil,0,IGNORE, TRUE);;//Error trap
      SendIpcMessage('PSMFirewall', Pchar(' Error OpenKey(3): ' + regPath + #0),length(' Error OpenKey(3): ' + regPath + #0),nil,0);;//Error trap

    Reg.CloseKey;
  finally
    Reg.Free;
  end;

  Except
    //SendIpcMessage('PSMFirewall', Pchar(' Error at LoadRules(): ' + IntToStr(GetLastError())),Length(' Error at LoadRules(): ' + IntToStr(GetLastError())),nil,0,IGNORE, TRUE);
    SendIpcMessage('PSMFirewall', Pchar(' Error at LoadRules(): ' + IntToStr(GetLastError()) + #0),Length(' Error at LoadRules(): ' + IntToStr(GetLastError()) + #0),nil,0);
    SysUtils.Beep;
  End;
End;

Function WriteLog(const s: Tsocket; const Direction: string; const ip: string; const port: integer; const localport: Integer): BOOL;
var
  t:SYSTEMTIME;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产性色一区二区| 欧美最猛性xxxxx直播| 不卡电影免费在线播放一区| 欧美自拍偷拍午夜视频| 久久久久亚洲蜜桃| 亚洲国产精品自拍| 99久久精品国产一区| 精品国产免费久久 | 免费的国产精品| 国产jizzjizz一区二区| 欧美精品粉嫩高潮一区二区| 日韩欧美视频一区| 久久99热国产| 欧美图区在线视频| 亚洲欧洲综合另类| 99久精品国产| 日本一区二区电影| 国产成人啪午夜精品网站男同| 欧美一卡在线观看| 日本成人在线网站| 91麻豆精品国产自产在线| 亚洲国产成人91porn| 欧美专区亚洲专区| 天天亚洲美女在线视频| 欧美日韩国产高清一区| 久久久久久电影| 亚洲午夜电影在线| 在线观看欧美日本| 亚洲精品视频一区| 欧美最新大片在线看 | 亚洲人成小说网站色在线| 国产成人综合精品三级| 中文字幕欧美日韩一区| 成人爽a毛片一区二区免费| 国产精品视频一区二区三区不卡| 国产高清亚洲一区| ...av二区三区久久精品| 91一区二区在线| 亚洲午夜在线电影| 欧美日本国产一区| 极品少妇一区二区| 国产无人区一区二区三区| 岛国一区二区在线观看| 亚洲日本欧美天堂| 欧美人妇做爰xxxⅹ性高电影 | 欧美中文字幕一区二区三区| 亚洲免费视频成人| 91精品国产aⅴ一区二区| 激情偷乱视频一区二区三区| 国产欧美日韩卡一| 色呦呦一区二区三区| 日韩vs国产vs欧美| 国产亚洲污的网站| 欧美性猛交xxxx乱大交退制版| 日韩激情在线观看| 日本网站在线观看一区二区三区 | 另类专区欧美蜜桃臀第一页| 久久久久久久综合色一本| 不卡的看片网站| 日精品一区二区三区| 久久老女人爱爱| 欧洲精品中文字幕| 国产麻豆欧美日韩一区| 一区二区三区四区五区视频在线观看 | 欧美视频你懂的| 老司机免费视频一区二区三区| 亚洲国产精品高清| 欧美日韩一区在线| 成人黄色电影在线 | 国产99久久久国产精品免费看| 亚洲综合激情另类小说区| 日韩精品中午字幕| 成人黄色a**站在线观看| 日韩精品成人一区二区在线| 中文字幕一区二区在线观看 | 色94色欧美sute亚洲13| 久久99国产乱子伦精品免费| 亚洲日本免费电影| 久久久亚洲午夜电影| 欧美日韩一区成人| 成人动漫精品一区二区| 久久国产精品72免费观看| 亚洲综合色婷婷| 国产精品人人做人人爽人人添| 欧美日韩亚洲综合| 色偷偷一区二区三区| 国产91露脸合集magnet| 老鸭窝一区二区久久精品| 亚洲成人激情综合网| 亚洲欧美激情插| 一区二区中文视频| 国产欧美日韩激情| 欧美精品一区二区三区在线| 欧美狂野另类xxxxoooo| 在线观看日韩国产| 99re这里都是精品| 成人av在线电影| 成人精品视频一区二区三区| 狠狠色丁香婷婷综合久久片| 麻豆国产精品一区二区三区 | 天堂av在线一区| 日韩一区在线免费观看| 国产精品私人自拍| 国产精品系列在线| 国产精品色婷婷| 国产精品入口麻豆九色| 中文字幕+乱码+中文字幕一区| 久久―日本道色综合久久 | 欧美一级欧美三级在线观看| 欧美视频一区二区三区四区| 欧美午夜寂寞影院| 欧美日韩日本视频| 欧美一区二区视频网站| 日韩一区二区三区在线| 精品88久久久久88久久久| 久久综合久久综合久久综合| 久久日一线二线三线suv| 精品久久久久久久人人人人传媒 | 26uuu久久天堂性欧美| 6080日韩午夜伦伦午夜伦| 欧美日韩高清在线播放| 欧美日韩国产在线观看| 欧美日韩视频在线第一区 | 一区二区三区在线免费| 亚洲福利视频一区| 日本视频免费一区| 久久精品国产一区二区| 国产成人在线观看| 91首页免费视频| 在线亚洲人成电影网站色www| 欧美性感一类影片在线播放| 欧美一区二区女人| 国产欧美日韩精品a在线观看| 亚洲精品国产一区二区精华液 | 99久久婷婷国产综合精品电影| 国产一区二区三区综合| 国产综合成人久久大片91| 成人性生交大片免费看在线播放| 91女厕偷拍女厕偷拍高清| 欧美日韩一区二区三区四区| 精品美女一区二区| 国产精品毛片久久久久久| 亚洲综合色噜噜狠狠| 蜜臀av性久久久久蜜臀av麻豆| 国产激情一区二区三区桃花岛亚洲| k8久久久一区二区三区| 欧美日韩在线一区二区| 国产日韩欧美激情| 亚洲国产日韩精品| 国产剧情一区二区| 欧美日韩综合在线免费观看| 久久久一区二区三区| 一区二区三区在线视频播放| 久久国产精品99久久久久久老狼| 成人精品视频.| 欧美videos中文字幕| 亚洲人精品午夜| 国产在线精品一区在线观看麻豆| 99精品视频一区二区| 久久中文字幕电影| 亚洲午夜一区二区三区| 成人高清av在线| 欧美电影免费提供在线观看| 亚洲精品欧美专区| 国产成人免费视| 日韩一卡二卡三卡四卡| 亚洲最大成人综合| 成人免费高清视频在线观看| 国产精品理论片| 日韩国产欧美三级| 欧美性猛交xxxxxx富婆| 亚洲私人影院在线观看| 国产伦精品一区二区三区免费迷| 欧美日韩国产在线观看| 亚洲女女做受ⅹxx高潮| 粉嫩久久99精品久久久久久夜| 日韩欧美国产综合| 爽好久久久欧美精品| 欧美专区在线观看一区| 亚洲欧洲日韩av| 成人av网站在线| 国产三级精品三级在线专区| 久99久精品视频免费观看| 91麻豆精品国产91| 亚洲一区二区三区不卡国产欧美| www.欧美亚洲| 中文字幕一区日韩精品欧美| 国产成人av一区二区三区在线观看| 精品乱人伦一区二区三区| 日本在线不卡视频一二三区| 欧美日韩一区二区三区不卡| 一区二区三区日本| 91国在线观看| 亚洲国产精品一区二区www| 在线观看亚洲专区| 五月综合激情网| 69精品人人人人| 老色鬼精品视频在线观看播放| 欧美一区二区久久| 极品瑜伽女神91|