Jakie są dobre samouczki na temat inżynierii wstecznej dla początkujących?


Najlepsza odpowiedź

Jedna z największych (jeśli nie największa) witryny zawierająca wyzwania związane z inżynierią odwrotnego kodu to Crackmes.de .

Ta witryna jest niesamowita, ponieważ:

  • To Bezpłatne .
  • Wyzwania są podzielone na kategorie według:
  • Trudność: Masz 9 poziomów trudności, od bardzo łatwych do najtrudniejszych.
  • Platforma: Chcesz poćwiczyć Windows, Linux itp … odwracania umiejętności?
  • Język: Chcesz rozwiązać crackme napisane w jakim języku? Tak, jeśli masz doświadczenie w inżynierii kodu wstecznego zauważysz, że w większości przypadków inżynieria wsteczna pliku wykonywalnego napisanego w Delphi nie jest dokładnie tym samym, co inny plik wykonywalny napisany w języku asemblera.
  • Rozwiązane Crackmes: Jeśli zaczynasz swoją przygodę z inżynierią wsteczną, możesz poszukać łatwych do rozwiązania cracków, aby porównać swoją metodę crackowania z crackerami, którzy rozwiązali to wcześniej. naprawdę skarb do nauki i rozwijania umiejętności myślenia i rozwiązywania problemów.

Odpowiedź

Zakładam, że nie jesteś ekspertem w dziedzinie informatyki i programowania na niskim poziomie więc odpowiedź brzmi: tak, to jest bardzo trudne.

Istnieją dwa „poziomy” języków programowania; Wysoki i niski. Wysokie języki programowania są ogólnie dość łatwe w użyciu i nauce. Są czytelne dla człowieka i muszą być „przetłumaczone” przez maszyny, aby mogły zostać wykonane. Przykłady języków programowania wysokiego poziomu to Javascript, R, Python, Java i wiele innych.

Języki programowania niskiego poziomu są trudniejsze do nauczenia. Potrzebują lepszego zrozumienia sposobu działania pamięci i procesów komputera. Najlepszym i najbardziej znanym przykładem języka niskiego poziomu jest C. C jest bardzo potężny i raczej trudny do nauczenia. Ale jest o wiele bardziej zrozumiały dla maszyny niż języki programowania wysokiego poziomu. Język programowania dość niskiego poziomu to Assembly. Kod asemblera istnieje w różnych typach, ale wszystkie są skomplikowane, denerwujące i bardzo trudne do odczytania. Kod asemblera jest jednak główną częścią inżynierii odwrotnej. Jeśli coś poddajesz inżynierii wstecznej, przeglądasz / zmieniasz kod asemblera programu.

Musisz zrozumieć, że asembler jest zasadniczo językiem ojczystym. Jeśli piszesz program, zawsze jest z nim kod asemblera. Albo twój kompilator tłumaczy twój kod na asembler, albo interpreter robi to za ciebie w czasie rzeczywistym.

Wszystko to w zasadzie oznacza, że ​​stanie się prawdziwym profesjonalnym inżynierem wstecznym jest łatwe. Wszystko, co naprawdę musisz zrobić, to biegle posługiwać się różnymi typami asemblera i nauczyć się programować w C. Jedynym problemem jest to, że te dwie rzeczy są trudne do wykonania.

Powodzenia!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *