DLL INJECTION-레지스트리 이용
저번 DLL Injection에서는 실행파일을 통한 dll 인젝션이였다면 이번에 보일 방법은 레지스트리를 이용하는 방법입니다.
레지스트리는 쉽게말하자면 컴퓨터를 부팅했을 때 컴퓨터는 이 레지스트리 키를 읽어와 여러가지 중요한 세팅을 합니다.
방법을 간단히만 보면(원리만 이해하고 실습은 각자 해보시는 것도 좋습니다.)
AppInit_DLLs와 LoadAppInit_DLLs에 주목
APPInit_DLLs에는 인젝션을 원하는 DLL 경로 문자열을 쓰고 LoadAppInit_DLLs 항목을 1로 바꿔주면 된다.
이제 재부팅을 한뒤 Process Explorer 툴로 확인하면 모든 프로세스에 원하는 dll이 인젝션 되는 것을 확인할 수 있다.
위와 그림과 같이 바꿔주면 user32.dll이 프로세스에 로딩될 때 AppInit_DLLs항목을 읽어 값이 존재하다면 LoadLibrary() API(dll을 로드하는 API함수)를 이용해서 DLL을 로딩하는 것
대부분 user32.dll은 모든 프로세스에 로딩되므로 인젝션도 대부분의 프로세스에서 일어난다.
0 개의 댓글