Source z .exe


(Rolek156) #1

Witajcie. To mój pierwszy post..

Ale chodzi mi o konkretną sprawę..

Mam pewną aplikację napisaną w Microsoft Visual C# / Basic .NET i chciałbym wyciągnąć z niej kod źródłowy (source) wystarczy mi tylko program dalej już sobie jakoś poradzę.


(system) #2

Moje zdanie to że raczej się nie da...

Ale to tylko moje zdanie...


(Airborn) #3

Rolek to nie ejst taka prosta sprawa, że odpalasz program, podajesz mu ścieżkę do *.exe i dostajesz kod źródłowy, poczytaj o takich pojęciach jak Reverse engineering czy dekompilacja (polecam chociażby angielskojęzyczną wiki) to FAQ też mi się podoba link


(Ryan) #4

Poszukaj czegoś, co się nazywa .NET reflector. Ale nie oczekuj cudów.


(Rolek156) #5

Ryan dzięki.. to już coś..


(M@ster) #6

Nigdy nie odzyskasz kodu zrodlowego jaki mial autor aplikacji, chocby z tego prostego powodu ze nazwy zmiennych i setki innych rzeczy nie sa zapisywane do exe tylko przeszktalcane na offset w pamieci. Conajwyzej mozesz przeprowadzic dekompilacje, ale dostaniesz wtedy kod w assemblerze.


(Rolek156) #7

Szkoda.. Chciałem poprawić parę rzeczy.. ale trudno.. dzięki za pomoc.


(Ryan) #8

Autor pytał o C#/VB. Poza tym z binarki w wersji checked (z informacjami dla debuggera) i symbolami możesz wyciągnąć nazwy zmiennych.


(Marduk666pl) #9

Nie dostanie kodu źródłowego bo w procesie kompilacji przez kompilator następuje zamiana instrukcji danego języka na języka maszynowy (assembler) i tylko w takiej postaci może go modyfikować, niestety trzeba znać assemblera a to trudny język.


(somekind) #10

Ale chyba nie w .NET, prawda?


(mktos) #11

somekind: W .NET następuje kompilacja do kodu pośredniego MSIL, który też do najprostszych języków nie należy :wink:

Ryan napisał - .NET Reflector jest rozwiązaniem. Jest też ildasm który dekompiluje aplikacje .NET do kodu MSIL (chyba standardowo z .NET Framework dostarczany).


(somekind) #12

Wiem o tym. Dlatego zadałem retoryczne pytanie o ten asembler :slight_smile:

I to nie jest już MSIL tylko CIL.

A tu są jego instrukcje: http://dotnet.di.unipi.it/EcmaSpec/PartitionIII/index.html

A wracając do wypowiedzi marduk666 - asembler i kod maszynowy to też raczej nie to samo.


(Marduk666pl) #13

Czepiasz się, tak wiem że assembler powstał na bazie języka maszynowego i poprzez zastąpienie liczb odpowiadających fragmentom rozkazów kodu maszynowego ich symbolicznymi odpowiednikami możliwie jest łatwiejsze zrozumienie przez człowieka. Dla mnie jest to prawie to samo.


(somekind) #14

Ja się czepiam?

To co powiesz o kompilatorach :lol:


(Przemczar) #15

sa programy ktore dekompiluja sa to dekompilatory

http://www.google.pl/search?hl=pl&client=firefox-a&rls=org.mozilla%3Apl%3Aofficial&hs=Vys&q=dekompilatory&btnG=Szukaj&lr=

:google:


(Marduk666pl) #16

Wiadomo że sąprogramy które dekompilują, tylko że otrzymujesz całkiem inny kod niż ten który miał autor w momencie kompilacji, jest to kod assemblera.


(Ryan) #17

Tyle, że nie odzyskują oryginalnego kodu, gdyż jest to niemożliwe. -> google