[2024.08.14]
지난 시간에 이어서 오늘도 복습 시간을 가져 본다
F2를 눌러 블랙 포인트를 설정한다
블랙 포인트는 특정 명령어에 도달할 때 프로그램 실행을 중지하도록 설정하는 중단점이며,
이를 통해 디버깅 시 원하는 위치에서 코드 실행을 멈추고 상태를 검사할 수 있다
F9 키를 누르면 프로그램 실행이 시작된다
프로그램은 설정한 블랙 포인트까지 실행되고,
해당 블랙 포인트에 도달하면 자동으로 멈추게 된다
*이 과정은 디버깅할 때 코드의 특정 지점까지 빠르게 이동하는 데 유용하다
그런 다음 F8로 실행해 주게 되면 EBP-C, 8, 4에 각각 값이 저장된다
현재 EAX와 EDX를 더하여 레지스터 값이 현재 2가 되었다
mov 명령어를 통해 3을 만들어 준다
과정을 다 거친 후 실행 파일을 보게 되면 3이라는 결과값이 나오게 된다
소스 코드를 수정한 후 F9 F10 Enter 순서로 눌러 결과값이 4인 것을 확인하고 종료한다
그런 다음 ollydbg로 넘어와서 그 소스 코드 파일을 열어 똑같이 실행하면 4라는 값이 나오게 된다
여러 가지 사칙연산을 통해 연습을 진행했다
해당 화면의 결과값이 어떻게 나오는지 미션을 내 주셨는데,
현재 MOV EAX, 5 명령어로 인해 EAX 레지스터에 5가 저장되었고,
이 값이 printf 함수에 전달되어 출력되기 때문에 결과값은 5일 가능성이 높다
두 번째 미션으로 8과 5의 결과값이 나오게 된다
이것 뒤에도 미션을 하나 더 주셨지만 너무 집중한 탓에 캡처하지 못했다
그 미션의 결과값은 13과 1이 출력되었다
해당 화면의 경우 23과 20의 결과값이 나온다
강의 소감
오늘은 실습 위주보다 사칙연산과 프로그램 실행 과정에 익숙해지도록
강사님께서 미션을 내 주셨다 결과값을 알려 주지 않고
그 과정만 보고 내가 계산하는 미션이었다
아직 빠른 계산은 하지 못하지만 계산하여 결과 값을 도출해냈다
이러한 연습 과정을 통해 익숙해지는 단계에 있는 것 같다