Traducción a Catalán de un interesantísimo artículo de Giampiero Caprino, Ingeniero de software de California que nos explica aqui los distintos tipos de descompiladores que existen y la función que cumplen cada uno de ellos.
DESCOMPILADOREStraduccion a catalantraduccion software
21 enero, 2022Traducción a Catalán de descompiladores. de software
21 enero, 2022Traducción a Catalán de descompiladores. de software
Un descompilador intenta traduir un fitxer objecte a un fitxer font compilable. Hi ha molts descompiladors per a C# o Java, però només uns quants per a C/C++. Veure en particular:
Ghidra : un descompilador de codi obert
desenvolupat per l’Agència de Seguretat Nacional dels EUA, és un entorn
interactiu avançat (sembla inspirat en IDA – a continuació), per a l’anàlisi
binària i la descompilació. Està escrit en Java, té una interfície d’usuari
semblant a l’IDE d’Eclipse (de fet també hi ha un connector per a Eclipse). He
analitzat la seva implementació (el descompilador és en C++) i té moltes de les
característiques que volia implementar al meu propi descompilador (vegeu REC, a
continuació). Els usuaris
poden escriure el seu propi connector per a l’anàlisi específica de l’objectiu
en Java o Python! S’executa a Windows, Linux, MacOS i és compatible amb molts
processadors. Es poden afegir nous processadors escrivint fitxers de text per
especificar l’arquitectura del processador i el seu conjunt d’instruccions. En general,
un treball excel·lent, que estableix un nou estàndard per als descompiladors.
reko : un altre descompilador de codi
obert. Escrit en C#, només s’executa a Windows o a plataformes que admeten mono . Accepta binaris compilats per a molts processadors. Té una GUI amb totes
les vistes estàndard (desmuntatge, hexdump, font C, projecte) i també es pot
utilitzar des de la línia d’ordres.
RetDec : desenvolupat originalment per la
Universitat Tecnològica de Brno, República Txeca, com a servei en línia, i AVG
Technologies, que ara forma part d’Avast, es pot descarregar des d’un
repositori de GitHub i executar-lo localment. No l’he
avaluat, però en aquell moment havia llegit el document publicat per l’equip de
la Universitat de Brno, i em semblava al nivell dels altres descompiladors
avançats disponibles en aquell moment.
C4Decompiler:
(L’enllaç original sembla estar mort. Deixo la descripció aquí en cas que torni
a estar disponible; crec que tinc una versió antiga descarregada al meu disc
dur) Un nou
descompilador en desenvolupament. Només Windows, té una interfície d’usuari
elegant inspirada en Visual Studio 2010 amb moltes interaccions útils, que
malauradament no sempre són òbvies. Cal fer clic amb el botó dret per
descobrir-los. L’anàlisi sembla molt bona, almenys per a l’exemple compilat amb
depuració inclòs a la instal·lació. Provar-lo amb executables aleatoris de la
carpeta de Windows va tenir resultats mixts, des de la finalització de
l’anàlisi fins a bloquejos i bucles interminables. Tot i així
és molt prometedor, ja que els seus autors clarament han posat molt de
pensament i esforç en el seu desenvolupament.
Boomerang : descompilador C de codi obert.
Conjunt d’anàlisis molt avançat que intenten resoldre els problemes més
difícils als quals s’enfronten els descompiladors. La qualitat del codi generat
varia molt: algunes funcions són gairebé perfectes en la seva representació de
l’estructura del codi, les variables locals i els tipus. Altres funcions
semblen molt ofuscades pel nombre de variables i els seus usos. També és
bastant fràgil, ja que sovint es bloqueja amb programes grans.
REC : El meu propi descompilador C per
a Linux, DOS i Windows. El primer descompilador que funciona en múltiples
plataformes i que suporta diversos processadors (x86 de 16 i 32 bits, MIPS,
680×0, PowerPC). És molt estable, ja que s’ha provat amb centenars de
programes. La qualitat de la sortida no és tan bona com la de Boomerang, ja que
la seva implementació es basa en un estil de codificació de 20 anys (llegiu
molt difícil d’estendre). Ara he publicat una nova versió, RecStudio 4, que
admet executables de 64 bits. No s’ha provat amb tants executables, de manera
que encara hi ha problemes. També les diferents anàlisis realitzades (SSA),
generen un codi totalment diferent que a vegades pot semblar de molt pitjor
qualitat (tot i que probablement és més correcte), que el codi generat per la
versió anterior.
Hex Rays : un connector descompilador per a
IDA Pro. La combinació amb les capacitats de desmuntatge avançades d’IDA i el
depurador en temps d’execució el converteixen en l’opció ideal. No obstant
això, encara és molt nou i requereix IDA Pro. A diferència dels altres
decopiladors, no és gratuït. També ha de resistir la prova del temps en termes
d’estabilitat. Molt prometedor.
Dcc : descompilador de DOS a C. Un dels
primers descompiladors. Mostra la seva edat, però molts altres descompiladors
encara hi fan referència per les seves capacitats d’estructuració. Només admet
programes 8086 (16 bits).
La qualitat d’un descompilador es basa en el bo que és
el codi que genera i el bon rendiment que té en presència d’una entrada
«inesperada».
Els problemes especialment difícils es plantegen per
l’ús d’optimitzacions del compilador que fan que el codi d’entrada sigui molt
desestructurat i difícil d’entendre, fins i tot per a un humà. La gestió dels
casos següents defineix la qualitat d’un descompilador:
No hi ha informació sobre els noms dels símbols al
fitxer binari (executable eliminat)
Fitxers executables estàtics o enllaçats dinàmicament
(utilitza la informació de la concordança de patrons i la informació de
l’enllaç dinàmic per identificar l’accés a les funcions de la biblioteca)
Traducción a Catalán de un interesantísimo artículo sobre contabilidad, en concreto sobre la Hollerith, una máquina contable inventada en 1906, redactado por Frank da Cruz,
Director de Desarrollo de Software de Comunicaciones en la Universidad de Columbia. Conocidos como...
Traducción a Catalán de un interesantísimo texto de James Franklin, profesor emérito de la Facultad de Matemáticas y Estadística de la Universidad de Nueva Gales del Sur, amante de la filosofía de las matemáticas, la historia de las ideas y la teoría del riesgo extremo, que nos...