[Dreamhack] 리버싱 rev-basic-3 Writeup

2025. 2. 20. 21:48·Writeup

 

IDA에 실행파일을 로드해서 흐름을 살펴보면

Input: 여기서 인풋을 받고 검증을 통해 correct, wrong을 출력한다

 

Correct를 출력하는 조건이 뭔지 loc_140001193을 살펴보자

 

sub_140001000에서 인풋을 비교한다

더블클릭해서 들어가니까 수식이 있다

 

일단 byte_140003000에 hex 값으로 힌트를 찾을 수 있는지 보면

 

 

뭔가 hex 값이 있긴 한데 플래그로 보이는 문자는 아닌 것 같다

위에 나온 수식이 유일한 해결책인 것 같아서 다시 분석해 보겠음

 

arr[i] != (i ^ *(unsigned __int8 *)(a1 + i)) + 2 * i

 

hex_value값을 이미 알고 있으니까 역으로 연산하는 식을 구하면 되겠다

arr[i] != (i ^ a1[i]) + 2 * i
arr[i] = (i ^ a1[i]) + 2 * i
arr[i]-2 * i = (i ^ a1[i])
a1[i]=(arr[i]-2 * i)^i

 

arr = [73, 96, 103, 116, 99, 103, 66, 102, 128, 120, 105, 105, 123, 153, 109, 136, 104, 148, 159, 141, 77, 165, 157, 69]

for i in range(24):
    print(chr((arr[i] - 2 * i) ^ i), end="")

 

이거 코드 짜느라 30분 넘게 걸린 듯..ㅎㅎ

결과적으로 성공!

 

 

내가 리버싱 하면서 이런 말을 하게 될 줄은 몰랐는데..

꽤 재밌는 것 같다

'Writeup' 카테고리의 다른 글

[웹해킹] Authentication vulnerabilities_Password reset broken logic Writeup  (0) 2025.02.21
[Tryhackme] Compiled 리버싱 Writeup  (0) 2025.02.21
[Dreamhack] 리버싱 rev-basic-2 Writeup  (0) 2025.02.20
[Dreamhack] 리버싱 rev-basic-0 rev-basic-1 Writeup  (0) 2025.02.20
[Hackthebox] Dancing Challenges Writeup  (0) 2025.02.20
'Writeup' 카테고리의 다른 글
  • [웹해킹] Authentication vulnerabilities_Password reset broken logic Writeup
  • [Tryhackme] Compiled 리버싱 Writeup
  • [Dreamhack] 리버싱 rev-basic-2 Writeup
  • [Dreamhack] 리버싱 rev-basic-0 rev-basic-1 Writeup
이둥둥
이둥둥
"><script>prompt(document.cookie)</script>
  • 이둥둥
    시골쥐 해커
    이둥둥
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 방통대
      • 리버싱
      • 웹해킹
      • 악성코드 분석
      • Defensive N
      • 네트워크
      • 포렌식
      • Writeup
      • 사이버보안 N
      • 정보처리기사
      • Troubleshooting
      • 취준
  • 블로그 메뉴

    • 홈
    • 사이버보안
    • 방통대
    • 독후감
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    악성코드분석
    웹해킹
    리버싱
    burpsuite
    hackthebox
    독후감
    사이버보안
    정보보안
    tryhackme
    CTF
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이둥둥
[Dreamhack] 리버싱 rev-basic-3 Writeup
상단으로

티스토리툴바