SSDT 7

HamsterHide dll v0.1.0

SSDT 후킹을 지원하는 드라이버 프로그램 스텔스를 위한 dll임 dll 내부에 커널 드라이버와 일부 유틸이 포함되어 있음 dll을 사용해서 드라이버를 설치, 제거 할 수 있음 dll에서 내보낸 함수를 사용해서 원하는 프로세스를 숨길 수 있음 지원하는 기능은 프로세스 (NtQuerySystemInformation) 핸들 테이블에서 핸들 필터링 (NtQuerySystemInformation) 프로세스 오픈 방지 (NtOpenProcess) 다운로드는 여기서 데모 GUI 프로그램 : https://www.dropbox.com/s/utixqy05bh9il1o/HamsterHide.zip?dl=0 HamsterHide.zip Dropbox를 통해 공유함 www.dropbox.com 빌드된 DLL : https:..

ssdt index 뷰어

QT 공부하면서 만들어봤습니다 다운로드 링크 : https://github.com/boa9448/qt_study/releases/tag/ssdt_index_view_v0.1.0-demo Release ssdt index view · boa9448/qt_study github.com view_ssdt_index.exe 실행하면 다음과 같은 창이 나타납니다 에디트 컨트롤에 문자열을 입력하면 검색된 결과를 보여줍니다 ssdt index를 구하는 방법은 다음 게시글을 참고합니다 https://boa9448.tistory.com/15 ntdll.dll에서 SSDT Index 가져오기 드라이버에서 SSDT를 후킹하기 전에 후킹하고자 하는 함수의 인덱스를 알아야합니다 windows api는 호출이되면 함수 내부에서 ..

ntdll.dll에서 SSDT Index 가져오기

드라이버에서 SSDT를 후킹하기 전에 후킹하고자 하는 함수의 인덱스를 알아야합니다 windows api는 호출이되면 함수 내부에서 일부 검증과 변환 같은 처리를 한 뒤에 ntdll에 있는 Nt로 시작하는 함수들을 호출합니다 Nt함수들은 다음 사진과 같이 SSDT 인덱스를 eax레지스터에 넣고 syscall을 호출합니다 syscall을 하기전에 mov eax, 00000055 와 같이 SSDT 인덱스를 넣는 모습을 볼 수 있습니다 이번 글에서는 Nt함수의 시작부분에서 가까운 위치의 mov명령어를 찾고 그 뒤에 있는 SSDT 인덱스를 가져오는 방법에 대해서 알아봅니다 실습은 exe프로그램에서 진행하고 추후에 드라이버로 이식합니다 64비트에서 실습을 진행합니다(제가 64비트 쓸거라서ㅋㅋㅋ) ntdll.dll은..

HamsterHide 사용법 - 상세 설정

사용법 HamsterHide를 관리자 권한으로 실행합니다 파일 -> 상세모드를 클릭해서 상세모드 패널로 전환합니다 상세모드 패널을 볼 수 있습니다 상단의 드라이버 그룹에서 드라이버를 설치, 제거와 상태를 확인할 수 있습니다 HamsterHide는 드라이버를 이용해서 프로세스를 차단, 보호합니다 먼저 드라이버를 설치합니다 ▶ : 드라이버가 중지 상태라면 실행상태로 만들 수 있습니다 실행중이라면 정지시킬 수 있습니다 설치 : 드라이버를 설치할 수 있는 버튼입니다 프로세스를 차단, 보호하기 위해서는 설치해야합니다 제거 : 설치된 드라이버를 제거할 수 있습니다 성공적으로 설치되면 드라이버 그룹의 상태버튼이 ■로 변합니다 설치 버튼이 비활성화 됩니다 제거 버튼이 활성화 됩니다 안티 디버깅 기법을 무력화 시킬 프로..

HamsterHide 사용법 - 간편 사용

사용법 HamsterHide를 관리자 권한으로 실행합니다 서명되지 않은 드라이버를 로드하기 위해서 테스트모드가 필요합니다 쉽게 테스트모드를 전환하기 위한 유틸이 있습니다 파일-> 테스트모드 클릭 테스트모드 설정도구에서 On을 누른 뒤 재부팅 합니다 OFF를 누르면 테스트모드를 끌 수 있습니다 재부팅 후에 적용됩니다 테스트 모드로 부팅했다면 Activate를 눌러줍니다 실행 도중에 에러가 발생했다면 메시지 박스가 출력됩니다 아무런 출력이 없고 아래 버튼들이 활성화 된다면 정상입니다 성공적으로 활성화 됐다면 숨기려는 프로그램을 켜고 해당 프로그램의 버튼을 누릅니다 작업관리자(또는 프로세스 해커, 프로세스 익스플로러)로 확인하면 숨긴 프로그램이 사라진걸 확인할 수 있습니다 해당 프로그램은 보호프로세스로 지정됩..

HamsterHide v0.2.2

HamsterHide는 디버깅을 조금 더 편하게 해주는 유틸입니다 기능 기능은 다음과 같습니다 블랙리스트에 등록된 프로세스의 안티 디버깅 무력화 보호리스트에 등록된 프로세스의 숨김 모든 프로세스에 적용되는 설정 세부 기능은 다음과 같습니다 블랙리스트 프로세스 ProcessDebugFlags (NtQueryInformationProcess) ProcessDebugPort (NtQueryInformationProcess) ProcessDebugObjectHandle (NtQueryInformationProcess) DebugObject (NtQueryObject) SystemKernelDebuggerInformation (NtQuerySystemInformation) SystemDebugControl (Nt..

SSDT Shadow의 인덱스

win32u.dll에서 syscall을 할 때 인덱스는 0x1000이상부터 시작된다 SSDT Shadow를 후킹할 때 해당 인덱스를 바로 사용하면 SSDT Shadow의 범위를 벗어나게 되고 잘못된 결과를 불러올 수 있다 사용하기 전에 0x1000을 빼고 해당 값이 테이블의 서비스 갯수를 초과하지 않는지 체크한 뒤 사용하는게 안전하다 SSDTStruct* SSDT = SSDTShadowfind(); if (!SSDT) { Log("SSDT not found...\n"); return 0; } ULONG_PTR SSDTbase = (ULONG_PTR)SSDT->pServiceTable; if (!SSDTbase) { Log("ServiceTable not found...\n"); return 0; } in..