Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> snortのソケットモードの出力を変更する

snortのソケットモードの出力を変更する

  

snortは高速モードと非ソケットモードの両方に適用できることがわかりました。 -A fast -A unsockしかし、いくつかの関数は速いunsock #########プロセスの後に学習されます。

*構造体in_addrは、32ビットのIPv4アドレスを表すために使用されます。

extern void * memcpy(void * destin、void * source、unsigned n); ###送信元からアドレスへ先頭アドレスの連続するnバイトのデータをdestinの宛先アドレスから始まる空間にコピーします。 (baidu)

public:int SendTo(SOCKET s;符号なしcharバッファ__gc []、int size、SocketFlags socketFlags、sockaddr FAR * addr int len);戻り値:実際に送信されたデータの長さ。パラメータ:■送信するデータのソケット・バッファ・バッファ・サイズsizeバッファ長Flagsコール・モード・フラグ(通常0、フラグの変更)、Sendtoによって送信されたaddr(オプション)ポインタの形式を宛先ソケットを指すように変更します。アドレスlenが指すアドレスの長さ

size_t fwrite(const void * buffer、size_t size、size_t count、FILE * stream);注:この関数は、テキストファイルに限らず、バイナリ形式でファイルを操作します。戻り値:実際に書き込まれたデータブロック数を返します(1)buffer:ポインタポインタfwriteの場合は出力するデータのアドレスです。 (2)サイズ:コンテンツに書き込まれるシングルバイト数、(3)カウント:サイズバイトに書き込まれるデータ項目数、(4)ストリーム:ターゲットファイルポインタ。

1。 Void * memset(void * s、int c、size_t n)合計の効果:開いているメモリ空間sの最初のnバイトの値をcに設定します。 sが指すメモリブロックの各バイトの内容を、chで指定されたASCII値に設定しますブロックのサイズは3番目のパラメータで指定されますこの関数は通常、新しく要求されたメモリとその戻り値を初期化します。 Sへのポインタです


################################################################## Output

この構造体を見つけることは - > ip、output ip-> ipの間の記号を通してLogIpAddrs関数を見つけることです。

printf(" !!!!!!!!!!!!%s:%d \\ n"、inet_ntoax(GET_SRC_ADDR(p))、p-> sp);を出力できます構造体p内のipおよびport

は、元のIPアドレスを格納するためのパケット構造内のx-> ip4_header-> sourceおよびx-> iph-> ip_srcです。

Shun vineが見つけたもの:inet_ntoax(GET_SRC_ADDR(p))、p-> sp ########出力ipとport。 (inet_ntoaxはinet_ntoaの変種であり、snortのヘッダファイルに実装されていると思われます。)

Linux:関数宣言:char * inet_ntoa(struct in_addr);静的メモリ内のドット付き10進数文字列を返します。ポインター

printf( "@@@@@@@@@@@ ss%d \\ n"、inet_ntoax(GET_SRC_ADDR(p))、p-> sp); ## can pに出力されているIPとポート。

pktにipがあるかどうかを調べます。 。

(2)タイムスタンプLogTimeStamp(data-> log、p);ここに実装されています。同じことが言えます。

Alertpkt_txtの構造体を作成してmsg ip timestamp portをロードします。構造体を通過させるためにソケットを使用して、目的は達成されます。

Copyright © Windowsの知識 All Rights Reserved