TLS 콜백 함수는 기본적으로 프로세스의 스레드 생성/종료시에 호출되게 된다. 그런데 이 함수는 ep 코드보다 먼저 실행이 되기 때문에 이를 이용해 debugging되고 있다면 바로 종료하는 방식으로도 할 수 있다.
이 TLS 콜백 함수를 만들게 되면 pe 정보에
IMAGE_NT_HEADERS - IMAGE_OPTIONAL_HEADER -IMAGE_DATA_DIRECTORY에 IMAGE_TLS_DIRECTORY라는 것이 생기게 된다.
그래서 TLS 콜백 함수를 추가하려면
IMAGE_TLS_DIRECTORY구조체를 추가하면 되는데 AddressOfCallBacks에 함수 주소 배열을 넣으면 된다. 그리고 그 배열의 원소에는 함수의 VA의 주소를 집어넣어주면 완성이다.
'윈도우' 카테고리의 다른 글
Service Process 디버깅 (0) | 2019.11.04 |
---|---|
SEH 예외 처리 (0) | 2019.10.31 |
dll injection시 session 0 isolation우회 (1) | 2019.10.29 |
exe ASLR 특징 (0) | 2019.10.29 |
32 bit 와 64bit에 따른 cpu 종류 (0) | 2019.10.28 |