Portál AbcLinuxu, 9. května 2025 06:09

Dotaz: c dekompiler

5.10.2010 14:29 ubka7617
c dekompiler
Přečteno: 717×
Odpovědět | Admin

Ahojte,

prebral som po byvalom kolegovi projekt s programami v c pod linuxom. Problem je v tom ze mam iba skompilovane verzia a potrebujem tie programy zmenit. Je neaky sposob na dekompilovanie c programov ? K zdrojakom uz nie je mozne sa dostat.

dik


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Bilbo avatar 5.10.2010 15:57 Bilbo | skóre: 29
Rozbalit Rozbalit vše Re: c dekompiler
Odpovědět | | Sbalit | Link | Blokovat | Admin
V posdtatě není. Binárku lze poměrně přímočaře (pokud tam není nějaká obfuskace, nebo podobné věci) převést do assembleru, někde jsem viděl i projekty, co se snaží ty bloky assembleru analyzovat a sestavovat z toho kusy C kódu (např. z několika instrukcí na odčítání hodnoty v registru, porovnání s něčím a podmíněným skokem vyrobí for cyklus), ale vznikne něco, co má k původnímu zdrojáku dost daleko.

I ve chvíli, kdy z toho něco vyleze, tak dostat ten dekompilát aspoň do stavu kdy to jde znovu zkompilovat a vyleze z toho něco co funguje stejně jako původní binárka je silně netriviální a někdy může být jednodušší to prostě napsat znovu.

Co se nezachová jsou názvy proměnných, funkcí atd ... (i když pokud binárka není striplá, tak by mohla být nějaká šance), ani žádné komentáře.
Big brother is not watching you anymore. Big Brother is telling you how to live...
5.10.2010 16:25 Peter H. | skóre: 18
Rozbalit Rozbalit vše Re: c dekompiler
Ďalším problémom sú optimalizácie, ktoré prebiehajú počas kompilácie. Takže aj keby sa ten assembler dal nejako rozumne dekompilovať, výsledkom by bol zrejme vcelku hardcore kód.
Have you tried turning it off and on again?
5.10.2010 16:43 Sten
Rozbalit Rozbalit vše Re: c dekompiler
Odpovědět | | Sbalit | Link | Blokovat | Admin
To záleží na tom, jak moc optimalizovaný ten kód je a jestli má v sobě debug symboly. Pokud nemá žádné oprimalizace a používá debug symboly, nemělo by být složité z toho dostat kód v C (případně lze použít GDB a pomocí něho procházet, co to vlastně dělá). Pokud je však optimalizovaný, často to dekompilovat nepůjde (dekompilátor bude zmatený, že debug symboly neodpovídají tomu, na co narazil), a pokud to nemá debugovací symboly, tak už se ani nedá pořádně zjistit, co patří k sobě, takže tam zbude asi jenom ten assembler
6.10.2010 15:32 ubka7617
Rozbalit Rozbalit vše Re: c dekompiler
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dik, tie programy su dost zlozite a ja sa len ucim programovat, takze mi to trosku potrva
6.10.2010 19:00 jekub
Rozbalit Rozbalit vše Re: c dekompiler
mam iba skompilovane verzia a potrebujem tie programy zmenit

tie programy su dost zlozite a ja sa len ucim programovat

tak tomu říkám známka panku.

ps: jste si jistý, že to co máte k dispozici, nejsou zdrojáky?
rADOn avatar 6.10.2010 19:41 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: c dekompiler
ps: jste si jistý, že to co máte k dispozici, nejsou zdrojáky?
:-D

zrucny (a lehce sileny) asemblerista by asi dokazal pomoci gdbcka vyrobit jednoduchy patch primo do binarky, ale to je stezi uloha pro nekoho kdo se uci programovat
"2^24 comments ought to be enough for anyone" -- CmdrTaco
7.10.2010 13:12 zmije
Rozbalit Rozbalit vše Re: c dekompiler
A potom někdo píše sáho dlouhý článek o tom, jak je zbytečné se v 21. století učit assembler a jak jde všechno udělat v C.
7.10.2010 16:42 Jary | skóre: 30 | blog: Jary má blog | Dům
Rozbalit Rozbalit vše Re: c dekompiler
A k čemu je patch binárky, kromě crackingu? Pokud mám zdrojový kód, tak bude jistě mnohem levnější vytvořit nějakou novou verzi, než patchovat binárku.
.sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
rADOn avatar 7.10.2010 17:57 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: c dekompiler
A k čemu je patch binárky, kromě crackingu?…
K tomu, aby lidi kteri odpovidaji do poradny aniz by se obtezovali precist na co vlastne odpovidaji vypadali jako blbci.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
7.10.2010 20:10 Jary | skóre: 30 | blog: Jary má blog | Dům
Rozbalit Rozbalit vše Re: c dekompiler
Au. Hmm, stejnak mám vyšší skore, než ty (:
.sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
8.10.2010 12:47 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: c dekompiler
Kuš
In Ada the typical infinite loop would normally be terminated by detonation.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.