Instalarea MIASM pe macOS

  • 2 minute de citit
  • 6 exemple de cod

Disponibil și în English

Pe această pagină

Am citit recent blogul MIASM.re și mi-am dorit să încerc miasm. Scopul acestui articol este să ofere ghidaj despre cum se compilează miasm pe macOS și să-i prezint miasm cititorilor mei.

Miasm este un framework gratuit și open source (GPLv2) pentru reverse engineering. Miasm urmărește analiza / modificarea / generarea de programe binare. Iată o listă neexhaustivă de funcționalități:

– https://github.com/cea-sec/miasm/

Dacă ești curios de puterile miasm, ar trebui să citești rapid aceste articole:

Utilizarea MIASM cu Docker

Pentru a executa următoarea comandă trebuie să ai Docker instalat.

docker pull miasm/base

Pentru a obține un shell în execuție și a monta directorul de lucru curent în container, poți folosi următoarea comandă:

docker run --rm -it --user root -v ${PWD}:/host miasm/base bash 

Directorul de lucru al mașinii gazdă este montat în container sub /host. Rularea scripturilor miasm cu python ar trebui să fie simplă acum.

Un dezavantaj al acestei abordări este că imaginea docker a fost actualizată acum un an și s-ar putea să nu conțină cele mai noi funcționalități.

Compilarea MIASM pe macOS

Pentru a compila MIASM pe macOS vei avea nevoie de Python 2.7.* instalat. Dacă nu îl ai, poți folosi PyEnv pentru a-l instala. Pentru a compila Python trebuie să instalezi openssl din brew, să-l legi și să exporti variabilele compilatorului. După ce ai făcut asta, poți continua instalând elfesteem și celelalte dependențe ale miasm.

git clone https://github.com/serpilliere/elfesteem.git elfesteem cd elfesteem python setup.py build python setup.py installpip install pyparsing pip install pycparser 

Acum clonează repo-ul miasm și pregătește manual patch-ul unui fișier header.

git clone https://github.com/cea-sec/miasm.git miasmcd miasm# patch the file (details below)python setup.py buildpython setup.py install

Dacă compilezi MIASM înainte de patch, compilarea va eșua cu erori care indică folosirea a doi identificatori nedeclarați: __LITTLE_ENDIAN și __BIG_ENDIAN. Pentru a remedia, editează fișierul miasm2/jitter/vm_mngr.h așa cum se arată în link-ul de pe GitHub.

Compilarea și instalarea miasm ar trebui să funcționeze acum. Pentru a verifica dacă funcționează, încearcă să rulezi un script din directorul examples.

(miasm) ➜  miasm git:(master) python example/disasm/full.py usage: Disassemble a binary [-h] [-m ARCHITECTURE] [-f] [-b BLOCKWATCHDOG]                             [-n FUNCSWATCHDOG] [-r] [-v] [-g] [-z] [-l] [-s]                             [-o SHIFTOFFSET] [-a] [-i] [-c] [-d] [-p] [-x]                             [-y]                             filename [address [address …]] Disassemble a binary: error: too few arguments

Următorul pas este să adaugi bibliotecile de jitter ale miasm în path. Locația miasm și numele directorului de build pot fi diferite:

xport DYLD_LIBRARY_PATH="~/miasm/miasm/build/lib.macosx-10.14-x86_64-2.7/miasm2/jitter:~/miasm/miasm/build/lib.macosx-10.14-x86_64-2.7/miasm2/jitter/arch"

Mulțumesc că ai citit și sărbători fericite!