본문 바로가기
리버싱

리버싱 12

by 윤라경 2024. 8. 26.

[2024.08.26]

 

 

 

지난 시간에 crackme4까지 진행했기 때문에 오늘은 바로 crackme5로 진행한다

항상 코드를 실행하기 전에 이렇게 String 함수를 확인하면 좋다 

 

 

어떤 입력 화면이 나오는지 확인하기 위해 한 번 실행을 진행했다

4와 비슷하게 시리얼 넘버를 입력하라는 화면이 나타난다

 

 

그런 다음 String 함수에서 확인했던 성공 메시지 근처로 이동했다

하지만 브레이크 포인트의 경우 성공 메시지에 두면 안 된다

Well done의 경우 이미 성공한 명령문이기 때문에 위의 Error를 해석하고 출력할 수도 있기 때문이다

그렇기 때문에 위에 비교문이 있고 비교문을 바탕으로 현재 CMP에 브레이크 포인트를 걸어야 정상 출력을 할 수 있다

 

 

수강생 중에서 한분이 먼저 정답을 알아낸 후 공개한 시리얼 키다

해당 시리얼 넘버를 입력해 주고

 

 

그대로 실행시켜 준다

 

 

맞는 시리얼 넘버라면 성공 메시지가 나타나게 되어 있는데

해당 시리얼 넘버도 맞는 시리얼이기 때문에 해당 화면과 같은 성공 메시지를 확인할 수 있었다

 

 

시리얼 넘버를 입력하지 않고 확인을 누른 다음 Zero Flag를 이용하여 조작할 수도 있다

현재 0으로 되어 있던 Zero Flag를 1로 변경함으로 점프문을 통과할 수 있게 되었다 

 

 

값을 조작했기 때문에 그 값에 따라 점프문을 진행하지 않는다

 

 

마지막까지 갔을 때 call 함수까지 진행하면 성공 메시지가 나타난다

 

 

다른 방법으로는 점프문의 JE를 JNE로 변경하는 방법이다

해당 함수도 변경시키게 되면 값이 달라지기 때문에 성공 화면이 나타나게 된다  

 

 

crack5의 실습도 끝났기 때문에 이어서 crack6-1를 진행한다

항상 코드를 실행하기보다 함수를 먼저 확인하여 코드 진행 부분을 찾는 것도 하나의 방법이다

 

 

CMP를 찾아서 확인했을 때 EBP-4,1이라고 되어 있다

그렇기 때문에 현재 패스워드는 1이라고 볼 수 있다

그렇게 짜여진 코드에 의해 패스워드가 1이고 1과 내가 입력한 패스워드가

EBP-4에 저장되면서 1과 비교하게 되어 있다

 

 

실행하여 확인했을 때 패스워드가 1인 것을 확인할 수 있도록

good job이라는 기분 좋은 메시지가 나온다

 

 

이번에는 1234를 입력하고 확인해 본다

 

 

내가 입력한 패스워드가 EBP-4에 저장되는지 확인을 위해 스택 값을 확인했을 때

EBP-4에 4D2라는 값이 저장되어 있다

 

 

계산기로 헥사값을 계산했을 때 4D2의 경우 1234가 나오게 된다

그렇기 때문에 내가 입력한 값과 1을 비교하는 코드가 맞으며,

그 코드를 임의로 조작할 수 있다는 뜻도 된다

 

 

 코드를 조작해 보기 위해 이번에도 1234를 입력한다

 

 

현재 비교문에서 1로 비교하라고 되어 있던 것을 1이 아닌 4D2

즉, 1234와 비교하게끔 수정한다 

 

 

그렇게 마지막까지 실행하게 되면 1234의 패스워드가 맞다는 화면이 나타난다

 

 

마지막으로 crackme6을 진행한다

이번에도 crackme6-1과 비슷한 구문을 지니고 있다

 

 

그렇기 때문에 현재 비교 대상은 2140661100이 된다

헥사값으로 표기되어 있기 때문에 반드시 계산해 봐야 된다

 

 

계산한 값을 넣어 주게 되면

 

 

현재 비교할 값이 2140661100이기 때문에 성공 메시지를 확인할 수 있다

 

 

이 구문 역시 앞전의 내용과 같이 임의로 조작도 가능하다

진행하기 위해 1234를 입력해 준다

 

 

비교문에서 7F97E56C가 아닌 1234를 헥사값으로 표기한 4D2를 입력해 준다

 

 

제대로 변경되었다면 해당 코드 역시 1234로 조작하여 성공 메시지를 확인할 수 있다

 

 

 

강의 소감

오늘은 뒤처지는 것 없이 수업 내용을 잘 따라 갔다

조금 더 집중하고 반복 연습을 통해 익숙해지려는 노력이 필요한 수업 같다

오늘도 수업 외의 시간에 복습과 연습을 통하여 충분히 연습하는 시간을 가졌다

앞으로도 지금처럼 꾸준히 연습하고 공부하는 습관을 들여야겠다

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

리버싱 14  (0) 2024.08.29
리버싱 13  (0) 2024.08.27
리버싱 11  (0) 2024.08.26
리버싱 10  (0) 2024.08.23
리버싱 9  (0) 2024.08.21