[ Pobierz całość w formacie PDF ]

Jeżeli przepiszemy wszystkie  prawdziwe instrukcje, otrzymamy nast¹pujÄ…cy kod,
z którego już bez problemu zrozumiesz, jak algorytm działa:
Cały powyższy kod jest ekwiwalentem instrukcji .
Dzi¹ki zastosowaniu SMC i wybraniu wi¹kszej liczby instrukcji do wykonania danego
zadania (zamiast zwykłego ) tak prymitywne zadanie, jakim jest wpisanie
wartoÅ›ci 1 do rejestru EAX, staje si¹ bardzo nieprzejrzystÄ… i skomplikowanÄ… operacjÄ….
Zrozumienie struktury takiego kodu jest bardzo trudne. W przypadku dłuższego algo-
rytmu bez debugera wykonanie tego zadania jest wr¹cz niemożliwe.
Ten przykÅ‚ad miaÅ‚ zilustrować nie tylko implementacj¹ SMC w praktyce, ale również
fakt, że czasami nie jest zÅ‚ym pomysÅ‚em napisanie nawet prostej rzeczy w sposób troch¹
bardziej złożony. Wynik i powodzenie obu tych technik możesz sam ocenić.
Rozdział 3. f& Ochrona przed deasemblacją101
Aktywny SMC
Jednym z najlepszych sposobów ochrony kodu programu jest jego dynamiczne genero-
wanie. Metod¹ t¹ już zalecaÅ‚em na poczÄ…tku pierwszego rozdziaÅ‚u, jednak dokÅ‚adniej
zdefiniowana i opisana jest dopiero tutaj. Moim staraniem było zgrupowanie imple-
mentacji SMC w jednym rozdziale  chociaż możliwe, że nie jest to najlepsze miejsce.
Nie chodzi w zasadzie o nic innego niż edycj¹ kodu programu bezpoÅ›rednio w trak-
cie pracy programu. Tak jak wpisujesz dane do zmiennych, rejestrów, itp., możesz
spokojnie modyfikować również kod programu. Jedynym problemem jest to, że obszar
w pami¹ci, do którego wpisujemy, musi mieć charakterystyk¹ , a wi¹c
musi w nim istnieć możliwość zapisu, w przeciwnym razie w programie zaistnieje wy-
jątek ( ). Ten temat jest ściśle związany z formatem PE,
wi¹c dowiesz si¹ wi¹cej dopiero w poÅ›wi¹conym temu zagadnieniu rozdziale. Tym-
czasem wystarczy zastosowanie funkcji , która z odpowiednimi pa-
rametrami umożliwi nam zapisywanie w uruchamialnym kodzie programu.
Aby zademonstrować prawdziwÄ… moc i możliwoÅ›ci SMC, wszystko pokaż¹ na naprawd¹
prostym przykÅ‚adzie. Przyjrzyj si¹ nast¹pujÄ…cemu kodowi  zapewne natychmiast b¹dzie
dla ciebie oczywistym efekt jego działania:
Konstrukcja z jest logicznie caÅ‚kowicie zb¹dna, ponieważ zawsze dojdzie do wy-
świetlenia komunikatu Kod programu nie został zmodyfikowany. W asemblerze kod
zapiszemy mniej wi¹cej tak:
Teraz do programu wstawimy wywołanie funkcji i spróbujemy przepi-
sać instrukcj¹ przez instrukcj¹ logicznie odwrotnÄ… . Tym sposobem odwróci-
my logik¹ caÅ‚ego algorytmu i powinno pojawić si¹ okienko komunikatu
z tekstem Kod programu zostaÅ‚ z powodzeniem zmodyfikowany. Kod wyglÄ…da nast¹-
pujÄ…co:
102 Cracking bez tajemnic
Wynikiem dziaÅ‚ania kodu po tej modyfikacji b¹dzie komunikat Kod programu zostaÅ‚
z powodzeniem zmodyfikowany.
Jak widzisz, naprawd¹ nie chodzi o żadnÄ… nauk¹. Wystarczy drobna modyfikacja
w postaci wywoÅ‚ania funkcji API poszerzajÄ…ca prawa dost¹pu o moż-
liwość zapisu (  odczyt i zapis) w okreÅ›lonym obszarze pami¹ci; w na-
szym przypadku w obszarze, gdzie wczytany jest uruchamialny kod programu.
Jak mówiÅ‚em, to naprawd¹ prymitywny przykÅ‚ad, ale wykorzystanie i potencjaÅ‚ SMC
ilustruje wyÅ›mienicie. Jak zawsze zależy tylko od ciebie, jak t¹ technik¹ dopracujesz
i ile czasu poÅ›wi¹cisz na projekt kodu programu.
Edycja kodu programu w trakcie pracy programu
Najróżniejsze metody zabezpieczania programów przed crackingiem wykorzystują
podstawowÄ… ide¹ aktywnego SMC  wi¹c edycja kodu programu w trakcie jego
dziaÅ‚ania należy bezspornie do tych najlepszych i również najcz¹Å›ciej stosowanych.
MożliwoÅ›ci sÄ… naprawd¹ nieograniczone  od szyfrowania kodu programu, zmian
poszczególnych instrukcji, ich celowego niszczenia, a z drugiej strony aż po wstawia-
nie i przesuwanie wielkich bloków danych, przepisywania całych funkcji itd. Zależy
to po prostu wyłącznie od twojej fantazji.
Na kilka możliwości wykorzystania edycji kodu programu w trakcie jego pracy już
kilkukrotnie zwracaÅ‚em uwag¹ w wielu miejscach tej książki i jeszcze si¹ z nimi spo-
tkasz. Ta cz¹ść rozdziaÅ‚u miaÅ‚a tylko pokazać, jakie to proste. W rozdziale siódmym [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • blondiii.pev.pl