Dekompilacja programu

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
kobylecki
Piegowaty Guziec
Piegowaty Guziec
Posty: 19
Rejestracja: 05 gru 2005, 18:11
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: Unity
Architektura: x86

Dekompilacja programu

Post autor: kobylecki »

Cześć,
chciałbym pogrzebać w pewnej binarce (wywnioskować stosowane struktury danych i algorytmy) i szukam programów do dekompilacji. Może ktoś z was robił już coś podobnego i może mi coś polecić.

Na razie wyszukałem takie drogi (nie wiem, czy dobre): gdb, eresi, ale i tak musiałbym nauczyć się tych narzędzi, bo wcześniej z nich nie korzystałem.
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Odp: Dekompilacja programu

Post autor: beluosus »

kobylecki pisze:chciałbym pogrzebać w pewnej binarce (wywnioskować stosowane struktury danych i algorytmy)
Jedyne co zobaczysz to assembler, a tu trudno mówić o jakichkolwiek strukturach bez dłuuuugich analiz zwłaszcza jeżeli kompilator użył silnych optymalizacji.
kobylecki pisze:Na razie wyszukałem takie drogi (nie wiem, czy dobre): gdb, eresi
Narzędzia dobre, dorzuciłbym jeszcze objdump i ewentualnie jeszcze jakieś frontendy.
kobylecki pisze:ale i tak musiałbym nauczyć się tych narzędzi, bo wcześniej z nich nie korzystałem.
Ale i tak? Chyba logiczne, że chcąc coś umieć trzeba się tego nauczyć. ;)

Podsumowanie: jak nie znasz dobrze assemblera to się nawet za to nie zabieraj.
Kurs Linuksa: for i in $(ls /bin); do man $i; done
__________________
http://beluosus.pl/
kobylecki
Piegowaty Guziec
Piegowaty Guziec
Posty: 19
Rejestracja: 05 gru 2005, 18:11
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: Unity
Architektura: x86

Odp: Dekompilacja programu

Post autor: kobylecki »

Dzięki,
do objdump znalazłem frontend dissy, w paczce o tej samej nazwie.

edit: znalazłem jeszcze jedno dosyć ciekawe narzędzie: http://itee.uq.edu.au/~cristina/dcc.html
Potrafi wygenerować kod w C na podstawie binarki.
Awatar użytkownika
DDAroo
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 107
Rejestracja: 27 cze 2009, 10:47
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: KDE Plasma
Architektura: x86
Lokalizacja: Kraków
Kontakt:

Odp: Dekompilacja programu

Post autor: DDAroo »

O dekompilacji możesz spokojnie zapomnieć, dekompilatory wykładają się na programach większych niż hello world czy ciąg fibonacciego. Analiza wsteczna oprogramowania opiera się głównie na analizie kodu asemblerowego. Dekompilator może co najwyżej jakieś podpowiedzi dawać do kodu asemblera. Najlepszym dekompilatorem pod tym względem będzie pewnie komercyjny plugin do równie komercyjnego programu IDA.
Chmiela2121
Sędziwy Jeż
Sędziwy Jeż
Posty: 51
Rejestracja: 10 sie 2007, 15:23
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Dekompilacja programu

Post autor: Chmiela2121 »

IDA co prawda jest komercyjna, ale do domowego użytku jest też specjalna wersja darmowa. I nie ma się co oszukiwać - jak napisał przedmówca, jest to najlepsze urządzenie do analizy zdeassemblowanego programu. I co ważne, Wine bardzo dobrze sobie radzi z tą aplikacją. Jest to bardzo żmudna i czasochłonna "zabawa", ale można ją traktować jako przyjemną naukę assmeblera.
Zapraszam serdecznie - www.mblog.boo.pl
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 3 gości