해보자고

[드림핵] Easy Assembly 본문

리버싱

[드림핵] Easy Assembly

초코맛동산 2025. 4. 24. 22:14

# 문제

문제 링크 | https://dreamhack.io/wargame/challenges/1095?writeup_page=2

 

Easy Assembly

어셈블리 언어에 대한 지식이 있으시다면 이 문제는 쉽게 해결할 수 있는 아주 간단한 문제입니다! 필요한 정보만을 찾아 플래그를 획득해 주세요 플래그의 형식은 DH{…} 입니다.

dreamhack.io

어셈블리 언어에 대한 지식이 있으시다면 이 문제는 쉽게 해결할 수 있는 아주 간단한 문제입니다! 필요한 정보만을 찾아 플래그를 획득해 주세요

 

 

 

코드 흐름상 correct와 fail로 분기하는 함수를 자세히 살펴보기로 했다. 함수 이름 중 편리하게도 enc_flag 를 확인할 수 있었고, 이를 더 보기로 했다. 

 

 

 

enc_flag의 값과 길이 등 chack_password 함수와 비교하여 맞으면 correct 틀리면 wrong으로 분기하는 것을 확인할 수 있었다. 

 

check_password 함수

 

#include <stdio.h>

int main() {
    int enc_flag[] = { 116, 120, 75, 101, 119, 72, 92, 105, 104, 126, 92, 121,
                       119, 98, 70, 121, 119, 5, 70, 84, 115, 114, 89, 105, 104,
                       126, 92, 126, 90, 97, 87, 106, 119, 102, 90, 82, 2, 98,
                       92, 121, 119, 92, 0, 124, 87, 13, 13, 77 };
    int len = 48;

    for (int i = 0; i < len; i++) {
        printf("%c", enc_flag[i] ^ 48);
    }
    printf("\n");
    return 0;
}

 

 

flag를 찾을 수 있었다!

 

(오늘 넘 피곤해서 대충 정리함둥...)

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

[CodeEngn] Malware L06  (0) 2025.04.28
[드림핵] please, please, please  (0) 2025.04.25
[CodeEngn] Malware L07  (0) 2025.04.22
[드림핵] Simple Patch Me  (0) 2025.04.21
[드림핵] Small counter  (0) 2025.04.10