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:
Dacă ești curios de puterile miasm, ar trebui să citești rapid aceste articole:
- Generare rapidă de DGA cu Miasm
- Deobfuscare: recuperarea unui program protejat cu OLLVM
- Domesticirea unui binar MIPS protejat cu nanomite folosind execuție simbolică: No Such Crackme
Utilizarea MIASM cu Docker
Pentru a executa următoarea comandă trebuie să ai Docker instalat.
docker pull miasm/basePentru 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 installDacă 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 argumentsUrmă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!