DLL 인젝션 - 위키백과, 우리 모두의 백과사전 DLL 인젝션 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 컴퓨터 프로그래밍에서, DLL 인젝션 ( DLL injection ) 은 다른 프로세스의 주소 공간 내에서 DLL을 강제로 로드시킴으로써 코드를 실행시키는 기술이다. [ 1 ] DLL 인젝션은 외부 프로그램을 통해 다른 프로그램에 저작자가 의도하거나 예상하지 않은 영향을 미치기 위해 사용된다. [ 1 ] [ 2 ] [ 3 ] 예를 들면 삽입된 코드는 시스템 함수 호출을 후킹 하거나 [ 4 ] [ 5 ] 또는 보통 방식으로는 읽을 수 없는 패스워드 텍스트 박스의 내용을 읽을 수 있다. [ 6 ] 임의적인 코드를 삽입하는데 사용되는 프로그램을 DLL injector라고 부른다. 목차 1 마이크로소
" Dll Injection ". 《 DreamInCode. net 》. MediaGroup1. 2006년 5월 4일. 2008년 9월 2일에 원본 문서에서 보존된 문서. 2016년 2월 11일에 확인함. ↑ Greg Jenkins ( November 2007 ). " DLL Injection Framework ". 《 Ring3 Circus 》. WordPress. 2016년 2월 11일에 확인함. ↑ Drew Benton ( 2007년 8월 17일 ). " A More Complete DLL Injection Solution Using CreateRemoteThread ". 《 CodeProject 》. CodeProject. 2016년 2월 11일에 확인함. ↑ " CreateProcess ". 《 Platform SDK for Window
AsUser, CreateProcessWithLogonW, CreateProcessWithTokenW 그리고 WinExec를 호출할 때 로드된다. CreateRemoteThread 같은 프로세스 조작 함수들은 실행 중인 프로그램에 DLL을 삽입하기 위해서 사용될 수 있다. [ 5 ] [ 6 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] 타겟 프로세스의 handle을 오픈한다. 이것은 프로세스를 생겨나게 하거나 [ 15 ] [ 16 ] 프로세스에 의해 생겨났으며 존재한다고 알려진 것 ( 예를 들면 예상 가능한 타이틀을 가진 윈도우 [ 17 ] ) 을 키 오프하거나, 실행중인 프로세스들 [ 18 ] 의 목록을 얻고 타겟 실행 파일의 이름을 조사함으로써 이루어된다. [ 19 ] 타겟 프로세스에서 메모리를 할당하고, [ 20 ] 할당받은 메모리
" DllMain ". 《 Platform SDK for Windows XP SP2 》. 마이크로소프트. 2016년 2월 11일에 확인함. ↑ " SetWindowsHookEx Function ". 《 Platform SDK for Windows XP SP2 》. 마이크로소프트. 2016년 2월 11일에 확인함. ↑ " AppInit - DLLs Registry Value and Windows 95 ". 《 Microsoft Help and Support 》. 마이크로소프트. 2005년 3월 1일. 2016년 2월 11일에 확인함. ↑ " Dll Injection using SetWindowsHookEx Method ". 《 Game Reversal 》. 2008년 4월 3일. 2016년 2월 11일에 확인함. ↑ " SetT
Project. 2016년 2월 11일에 확인함. ↑ " CreateProcess ". 《 Platform SDK for Windows XP SP2 》. 마이크로소프트. 2016년 2월 11일에 확인함. ↑ " PROCESS - INFORMATION ". 《 Platform SDK for Windows XP SP2 》. 마이크로소프트. 2016년 2월 20일에 원본 문서에서 보존된 문서. 2016년 2월 11일에 확인함. ↑ " GetWindowThreadProcessId Function ". 《 Platform SDK for Windows XP SP2 》. 마이크로소프트. 2016년 2월 11일에 확인함. ↑ " EnumProcesses ". 《 Platform SDK for Windows XP SP2 》. 마이크로소프트. 2016년
↑ " EnumProcesses ". 《 Platform SDK for Windows XP SP2 》. 마이크로소프트. 2016년 2월 11일에 확인함. ↑ " GetModuleBaseName ". 《 Platform SDK for Windows XP SP2 》. 마이크로소프트. 2016년 2월 11일에 확인함. ↑ " VirtualAllocEx ". 《 Platform SDK for Windows XP SP2 》. Microsoft. 2016년 2월 11일에 확인함. ↑ " WriteProcessMemory ". 《 Platform SDK for Windows XP SP2 》. Microsoft. 2016년 2월 11일에 확인함. ↑ " Outpost Bypassing Self - Protection via Advanced
윈도우에서 한계치들을 디자인하고 모든 검증된 DLL 경로 명시 없이 LoadLibrary 함수를 호출하는 응용 프로그램들을 로드된다. [ 31 ] 응용 프로그램에 명시된 DLL을 원본 같이 똑같은 함수 호출을 내보내게 구현된 로그 교체로 대체하는 것. [ 32 ] 유닉스 계열에서의 접근 [ 편집 ] 유닉스 계열 운영체제에서 ( ld. so ( on BSD ) ( on BSD ) 또는 ld - linux. so ( on 리눅스 ) 를 기반으로 한 동적 링커와 함께 ) 임의적인 라이브러리들은 LD - PRELOAD 환경 변수 내에 있는라이브러리의 경로 이름을 줌으로써 새로운 프로세스에 링크될 수 있다. 이것은 한 프로세스 안에서 전역적으로 또는 개별적으로 세팅될 수 있다. [ 33 ] 예를 들면, 배시 셸에서, 이 명령어는 실행
" AppInit - DLLs should be renamed Deadlock - Or - Crash - Randomly - DLLs ". 《 The Old New Thing 》. 마이크로소프트. 2016년 2월 11일에 확인함. ↑ " dllmain. c ". 《 ReactOS 》. ReactOS Foundation. 2008년 7월 8일. 2016년 2월 11일에 확인함. [ 깨진 링크 ( 과거 내용 찾기 ) ] ↑ AppInit - DLLs in Windows 7 and Windows Server 2008 R2 ↑ 가 나 다 라 Trent Waddington. " InjectDLL ". 2016년 2월 11일에 확인함. ↑ " Dll Injection ". 《 DreamInCode. net 》. MediaGroup1. 2006년 5월 4일
ulley ( 2005년 5월 19일 ). " Extending Task Manager with DLL Injection ". 《 CodeProject 》. CodeProject. 2016년 2월 11일에 확인함. [ 깨진 링크 ( 과거 내용 찾기 ) ] ↑ 가 나 Nasser R. Rowhani ( 2003년 10월 23일 ). " DLL Injection and function interception tutorial ". 《 CodeProject 》. CodeProject. 2016년 2월 11일에 확인함. ↑ 가 나 다 라 Ivo Ivanov ( 2002년 12월 2일 ). " API hooking revealed ". 《 CodeProject 》. CodeProject. 2016년 2월 11일에 확인함. ↑ 가 나 다 라 Robert
Options ". 《 Using the GNU Compiler Collection ( GCC ) 》. Free Software Foundation. 2016년 2월 11일에 확인함. - fpic Generate position - independent code ( PIC ) suitable for use in a shared library, if supported for the target machine. sqq. ↑ " Link Options ". 《 Using the GNU Compiler Collection ( GCC ) 》. Free Software Foundation. 2016년 2월 11일에 확인함. - shared Produce a shared object which can then be linked with other objects to form an executable. sqq. ↑ Gregory Shp
컴퓨터 프로그래밍에서 DLL 인젝션(DLL injection)은 다른 프로세스의 주소 공간 내에서 DLL을 강제로 로드시킴으로써 코드를 실행시키는 기술이다. DLL 인젝션은 외부 프로그램을 통해 다른 프로그램에 저작자가 의도하거나 예상하지 않은 영향을 미치기 위해 사용된다. 예를 들면 삽입된 코드는 시스템 함수 호출을 후킹 하거나 또는 보통 방식으로는 읽을 수 없는 패스워드 텍스트 박스의 내용을 읽을 수 있다. 임의적인 코드를 삽입하는데 사용되는 프로그램을 DLL injector라고 부른다.