>

브레이크 포인트는 소프트 브레이크, 하드 브레이크, 메모리 브레이크 3가지가 있다.

소프트 브레이크는 브레이크 포인트를 걸고자 하는 주소의 명령어를 0xcc로 바꿔서 int3 핸들러를 호출하게 하여 브레이크포인트 예외 핸들러가 제어권을 전달받게 하는 것이다.

하드 브레이크는 DR0~DR7 레지스터를 이용하여 브레이크 포인트를 건다. 이 때는 int1 핸들러를 이용한다.

메모리 브레이크는 해당 페이지에 대한 접근 권한을 변경하고 부여받는다. 주로 보호 페이지 권한을 이용하여 해당 페이지에 대한 모든 접근을 예외로 처리한다.

'Study > Grayhat python' 카테고리의 다른 글

프로세스 attach 및 쓰레드 Context 얻기  (1) 2016.06.28
Posted by Mungsul
,