Generell kannst Du damit Code mehr oder weniger deaktivieren. Das muss nicht zwangsläufig der Code des Kopierschutzes sein. Ein Beispiel aus der Malwarebekämpfung: Viele Conficker Remover überschreiben den injezierten Conficker Code im Speicher mit einer NOP Slide und einem kleinen Shellcode um eine aktive Infektion zu deaktivieren. Siehe dazu z.B. den
Quelltext des Conficker Cleaners der Uni Bonn:
Code:
//create nop slide
memset(buffer, 0x90, pageSize);
for (addr=start; addr < nopslide_end; addr+=write_size){
write_size = min(pageSize, nopslide_end - addr);
if (!WriteProcessMemory(hProcess, (void *) addr, buffer, write_size, &written)) PrintErrorMessage("WriteProcessMemory");
}
Meiner Ansicht nach wäre es zwar eleganter zu überprüfen welche Threads eine Startadresse innerhalb der von Conficker erstellten Memorybereiche haben und diese dann zu suspenden bzw. zu terminieren, aber jeder macht das halt anders
.