치트 6

사기꾼을 위한 햄날먹 드라이버 개발 - 6

이번에는 커널모드 스레드를 만드는 방법 PsCreateSystemThread를 사용해서 커널모드에서 돌아가는 스레드를 만들 수 있음 https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-pscreatesystemthread PsCreateSystemThread function (wdm.h) - Windows drivers The PsCreateSystemThread routine creates a system thread that executes in kernel mode and returns a handle for the thread. learn.microsoft.com 스레드가 속할 프로세스를 선택할 수 있음 유저모드의 주..

사기꾼을 위한 햄날먹 드라이버 개발 - 5

이번에도 다시 돌아온 vmx 지원체크 이번에는 드라이버에서 지원을 체크해봄 유저모드에서 체크하고 혹시 모르니 커널모드에서도 체크하는게 좋음 유저모드와 다르게 msr을 읽어서 확인하는 부분이 있음 msr관련해서는 인텔 문서를 참고 https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-3c-part-3-manual.pdf HTML 삽입 미리보기할 수 없는 소스 빌드하고 vm에서 실행하면 다음과 같은 결과를 볼 수 있음

사기꾼을 위한 햄날먹 드라이버 개발 - 4

이전에 드라이버 통신 예제를 살펴봄 뭐 햄는지 기억안나면 이전글 보셈 https://boa9448.tistory.com/34 사기꾼을 위한 햄날먹 드라이버 개발 - 3 이번에는 커널 드라이버와 유저모드 프로그램이 통신하는 예제 뭐 했는지 기억안나면 앞에 글 보셈 빈 솔루션을 하나 만들고 프로젝트 2개를 추가한다 유저모드 프로그램으로 작성될 빈 프로젝 boa9448.tistory.com 드라이버와 유저모드 프로그램이 통신하려면 다음 작업들이 필요함 유저모드 요청에 대응할 루틴 등록 (IRP_MJ_*) 디바이스 생성(IoCreateDevice) 프로그램에 노출시킬 심볼릭링크 생성(IoCreateSymbolicLink) 유저모드와 드라이버와 통신하는 방법은 파일을 읽고 쓰는것과 매우 유사함 CreateFile..

사기꾼을 위한 햄날먹 드라이버 개발 - 3

이번에는 커널 드라이버와 유저모드 프로그램이 통신하는 예제 뭐 했는지 기억안나면 앞에 글 보셈 빈 솔루션을 하나 만들고 프로젝트 2개를 추가한다 유저모드 프로그램으로 작성될 빈 프로젝트 (CommunicationApp) 커널모드 드라이버로 작성될 빈 커널 드라이버 프로젝트 (CommunicationDriver) CommunicationApp 프로젝트에 main.cpp를 추가함 CommunicationDriver 프로젝트에 driver.cpp를 추가함 그리고 main.cpp에 다음 코드를 작성 HTML 삽입 미리보기할 수 없는 소스 driver.cpp에 다음 코드를 작성 HTML 삽입 미리보기할 수 없는 소스 모두 작성이 끝났으면 빌드함 그리고 vm으로 옮겨서 다음 커맨드로 드라이버를 설치 cmd 관리자 ..

사기꾼을 위한 햄날먹 드라이버 개발 - 2

앞에서 작성한 예제의 일부를 살펴봄 뭐했는지 기억안나면 보셈 https://boa9448.tistory.com/31 사기꾼을 위한 햄날먹 드라이버 개발 - 1 유저모드 치트는 커널모드 안티치트를 이길 수 없음 그 반대도 마찬가지임 이 이유 하나만으로 드라이버 작성을 배우는 이유는 충분함 Kernel Mode Driver, Empty를 선택한 뒤 프로젝트를 생성 프로젝 boa9448.tistory.com 살펴볼 코드는 다음과 같음 HTML 삽입 미리보기할 수 없는 소스 DriverEntry 드라이버가 로드되면 첫번째로 호출되는 함수임 드라이버 초기화를 담당함 드라이버가 필요한 전역변수를 할당하는 작업을 여기서 진행하면됨 파라미터는 WDM드라이버를 나타내는 DriverObject 레지스트리에서 드라이버의 경..

사기꾼을 위한 햄날먹 드라이버 개발 - 1

유저모드 치트는 커널모드 안티치트를 이길 수 없음 그 반대도 마찬가지임 이 이유 하나만으로 드라이버 작성을 배우는 이유는 충분함 Kernel Mode Driver, Empty를 선택한 뒤 프로젝트를 생성 프로젝트 이름은 HelloDriver Source Files에 driver.cpp를 추가한 뒤 다음 코드를 작성함 HTML 삽입 미리보기할 수 없는 소스 대상 플랫폼을 x64로 변경한 뒤 빌드를 누르면 HelloWorld.sys가 생성됨 빌드된 드라이버를 vm으로 옮김 서비스를 설치하고 시작하기 전에 DebugView를 관리자 권한으로 실행한 뒤 커널 출력을 캡쳐하도록함 Capture Kernel을 체크함 cmd를 관리자 권한으로 실행한 뒤 sc를 이용해서 드라이버 서비스를 설치하고 실행함 sc crea..