후크를 사용하여 다른 프로세스의 메모리를 실행 한 다음 DLL 주입과 같은 작업없이 뒤로 이동할 수 있습니까? 프로세스 A
은 (a 후크 사용) foo
에 동일한 프로토 타입 절차 bar
을 갖는다 B
절차 foo
공정이있는 경우 예를 들어프로세스 간 후킹
는 두 프로세스를 가정 bar
에 JMP하는 foo
후크 것이 가능한 실행 ?
편집 :이 작업은 Windows에서 수행해야합니다.
후크를 사용하여 다른 프로세스의 메모리를 실행 한 다음 DLL 주입과 같은 작업없이 뒤로 이동할 수 있습니까? 프로세스 A
은 (a 후크 사용) foo
에 동일한 프로토 타입 절차 bar
을 갖는다 B
절차 foo
공정이있는 경우 예를 들어프로세스 간 후킹
는 두 프로세스를 가정 bar
에 JMP하는 foo
후크 것이 가능한 실행 ?
편집 :이 작업은 Windows에서 수행해야합니다.
정의 프로세스는 샌드 박스입니다. 실수로 주소 공간 외부로 빠져 나와 SIG_USR 신호로 잡히고 세그먼트 오류로보고되면 세그먼트 화 오류로보고됩니다.
공유 메모리 -shmem, 파이프 및 소켓과 같은 프로세스 간 통신 메커니즘이 있습니다. 프로세스간에 통신하는 데 사용합니다.
편집 : 원격 메소드 호출을 제공하는 CORBA와 같은 RPC (원격 프로 시저 호출) 메커니즘도 사용할 수 있습니다.
Windows의 각 프로세스 (유닉스뿐만 아니라 대다수의 다른 최신 OS)는 일반적으로 서로 다른 실제 주소에 매핑되는 자체 가상 메모리 공간을 가지고 있습니다. 결과적으로 다른 프로세스의 주소 공간에 DLL을 삽입하는 것이 그 프로세스에서 아무 것도 연결하지 않는 유일한 방법입니다. 다른 한편으로는 일단 그 과정에서 DLL을 얻으면 거기에서 할 수있는 일들이 많이 있습니다. 자신 만의 스레드를 생성하고 Windows 메시지 (Windows에서 가장 쉬운 통신 방법 중 하나)를 사용하여 상위 프로세스와 통신하십시오.
[이 질문과 그것에 대한 내 답변] (http://stackoverflow.com/q/10487165/968261). –
Btw, 우린 Windows 얘기 야, 그렇지? –
@Alex - 예, Windows. 나는 거기에 그것을 추가 할 것이다. 지금 링크를 방문하고 있습니다. – Qix