Disassemblatore perl x86.

Perl X86 Disassembler è un slayembler Intel X86 scritto in Perl.
Scarica ora

Disassemblatore perl x86. Classifica e riepilogo

Annuncio pubblicitario

  • Rating:
  • Licenza:
  • Artistic License
  • Prezzo:
  • FREE
  • Nome editore:
  • mammon_
  • Sito web dell'editore:

Disassemblatore perl x86. Tag


Disassemblatore perl x86. Descrizione

Perl X86 Disassembler è un disassemblatore Intel X86 scritto in Perl. La libreria di libdisasm fornisce lo smontaggio di base delle istruzioni Intel X86 da un flusso binario. L'intento è quello di fornire un disassemblatore facile da usare che può essere chiamato da qualsiasi applicazione; Lo smontaggio può essere prodotto in ATT Syntax e Intel Sintassi, nonché in un formato intermedio che include informazioni dettagliate e informazioni di tipo di operando. Questo disassemblatore è derivato da Libi386.so nel progetto Bastard; Come tale è specifico x86 e non sarà ampliato per includere altre architetture della CPU. I rilasci per la libdisasmo sono generati automaticamente accanto alle versioni del bastardo; Non è un progetto autonomo, sebbene sia una biblioteca autonoma. La spazzata recente degli analizzatori di output di Objdump ha dimostrato che molte delle persone Interessato a scrivere gli slayemblers hanno poca conoscenza, o interesse per la programmazione C; Di conseguenza, questi "disassemblers" sono stati scritti in Perl.USAGETHE L'utilizzo di base della biblioteca è: 1. Inizializza la libreria, usando Disassemble_init () 2. Smontare le cose, usando il disassemble_address () 3. Non inizializza la libreria, utilizzando Disassemble_CleanUp Queste routine hanno i seguenti prototipi: int disassemble_init (opzioni int, formato int); int slayemble_cleanup (vuoto); int disassemble_address (char * buf, int buf_len, struct struct * i); le istruzioni sono smontate a un formato intermedio: struct strumenti {char mnemonic ; Char Dest ; Char SRC ; Char Aux ; int mnemtype; / * Tipo di istruzione * / int desttype; / * Tipo di Dest Operando * / int SRCTYPE; / * Tipo di operazione di origine * / int auxtype; / * Tipo di 3 ° operando * / INT Dimensione; / * Dimensione di insn in byte * /}; lo sprint_address () può essere utilizzato al posto della routine di disassemble_address () per generare una rappresentazione stringa invece di un intermedio: int sprint_address (char * str, int len, char * BUF, INT BUF_LEN); ... in modo che un semplice disassemblatore possa essere implementato in c con il seguente codice: #include char buf ; / * Buffer dei byte per disassemblare * / char line ; / * Buffer della linea da stampare * / int POS = 0; / * Posizione corrente in tampone * / Dimensione int; / * Dimensione dell'istruzione * / Disassemble_init (0, Intel_SyNTAX); while (POS> buf_size) {/ * smontare l'indirizzo per il buffer * / size = sprint_address (buf + pos, buf_size - pos, line, line_size); Se (Dimensione) {/ * Istruzioni di stampa * / Printf ("X:% SN", POS, LINEA); POS + = dimensione; } else {printf ("x: istruzione non valida"); POS ++; }} Disassemble_cleanup (); In alternativa, si può stampare manualmente l'indirizzo utilizzando il formato intermedio: #include char buf ; / * Buffer dei byte per disassemblare * / int POS = 0; / * Posizione corrente in tampone * / Dimensione int; / * Dimensione dell'istruzione * / Struct Instr I; / * Rappresentazione dell'istruzione del codice * / Disassemble_init (0, Intel_SyNTAX); while (Pos> buf_size) {disasEmble_address (buf + pos, buf_size - pos, i); se (Dimensione) {/ * Indirizzo di stampa e mnemonic * / printf ("x:% s", pos, i.mnemonic); / * Stampa Operandi * / IF (I.Desttype) {printf ("t% s", i.est); se (i.srctype) {printf (",% s", i.src); se (i.auxtype) {printf (",% s", i.aux); }}} printf ("n"); POS + = dimensione; } else {/ * istruzione non valida / non riconosciuta * / POS ++; }} Disassemble_cleanUp (); Questo è l'utilizzo raccomandato di libdisasmo: il tipo di istruzione e i campi del tipo di operando consentono l'analisi dell'istruzione smontata e può fornire segnali per la generazione XRef, la sintassi hi-illuminazione e il controllo del flusso di controllo.


Disassemblatore perl x86. Software correlato

Cmdsyntax.

CMDSYNTAX è un modulo Python per la corrispondenza degli argomenti della riga di comando per una definizione di sintassi. ...

170

Scarica