mirror of https://github.com/qwqdanchun/FAQ.git
Fix bugs & update logger
This commit is contained in:
parent
67feb39214
commit
e18a57bc76
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue