본문 바로가기

Layer7/WriteUp

[Dreamhack]rev-basic-3 WriteUp

main함수에 F5를 눌러 분석 해 본다.

 

분기문 분석을 위해 sub_140001000를 열어본다.

 

연산식을 복사해놓고 여기서도 분기문 분석을 위해 byte_140003000을 열어본다.

 

값들을 이용해 C언어로 코드를 짠다.

 

#include <stdio.h>

int main() {
    unsigned char byte_140003000[] = {
        0x49, 0x60, 0x67, 0x74, 0x63, 0x67, 0x42, 0x66, 
        0x80, 0x78, 0x69, 0x69, 0x7B, 0x99, 0x6D, 0x88, 
        0x68, 0x94, 0x9F, 0x8D, 0x4D, 0xA5, 0x9D
    };
    unsigned char result[24];
    for (int i = 0; i < 0x18; i++) {
        result[i] = byte_140003000[i] - (i*2) ^ i;
    }
    printf("data: ");
    for (int i = 0; i < 24; i++) {
        printf("%02c ", result[i]);
    }
    printf("\n");

    return 0;
}

띄어쓰기 제거해주고 플래그 입력해주면 익스 성공