[드림핵] Simple Patch Me 풀이

비얌·2025년 2월 3일
0

리버싱

목록 보기
23/24

개요

바이너리를 패치하는 문제를 처음 풀어보았다.

파일 실행해보기

문제에서 이 문제는 실제 시간으로 365일이 흐르면 플래그를 출력하는 프로그램이 주어집니다.라고 했던 것과 같이, 1년 후에 flag를 보여줄 것이라는 문구가 뜨며 프로그램이 계속 실행된다.

정적 분석하기

문자열로 I will show you the flag after 1 year :p"를 찾아서 갔더니 아래의 함수가 있었다.

DAT_0040404c가 0으로 초기화되어있었다. 그리고 while문에서는 DAT_0040404c가 1씩 커지며 while문을 돈다.

DAT_0040404c가 0x2238과 같아지면(0x2238번을 돌면) while문을 탈출하며 "Great xD 1 year has passed! The flag is: "가 출력된다.

그래서 아예 while문이 실행되지 않도록 하려고 DAT_0040404c를 0x2238로 초기화해줬다.

결과

flag는 DH{6ad0f80a0448aee5e8615fbdea9c2775}이었다.

profile
🐹강화하고 싶은 기억을 기록하고 공유하자🐹

0개의 댓글

관련 채용 정보