'64bit injection'에 해당되는 글 1건

  1. 2010.08.03 DLL injection on 64 Bit OS (2)

2010.08.03 19:24 System

얼마전에 ReverseCore님께서 Windows 7 에서 Injection 하는 방법을 포스팅 하셨죠

얼마전이라기 보단 꽤 됐지만..

http://www.reversecore.com/73

굉장히 정리가 잘되어있으니 한번 보시면 큰 도움이 될겁니다 :D

아무튼 요는 Windows7 에서 Session 관리 정책이 변경되면서

CreateRemoteThread()가 먹히지 않게 되었고

ntdll!ZwCreateThreadEx()를 직접 호출함으로써 해결 할 수 있다는 것입니다

하지만 이 방법도 64bit 에서는 되지 않더군요

64bit OS에 Global API Hooking을 할 때 , 이건 문제가 되겠죠

64bit process를 차근차근히 보시면  , 64bit 에는 64bit dll만 로드 되어 있는 것을 볼 수 있습니다



그림1. 64bit Process 내에 Load 되어 있는 kernel32.dll 의 정보


*32bit process 에서 사용 되는 시스템 dll 의 경우 syswow64 폴더의 dll을 쓰게 됩니다


그림2. 32bit Process 내에 Load 되어 있는 kernel32.dll 의 정보

그리고 이 64bit dll 을 Injection 할 때 32bit Program 으로는 되지 않는 것 까지 확인했습니다


그림3. 32bit Program 에서 64bit dll 을 Injection 할 때 실패하는 모습



64bit dll 을 Injection 할 때는 64bit Program 이 필요한게 아닌가 싶었습니다

64bit 로 컴파일 하여 시도해보니


그림4. 64bit Process 내에 성공적으로 Injection 된 모습

네, 제대로 Injection 이 성공한 것을 볼 수 있습니다

즉, 64Bit Process 에 Injection 을 하고자 하면

64Bit Injection Program 으로 64Bit dll 을 Injection 해야 한다


는 것이 이 포스팅의 요입니다

고로 , Global API hooking 등을 하고자 할 때는

64bit용, 32bit 용으로 나눠

32bit injection program, 32bit dll

64bit injection program, 64bit dll

이렇게 제작해야 올바르게 작동합니다

64bit dll 은 64bit로

아, 어찌보면 정말 당연한 건지도 모르겠지만

처음에 부딪혔을 때는 왜안되나 했네요 :D



How to Compile a 64bit application or dll?

64bit 용 dll 과 application을 얻고자 하신다면

64bit 용으로 compile 하셔야 합니다

찾아보니 대략 2가지 정도가 있던데요

물론 더 있는데 제가 못본거겠지만..

Microsoft Platform SDK 의 64bit Build Enviorment 를 이용하시는 방법과

Visual Studio 2005 이상의 버전을 이용하시는 법이 있습니다

전자의 경우 Visual Studio 6에서도 적용가능한 방법이지만

MakeFile 을 작성해서 64bit Build Enviroment 창에서 Compile을 시키는 형태입니다

필자의 경우 후자의 경우가 더 편해보여서 이를 이용했습니다

다만, Visual Studio 설치 시 별달리 건드린게 없으시다면

64bit Compile Tool 이 깔려있지 않을 겁니다

그런분은 제어판의 프로그램 추가/제거에서 Visual Studio 2005 이상의 버전을 누르셔서

메뉴를 보시면~

다음과 같이 x64 Compilers and Tools를 발견하실수 있습니다

이를 체크하시고 설치하시면 됩니다 :D




이 설정을 해 주셨다면 Visual Studio 를 실행하시고

Compile 시에 상단의



Platform 의 new 부분에 들어가셔서

x64로 설정하시면 됩니다

다만, Compile 시에 64bit 와 32bit 의 차이점은 고려하셔야 겠죠? :D



'System' 카테고리의 다른 글

DLL Hijaking Exploit in Windows Movie Maker  (0) 2010.09.06
Memory protection mechanisms in Windows  (4) 2010.08.17
DLL injection on 64 Bit OS  (2) 2010.08.03
Screen Capture with DLL injection  (2) 2010.07.27
서비스 프로그래밍  (3) 2010.04.27
System Information 을 가져오는 API  (2) 2010.04.21
Posted by LinkC
이전버튼 1 이전버튼

블로그 이미지
LinkC

태그목록

Tistory Cumulus Flash tag cloud by BLUEnLIVE requires Flash Player 9 or better.

공지사항

Yesterday35
Today4
Total331,024

달력

 « |  » 2019.8
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

최근에 받은 트랙백

글 보관함


. .