Delete!
Exe Decompiler!
- poruka: 22
- |
- čitano: 4.731
- |
- moderatori:
Lazarus Long, XXX-Man, vincimus
- +/- sve poruke
- ravni prikaz
- starije poruke gore
Eh, kad bi to bilo samo tako jednostavno svi bi brdo novaca zarađivali .
Ali, DJELOMIČNO je i moguće. Za resurse nije problem (prozori, slike itd..), ali ako je riječ o source code-u onda je vrlo bitno o kojem programskom jeziku je riječ. Znam da npr. za Visual Basic postoji dosta exe decompilera, a može se naći i za ostale jezike. Iako, samo djelomično. Nekada ćeš dobiti samo dio code-a, a nekada ništa.
Ovisi koji jezik. Veliku vecinu (citaj: sve) release verzija programa pisanih u C/C++ nije moguce. Za ostale jezike nisam siguran.
EDIT: beaten.
Mislim da takvo što nepostoji(neka me netko ispravi ako sam u krivu). Ono što tebi treba je reverzni inženjering.
http://en.wikipedia.org/wiki/Reverse_engineering - sekcija Reverse engineering of software.
Edit: Eto postoji, ali je klimavo.
http://en.wikipedia.org/wiki/Reverse_engineering - sekcija Reverse engineering of software.
Edit: Eto postoji, ali je klimavo.
Prva rečenica ti je bila točna - ne postoji.
RE dekompajla .exe u assemblerski kod. Inače, .exe datoteku možeš vidjeti u assembleru i hedsadecimalnom obliku.
Recimo, crackiranje se radi uz pomoć RE.
decompiler ne postoji, postiji disassembler
Nema decompiler-a. U biti postoje neki software-i koji pokušaju pogoditi kod ali to ne funkcionira baš najbolje. Jednom kad se source code compile-ra gotovo je. A dissasembly ti ništa neće reći o kodu.
Ako je riječ o .NET aplikaciji u 95% slučajeva može se dobiti source code, Mislim da isto vrijedi i za JAVU. Ako je riječ o Visual Basicu 4,5,6 isto postoje neki alati za reversanje exe-a. Ako je riječ o C/C++ stvari su značajno teže. Potrebno je znanje assemblera. Onda u čemu je napravljena tvoja aplikacija?...
Ako su .net aplikacije, onda ja to radim sa Reflectorom (mislim da je sada od firme Redgate). Source kod koji se dobije iz toga nije 100% tocan, ali se odprilike mogu vidjeti objekti i klase koje se koriste, i malo "cudan" kod unutar metoda. U svakom slucaju, to je alat ako je .exe napravljen u .netu.
Za ostalo sam davno prije koristio disasembler, ali rezultat je daleko od dekompajlera koji ti trazis ;)
Dobro je znati i da postoje alati koji se zovu "obfuscator"-i, kojima je zadaća da sprijece dekompajliranje izvršnih datoteka!
Ako su .net aplikacije, onda ja to radim sa Reflectorom (mislim da je sada od firme Redgate). Source kod koji se dobije iz toga nije 100% tocan, ali se odprilike mogu vidjeti objekti i klase koje se koriste, i malo "cudan" kod unutar metoda. U svakom slucaju, to je alat ako je .exe napravljen u .netu.
Za ostalo sam davno prije koristio disasembler, ali rezultat je daleko od dekompajlera koji ti trazis ;)
Dobro je znati i da postoje alati koji se zovu "obfuscator"-i, kojima je zadaća da sprijece dekompajliranje izvršnih datoteka!
Ovo sve stoji (Redgate je u pitanju, da), ali čovjek bi htio promjeniti nešto u tom kodu a to mislim da nikako neće moći.
Za Javu je uvijek moguće dobiti source iz class fileova, bio je jednom davno neki programčić Java decompiler.
Pošto radi na vrlo sličnom principu (interpretacija na VM), pretpostavljam da slična stvar postoji i za C#, ali nemam osobnog iskustva.
Što se tiče obfuskatora (barme onih koej sam ja probao), kod Jave je caka bila samo u tome da ti generira neka neintuitivna imena varijablia i metoda, tako da čitajući source ne možeš ništa skužiti.
Npr., metoda to se zove zbrojiDvaBroja(int broj1, int broj2), a obfuskator to promijeni u xhjklsflaasjajajdajal(int fajkjlj1, int su4fkjlasf).
Sjetim se dana kada sam sa SoftIceom stavljao brakingpointove na mjesta provjere autentifikacije u pokrenutoj aplikaciji, i samo promjenio jednu asembler naredbu JN u JNZ (ako me sjecanje sluzi - 'jump if zero' u 'jump in not zero'), i autentifikacija bi magicno prosla (samo ako unesem krivi username/pass, redovito to radio sa Winrar, Winzip i slicnim malim utility sharewareima) :)
Eh, to su bili dani, kratko je trajalo ali svakako zanimljivo razdoblje...
Zvinte na OT!
Ako su .net aplikacije, onda ja to radim sa Reflectorom (mislim da je sada od firme Redgate). Source kod koji se dobije iz toga nije 100% tocan, ali se odprilike mogu vidjeti objekti i klase koje se koriste, i malo "cudan" kod unutar metoda. U svakom slucaju, to je alat ako je .exe napravljen u .netu.
Za ostalo sam davno prije koristio disasembler, ali rezultat je daleko od dekompajlera koji ti trazis ;)
Dobro je znati i da postoje alati koji se zovu "obfuscator"-i, kojima je zadaća da sprijece dekompajliranje izvršnih datoteka!
Ovo sve stoji (Redgate je u pitanju, da), ali čovjek bi htio promjeniti nešto u tom kodu a to mislim da nikako neće moći.
Moći će, postoji plugin za Reflector koji iz assemblija koji se pregledava, napravi cijeli Visual Studio solution koji se naravno ponovno može buildati.
Nema decompiler-a. U biti postoje neki software-i koji pokušaju pogoditi kod ali to ne funkcionira baš najbolje. Jednom kad se source code compile-ra gotovo je. A dissasembly ti ništa neće reći o kodu.
Diasemblirani kod je potpuno točan i informativan. Problem je samo što je jako teško čitati asemblerski kod i to na granici nemogućeg ako ne znaš otprilike što tražiš i ako ne znaš odlično asembler za svoj CPU.
Diasemblirani kod je potpuno točan i informativan. Problem je samo što je jako teško čitati asemblerski kod i to na granici nemogućeg ako ne znaš otprilike što tražiš i ako ne znaš odlično asembler za svoj CPU.
Mislim da ima najviše literature za x386 CPU assembler, sjećam se da smo tu arhitekturu na faxu učili. Sad neznam kakvo je stanje s višejezgrenim CPU-ima, vjerojatno takav koristiš. Sigurno nije jednostavniji.
Nema decompiler-a. U biti postoje neki software-i koji pokušaju pogoditi kod ali to ne funkcionira baš najbolje. Jednom kad se source code compile-ra gotovo je. A dissasembly ti ništa neće reći o kodu.
Diasemblirani kod je potpuno točan i informativan. Problem je samo što je jako teško čitati asemblerski kod i to na granici nemogućeg ako ne znaš otprilike što tražiš i ako ne znaš odlično asembler za svoj CPU.
Znam da je točan. Nisam rekao da je netočan. Rekao sam da ništa neće saznati o kodu nego će saznati što radi kod. Dakle sve rutine, call-ove, operacije bla bla.
ako me sjecanje sluzi - 'jump if zero' u 'jump in not zero'
Ili JNE u JE... Kad mi je prvi program prihvatio krivi serijski broj samo što nije suza na oko kanula
Neobsfuciran decompiliran kod u Javi je maltene jednak originalnom sourceu - comments. Razlog tome je JIT implementacija na VM-u: compiler ne optimizira kod skoro nista, da bi VM imao laksi posao JITtanja dok se aplikacija vrti. Vecina obfuscatora samo mijenja imena identifiera.
Ali, DJELOMIČNO je i moguće. Za resurse nije problem (prozori, slike itd..)
Može kakav freeware za ovo ali da je kvalitetan? Resource Hacker (jako davno ažuriran, nije baš u cvijetu mladosti...) ili?
Hvala!
Po meni je i dalje Resource Hacker najbolji jer prepoznaje i vizualizira više resursa nego ostali. Štoviše, interno sadrži compiler pomoću kojeg izmijenjeni resurs odmah spremiš u sam exe. Npr. pomoću Resource Hacker-a otvoriš WinRar.exe i možeš izmjeniti gotovo sve.. Počevši od izbornika pa do prozora. Isto vrijedi i za prozor gdje pišu podaci o (ne)registriranom korisniku . Compiliraš i radi.
Pozdrav...
heh vrlo škakljiva tematika ali šta je tu je .
Kao prvo Resource hacker je odličan alat kao i XNR resource ali samo kako
ime kaže za resurse iništa više.
problem je kod exe fileva što nisu svi isti tj nisu potpuno standardizirani normalo
govorimo o windows Exe filovima.
Zašto pa zato ako je exe file pravljen u source codeu nativno izvedenom
od npr WinApi -ja ( C/C++ ili FreeBasic ili slično) onda je isam exe vrlo sličan tj trebo bi bit
skoro isti, ali postoje exe datoteke koje su napola kompresirane, druge file tipovi praktički
naljepljeni( nadovezani na klasični exe( da i to je moguće...)) pa zato stvar nije ubvjek
jednostavna.No da ne duljim evo što sam ja našao na netu:
http://boomerang.sourceforge.net/
Nikad prije čou za to ali naravno vrijedi pogledat i probat.
Zlatko...