rev-basic-5

2024. 10. 17. 14:26·DreamHack/Reverising

 

 

파일을 받아 IDA로 보자.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Corrcet' 출력을 위해 sub_14001000를 살펴보자.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

수식과 byte_140003000 배열값들을 비교하여 답을 추출하는 문제이다.

 

식을 정리해보자.

 

if ( *(unsigned __int8 *)(a1 + i + 1) + *(unsigned __int8 *)(a1 + i)!= byte_140003000 [i] )

 

형변환생략

 

(a1+i+1)+(a1+i) == byte_140003000[i]

(a [i]+1)+(a1[i]) = byte_140003000 [i]

 

byte_140003000 [i]에 대한 배열값들을 보자.

 

 

 

 

예시
(a1[0]+1) + (a1[0]) = byte_140003000[0] = 0xAD

(a1[1])+(a1[0])= byte_140003000[0] = 0xAD

(a1[2])+(a1[1] = byte_140003000[1] = 0xD8

 

(a1[3])+(a1[2]) = byte_140003000[2] = 0xCB

 

(a1[4]) + (a1[3]) = byte_140003000[3] = 0x9D

 

...

 

a1[17] + a1[16] = byte_140003000[16] = 0x4C

 

a1[18] + a1[17] = byte_140003000[17] = 0x00

 

마지막은 0x00 즉 0이라는 걸 파악할 수 있다. 

 

그렇다면

 

a1[18] , a1[17] 값은 0이라는 소리가 된다.

 

부호가 없는 hex 값은 음수가 존재하지 않기 때문이다. (Unsigned)

 

그렇다면 a1 배열 값들은 몰라도 끝에 a1 [18], a1 [17]의 값이 0이라는 걸 알 수 있다.

 

역순으로 수식을 적용하여 다시 순서대로 print 하면 되는 문제인 거 같다.

 

 

 

 

for i in reversed(range(len(byte_140003000))):
    a1[i] = byte_140003000[i] - a1[i+1]

 

 

수식은 그대로 사용하도록 하자 python 에는 reversed를 이용해서 리스트 요소를 뒤집어준다.

 

코드를 완성하여 확인하면...

 

 

 

 

 

 

 

 

 

 

 

 

 

'DreamHack > Reverising' 카테고리의 다른 글

rev-basic-8  (0) 2024.10.17
rev-basic-6  (1) 2024.10.17
rev-basic-4  (1) 2024.10.09
patch  (1) 2024.10.08
rev-basic-2  (1) 2024.09.26
'DreamHack/Reverising' 카테고리의 다른 글
  • rev-basic-8
  • rev-basic-6
  • rev-basic-4
  • patch
G_OM
G_OM
최대한 설명 열심히 하려고 합니다. 궁금한 거 있으면 언제든지 물어보셔도 좋습니다.
  • G_OM
    끄적끄적
    G_OM
  • 전체
    오늘
    어제
    • 분류 전체보기 (157)
      • 모의해킹 (18)
      • CTF (22)
      • Wargame (69)
        • Linux_bandit (33)
        • Webhacking.kr (36)
      • DreamHack (52)
        • WEB (14)
        • Reverising (9)
        • System (0)
      • Mobile_security (13)
        • Drozer_Android (4)
        • Frida_Android (1)
        • IOS (1)
        • tool (1)
      • 정보보안기사 (2)
      • IT? (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

    • DreamHack 에 대한 문제들...
  • 인기 글

  • 태그

    cookies
    webhacking
    url encode
    php
    CTF
    wargame
    insecurebankv2
    난독화
    Frida
    webhacking.kr
    정보보안기사
    Android
    bandit18
    워게임
    Dreamhack
    Linux wargame
    php wrapper
    리눅스 워게임
    bandit
    bandit20
    OSINT
    Linux
    bandit17
    bandit30
    모의해킹
    리눅스
    lfi
    drozer
    sql injection
    overthewire
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
G_OM
rev-basic-5
상단으로

티스토리툴바