📄 u_ownsinitfile.pas
字号:
(*
* One Way Network Sniffer (OWNS)
* Copyright (C) 2001-2002 OWNS
*
* http://owns.sourceforge.net/
* http://www.owns.st
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*)
(* $Id: u_OwnsInitFile.pas,v 1.2 2002/11/02 14:05:38 owns Exp $ *)
unit u_OwnsInitFile;
interface
uses IniFiles,SysUtils, u_Filter, u_FilterHttp;
type
TOwnsIniFile = class
private
FIniFile : TIniFile;
function getSniffer() : String;
procedure setSniffer(const sniffer : string);
function getNetworkInterface() : String;
procedure setNetworkInterface(const networkInterface : string);
function getFromFile() : String;
procedure setFromFile(const fromFile : string);
function getBpf() : String;
procedure setBpf(const bpf : string);
function getOutputFiles : TFilePathConfig;
procedure setOutputFiles(const filePathConfig : TFilePathConfig);
procedure setOutputDir(const outputDir : String);
function getOutputDir() : String;
procedure setSaveHttp(const saveHttp : boolean);
function getSaveHttp() : boolean;
procedure setHttpFilterHeaders(const httpFilterHeaders : TFilterHeaders);
function getHttpFilterHeaders() : TFilterHeaders;
procedure setHttpTcpStreamFilter(const filterTcpStream : TFilterHttpTCPStream);
function getHttpTcpStreamFilter() : TFilterHttpTCPStream;
procedure setSaveHttpFiles(const saveHttpFiles : boolean);
function getSaveHttpFiles() : boolean;
procedure setSaveHttpFilesGreaterThan(const greaterThan : integer);
function getSaveHttpFilesGreaterThan() : integer;
procedure setHttpFilterExtensions(const httpFilterExtensions : TFiltreExtensions);
function getHttpFilterExtensions() : TFiltreExtensions;
procedure setRejectContentRange(const reject : boolean);
function getRejectContentRange() : boolean;
procedure setSavePop3Files(const savePop3Files : boolean);
function getSavePop3Files() : boolean;
procedure setSavePop3Stream(const savePop3Stream : boolean);
function getSavePop3Stream() : boolean;
procedure setSaveNntpFiles(const saveNntpFiles : boolean);
function getSaveNntpFiles() : boolean;
procedure setSaveNntpStream(const saveNntpStream : boolean);
function getSaveNntpStream() : boolean;
procedure setSaveOtherStream(const saveOtherStream : boolean);
function getSaveOtherStream() : boolean;
public
constructor create(const fileName : String);
destructor destroy; override;
// source
property sniffer : String read getSniffer write setSniffer;
property networkInterface : String read getNetworkInterface write setNetworkInterface;
property fromFile : string read getFromFile write setFromFile;
// parameters
property bpf : String read getBpf write setBpf;
property outputDir : String read getOutputDir write setOutputDir;
property outputFiles : TFilePathConfig read getOutputFiles write setOutputFiles;
// http filter
property saveHttp : boolean read getSaveHttp write setSaveHttp;
property httpFilterHeaders : TFilterHeaders read getHttpFilterHeaders write setHttpFilterHeaders;
property httpTcpStreamFilter : TFilterHttpTCPStream read getHttpTcpStreamFilter write setHttpTcpStreamFilter;
property saveHttpFiles : boolean read getSaveHttpFiles write setSaveHttpFiles;
property saveHttpFilesGreaterThan : integer read getSaveHttpFilesGreaterThan write setSaveHttpFilesGreaterThan;
property httpFilterExtensions : TFiltreExtensions read getHttpFilterExtensions write setHttpFilterExtensions;
property httpRejectContentRange : boolean read getRejectContentRange write setRejectContentRange;
// pop3 filter
property savePop3Files : boolean read getSavePop3Files write setSavePop3Files;
property savePop3Stream : boolean read getSavePop3Stream write setSavePop3Stream;
// nntp filter
property saveNntpFiles : boolean read getSaveNntpFiles write setSaveNntpFiles;
property saveNntpStream : boolean read getSaveNntpStream write setSaveNntpStream;
// other protocols filter
property saveOtherStream : boolean read getSaveOtherStream write setSaveOtherStream;
end;
implementation
constructor TOwnsIniFile.create(const fileName : String);
begin
inherited Create;
FIniFile := TIniFile.Create(filename);
end;
destructor TOwnsIniFile.Destroy;
begin
FIniFile.Free;
inherited Destroy;
end;
function getNextToken(str : string;separator : char; var r_pos : integer) : string;
var
token : string;
begin
while (r_pos <= length(str)) do
begin
if (str[r_pos] = separator) then
begin
result := token; inc(r_pos); exit;
end;
token := token+str[r_pos];
inc(r_pos);
end;
result := token;
end;
////////////////////////////////////////////////////////////////////////////////
//
// Source
//
////////////////////////////////////////////////////////////////////////////////
function TOwnsIniFile.getSniffer() : String;
begin
result := AnsiLowerCase(FIniFile.ReadString('source','sniffer','libpcap'));
if ((result <>'libpcap') and
(result <>'seh') and
(result <>'observer')) then result := 'libpcap';
end;
procedure TOwnsIniFile.setSniffer(const sniffer : string);
begin
FIniFile.WriteString('source','sniffer',sniffer);
end;
function TOwnsIniFile.getNetworkInterface() : String;
begin
result := AnsiLowerCase(FIniFile.ReadString('source','networkInterface',''));
end;
procedure TOwnsIniFile.setNetworkInterface(const networkInterface : string);
begin
FIniFile.WriteString('source','networkInterface',networkInterface);
FIniFile.WriteString('source','fromFile','');
end;
function TOwnsIniFile.getFromFile() : String;
begin
result := AnsiLowerCase(FIniFile.ReadString('source','fromFile',''));
end;
procedure TOwnsIniFile.setFromFile(const fromFile : string);
begin
FIniFile.WriteString('source','fromFile',FromFile);
FIniFile.WriteString('source','networkInterface','');
end;
////////////////////////////////////////////////////////////////////////////////
//
// Parameters
//
////////////////////////////////////////////////////////////////////////////////
function TOwnsIniFile.getBpf() : String;
begin
result := AnsiLowerCase(FIniFile.ReadString('parameters','bpf',''));
end;
procedure TOwnsIniFile.setBpf(const bpf : string);
begin
FIniFile.WriteString('parameters','bpf',bpf);
end;
procedure TOwnsIniFile.setOutputDir(const outputDir : String);
begin
FIniFile.WriteString('parameters','outputdir',outputDir);
end;
function TOwnsIniFile.getOutputDir() : String;
begin
result := FIniFile.ReadString('parameters','outputdir','./files');
end;
procedure TOwnsIniFile.setOutputFiles(const filePathConfig : TFilePathConfig);
var
pathConfig : String;
begin
case filePathConfig of
Ext_Id : pathConfig := 'ext\id.ext'; // \files\jpg\Id265-0.jpg
Ext_IPDest_PortDest_Id : pathConfig := 'ext\ipdest id.ext'; // \files\jpg\192.56.45.46 4562 Id265-0.jpg
IPDest_Ext_Id : pathConfig := 'ipdest\ext\id.ext'; // \files\192.56.45.46\jpg\Id265-0.jpg
Mime_IpDest_PortDest_Id : pathConfig := 'mime\ext\ipdest portdest id.ext'; // \files\image\jpg\192.56.45.46 4562 Id265-0.jpg
else
pathConfig := 'ext\ipdest id.ext';
end;
FIniFile.WriteString('parameters','outputfiles',pathConfig);
end;
function TOwnsIniFile.getOutputFiles : TFilePathConfig;
var
pathConfig : String;
begin
pathCOnfig := FIniFile.ReadString('parameters','outputfiles','ext\ipdest id.ext');
if (pathConfig = 'ext\id.ext') then
result := Ext_Id
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -