본문으로 바로가기

안티 디버깅

category Study/reversing 2017. 10. 17. 19:09

안티 디버깅이란?


디버깅을 방지하여 분석하지 못하게 하는 기술이다.

끊임없이 막고 뚫기를 반복하기 때문에

정말 다양한 안티 디버깅 방법이 존재한다.


안티 디버깅을 배우는 이유


디버깅을 통해 프로그램의 정보가 유출되고, 프로그램의 흐름을 변경할 수 있기 때문에

디버깅을 막아야한다.


안티 디버깅의 종류

Static

프로세스에서 디버깅여부를 판단하여 방어하는 기법

비교적 쉽게 다양한 시스템 정보를 이용해서 구현가능하다

PEB, TEB 등


Dynamic

내부 코드를 감추고 보호하는 기법

비교적 어렵지만 디버거 동작 원리를 역이용하여 수시로 보호할 수 있다는 장점이 있다

Using SHE


안티 디버깅 기법들


PEB(Process Encironment Block)

프로세스를 담고있는 구조체이며, 현 프로그램의 디버깅 여부를 확인


TEB(Thread Environment Block)

쓰레드에 관한 정보를 담고있는 구조체

PEB구조체의 주소를 찾기위해 쓰인다


등 많다고 한다.









'Study > reversing' 카테고리의 다른 글

함수 인자 전달 레지스터(64bit)  (0) 2018.04.01
GDB 사용법  (0) 2017.11.07
언패킹  (1) 2017.10.17
패킹  (0) 2017.10.16
라이브러리  (0) 2017.10.16