내 학기 프로젝트는 네트워크 수준의 악성 코드 방지 소프트웨어입니다. 주요 구성 요소는 Manager와 Agent입니다. 에이전트가 가진 관리자를 제공합니다C 코드 변환 및 컴파일을위한 Systemtap 스크립트
1. CPU usage, Memory usage and B/W usage information
2. Network related Information -
Network Profiling
Function calls from Network Sockets
TCP packets related information
3. Disk Related Information -
I/O monitoring
File Read/Writes
File Attribute changes
4. General Profiling
Function calls
Call Graph
Frequently used system calls
call volume per process
이 네 가지 기능의 각 스레드로 구현됩니다. 우리의 플랫폼은 Linux입니다. 우리는 오히려 등을 위, ifstat, tcpdump을 같은 리눅스 명령을 이용하는 것보다 우리가 더 나은 대안을 발견
http://sourceware.org/systemtap/SystemTap_Beginners_Guide/useful-systemtap-scripts.html
하는 SystemTap라는 도구를 ... 발견했다. 실제로 완료되어야하는 모든 작업은 에이전트 Java 프로그램에서 스크립트 또는 실행 파일을 호출합니다."systemtap"에서 사용되는 모든 스크립트는 systemtap 스크립팅 언어로 작성됩니다. 프런트 엔드 도구 (stap)는이 스크립트를 C 코드로 변환 한 다음 커널 파일로 컴파일합니다. 위의 명령을 사용하여
STAP --tmpdir =/가정/시험/nettop.stp
는, 내가 변환 된 C 코드 파일을 얻기 위해 관리했다. 그러나 종속성 문제로 인해 파일이 컴파일되지 않습니다.
GCC의 nettop.c nettop.c : 10 : 29 : 치명적인 오류 : runtime_defines.h : 종료 해당 파일이나 디렉토리 컴파일.
GCC의 -B는/usr/share/SystemTap의/실행/-B /usr/src/kernels/3.3.1-3.fc16.x86_64/include/ nettop.c nettop.c : 10 : 29 : 치명적인 오류 : runtime_defines.h : 해당 파일이나 디렉토리가 없습니다. 컴파일이 종료되었습니다.
GCC의 --sysroot =는/usr/nettop.c nettop.c : 10 : 29 : 치명적인 오류 : runtime_defines.h : 그런 파일이나 디렉토리가 컴파일 종료합니다.
SystemTap의 런타임 헤더 모두 리눅스/헤더에게 SystemTap에 대한 클래스 경로가 /usr/../../../../include까지 설정되어 있는지 의미 형식을 사용합니다. 모든 헤더를 특정 폴더에 복사하는 것은 쉽지만 올바른 경로 이름을 반영하도록 편집하는 것은 불가능합니다. 1000 개의 리눅스 헤더를 다루는 106 개의 런타임 헤더가 있습니다.
a. gcc를 특정 폴더를 라이브러리로 사용하려면 어떻게해야합니까?
b. 이 에이전트 아키텍처에 대한 더 나은 대안이 있습니까?
추신 : 질문이 너무 애매하지 않기를 바랍니다. 답장을 미리 보내 주셔서 감사합니다.