Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

HW_chick hacker

하위 - CTF문제 본문

Activity/Hawkis

하위 - CTF문제

{{HW}} 2023. 7. 5. 16:27

본 리버싱 문제는 x64dbg를 이용하여 풀었습니다.

ollydbg를 사용해 봤을 때 ASCII 코드를 확인 하는 것이 너무 어려워 보기 쉽게 나오는 x64dbg를 이용하였습니다.

 

리버싱은 거의 처음이라 어떻게 접근해야할지 몰라서 많이 해맸지만 일단 exe파일이 어떻게 실행이 되는지 파악을 먼저 해보겠습니다.

먼저 툴에 대한 사용법을 익혀야 합니다.

툴 사용법은 구글링을 통해 확인을 하였고 디버거 사용법에 대한 것은 개인적으로 아래 URL이 정리가 잘되어 있고 사용하기 편리했습니다.

https://dhhd-goldmilk777.tistory.com/198

 

x64dbg사용법

2-2 디버거사용법(X64dbg) (1) 프로그램 코드 어셈블리어 와 명령어를 나타내고 있는 코드 부분 (2) 레지스터 CPU의 레지스터의 값을 보여주고 실행하면서 값변화 확인가능 (3) 실행 상태 실행되고 있

dhhd-goldmilk777.tistory.com

 

 

먼저 exe파일을 실행해 보았을 때 'Input:' 을 출력 하는 문구를 확인해 보았을 때  

lea rcx,qword ptr ds:[405000] -> '405000' 메모리 주소에 위치한 64비트 데이터를 rcx 레지스터에 로드하는 명령어입니다.

 

"Input:"을 출력하는 0x4018AF메모리를 중단점을 그 다음 CALL함수 내부에 들어가서 분석을 진행해 보겠습니다.

 

0x4018F1 주소에 ASCII 값은 "6861776b6c73" 이며 변환시 flag값인 hawkIs를 유추할 수 있었지만 "협곡의 살모사"님이 hawk'l's가 소문자 L인 틀린 아스키 코드를 만들어 놨습니다.

 

 

다시 집중해서 보면 0x401906주소 ASCII 코드는 'hawkis'에 알맞은 문자열이 출력 되며 다음에 있는 CALL함수에 flag값이 있을거라고 생각 할 수 있었습니다.

 

0x4018F8주소 CALL함수에 들어가서 분석을 해보았다.

 

hi.401530에 들어가 보겠다.

je함수를 써서 비교를 하며 참과 거짓에 의하여 jmp가 되거나 안된다. 

각각 je함수에 비교하는 ASCII 문자를 하나씩 조합하면 flag값을 도출할 수 있다.

'Activity > Hawkis' 카테고리의 다른 글

WHITE SPACE - Flag 찾기  (0) 2023.09.24
Plz Recovery - CTF문제  (0) 2023.07.05
babyforms, babysheet - CTF문제  (0) 2023.07.05
과유불급 문제 - CTF문제  (0) 2023.06.07
웹 개발 및 SQL Injection - SQL Injection (2)  (0) 2023.02.04