Pagina 1 di 1

Problema col reversing

MessaggioInviato: mer nov 19, 2008 12:52 am
da Ago
Salve a tutti [:)] Non so se sia la sezione giusta per il reverse engingeering sinceramente, ma posto lo stesso.

Ho un problemino... Oggi ho trovato una guida in inglese che spiega come iniettare codice in un programma. L'esempio è banale, si tratta di aggiungere all'avvio dell'applicazione una MsgBox minimale.
Ho seguito le istruzioni alla lettera, ma quando salvo il file c'è qualcosa che non va: appena lo eseguo Windows mi restituisce un errore e chiude l'applicazione. Il fatto strano è che in fase di debug lo esegue correttamente; ho dedotto che dev'essere un problema imputabile al filesize, modificato per l'appunto in quanto vi è un'immissione di dati.
Ho anche comparato i dati del file originale con quello modificato attraverso LordPE, ed in effetti vi sono delle differenze, se non sbaglio anche nell'entry point.
Non so, probabilmente con la modifica della dimensione del file c'è da fare qualche operazione particolare tipo non so, ricostruire il PE?

Grazie a chi mi risponderà [rolleyes]

Re: Problema col reversing

MessaggioInviato: gio dic 11, 2008 1:45 am
da Antar3sX
Ago ha scritto:Salve a tutti [:)] Non so se sia la sezione giusta per il reverse engingeering sinceramente, ma posto lo stesso.

Ho un problemino... Oggi ho trovato una guida in inglese che spiega come iniettare codice in un programma. L'esempio è banale, si tratta di aggiungere all'avvio dell'applicazione una MsgBox minimale.

Davvero ben fatta come guida, grazie per il link [^]

Ago ha scritto:Ho seguito le istruzioni alla lettera, ma quando salvo il file c'è qualcosa che non va: appena lo eseguo Windows mi restituisce un errore e chiude l'applicazione. Il fatto strano è che in fase di debug lo esegue correttamente; ho dedotto che dev'essere un problema imputabile al filesize, modificato per l'appunto in quanto vi è un'immissione di dati.
Ho anche comparato i dati del file originale con quello modificato attraverso LordPE, ed in effetti vi sono delle differenze, se non sbaglio anche nell'entry point.
Non so, probabilmente con la modifica della dimensione del file c'è da fare qualche operazione particolare tipo non so, ricostruire il PE?


Quando inserisci codice in un'applicazione non devi in alcun modo aggiungere byte: devi semplicemente modificare i byte che ci sono.
Ogni programma e' composto da un'intestazione che contiene gli offset e le dimensioni di ogni sezione dell'eseguibile; aggiungendo byte
vai a modificare la grandezza di una sezione e quindi vai a spostare gli offset delle sezioni successive: a questo punto dovresti
riscriverti tutto l'header del PE.
Guardando bene la guida l'autore infatti ti fa semplicemente modificare i byte che gia' sono presenti nel programma con istruzioni a tuo piacimento:
dove tali istruzioni sono piu' piccole in byte di quelle sostituite vengono inseriti dei NOP.

Ago ha scritto:Grazie a chi mi risponderà [rolleyes]


Di nulla, spero di essere stato di aiuto
Ciao