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

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ursobad

ursobad

PYC - ByteCode
Hacking/Root Me

PYC - ByteCode

2021. 8. 30. 19:07

pyc파일을 리버싱 하는 문제인데 pyc는 uncompyle6를 이용해 .py파일로 복구할 수 있다.

pip install uncompyle6후에

uncompyle6 [pyc 파일]로 py파일을 디컴파일 할 수 있다.

 

처음에는 역연산 하려다가 그냥 브포 돌리는게 머리 덜아프고 빠를것 같아서 브포 돌렸다.

근데 일어난지 얼마 안되서 그런지 아니면 수업시간에 해서 그런지 이거 브포짜는데만 거의 1시간쯤 걸린것 같다.

심지어 코드도 더럽다ㅎ;

 

l = [i for i in range(5,20)]
sl = 'w, you love dec'
print(l)
print(sl)
cmpl = [57, 73, 79, 16, 18, 26, 74, 50, 13, 38, 13, 79, 86, 86, 87]
flag = ''
for i in range(15):
    for j in range(255):
        r = j + l[i] ^ ord(sl[i])
        if r==cmpl[i]:
            print(r,cmpl[i], j, chr(j))
            flag+=chr(j)
            break
print(flag)

이렇게 브포 돌리면

I_hate_RUBY_!!!라는 flag가 나오게 된다.

FLAG = I_hate_RUBY_!!!

 

풀고나서 생각난건데 z3를 쓰면 엄청 쉽게 풀릴것 같아서 풀고 3분도 안되서 z3로 짰는데 flag가 나와버렸다..

진작 생각해볼껄,,

 

from z3 import *
z = Solver()
inp = [BitVec(f'a{i}', 8) for i in range(15)]

l = [i for i in range(5,20)]
sl = 'w, you love dec'
cmpl = [57, 73, 79, 16, 18, 26, 74, 50, 13, 38, 13, 79, 86, 86, 87]

for i in range(15):
    # flag = ''
    z.add(inp[i]+l[i]^ord(sl[i])==cmpl[i])

print(z.check())
m=z.model()
flag=''
# print(m)
for i in range(len(inp)):
    # print(m.evaluate(arr[i]))
    flag+=chr(int(str(m.evaluate(inp[i]))))
print(flag)

허허,,,

저작자표시 (새창열림)

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

ELF x86 - Ptrace  (1) 2021.08.31
PE DotNet - Basic Anti-Debug  (0) 2021.08.29
ELF ARM - Basic Crackme  (0) 2021.08.28
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' 카테고리의 다른 글
    • ELF x86 - Ptrace
    • PE DotNet - Basic Anti-Debug
    • ELF ARM - Basic Crackme
    • REV(Cracking) - ELF x86 - 0 protection, ELF x86 - Basic, PE DotNet - 0 protection, ELF x86 - Fake Instructions
    ursobad
    ursobad

    티스토리툴바