qemu 게스트 메모리의 의도적인 손상

qemu 게스트 메모리의 의도적인 손상

qemu의 게스트 메모리를 의도적으로 손상시켜 의도적으로 시스템에 큰 피해를 줄 수 있는 방법이 있습니까? 지금까지 Linux 호스트에서 Windows 게스트를 손상시킨 것처럼 맞춤형 소프트웨어를 사용하여 qemu의 메모리를 수정해 보았지만 qemu가 사용하는 메모리에 들어간 후 제대로 작동하지 않아 segfault가 발생했습니다.

답변1

Linux에서는 GUI 도구gameconqueror그 뒤쪽 끝을 따라scanmem이를 돕기 위한 실제 작업이 진행 중입니다(업스트림 소스https://github.com/scanmem/scanmem). QEMU는 모든 VM 메모리를 매핑하므로 QEMU를 추적하면 이 메모리를 변경할 수 있습니다.

저는 간단한 사례를 테스트했습니다. Linux VM에서 실행되는 bash 셸에서 긴 문자열로 변수를 정의하고, gameconquerorQEMU 프로세스에 연결된 이 문자열을 검색하고 모든 항목을 수정합니다(그 중 하나만 실제 변수입니다. 다른 가능성은 다음과 같습니다). 메모리의 다양한 임시 위치에서 문자열을 찾고 동일한 길이를 유지한 다음 변수를 다시 읽어 값이 변경되었는지 확인합니다.

이제 QEMU 자체의 지원 중단 방지와 관련하여 gameconqueror직접적인 기능은 없을 수 있지만 VM의 매핑된 메모리가 무엇인지 알아낼 수 있습니다.

이전 예의 경우 VM에는 1GB가 있었고 QEMU에 대한 순서도가 있었습니다 /proc/<pid>/maps.proc(5))의 범위는 정확히 1GB입니다.

7f5597e00000-7f55d7e00000 rw-p 00000000 00:00 0 

물론 클릭률도 이 범위 안에 들어갑니다.

그러니 먼저 rw-p(또는 적어도파마) 부터 시작하여 rw-먼저 VM 크기 범위를 살펴보세요. 이는 /proc/<pid>/maps먼저 올바른 영역을 파악하는 데 도움이 되며 올바른 영역에서만 히트를 선택합니다. 이는 VM에 영향을 주어야 하지만 더 이상 QEMU에는 영향을 미치지 않습니다.

관련 정보