DLL Injection

API/공부 2015. 5. 27. 08:15
반응형

DLL 인젝션에도 종류가 있긴한데, 가장간단하게 구현가능한게

CreateRemoteThread를 사용한 거다.


먼저 가상메모리 공간에 VirtualAllocEx함수를 이용해 Buffer size+1(NULL 포함) 만큼 할당.

그 VirtualAllocEx함수의 반환값은 메모리에 할당된 주소값이니 그 값을 저장해놓고

WriteProcessMemory를 사용해서 Buffer를 넣어주면 된다.


그러고는 GetModuleProc로 Module Handle을 구한뒤, GetProcAddress함수로 LoadLibraryA함수 주소를 얻어온다.

// 윈도우에서 중요한 dll 파일들은 각각의 로딩주소값을 가지고 있어서 가능하다.


마지막으로 CreateRemoteThread함수를 사용해 파라미터를 넘기면 끝.


근데, DLL인젝션이용해서 Hook도 할 수 있고, 기능 향상을 시켜주는건데,

윈도우8의 메모장은 인젝션이 되지 않는다.(다른 윈도우8 프로그램들[사용자 제작프로그램제외]도 그렇다)

뭔가 다른 DLL에서 인젝션을 막아놓은건지, 아니면 Previlege설정을 해줘야 가능한건지

한번 파봐야징

'API > 공부' 카테고리의 다른 글

API Hooking - Debugging  (0) 2014.11.13
API 자료형(추가 예정)  (0) 2014.10.31
HANDLE and etc  (0) 2014.10.31
블로그 이미지

KuroNeko_

KuroNeko

,