code injection

code injection은 다른 프로세스에 내 코드를 심어 다른 프로세스가 내 코드를 수행하게 한다.

코드 인젝션의 코드를 간략히 설명해보면
1. 인젝션 할 코드(기계어)도 내 프로세스 메모리에 올라간다.
2. 인젝션 대상 프로세스를 suspend로 생성하고
3. 내 프로세스 메모리를 모두 읽어서 인젝션 대상 프로세스에 쓴다.
4. context 구조체로 eip를 injectedCode() 함수시작로 맞춰주고
5. 인젝션 당한 프로세스를 실행 시킨다.

*injectedCode() 는 내 프로세스에 맞게 컴파일된 기계어이므로 함수의 주소를 못찾아갈수도 있기 때문에 dll을 동적으로 로드해 주어야한다.




이 코드를 실행하면 svchost.exe라는 프로세스가 생성되어 injectedCode() 함수 안의 코드를 실행 한다.(위의 코드는 선언등이 빠져 실행되지 않는다.)

0 개의 댓글:

댓글 쓰기