Divert ReadFile() and CloseHandle().
This commit is contained in:
+1
-1
@@ -54,7 +54,7 @@ AC_CHECK_FUNCS(__getdelim __srefill __filbuf __srget __uflow)
|
||||
AC_CHECK_FUNCS(open64 lseek64 mmap64 fopen64 freopen64 ftello64 fseeko64 fsetpos64)
|
||||
AC_CHECK_FUNCS(__open64 __lseek64 __fopen64 __freopen64 __ftello64 __fseeko64 __fsetpos64)
|
||||
AC_CHECK_FUNCS(__fgets_chk __fgets_unlocked_chk __fread_chk __fread_unlocked_chk __read_chk __recv_chk __recvfrom_chk)
|
||||
AC_CHECK_FUNCS(CreateFileA CreateFileW)
|
||||
AC_CHECK_FUNCS(CreateFileA CreateFileW ReadFile CloseHandle)
|
||||
|
||||
AC_CHECK_TYPES(sighandler_t, [], [],
|
||||
[#define _GNU_SOURCE
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
/* #undef HAVE_AIO_READ */
|
||||
/* #undef HAVE_ARPA_INET_H */
|
||||
#define HAVE_BIND 1
|
||||
#define HAVE_CLOSEHANDLE 1
|
||||
#define HAVE_CONNECT 1
|
||||
#define HAVE_CREATEFILEA 1
|
||||
#define HAVE_CREATEFILEW 1
|
||||
@@ -72,6 +73,7 @@
|
||||
/* #undef HAVE_PRAGMA_INIT */
|
||||
/* #undef HAVE_PREAD */
|
||||
#define HAVE_PROCESS_H 1
|
||||
#define HAVE_READFILE 1
|
||||
/* #undef HAVE_READV */
|
||||
#define HAVE_RECV 1
|
||||
#define HAVE_RECVFROM 1
|
||||
|
||||
+42
-1
@@ -40,11 +40,20 @@
|
||||
static HANDLE (*ORIG(CreateFileA))(LPCTSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES,
|
||||
DWORD, DWORD, HANDLE);
|
||||
#endif
|
||||
|
||||
#if defined HAVE_CREATEFILEA
|
||||
static HANDLE (*ORIG(CreateFileW))(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES,
|
||||
DWORD, DWORD, HANDLE);
|
||||
#endif
|
||||
#if defined HAVE_READFILE
|
||||
static BOOL (*ORIG(ReadFile))(HANDLE, LPVOID, DWORD, LPDWORD, LPOVERLAPPED);
|
||||
#endif
|
||||
#if defined HAVE_CLOSEHANDLE
|
||||
static BOOL (*ORIG(CloseHandle))(HANDLE);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* CreateFileA, CreateFileW
|
||||
*/
|
||||
|
||||
#if defined HAVE_CREATEFILEA
|
||||
HANDLE NEW(CreateFileA)(LPCTSTR lpFileName, DWORD dwDesiredAccess,
|
||||
@@ -72,15 +81,47 @@ HANDLE NEW(CreateFileW)(LPCWSTR lpFileName, DWORD dwDesiredAccess,
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* ReadFile
|
||||
*/
|
||||
|
||||
#if defined HAVE_READFILE
|
||||
BOOL NEW(ReadFile)(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead,
|
||||
LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped)
|
||||
{
|
||||
fprintf(stderr, "ReadFile diverted!\n");
|
||||
return ORIG(ReadFile)(hFile, lpBuffer, nNumberOfBytesToRead,
|
||||
lpNumberOfBytesRead, lpOverlapped);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* CloseHandle
|
||||
*/
|
||||
|
||||
#if defined HAVE_CLOSEHANDLE
|
||||
BOOL NEW(CloseHandle)(HANDLE hObject)
|
||||
{
|
||||
fprintf(stderr, "CloseHandle diverted!\n");
|
||||
return ORIG(CloseHandle)(hObject);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Win32 function table */
|
||||
#if defined _WIN32
|
||||
zzuf_table_t table_win32[] =
|
||||
{
|
||||
#if defined HAVE_CLOSEHANDLE
|
||||
DIVERT(CloseHandle),
|
||||
#endif
|
||||
#if defined HAVE_CREATEFILEA
|
||||
DIVERT(CreateFileA),
|
||||
#endif
|
||||
#if defined HAVE_CREATEFILEW
|
||||
DIVERT(CreateFileW),
|
||||
#endif
|
||||
#if defined HAVE_READFILE
|
||||
DIVERT(ReadFile),
|
||||
#endif
|
||||
DIVERT_END
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user