Kood arhiivist nr 1 (ära luba debuggerit)

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.

Lisa kommentaar

Täida nõutavad väljad või kliki ikoonile, et sisse logida:

WordPress.com Logo

Sa kommenteerid kasutades oma WordPress.com kontot. Logi välja /  Muuda )

Google photo

Sa kommenteerid kasutades oma Google kontot. Logi välja /  Muuda )

Twitter picture

Sa kommenteerid kasutades oma Twitter kontot. Logi välja /  Muuda )

Facebook photo

Sa kommenteerid kasutades oma Facebook kontot. Logi välja /  Muuda )

Connecting to %s


%d bloggers like this: