Leidsin, et aeg niipalju edasiliikunud, võiks hakata vanu koode avalikustama, mis olid omal ajal aktuaalsed.  Antud kood oli mul kunagi ühes kommertstootes, mida üritati debuggeri abil töödelda, siis kui veel häkkimine oli popp. Tegin ühe lihtsa lahenduse, mis isegi toimis 40%....
Nagu ma kunagi ütlesin, hackerite vastu ei saa (peaaegu võimatu), neid tuleb võtta, kui sõpru, kes viitavad koodivigadele....
Kood aastast; 99 vist lausa
....
var
       CDDE : Boolean = true;
       handler : dword;
function  exception_handler(var   exceptRec         : exception_record;                           
                                                   const EstablisherFrame  : Pointer;                           
                                                   var   ContextRecord     : _Context):integer;stdcall;
begin
    asm nop end; CDDE:=false;
    inc(contextRecord.Eip);
    contextRecord.Dr0:=0;
    contextRecord.Dr1:=0;
    contextRecord.Dr2:=0;
    contextRecord.Dr3:=0;
    result:=0;
end;
begin
    handler:=dword(@exception_handler);
   asm  
       push handler  
       push fs:[0]  
       mov  fs:[0],esp
       int 3   nop  
       mov fs:[0],esp  
       add esp,8
  end;
  if CDDE then
   asm
     @@BadNews:  
     cld   
     cmp SysUtils.Win32Platform,windows.VER_PLATFORM_WIN32_WINDOWS         
     jne   @@NoCli
     @@cliLoop:
           cli 
     jmp @@cliLoop
     @@NoCli:
      wbinvd   
      jmp @@BadNews
   end;  
end;
 
end.
Kommentaare ei ole:
Postita kommentaar