개인적인 프로젝트를 진행하며 로컬에서 실행되는 모든 프로세스 대상으로 존재하는 Thread들의 EP코드를 찾을 일이 있어 EP코드의 주소를 찾는 부분을 공부하게됬습니다.
Thread의 EP주소를 찾기 위해서 API중 ZwQueryInformationThread를 이용했습니다. 다음은 ZwQueryInformationThread의 생김새입니다.
NTSTATUS ZwQueryInformationThread( |
-ThreadInformationClass : 받을 데이터가 무엇인지 전달한다.
-ThreadInformation : 정보를 받는다. (MS에는 In이라고 되어있는데 실제로 함수호출시 정보를 받아오는 것을 볼수있다.)
다음은 ThreadInformationClass에 전달되는 인수이다.
9번째 파라미터인 ThreadQuerySetWin32StartAddress를 통하여 Thread의 EP의 위치를 찾습니다. 다음은 ZwQueryInformationThread를 이용하여 쓰레드의 EP주소를 찾는 코드입니다.
위코드를 통하여 EP코드주소를 찾을 수 있습니다. 아래결과값은 ThreadEP주소와 EPCode인데 결과 값도 잘나온 것을 볼 수 있습니다.
'Programming > System Programming' 카테고리의 다른 글
[WIN32 / C]모든 프로세스 모듈 스캔 코드 (0) | 2017.05.04 |
---|---|
[WIN32 / C] 권한상승 코드 (0) | 2017.05.03 |
[WIN32 / C] CreateEvent를 이용한 투표 프로그래밍!!(Thread순서동기화) (0) | 2017.04.01 |
[WIN32/C] Driver Loader (0) | 2017.03.27 |
[WIN32 / C] pipe를 통한 command prompt연결(console) - Remote Shell (0) | 2016.11.16 |
댓글