logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak odtworzyć kod źródłowy programu? Metody i narzędzia dekompilacji

morgrabio 15 Maj 2007 08:56 2667 8
REKLAMA
  • #1 3885917
    morgrabio
    Poziom 11  
    Posty: 69
    Ocena: 4
    Chciałbym odtworzyć kod źródłowy tego programu tylko jak to zrobić?
    pozdr.
    Załączniki:
    • prgs.gif (6.32 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 3886050
    ed-ek
    Poziom 34  
    Posty: 1814
    Pomógł: 275
    Ocena: 42
    Jeżeli masz Norton Commander,lub Total Commander - naciśnij F3 i oglądniesz zawartość. Dodatkowo zmieniając w Opcjach odczyt na hexadecymalny,zobaczysz zawartość w postaci hex
    Jak nie masz Nortona to sobie ściągnij. Niezwykle przydatny i "przyjazny" program.
    Możesz też otworzyć w programie typu Notepad,ale nie zobaczysz typu hex.
  • REKLAMA
  • #3 3886367
    morgrabio
    Poziom 11  
    Posty: 69
    Ocena: 4
    no ale ja chciałem kod źródłowy zobaczyć, bo tak to można też w Notepadzie++ otworzyć, ale jak go zdekompilować żeby do kodu wejść??
    Załączniki:
    • kod.gif (6.52 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #4 3886522
    ed-ek
    Poziom 34  
    Posty: 1814
    Pomógł: 275
    Ocena: 42
    Niestety,mimo że istnieją dekompilatory,a właściwie ich namiastki, nawet średnio skomplikowanego programu nie uda się przywrócić do kodu źródłowego. Ale można poszukiwać w kodzie zdefiniowanego ciągu znaków,które oznaczają np początek mapy bitowej lub innych segmentów kodu.Są takie programy. Jeden był publikowany w Ekspercie.
  • Pomocny post
    #5 3887096
    Sam Sung
    Poziom 33  
    Posty: 2014
    Pomógł: 227
    Ocena: 583
    Kodu źródłowego nie zobaczysz, ale można obejrzeć kod asemblerowy, pobaw się PE Explorerem.
  • REKLAMA
  • #6 3887254
    morgrabio
    Poziom 11  
    Posty: 69
    Ocena: 4
    czyli co - jedynie da sie odczytać ten kod w assemblerze?? i potem przepisać go na dany język np. C++??
    to jak niektórzy dekompiluja całe programy i jakoś odczytują kod źrodlowy
  • #7 3887396
    ed-ek
    Poziom 34  
    Posty: 1814
    Pomógł: 275
    Ocena: 42
    morgrabio napisał:
    czyli co - jedynie da sie odczytać ten kod w assemblerze?? i potem przepisać go na dany język np. C++??
    to jak niektórzy dekompiluja całe programy i jakoś odczytują kod źrodlowy

    Nie ma takich którzy na podstawie kodu maszynowego odtworzą kod źródłowy. Chyba,że to program typu "Hello"
  • Pomocny post
    #8 3888709
    tropicalBula
    Poziom 15  
    Posty: 94
    Pomógł: 14
    Ocena: 3
    morgrabio napisał:
    (...) to jak niektórzy dekompiluja całe programy i jakoś odczytują kod źrodlowy

    Tak jak napisał Sam Sung, korzystając z deasemblera i analizy otrzymanego kodu, ewentualnie posiłkując się debuggerem. Ale nie polega to na odtworzeniu oryginalnego kodu źródłowego, a raczej stworzeniu nowego odpowiadającego funkcjonalnością oryginalnemu.
    Łatwo możesz przejrzeć zasoby pliku PE, korzystając np. z bezpłatnego eXeScope lub wspomnianego wcześniej PE Explorer.
    Jeżeli chcesz deasemblować wykorzystaj PE Explorer lub potężne narzędzie IDA Pro - jego wersja demo chyba umożliwia pracę z plikami Portable Executable(przynajmniej kiedyś tak było...).

    Istnieją również dekompilatory mające za zadanie tworzenie kodu w C. Jednak ich użyteczność pozostawia wiele do życzenia. Możesz sprawdzić działanie tych: Boomerang Decompiler, REC Decompiler.

    Pamiętaj aby nie złamać warunków umowy licencyjnej (jeżeli to komercyjny program - najczęściej deasemblowanie jest zabronione).

    Pozdrawiam
  • #9 3899204
    morgrabio
    Poziom 11  
    Posty: 69
    Ocena: 4
    wielkie dzieki za pomoc
    Zamykam

Podsumowanie tematu

✨ Odtworzenie oryginalnego kodu źródłowego z programu binarnego jest w praktyce niemożliwe, zwłaszcza dla średnio skomplikowanych aplikacji. Można natomiast przeglądać zawartość pliku w trybie hexadecymalnym za pomocą menedżerów plików takich jak Norton Commander czy Total Commander. Do analizy kodu maszynowego służą deasembler i debugery, które pozwalają na uzyskanie kodu asemblerowego, z którego można próbować odtworzyć funkcjonalny odpowiednik w wyższym języku programowania, np. C++. Popularne narzędzia do analizy plików Portable Executable (PE) to PE Explorer, eXeScope oraz zaawansowany IDA Pro (wersja demo). Istnieją również dekompilatory generujące kod w C, takie jak Boomerang Decompiler i REC Decompiler, jednak ich skuteczność jest ograniczona. Należy pamiętać o przestrzeganiu warunków licencyjnych, gdyż deasemblowanie programów komercyjnych jest często zabronione.
REKLAMA