Autor    :Bart
Temat    :Nagscreen
Program  :SystemCleaner98
Narzedzia:W32dsm,hiew(lub inny edytor)

Program SystemCleaner suy do usuwania zbdnych plikw z twardego dysku(temporary files).Program moemy uywac bezpatnie przez 35 dni po ktrych wywietla si nagscreen proszcy nas o numer seryjny.Zaczynamy
Uwaga!
Plik SystemCleaner98.exe kopiujemy do tego samego katalogu 2 razy,raz pod nazw SystemCleaner98.bak(kopia zapasowa) oraz 1.exe(uywany bedzie przez W32dsm)
1.Zmieniamy dat systemow o np.2 miesice do przodu
2.adujemy SystemCleaner(plik 1.exe) do debuggera z W32dsm(nie klikamy RUN)
3.Z menu wybieramy GOTO/PROGRAM ENTRY POINT(miejsce gdzie zaczyna sie wykonywanie programu)
4.Klikamy F8 a do momentu gdy zobaczymy ekran informujcy nas o zakoczeniu si czasu prbnego

:0049CEA0 8B03                    mov eax, dword ptr [ebx]
:0049CEA2 E875DFFEFF              call 0048AE1C <--sprawdzenie
:0049CEA7 A104F34900              mov eax, dword ptr [0049F304]

pod 49CEA2 nastpuje sprawdzenie warunkw trial oraz jezeli czas uytkowania programu zosta przekroczony wywietlenie nagscreena.
5.Teraz wystarczy tylko usun wywoanie funkcji sprawdzajcej uzywajc hexedytora
6.W W32dsm klikamy na >call 0048AE1C i paska statusu odczytujemy adres(offset) funkcji.
7.Uruchamiamy hiew wczytujemy SystemCleaner naciskamy F4 i zmieniamy tryb na dekodowanie,potem F5 i wpisujemy odczytany wczeniej adres 9C2A2h.

0009C2A2: E875DFFEFF                   call      00008A21C   -------- (1)

widzimy nasz funkcj.Teraz nale to zmieni aby nie bya ona wykonywana a wic naciskamy F3 i wpisujemy 5 razy 90h (nop-nie rb nic).Powinno to wyglda po zmianach tak

0009C2A2: 90                           nop
0009C2A3: 90                           nop
0009C2A4: 90                           nop
0009C2A5: 90                           nop
0009C2A6: 90                           nop

Zapisujemy zmiany(F9) i wychodzimy z hiew(F10).
8.Uruchamiamy tak zmieniony program i nagscreena ani ladu!W podobny sposb mona usun nag ktry standartowo pojawia si po kadym uruchomieniu programu,ale to pozostawiam wam.
9.Przykadowy patch w pascalu

==================================================
program patch;
uses crt;
var     f:file;
        t:integer;
       ch:char;

const nop=$90;           {nop            }
      adr=$9C2A2;        {adres funkcji  }
     name='SYSTEM~1.EXE';{nazwa pliku exe}
begin
 writeln('SystemCleaner98 patch by bART');
 writeln;
 assign(f,name);{nazwa musi by w formacie 8.3}
 {$I-}reset(f,1);{$I+}
  if IOresult<>0 then
  begin
   writeln('ERROR:File not found: '+name);
   halt;
  end;
 ch:=char(nop);
 for t:=0 to 4 do
 begin
 seek(f,adr+t);
 blockwrite(f,ch,1);
 end;
 writeln('Program successfuly patched!');
end.
==================================================
11.I to by byo na tyle,do nastpnego razu.