From 79fa34dd27817b52ace63af0a5caab53a14566fb Mon Sep 17 00:00:00 2001 From: zeffy Date: Fri, 2 Mar 2018 17:09:04 -0800 Subject: [PATCH] Update patternfind.c --- src/wufuc/patternfind.CHANGES.txt | 9 +++++---- src/wufuc/patternfind.c | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/wufuc/patternfind.CHANGES.txt b/src/wufuc/patternfind.CHANGES.txt index d9df2b2..f1c8e0c 100644 --- a/src/wufuc/patternfind.CHANGES.txt +++ b/src/wufuc/patternfind.CHANGES.txt @@ -5,7 +5,8 @@ Licensed under Lesser GNU Public License 3.0 Changes made: -- Ported to C, removed dependency on C++ type vector -- Uses stdint.h type uint8_t instead of unsigned char (for readability) -- Renamed patternfind overloads to patternfind, patternfind_bytes, patternfind_pbyte -- Added VirtualProtect calls to patternwrite function to prevent access violation exceptions +- Ported to C, removed dependency on C++ type vector. +- Uses stdint.h type uint8_t instead of unsigned char (for readability). +- Renamed patternfind overloads to patternfind, patternfind_bytes, patternfind_pbyte. +- Added VirtualProtect to patternwrite function to prevent access violation exceptions. +- Added FlushInstructionCache to patternwrite function. diff --git a/src/wufuc/patternfind.c b/src/wufuc/patternfind.c index 2c2f0a6..4815375 100644 --- a/src/wufuc/patternfind.c +++ b/src/wufuc/patternfind.c @@ -150,6 +150,7 @@ void patternwrite(uint8_t *data, size_t datasize, const char *pattern) for ( size_t i = 0; i < writepatternsize; i++ ) patternwritebyte(&data[i], writepattern[i]); result = VirtualProtect(data, writepatternsize, OldProtect, &OldProtect); + FlushInstructionCache(GetCurrentProcess(), data, datasize); } free(writepattern);