DASMA volte capita di dover usare le cose non esattamente nel modo in cui sono state pensate. Non è il modo migliore, ma a volte non si ha scelta.
Poniamo di dover modificare le risorse di un exe .ne di cui non abbiamo il sorgente. Quando si tratta di disassemblare un binario editare le componenti statiche è l’operazione relativamente più facile.
Si apre il binario estraendo le risorse, si modificano e si richiude tutto.

Per fare ciò utilizzeremo due strumenti dell’SDK: ILDASM e ILASM, rispettivamente per disassemblare e riassemblare il nostro binario.

Iniziamo con ILDASM:

ildasm /out=test.il test.exe

questo comando scompone l’exe in due parti, un file .IL con il codice intermedio .net e un file .res, un manifesto di risorse con le eventuali risorse collegate in forma di file .resource

Sono proprio questi file che andremo a editare con Resourcer, un tool creato da Lutz Roeder, creatore tralaltro di Reflector, utilissima suite a pagamento con la quale stranamente non sono mai riuscito a fare questa operazione.

res

Resourcer ci permette di vedere le risorse presenti e di inserirne di nuove, faremo proprio questo: elimineremo la risorsa precedente e ne inseriremo una nuova con lo stesso id

 

Salvato il file .resource possiamo riassemblare con ILASM:

ilasm /resource=test.res /output=test.exe test.il

fondendo il manifesto delle risorse con il file di codice riotterremo l’exe di partenza, ma con la nuova risorsa al suo interno.