Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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
Tags
more
Archives
Today
Total
관리 메뉴

cdor1's lab

ReverseLab2: DLL Injection 본문

Security/Reversing

ReverseLab2: DLL Injection

Cdor1 2016. 8. 10. 01:41

'DLL Injection'



1. DLL이란 무엇인가?


마이크로소프트가 만든 동적 링크 라이브러리다.

내부에는 프로세스가 불러서 사용할 수 있는 다양한 함수들을 가지고 있다.


DLL에게는 2가지 사용(링킹) 방법이 있는데 이는 묵시적, 명시적 링킹이다.


묵시적 링킹: 파일 자체에 어떤 DLL의 어떤 함수를 사용하겠다는 정보를 포함시키고 OS가 파일 실행 시 해당 함수들을 초기화한 후 이용하는 방법.

명시적 링킹 : 프로그램이 실행 중일 때 API를 이용하여 DLL 파일이 있는지 검사하고 동적으로 원하는 함수만 불러와서 쓰는 방법.


이러한 두가지 라이브러리 링킹 방법이 있다.



2. DLL Injection은 무엇인가?



※오타수정※

프로세서X -> 프로세스O


'자박꼼X -> D박꼼'

'Special thanks to HUBEEN'



HUBEEN형이 제공해주신 이 사진이 가장 DLL Injection을 잘 표현하였다고 생각한다.

D박꼼 아저씨가 설명해 주셨듯이, 프로세스에 DLL을 박아넣으면(인젝션) 프로세스가 꼼짝도 못할만큼 그 위력이 어마어마하다.


아래 그림같지않은 그림을 보자.


----------------

ㅣ     .text     ㅣ

----------------

ㅣ     .data     ㅣ

-----------------


Hack.dll--->--->                    


USER32.dll

Kernel32.dll

.

.

.


뭐 이러한 식으로 프로세스 메모리 공간에 Hack.dll이라는 DLL을 강제로 로딩 한다면 이 DLL은 인젝션된 프로세스 메모리에 정당한 접근 권한이 생겨

프로세스의 다양한 부분을 컨트롤 할 수 있게 된다.



3. DLL을 만들어보자


VS를 열고 DLL에 체크한 뒤 DLL파일을 만들어 주면 된다.


'Security > Reversing' 카테고리의 다른 글

CodeEngn Advance 03  (0) 2017.03.22
CodeEngn Advance 02  (0) 2017.03.21
CodeEngn Advance 01  (0) 2017.03.20
codegate 2017 angrybird  (0) 2017.03.05
ReverseLab1: UPX packed PE File analyze  (0) 2016.07.27
Comments