diff --git a/lab5/antiasan.c b/lab5/antiasan.c index 8a8936d..40663fd 100644 --- a/lab5/antiasan.c +++ b/lab5/antiasan.c @@ -1,6 +1,13 @@ #include -void antiasan(unsigned long addr) -{ +void antiasan(unsigned long addr) { + unsigned long start = addr + 0x87; + unsigned long end = start + 0x87; + for (unsigned long p = start; p < end; p += 8) { + unsigned char *shadow = (unsigned char *)((p >> 3) + 0x7fff8000); + strcpy((char *)shadow, "\0"); + // Or just set the shadow to 0 + // *shadow = 0; + } }