메로나

[crackme] abex crackme 1 write-up 본문

Wargame & CTF/Reversing

[crackme] abex crackme 1 write-up

m3r0n4 2020. 8. 5. 03:22

동아리 활동으로 시작해보게 된 리버싱 첫 문제이다. 그냥 어셈블리 보는 느낌으로 보면 될 것 같다.

먼저 실행을 해보면, 

확인을 눌러보면, 

엥? 어떤 고르는 선택지도 없이 그냥 아니라고만 말한다. 인위적으로 흐름을 바꿔야 한다고 예상할 수 있다. 

IDA로 열어보면 구조를 알 수 있다. 구조는 아래와 같다.

어떠한 조건문을 통해 Error을 출력하거나 Yeah를 출력하는 것을 알 수 있다. 일단 우리의 목적은 두번째 걸 출력하는것 이라고 알 수 있다. 그러면 조건문을 통과를 해야한다는 건데... 조건문 부분을 좀 더 자세히 살펴보도록 하자.

중간의 빨간색 두 줄에서 비교 및 점프 문이 존재하는 것을 알 수 있다. eax, esi가 같으면 loc_40103D로 점프하게 되는데 loc_40103D 부분을 자세히 보면 우리가 원하는 부분이라는 것을 알 수 있다. eax, esi 값을 마음대로 조절 할 수 없기 때문에 저 어셈블리문을 바꿔야하는데... 어떻게 바꿔야 할까?

정답은 그냥 jmp문으로 바꾸면 된다는 것이다.

그냥 jmp로 바꿔버리면 cmp 결과가 어떻게 되든 바로 loc_40103D로 점프하게 될 것이다. 

이렇게 바꿔주고 적용해주게 된다면~

원하는 부분을 얻을 수 있게 되었다 ~_~

'Wargame & CTF > Reversing' 카테고리의 다른 글

[HackCTF] Reversing Me (100) write-up  (0) 2020.08.10