본문 바로가기

Reversing

Reversing/Tool/miasm 설치/오픈소스 리버싱 프레임워크

반응형
# miasm
- 오픈소스의 리버싱 프레임워크, 바이너리 프로그램의 분석 수정 생성이 목적
  • elfesteem을 이용한 PE / ELF 32 / 64 LE / BE 분석 수정 생성
  • 어셈블링, 디스어셈블링
  • IR을 이용해 어셈블리 의미분석
  • JIT 라이브러리 사용
  • 자동 난독화, 난독화 해제를 위한 표현식 단순화

# 설치
- elfesteem 설치

- TCC 와 LLVM 설치
  • libtcc
    • 충돌 제거를 위해 libtc-dev제거
      • sudo apt remove libtc-dev
    • git clone http://repo.or.cz/tinycc.git
    • ./configure --disable-static
    • make
    • sudo make install
    • 오류 해결
      • sudo apt -y install texi2html
      • sudo apt -y install texinfo
  • llvm
    • pip install llvmlite
- miasm 설치

# Github

- basic sample 몇가지 작은 오류
  • 모든 설치과정을 오류없이 진행 했음에도 jitter를 사용하여 가상으로 쉘코드를 실행시켜 볼 때 RumtimeError가 발생한다.
    • 오류 : RumtimeError : Unsupported jit arch: x86
    • 단순히 jitter를 생성해줄때 machine의 인자로 싱글쿼터 문자열이 주어졌을 때 인식을 못해서 발생하던 문제였다.
      • 해결 : machine을 생성할 때 더블 쿼터로 인자를 넘겨준다.
        • machine = Machine("x86_32")
        • jitter = machine.jitter(jit_type='python')
    • 참고 : https://github.com/cea-sec/miasm/issues/651
  • NameError: name 'PAGE_READ' is not defined
    • 해결 : from miasm2.jitter.csts import PAGE_READ, PAGE_WRITE
    1
    myjit.vm.add_memory_page(run_addr, PAGE_READ | PAGE_WRITE, s)
  • myjit는 선언 안되 있고, 현재 내가 선언한 jitter는 jitter밖에없으므로 jitter로 임의 메모리 위치 생성



반응형

'Reversing' 카테고리의 다른 글

Reversing/Tool/Radare2 OverView  (0) 2018.05.16
Reversing/Tool/gdbgui 설치  (0) 2018.03.29
RCE/CodeEngn/BasicRCE07  (0) 2018.02.05
RCE/CodeEngn/BasicRCE06  (0) 2018.02.05
RCE/CodeEngn/BasicRCE05  (0) 2018.02.05