Różnice między wybraną wersją a wersją aktualną.
Poprzednia rewizja po obu stronachPoprzednia wersjaNowa wersja | Poprzednia wersja | ||
projekty:lic_key_crack [2025/05/14 10:01] – administrator | projekty:lic_key_crack [2025/05/16 17:31] (aktualna) – administrator | ||
---|---|---|---|
Linia 1: | Linia 1: | ||
- | ======= Wstęp do inżynierii wstecznej ======= | + | ======= |
- | pliki: | + | Inżynieria wsteczna to proces analizowania i rozkładania na części składowe oprogramowania, |
- | {{ :projekty:main2.c |}} | + | > Inżynieria wsteczna (ang. reverse engineering) to proces wydobywania wiedzy lub przeprojektowywania systemów na podstawie dostępnych, |
+ | Źródło: [[https://pl.wikipedia.org/ | ||
- | {{ :projekty:main2.exe |}} | + | === Zwartość pliku main2.c === |
- | {{ : | + | W niniejszym przykładzie zaprezentowano kod źródłowy prostego programu, który weryfikuje poprawność wprowadzonego klucza licencyjnego. Program wczytuje wprowadzone dane znak po znaku i porównuje je z kluczem referencyjnym. Na końcu, w zależności od wyniku porównania, |
- | + | ||
- | + | ||
- | === Zwartość pliku main2.c === | + | |
- | <code c> | + | < |
#include < | #include < | ||
Linia 68: | Linia 66: | ||
</ | </ | ||
+ | |||
+ | === Zmiana jednego bitu === | ||
+ | |||
+ | Dokładnie tak zmiana jednego bitu powoduje że program przyjmie jakikolwiek klucz a mimo to wyświetli komunikat access granted. Jestem świadomy że ten program można złamać prostym narzędziem strings, ale nie o to w tej prezentacji chodzi. Poniżej zdjęcie dwóch debuggerów po lewej program oryginalny po prawej jego wersja z zmianą. Zaznaczyłem na ilustracji miejsce w którym trzeba zmienić jedn bit aby złamać program. | ||
+ | |||
{{ : | {{ : | ||
[[https:// | [[https:// | ||
+ | |||
+ | pliki: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | {{ : | ||