• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy znacie jakiś dekompilator do C++?

Object Storage Arubacloud
0 głosów
3,318 wizyt
pytanie zadane 25 września 2015 w Offtop przez Piotr Zborowski Obywatel (1,670 p.)
Witam, tak jak w tytule, czy znany wam jest jakiś dekompilator do C++, albo disassembler z opcją tłumaczenia języka asemblera na C++, bądź po prostu dwa oddzielne programy: Dissassembler i jakiś do zamiany assemblera na C++? Nie chcę tutaj jakiegoś super programu który zwracałby mi w 100% taki sam kod, bo wiem, że to nie realne, chcę tylko, aby zwracał kod, który będzie po prostu działał. Z góry dzięki :)

3 odpowiedzi

+2 głosów
odpowiedź 25 września 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Nie ma czegoś takiego, bo to nie możliwe. W kodzie języków takich jak c++ stosujesz np nazwy zmiennych - one są takimi etykietami dla danego adresu w pamięci, więc po skompilowaniu, ani widu, ani słychu, że użyłeś zmiennej "dupa", czy "abecadło" :) Ale jest możliwa tak jak powiedziałeś deasemblacja. Polecam zainteresować się RE, czyli Reverse Engeeringiem, ciekawy kurs po Polsku znajdziesz na kanale Gynvael Coldwind na youtube. Pozdrawiam :)

P.S.

RE wymaga jakiejś tam znajomości Asemblera, ale nie jest trudno się go nauczyć :)
komentarz 25 września 2015 przez Piotr Zborowski Obywatel (1,670 p.)
Wiem, że komputer tak na prawde wgl nie zapisuje w sobie nazw zmiennych jakie podamy, aczkolwiek z tego co dotychczas słyszałem, wszelkiego typu tego programy na ich miejsce dają po prostu zmienne z losową nazwą, ale dzięki, że znalazłeś czas na mój temat :). Byłbym wdzięczny, gdybyś odpowiedział mi na jeszcze jedno pytanie, bo widzę, że znasz się na temacie: Czy istnieją programy, które są w stanie przekształcić kod assemblera, na kod C++?
komentarz 25 września 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Po chwili szukania w internecie znalazłem pytanie ze stackoverflow http://stackoverflow.com/questions/3234420/is-there-a-program-to-convert-assembly-to-c

Patrz na ostatni post - niby istnieją jakieś takie programy, ale tak jak gościu pisze, ten kod może nie być taki "super " :D
komentarz 25 września 2015 przez Piotr Zborowski Obywatel (1,670 p.)
Spoko, nie potrzebuje jakiegoś ultra zoptymalizowanego kodu. Wielkie dzięki za pomoc :D
0 głosów
odpowiedź 25 września 2015 przez event15 Szeryf (93,790 p.)
0 głosów
odpowiedź 25 września 2015 przez hit02 Nałogowiec (33,970 p.)
edycja 25 września 2015 przez hit02

Do C++ raczej nie znajdziesz, ale są dostępne dekompilatory generujące pseudo C.

Jeden, to IDA Disasembler. https://www.hex-rays.com/products/decompiler/ Ten wydaje się być dobrym produktem, ale niestety z tego, co pamiętam licencja jest płatna co roku.

Jest jeszcze wiele innych dekompilatorów. Wystarczy wpisać w Google "C decompiler", ale jak na razie nie znalazłem takiego, co by mnie zadowalał - chyba wszystkie były w wersji alpha.

Oczywiście podczas dekompilacji nie odzyskasz nazw zmiennych, albo funkcji. No chyba, że zostawisz symbole debuggera, ale to raczej tylo wtedy, gdy to twój program. Również liczby będą w większości przypadków już wyliczone, więc nie dostaniesz wyrażenia 7 * 3, tylko 0x15 - narzędzia do RE zazwyczaj pokazują liczby w hexa.

Ogólnie polecam ci te same materiały, co Eryk. Jesli nauczysz się RE, to asembler nie będzie problemem. Wtedy powinien wystarczyć jakiś prosty dekompilator, który by ci tylko pomógł zrozumieć przepływ informacji w skomplikowanej funkcji.

@edit Zauważ też, że dekompilator może czasem skomplikować sprawę. Przykładowo w tym: http://crackmes.de/users/issogoo/keygenme_3 crackme występuje operacja XOR operująca na 4 zmiennych char jako jednej int, co oczywiście zmienia wynik w zależności od tego, czy procesor pracuje w Little, czy w Big Endian. Dekompilator musiał by tutaj urzyć unii, ale samo rozpoznanie czegoś takiego mogło by być problematyczne, więc czasem lepszy jest zwyczjny disasembler.

Podobne pytania

0 głosów
0 odpowiedzi 729 wizyt
pytanie zadane 23 listopada 2018 w Assembler przez niezalogowany
0 głosów
1 odpowiedź 264 wizyt
pytanie zadane 19 stycznia 2021 w Assembler przez tonn204 Mądrala (7,440 p.)
+1 głos
3 odpowiedzi 522 wizyt

92,579 zapytań

141,431 odpowiedzi

319,657 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...