0

私は現在、パケットをキャプチャし、次の手順を処理するために特定の制限を超えたときに外部アプリケーションまたはスクリプトをトリガーする小さなプロジェクトに取り組んでいます (たとえば、アラート、null ルーティングなど)。

このコードで非常に単純なトリガーを作成しようとしました (「トリガー」には、バイナリまたはスクリプトへのパスが含まれています)。

char * trigger_complete;
sprintf(trigger_complete, "%s %u %u %s %s %Lf", trigger, data[II].count, data[II].proto, inet_ntoa(data[II].src_ip), inet_ntoa(data[II].dst_ip), rate);
system (trigger_complete);

私のUbuntu 12.04.1 LTSでは、問題なく動作しているようです。「echo」アプリケーションでテストしました。

linux-gate.so.1 =>  (0xb779f000)
libpcap.so.0.8 => /usr/lib/i386-linux-gnu/libpcap.so.0.8 (0xb7752000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb75a8000)
/lib/ld-linux.so.2 (0xb77a0000)

Debian Wheezy と "grml" のインスタンスで、バイナリを実行するとセグメンテーション エラーが発生します。(上記のコードをコメントアウトして再試行することで、この問題の原因が上記のコードであることを確認しました。)

linux-vdso.so.1 =>  (0x00007fff875ff000)
libpcap.so.0.8 => /usr/lib/x86_64-linux-gnu/libpcap.so.0.8 (0x00007fa9c6048000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa9c5cbe000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa9c608d000)

私が目にする唯一の違いはアーキテクチャです。Ubuntu システムは 32 ビット OS ですが、Debian システムは 64 ビット OS です。

これが問題かどうかはわかりませんが、問題があるようです。

誰でもこれで私を助けることができますか?

前もって感謝します!

4

1 に答える 1