Windows에서 코드 삽입이란 무엇입니까?
코드 삽입은 Windows에서 일반적입니다. 응용 프로그램은 자신의 코드 조각을 다른 실행중인 프로세스에 "삽입"하여 동작을 수정합니다. 이 기술은 선악을 위해 사용될 수 있지만 문제가 발생할 수있는 방법 중 하나입니다..
코드 삽입은 일반적으로 DLL (동적 링크 라이브러리) 파일 형식이기 때문에 일반적으로 DLL 삽입이라고도합니다. 그러나 응용 프로그램은 DLL이 아닌 다른 유형의 코드를 프로세스에 삽입 할 수도 있습니다.
어떤 코드 삽입이 사용되는지
코드 삽입은 Windows에서 모든 종류의 트릭과 기능을 수행하는 데 사용됩니다. 합법적 인 프로그램은이를 사용하지만 맬웨어에도 사용됩니다. 예 :
- 바이러스 백신 프로그램은 종종 웹 브라우저에 코드를 삽입합니다. 네트워크 트래픽을 모니터링하고 위험한 웹 컨텐츠를 차단하는 데 사용할 수 있습니다 (예 :.
- 악의적 인 프로그램이 웹 브라우저에 코드를 추가하여 탐색을보다 잘 추적하고 암호 및 신용 카드 번호와 같은 보호 된 정보를 도용하고 브라우저 설정을 변경할 수 있습니다.
- 바탕 화면을 테마로하는 Stardock의 WindowBlinds는 창 그리기 방식을 수정하는 코드를 삽입합니다..
- Stardock 's Fences는 Windows 바탕 화면의 작동 방식을 변경하는 코드를 주입합니다..
- AutoHotkey는 스크립트를 생성하고 시스템 전체 단축키를 할당하고이를 수행하는 코드를 삽입합니다..
- NVIDIA와 같은 그래픽 드라이버는 다양한 그래픽 관련 작업을 수행하기 위해 DLL을 주입합니다..
- 일부 프로그램은 응용 프로그램에 추가 메뉴 옵션을 추가하기 위해 DLL을 주입합니다..
- PC 게임 부정 도구는 종종 게임에 코드를 삽입하여 자신의 행동을 수정하고 다른 플레이어보다 불공 평한 이점을 얻습니다..
코드 삽입이 잘못 되었습니까??
이 기술은 Windows의 다양한 응용 프로그램에서 지속적으로 사용됩니다. 다양한 작업을 수행하는 유일한 방법입니다. Apple의 iOS 또는 Google의 Android와 같은 최신 모바일 플랫폼에 비해 Windows 데스크톱은 매우 강력합니다. 개발자에게 이러한 종류의 유연성을 제공하면.
물론, 그 모든 힘은 약간의 위험을 안겨줍니다. 코드 삽입은 응용 프로그램에서 문제와 버그를 유발할 수 있습니다. Google은 Chrome 브라우저에 코드를 주입 한 Windows 사용자가 Chrome 충돌을 경험할 가능성이 15 % 높다는 이유로 Google에서이 문제를 차단하기 위해 노력하고 있습니다. Microsoft는 악의적 인 응용 프로그램에서 코드 삽입을 사용하여 브라우저 설정을 방해 할 수 있다고 지적합니다. 이는 Edge에서 이미 차단 된 이유 중 하나입니다.
Microsoft는 타사 DLL이 Microsoft Outlook에서로드되는지 여부를 확인하기위한 지침도 제공하므로 Outlook 충돌이 너무 많이 발생합니다..
Microsoft 직원이 2004 년 개발자 블로그에 게시 한 것처럼
DLL 주입은 절대 안전하지 않습니다. 코드를 프로세스의 작성자가 설계, 작성 또는 테스트 한 적이없는 프로세스에 주입하고 해당 코드를 실행하기 위해 스레드를 공동으로 선택하거나 작성하는 방법에 대해 설명합니다. 이전에는 존재하지 않았던 타이밍, 동기화 또는 리소스 문제를 만들 위험이 있습니다..
즉, 코드 삽입은 일종의 더러운 해킹입니다. 이상적인 세계에서 잠재적 인 불안정성을 유발하지 않는 더 안전한 방법이있을 것입니다. 그러나 코드 삽입은 오늘날 Windows 응용 프로그램 플랫폼의 일부일뿐입니다. Windows PC의 백그라운드에서 끊임없이 발생합니다. 당신은 그것을 악이라고 부를지도 모른다..
주입 된 DLL 확인 방법
Microsoft의 강력한 Process Explorer 응용 프로그램을 사용하여 시스템에 코드 삽입을 확인할 수 있습니다. 기본적으로 추가 기능이 포함 된 작업 관리자의 고급 버전입니다..
이렇게하려면 Process Explorer를 다운로드하여 실행하십시오. 보기> 하단 창보기> DLL을 클릭하거나 Ctrl + D를 누릅니다..
위쪽 창에서 프로세스를 선택하고 아래쪽 창에서로드 된 DLL을 확인하십시오. '회사 이름'열은이 목록을 필터링하는 유용한 방법을 제공합니다..
예를 들어 Windows의 일부인 "Microsoft Corporation"이 만든 다양한 DLL을 여기에서 볼 수 있습니다. 아래의 스크린 샷에서 Chrome의 경우 "Google Inc."와 같은 회사에서 만든 DLL을 확인하는 것도 정상입니다..
또한 "AVAST Software"에서 제작 한 몇 가지 DLL을 확인할 수 있습니다. 이것은 시스템의 Avast 맬웨어 방지 소프트웨어가 "Avast Script Blocking filter library"와 같은 코드를 Chrome에 주입하고 있음을 나타냅니다..
시스템에 코드 삽입을 발견하면 수행 할 수있는 일이 많지 않습니다. 코드를 삽입하여 문제가 발생하지 않도록하십시오. 예를 들어 Chrome이 정기적으로 충돌하는 경우 Chrome에 코드를 삽입하는 프로그램이 있는지 확인하고 제거하여 Chrome의 프로세스가 변경되지 않도록 할 수 있습니다..
코드 삽입 작업 방법?
코드 삽입은 디스크의 기본 응용 프로그램을 수정하지 않습니다. 대신, 응용 프로그램이 실행될 때까지 기다리고 실행중인 프로세스에 코드를 삽입하여 함수의 작동 방식을 변경합니다.
Windows에는 코드 삽입에 사용할 수있는 다양한 API (응용 프로그래밍 인터페이스)가 포함되어 있습니다. 프로세스는 대상 프로세스에 자신을 첨부하고, 메모리를 할당하고, DLL 또는 다른 코드를 해당 메모리에 기록한 다음 대상 프로세스에 코드를 실행하도록 지시 할 수 있습니다. Windows는 컴퓨터의 프로세스가 다음과 같이 서로 방해하지 못하도록하지 않습니다..
자세한 기술 정보는 개발자가 DLL을 주입 할 수있는 방법과 Windows에서 다른 유형의 코드 삽입을 살펴 보는 방법을 설명하는 블로그 게시물을 확인하십시오..
어떤 경우에는 누군가가 디스크상의 기본 코드를 변경할 수 있습니다 (예 : PC 게임과 함께 제공되는 DLL 파일을 수정하여 부정 행위 또는 불법 복제를 가능하게하는 경우). 이것은 기술적으로 "코드 삽입"이 아닙니다. 코드가 실행중인 프로세스에 주입되지는 않지만 프로그램은 대신 동일한 이름을 가진 다른 DLL을로드하는 속임수를 씁니다.
이미지 신용 : Lukatme / Shutterstock.com.