観測インスタンス停電のLinuxカーネルのインストールkprobeに使用kprobeのカーネル関数は、非常に多くのコアプログラマカーネル関数に実装された機能をプロービングするSystemTapであります、おそらくより便利に直接使用するSystemTapをkprobe未満である。カーネルはkprobeハンドラの3種類の、それぞれのJProbe、kprobe、kretprobeを提供し、次のコードは、三の観察プローブとTCP /IP arp_process関数で実行されます.. Windows7の故障
arp_probe.c /* *:()呼び出しのip_route_inputに同じ機能エントリハンドラRetのハンドラコードで次のようにもプローブとの間の共有パラメータの方法を示し、このコードの結果を返しますQianfeng張によってarp_probe.c、([email protected])* /
の#includeの#includeの#includeの#includeの#includeの#includeの#includeの#include
MODULE_AUTHOR(" frzhang @ redhat.com"); MODULE_DESCRIPTION(" ip_route_inputのコール結果を追跡するためのモジュール()arp_process内部のJProbeとkretprobe"を使用して、); MODULE_LICENS E(" GPL");
静的INT j_arp_process(構造体sk_buff *のSKB){構造体net_device * DEV = skb-> devの、構造体in_device * in_dev; int型no_addr、RPF;
in_dev = in_dev_get(DEV); no_addr =(in_dev-> ifa_list == NULL); RPF = IN_DEV_RPFILTER(in_dev); in_dev_put(in_dev)のprintk(" \\ narp_processは()インターフェースデバイス%のS、in_devと呼ばれ(no_addr =%dを、RPF =%d)は\\ N" DEV->名、no_addr、RPF); jprobe_return();戻り値(0);};
静的INT j_fib_validate_source(__ BE32のSRC、 __be32 DST、U8 TOS、INT OIF、構造体net_device * DEV、__be32 * spec_dst、U32 * ITAG、U32マーク)
{のprintk(" fib_validate_source()= DST = 0X%X、OIFと呼ばれ%D \\ N"、DST、OIF); jprobe_return();戻り値(0);};
静的構造体のJProbeのmy_jp1 = {.ENTRY = j_arp_process、.kp.symbol_name =" arp_process"};
静的構造体のJProbeのmy_jp2 = {.ENTRY = j_fib_validate_source、.kp.symbol_name =" fib_validate_source"};
静的INT entry_handler(構造体KRE tprobe_instance * RI、構造体pt_regs * REGS){のprintk("呼び出し:%S()\\ N" [1-> RP-> kp.symbol_name);リターン(0);};
静的INT return_handler(構造体kretprobe_instance * RI、構造体pt_regs * REGS){int型EAX;
EAX = regs-> AX& 0xFFFFで;のprintk("戻っ:%S()戻り値を持ちます。 0X%のLX(64)0X%X(32ビット)\\ N" [1-> RP-> kp.symbol_name、regs-> AX、EAX);
リターン(0);};
静的INT fib_lookup_entry_handler(構造体kretprobe_instance * RI、構造体pt_regs * REGS){構造体fib_resultの*のRESP;
RESP =(構造体fib_result *)regs-> DX;のprintk("コーリング:%S()\\ N" [1-> RP-> kp.symbol_name); *((構造体fib_result **)[1->データ)= RESP;
リターン(0)。 };
静的INT fib_lookup_return_handler(構造体kretprobe_instance * RI、構造体pt_regs * REGS){構造体fib_result * RESP; INT EAX;
EAX = regs-> AX & 0xFFFFで、RESP = *((構造体fib_result **)[1->データ)のprintk("戻っ:fib_lookup()を呼び出すと値:0X%LX(64)0X%X(32ビット)、result->タイプ:%D \\ N" regs-> AX、EAX、resp->タイプ);
リターン( 0);}
静的構造体kretprobe my_rp1 = {.handler = return_handler、.entry_handler = entry_handler、.kp.symbol_name =" ip_route_input_slow"};
スタティック構造体kretprobe my_rp2 = {.handler = return_handler、.entry_handler = entry_handler、.kp.symbol_name =" fib_validate_source"};
静的構造体kretprobe my_rp3 = {.handler = fib_lookup_return_handler ,. entry_handler = fib_lookup_entry_handler、.kp.symbol_name =" fib_lookup" .data_size =はsizeof(構造体fib_result *)};
静的INT __init init_myprobe(ボイド){int型RET;
のprintk( " RTN_UNICASTは%D \\ N"ある、RTN_UNICAST); IF((RET = register_jprobe(&#038; my_jp1))< 0){のprintk(" register_jprobe%Sは、失敗した%D \\ N"返さ; my_jp1.kp。 symbol_nameと、RET);リターン(-1);}
IF((RET = register_jprobe(&#038; my_jp2))< 0){のprintk("レジster_jprobe%S、失敗%d個の\\ N"を返さ; my_jp2.kp.symbol_name、RET);リターン(-1);}
((RET = register_kretprobe場合(&#038; my_rp1))< 0) {のprintk("%S失敗register_kretprobe、%d個の\\ N"を返さ; my_rp1.kp.symbol_name、RET); unregister_jprobe(&#038; my_jp1); unregister_jprobe(&#038; my_jp2);リターン(-1);}
IF((RET = register_kretprobe(&#038; my_rp2))< 0){のprintk(" register_kretprobe%sは、失敗した返さ%D \\ N" my_rp2.kp.symbol_name、RET); unregister_jprobe(&#038; my_jp1 ); unregister_jprobe(&#038; my_jp2); unregister_kretprobe(&#038; my_rp1);リターン(-1);}
IF((RET = register_kretprobe(&#038; my_rp3))< 0){のprintk("。 register_kretprobe%sは、失敗した返さ%D \\ N" my_rp3.kp.symbol_name、RET); unregister_jprobe(&#038; my_jp1); unregister_jprobe(&#038; my_jp2); unregister_kretprobe(&#038; my_rp1); unregister_kretprobe(&#038; my_rp2);リターン(-1);}
戻り0;}
RedHat Linuxは、システムセキュリティを向上させるためのファイアウォール保護を提供します。コンピュータとネットワークの間にファイアウォールが存在し、コンピュータ上のどのリソースにネットワーク
Linuxカーネルの待機キューには、割り込み処理、プロセスの同期、およびタイミングのための多くの用途があります。ここで言うのは、プロセスは特定のイベントが発生するのを待たなければならないことが多い
を使用します。 nmapはネットワークポートスキャナーです。その主な機能は、ターゲットホストのグループを調べて、どのTCPポートとUDPポートがサービス上にあるかを確認することです。ほとんどのネットワ
概要 この記事では、LinuxホストとWindowsホスト間でファイルを転送する方法について説明します。時々、Linuxホストの中のいくつかのファイルがwindows環境で使われるかもしれません。たと