본문 바로가기
리버싱

리버싱 5

by 윤라경 2024. 8. 14.

[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의 결과값이 나온다

 

 

 

강의 소감

오늘은 실습 위주보다 사칙연산과 프로그램 실행 과정에 익숙해지도록

강사님께서 미션을 내 주셨다 결과값을 알려 주지 않고

그 과정만 보고 내가 계산하는 미션이었다

아직 빠른 계산은 하지 못하지만 계산하여 결과 값을 도출해냈다

이러한 연습 과정을 통해 익숙해지는 단계에 있는 것 같다

'리버싱' 카테고리의 다른 글

리버싱 7(수정 예정)  (0) 2024.08.19
리버싱 6  (0) 2024.08.16
리버싱 4  (0) 2024.08.14
리버싱 3  (0) 2024.08.13
리버싱 2  (0) 2024.08.09