
프로세스 메모리와 주소를 검사하도록 설계된 BOF
프로세스 메모리, 주소 및 심볼을 검사하는 데 사용할 수 있는 CS BOF입니다!
| 명령 | 설명 |
|---|---|
| lm | 모든 로드된 모듈과 기본 주소, 진입점 등을 나열합니다 |
| addr | 지정된 메모리 주소의 바이트를 출력합니다 |
| meminfo | 지정된 메모리 주소에 대한 정보를 출력합니다 |
| lt | 현재 프로세스의 모든 활성 스레드 목록과 기본 정보를 출력합니다 |
| regdump | 스레드 레지스터의 내용을 출력합니다 |
패치를 보내주세요! 더 많은 명령어를 추천해주세요!
lm 명령은 현재 프로세스에 로드된 모듈을 나열합니다. 인수 없이 호출하면 로드된 모든 DLL을 반환하고, DLL 이름을 지정하면 해당 모듈의 세부 정보(기본 주소, 진입점, 크기, 전체 경로)를 반환합니다.
구문
psi lm [dll]
매개변수:
dll (선택 사항): 조회할 로드된 DLL의 이름입니다. 생략하면 모든 로드된 모듈이 나열됩니다.예시:
psi lm
psi lm ntdll.dll
psi lm kernel32.dll
addr 명령은 지정된 주소의 값을 반환합니다.
구문:
psi addr <address> <type> [count]
address: 16진수로 검사할 주소type: 주어진 주소의 데이터 유형을 처리하는 방법을 제어합니다. 유효한 값은 BYTE, WORD, DWORD, LPVOID입니다. 따라서 사용자가 DWORD 값을 제공하면 해당 주소에서 size(DWORD) 크기의 청크가 읽힙니다. 각 청크는 유형 크기와 동일한 너비의 0x 접두사 리틀 엔디언 값으로 출력됩니다 (예: WORD 행은 0xaabb 0xccdd ...로 그룹화됨). 유형 이름은 대소문자를 구분하지 않고 일치합니다. 동일한 크기의 Win32 별칭(int, ULONG, ULONG64, HANDLE 등)은 의도적으로 생략되었습니다 — 1/2/4/8바이트 읽기에는 BYTE/WORD/DWORD/LPVOID를 사용하십시오.출력은 지정된 주소에서 시작하는 16진수 덤프이며 청크가 함께 그룹화됩니다.
예시:
psi addr 0xdeadbeef DWORD 2
psi addr 0xdeadbeef LPVOID
psi addr 0xdeadbeef WORD 8
meminfo 명령은 지정된 메모리 주소에 대한 다양한 정보를 반환합니다:
구문:
psi meminfo <address>
address: 16진수로 검사할 주소예시:
psi addr 0xdeadbeef
lt 명령은 현재 프로세스의 모든 스레드와 해당 TID 및 진입점을 출력합니다.
구문
psi lt
regdump 명령은 스레드의 CPU 레지스터를 덤프합니다. 스레드 ID(tid)는 선택 사항입니다: 생략하면 호출하는 Beacon 스레드가 RtlCaptureContext를 통해 덤프됩니다. 제공되면 현재 프로세스의 해당 스레드가 스냅샷 기간 동안 일시 중단됩니다. 레지스터 이름이 제공되면 해당 레지스터만 출력됩니다. 그렇지 않으면 지원되는 모든 레지스터가 덤프됩니다. 여기에는 전체 x64 GPR 세트와 RFLAGS, 세그먼트 레지스터, 디버그 레지스터, SSE (XMM), AVX/AVX2 (YMM) 및 AVX-512 (ZMM / kmask)가 포함됩니다. 마지막 세 가지는 호스트 CPU 기능 지원에 따라 달라집니다. 레지스터 이름은 대소문자를 구분하지 않으며 하위 너비 별칭(예: eax, ax, ah, al 모두 동일한 기본 GPR로 확인됨)을 허용합니다.
구문:
psi regdump [tid] [register]
tid: 컨텍스트를 덤프할 선택적 스레드 ID입니다. 생략하면 호출하는 Beacon 스레드가 직접 캡처됩니다.register: 출력을 단일 레지스터로 필터링할 선택적 레지스터 이름입니다. tid를 지정해야 합니다.예시:
psi regdump
psi regdump 12345
psi regdump 12345 rip
psi regdump 12345 ymm0
BOF를 컴파일하려면 src/hello.cc 파일 또는 Makefile을 업데이트하여 필요한 변경 사항을 반영한 후 다음을 입력하십시오:
$ docker-compose up --build
다음 템플릿을 사용하여 빌드됨: https://github.com/whokilleddb/cs-bof-template
count: 읽을 청크의 개수입니다. 이 인수는 선택 사항이며 기본값은 1입니다.