ursobad
ursobad
ursobad
전체 방문자
오늘
어제
  • 분류 전체보기 (116)
    • Emotion (35)
      • 파이썬 (10)
      • 문제 (10)
      • 인공지능 기초 (15)
    • Best of the Best (3)
    • Hacking (58)
      • HackCTF (12)
      • DreamHACK (7)
      • Webhacking.kr (19)
      • Root Me (6)
      • HTB (5)
      • 기타 (7)
      • 리버싱 소수전공 (2)
    • 기능반 (16)
      • 2과제 (14)
      • 3과제 (2)
    • 기록 (3)
    • 짧은 글들 (0)
    • 기타 (1)
    • Zombie (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Bob
  • BoB 자기소개
  • 머신러닝
  • BoB 11기
  • BoB 면접
  • 백준
  • OpenCV
  • 구독자 전용 다시보기
  • 앙상블
  • BoB 질문
  • Python
  • BoB 필기
  • 파이썬
  • 얼굴검출
  • 함수
  • 123
  • BoB 자기소개서
  • BoB 자소서
  • 의사결정트리
  • KNN

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ursobad
Hacking/Root Me

ELF ARM - Basic Crackme

ELF ARM - Basic Crackme
Hacking/Root Me

ELF ARM - Basic Crackme

2021. 8. 28. 16:05

ARM분석은 처음해봤는데 베이직이라 그런지 86, x64랑 딱히 다른건 없었다. 그냥 바이너리를 실행시키는데 환경설정이 조금 필요한 정도?

 

그냥 IDA로 까본다.

메인 로직인것 같다.

s가 인풋인것 같고 v5가 0이 되는 값을 찾으면 되는것 같다.

위의 if ( status != 6 )에서 len이 6이 아니면 종료되므로 s[6]은 0이다.

s[3]^0x72가 0이 되려면 자기 자신과 0x72랑 xor 해야하므로 s[3]은 0x72가 되어야 한다.

 

이제 s[3] = 0x72인걸로 퍼즐을 맞추면 된다.

if ( s[3] + 1 != *s )이므로 s[0] = 0x73

if ( *s != s[5] ) 이므로 s[5] = 0x73

if ( s[2] + 4 != s[5] ) 이므로 s[2] = 0x6f

if ( s[4] + 2 != s[2] ) 이므로 s[4] = 0x6d

리스트로 정렬해보면 s = [0x73, ?, 0x6f, 0x72, 0x6d, 0x73]가 되는데 s[1]값은 조건이 없다.

그래서 그냥 pwntools로 바이너리를 가져와서 브루트 포스 돌렸다.

 

그리고 이 바이너리는 인풋이 argv로 들어가는데 그때는 pwntools에서

process(executable='바이너리 이름', argv=['바이너리 이름',인풋값])

으로 넣어주어야 들어간다.

from pwn import *
a1 = 's'
a2 = 'orms'
flag = ''
for i in range(33,127):
	flag = a1+chr(i)+a2
	p = process(executable='./ch23.bin', argv=['ch23.bin',flag])
	a = p.recvline()
	check = p.recvline()
	# print(a)
	if 'Los' not in check:
		print(flag)
		break

이렇게 돌리면 

storms가 flag인것을 알 수 있다.

FLAG = storms

저작자표시 (새창열림)

'Hacking > Root Me' 카테고리의 다른 글

ELF x86 - Ptrace  (1) 2021.08.31
PYC - ByteCode  (0) 2021.08.30
PE DotNet - Basic Anti-Debug  (0) 2021.08.29
REV(Cracking) - ELF x86 - 0 protection, ELF x86 - Basic, PE DotNet - 0 protection, ELF x86 - Fake Instructions  (0) 2021.08.27
Web - Server Side(HTML, Open redirect~Install files, File upload - Double extensions~HTTP - Cookies, File upload - Null byte,SQL injection - Authentication )  (0) 2021.05.29
    'Hacking/Root Me' 카테고리의 다른 글
    • PYC - ByteCode
    • PE DotNet - Basic Anti-Debug
    • REV(Cracking) - ELF x86 - 0 protection, ELF x86 - Basic, PE DotNet - 0 protection, ELF x86 - Fake Instructions
    • Web - Server Side(HTML, Open redirect~Install files, File upload - Double extensions~HTTP - Cookies, File upload - Null byte,SQL injection - Authentication )
    ursobad
    ursobad

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.