Privacy Policy
 

Il futuro il presente del passato

 
 
 
 

SEZIONI

LINKS


module/counter/contatore.php

NoKappa
Valid XHTML 1.0 Strict
CSS Valido!

OpCoder GUI
Asm to Code Converter (win32)
Questo progetto è stato realizzato principalmente per 2 motivi:
  • Come reverser può essere sempre utile avere un convertitore
    assembly -> opcode, al di fuori dei debugger/[dis]assemblatori
  • Perchè lo ha chiesto un mio amico e non ne ho trovati di decenti.

Detto questo, passiamo al progetto:
come accennato il programma (sotto licenza gpl) converte una riga o un listato assembly nel relativo codice macchina.
Diverse checkbox permettono di personalizzare sia l'input sia l'output.
La particolarità di questo programma sono:
  • Supporto ai registri preceduti dal simbolo %
  • Supporto ai commenti formato tasm (#) e c/c++ e java (//)
  • Supporto per l'inserimento di numeri binari positivi ($bbbbbb) - i numeri negativi possono essere scritti in complemento a 2
  • Supporto per l'inserimento di numeri esadecimali con la forma 0xY o con la forma Yh
  • Individua un numero esadecimale anche se mancano le prefisso (0x) o del suffisso (h). Deve essere presente almeno una lettera (a..f)
L'output può essere personalizzato con:
  • Spazio tra ogni byte
  • Interruzione di linea per ogni linea assembly convertita
  • Sequenze escape (\0x)
  • Commenti ricopiati dall'input all'output
Un'altra particolarità è che vengono mostrate tutte le linee contenenti errori, con numero linea e codice errore.


Il core del programma (disasm.zip), la parte che si preoccupa di convertire l'asm in codice macchina, è stato liberamente scaricato dal sito http://www.ollydbg.de. e modificato.
Lo stesso codice è sotto licenza gpl.
Le modifiche apportate sono:
  • Aggiunta una funzione per il supporto dei registri preceduti dal simbolo %
  • Aggiunto un parametro (perc) per annullare il supporto precedente
  • Aggiunta una parte di codice per la conversione da binario a esadecimale (suppporto binario)
  • Corrette alcune cose per il supporto dei numeri decimali interi

Il programma è stato scritto in C/C++, con visual studio 2005, per piattaforma windows.
Il cuore del programma include la libreria windows.h, quindi non è solo colpa mia ^^.