본문 바로가기

SYSTEM

하드웨어, 소프트웨어 BP

728x90
반응형

#1 하드웨어 , 소프트웨어 브레이크포인트 차이

브레이크 포인트 : 디버깅을 목적으로 실행중인 프로세스를 의도적으로 멈추게 하는 장소

▶소프트웨어 브레이크 포인트

디버깅 진행시 흔하게 사용되는 브레이크 포인트 / 한 바이트의 명령으로 프로세스 실행을 중지시킴

 

<과정>

Opcode : 명령코드, 명령어에서 실제로 어떤 동작을 하는지 나타내는 부분

CC : INT3 라는 CPU의 256개의 트랩 중 하나를 발생시키는 명령어

INT : CPU가 예외처리를 하기 위해 인터럽트(예기치 않은 일이 발생해도 중단 X, 계속 업무 처리할 수 있게 하는 기능)를 발생시키는 것

 

브레이크 포인트 설정 ▷ 해당 명령의 Opcode를 브레이크 포인트 리스트에 저장 ▷ 해당 Opcode를 cc로 변경해서 인터럽트 발생시킴 ▷ cc를 통해 브레이크 포인트 걸린 후 진행 ▷ 브레이크 포인트 리스트에서 저장해 놓은 명령으로 Opcode를 다시 바꿈

 

▶하드웨어 브레이크 포인트 : 

디버그 레지스터(DR)을 사용함

코드 변경이 안 되거나 브레이크 포인트 사용이 적을 때 사용하기에 적합함


소프트웨어
하드웨어
코드
실행 바이너리의 byte 변경
→ CRC 값이 변경
디버깅 할 소프트웨어 코드 변경 X
개수
브레이크 포인트 횟수 제한 X
최대 4개까지의 브레이크 포인트

INT3 발생
INT1 발생

+ CRC : 순환 중복 검사 (데이터 변경되었는지 확인)

 

 
728x90
반응형

'SYSTEM' 카테고리의 다른 글

프로세스, 스레드 차이  (0) 2023.01.05
세마포어, 뮤텍스 차이  (0) 2023.01.05
멀티바이트, 유니코드  (0) 2023.01.05
PE  (0) 2023.01.03
VA, RVA, RAW  (0) 2023.01.03