windows - suspender processen hvis du skriver til en bestemt adresse

Indlæg af Hanne Mølgaard Plasc

Problem



På Windows (helst XP) er det generelt muligt at suspendere en proces, når den skriver til en bestemt adresse (i det virtuelle adresserum)?


Problemet er kompliceret af det faktum, at indlæste DLL'er udfører skriveoperationen og ikke kode i (PE) -billedet af processen selv.

Bedste reference


Du kan beskytte den side, der indeholder interessepunktet med VirtualProtect og PAGE\_GUARD eller andre muligheder og få en undtagelse ramt på adresseskrivning. En sådan undtagelse kan håndteres af uhåndteret undtagelsesfilter (det afhænger af, at applikationen muligvis håndterer det selv) eller ved hjælp af procesfejlprogrammer, som f.eks. Kendt debugger eller brugerdefineret programfejlfinding via API.


Fejlprogrammet kan suspendere processen om nødvendigt, eller tage en minidump med et øjebliksbillede. Se MSDN EXCEPTION\_DEBUG\_EVENT for detaljer: [4]



  Genereres, når der opstår en undtagelse i processen, der bliver fejlet.
  Mulige undtagelser omfatter forsøg på at få adgang til utilgængelig hukommelse,
  udfører breakpoint instruktioner, forsøger at opdele med nul eller
  enhver anden undtagelse nævnt i Struktureret Undtagelseshåndtering.

  
  Structuren DEBUG\_EVENT indeholder en EXCEPTION\_DEBUG\_INFO struktur.
  Denne struktur beskriver undtagelsen, der forårsagede debugging
  begivenhed.