[Tech] decompilatori o simili

Szymon Stefanek pragma@firenze.linux.it
Dom 12 Feb 2006 15:59:54 CET


On Friday 10 February 2006 09:09, Claudio Kutufà wrote:
> ciao a tutti
> ho un file (una libreria) nome_libreria.so che mi dà qualche problema, in
> poche parole non funziona (gira solo la sua omologa sotto win), ed usa la
> libreria libstdc++-libc6.2.2......so.3
> come posso fare a beccarne il sorgente e cercare di sistemarla?

Se lo trovi online: bene. Altrimenti sostanzialmente non puoi.

> In rete non sono riuscito a trovare i sorgenti.

Beh...

> Qualcuno mi sa dare una dritta? al limite un "decompilatore"

objdump è quello che ti puoi aspettare. So che esistono anche dei software
che _tentano_ di dare una rappresentazione C dell'assembler... ma penso che 
vadano poco lontano: una libreria complessa, senza simboli di debug, 
diventerebbe comunque sostanzialmente impossibile da leggere.

Diciamo che puoi disassemblare la libreria e con un _grande_ sforzo tentare
di decodificare (ovvero fare reverse engineering) delle parti che non ti 
sembrano soddisfacenti. Se stai cercando di fixare qualche bug banale (come 
dei controlli mancanti su dei parametri oppure delle costanti errate), la 
cosa potrebbe essere fattibile. La soluzione più "semplice" che ti puoi 
aspettare, comunque, passa da un editor esadecimale.

In certi casi si può correggere i problemi modificando l'applicazione che 
utilizza la libreria e non la libreria stessa. Si può anche usare delle 
tecniche di "code injection" (ad esempio tramite il LD_PRELOAD)... Dipende 
ovviamente dal tipo di problema.

-- 

Szymon Stefanek

------------------------------------------------------------------------------
-
- Any sufficiently advanced technology is indistinguishable from magic.
-
------------------------------------------------------------------------------
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: non disponibile
URL:         <http://lists.linux.it/pipermail/flug-tech/attachments/20060212/b87bbb6e/attachment.pgp>


Maggiori informazioni sulla lista flug-tech