[ LUGOS ] Programi napisani v C-ju
Ales Kosir
ales.kosir na zaslon.si
Tor Okt 10 22:26:52 CEST 2000
Odprlo se je zanimivo vprasanje.
Nekoc sem bral doktorsko nalogo neke juznoamericanke, ki je pokazala,
kako se delno da rekonstruirati iz prevedenega programa najprej zbirno
kodo, iz te pa z mnogo hevristike zgraditi cisto berljivo kodo v visjem
programskem jeziku. Za primer uspesne rekonstrukcije je navedla v
delujoc program prevedeno funkcijo sort; rekonstrukcija je vrnila
spodobno cjevsko kodo, seveda z mnogimi omejitvami. Njena rekonstrukcija
je bila tako uspesna, da je
znala obnoviti in smiselno prikazati veliko programov.
Kaj se da narediti? Vecinoma se da rekonstruirati tok programa, lociti
kodo od podatkov in ugotoviti, kaksne spremenljivke se uporabljajo.
Cesa se ne da narediti? Nikakor se ne da dobiti pravih imen
spremenljivk, morebitnih komentarjev v kodi in podobnega. Tale komentar
je za nekatere morda presenecenje in so pricakovali, da je mozno
narediti bijekcijo med izvorno kodo in izvedljivim programom, a to pac
ne gre. V nekaterih primerih se povrh zgolj s staticno analizo ne da
lociti kode od podatkov. To pomeni, dokler programa ne pozenemo, ne
vemo, kaj pocne.
Ce je moja belezka tocna, je nalogo naredila na
http://www.csee.uq.edu.au/csm/decompilation/ . Tale hip ne morem
preveriti ne njenega imena niti ugotoviti, ali je navedena povezava
pravilno zapisana. V spominu imam, da se ona pise Fuentes, roke pa ne
dam v ogenj.
Ce si kdo zeli bolj natancne podatke, naj zakrici in jih bom poiskal.
--
Lep pozdrav,
Aleš
Dodatne informacije o seznamu Starilist