Fix bugs & update logger

This commit is contained in:
SardineFish 2021-03-03 02:03:54 +08:00
parent 67feb39214
commit e18a57bc76
No known key found for this signature in database
GPG Key ID: 595C365DF7B679D0
4 changed files with 19 additions and 7 deletions

View File

@ -40,17 +40,17 @@ void ModuleHook::commit()
logf("Detour transaction successfully committed");
}
void ModuleHook::hookFunc(const char* name, PVOID* originalFunc, void*& hookFunc)
void ModuleHook::hookFunc(const char* logName, const char* name, PVOID* originalFunc, void* hookFunc)
{
auto funcAddr = GetProcAddress(hMod, "?execDML@CppSQLite3DB@@QAEHPBDPAH@Z");
logf("SQLite3DB::execDML: %p", funcAddr);
auto funcAddr = GetProcAddress(hMod, name);
logf("%s: %p", logName, funcAddr);
if(funcAddr == NULL)
{
logf("Get null of function %s", name);
}
DetourTransactionBegin();
logf("Try hook SQLite3DB::execDML");
logf("Try hook %s", logName);
*originalFunc = (void*)funcAddr;
auto err = DetourAttach(originalFunc, hookFunc);
if(err != NO_ERROR)

View File

@ -11,5 +11,5 @@ public:
void commit();
void hookFunc(const char* name, PVOID* originalFunc, void*& hookFunc);
void hookFunc(const char* logName, const char* name, PVOID* originalFunc, void* hookFunc);
};

View File

@ -127,7 +127,16 @@ DWORD WINAPI thread_func(LPVOID lpParam)
hook.begin();
auto fn = &HookSQLite3DB::execDML;
hook.hookFunc("?execDML@CppSQLite3DB@@QAEHPBDPAH@Z", (void**)&OriginalSQLite3DB_execDML, (void*&)fn);
hook.hookFunc("SQLite3DB::execDML",
"?execDML@CppSQLite3DB@@QAEHPBDPAH@Z",
(void**)&OriginalSQLite3DB_execDML,
(void*&)fn);
auto fn2 = &HookSQLite3DB::execQueryEx;
hook.hookFunc("SQLite3DB::execQueryEx",
"?execQueryEx@CppSQLite3DB@@QAE?AVCppSQLite3Query@@PBDPAHH@Z",
(void**)&OriginalSQLite3DB_execQueryEx,
(void*&)fn2);
hook.commit();

View File

@ -17,7 +17,10 @@ namespace Logger
{
IPEndPoint remote = new IPEndPoint(IPAddress.Any, 0);
var data = server.Receive(ref remote);
Console.WriteLine("[{0}] {1}", DateTime.Now.ToShortTimeString(), Encoding.UTF8.GetString(data));
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.Write("[{0}] ", DateTime.Now.ToLongTimeString());
Console.ResetColor();
Console.WriteLine(Encoding.UTF8.GetString(data));
}
}
}