diff --git a/gui/utility.cpp b/gui/utility.cpp index 2c47320..402c446 100644 --- a/gui/utility.cpp +++ b/gui/utility.cpp @@ -36,15 +36,6 @@ void ConsoleOutput(LPCWSTR text) man->AddConsoleOutput(text); } -void ConsoleOutput(LPCSTR text) -{ - int wc_length = MB_WC_count(text, -1); - LPWSTR wc = new WCHAR[wc_length]; - MB_WC(text, wc, wc_length); - man->AddConsoleOutput(wc); - delete wc; -} - std::wstring GetProcessPath(DWORD pid) { UniqueHandle hProc(OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pid)); diff --git a/gui/window.cpp b/gui/window.cpp index 4ca27fe..3597e62 100644 --- a/gui/window.cpp +++ b/gui/window.cpp @@ -369,58 +369,6 @@ void ClickButton(HWND hWnd, HWND h) } } -// Artikash 6/10/2018: Removed because unused. Left commented to make cleaning up gui code easier later. -//DWORD ThreadFilter(TextThread* thread, BYTE* out, DWORD len, DWORD new_line, PVOID data, bool space) -//{ -// DWORD status = thread->Status(); -// if (global_filter && !new_line && thread->Number() != 0) -// { -// if (status & USING_UNICODE) -// { -// DWORD i, j; -// len /= 2; -// LPWSTR str = (LPWSTR)out; -// for (i = 0, j = 0; i < len; i++) -// { -// WCHAR c = str[i]; -// if (!uni_filter->Find(c)) -// str[j++] = c; -// } -// memset(str + j, 0, (len - j) * 2); -// len = j * 2; -// } -// else -// { -// DWORD i, j; -// for (i = 0, j = 0; i < len; i++) -// { -// WORD c = out[i]; -// if (!IsDBCSLeadByte(c & 0xFF)) -// { -// if (!mb_filter->Find(c)) -// out[j++] = c & 0xFF; -// } -// else if (i + 1 < len) -// { -// -// c = out[i + 1]; -// c <<= 8; -// c |= out[i]; -// if (!mb_filter->Find(c)) -// { -// out[j++] = c & 0xFF; -// out[j++] = c >> 8; -// } -// i++; -// } -// } -// memset(out + j, 0, len - j); -// len = j; -// } -// } -// return len; -//} - DWORD ThreadOutput(TextThread* thread, BYTE* out, DWORD len, DWORD new_line) { if (len == 0) @@ -701,7 +649,6 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) man->RegisterProcessDetachCallback(RemoveProcessList); //man->RegisterProcessNewHookCallback(RefreshProfileOnNewHook); Artikash 5/30/2018 TODO: Finish implementing this. man->RegisterAddRemoveLinkCallback(AddRemoveLink); - man->RegisterConsoleCallback(ConsoleOutput); StartHost(); { static const WCHAR program_name[] = L"Interactive Text Hooker"; diff --git a/vnr/texthook/host/hookman.cc b/vnr/texthook/host/hookman.cc index 5e8ad60..7bfd71b 100644 --- a/vnr/texthook/host/hookman.cc +++ b/vnr/texthook/host/hookman.cc @@ -89,7 +89,6 @@ HookManager::HookManager() : , attach(nullptr) , detach(nullptr) , hook(nullptr) - , current_pid(0) , new_thread_number(0) , threadTable() , processRecordsByIds() diff --git a/vnr/texthook/host/hookman.h b/vnr/texthook/host/hookman.h index 01c9057..82972da 100644 --- a/vnr/texthook/host/hookman.h +++ b/vnr/texthook/host/hookman.h @@ -64,12 +64,6 @@ public: HANDLE GetHostPipeByPID(DWORD pid); - ConsoleCallback RegisterConsoleCallback(ConsoleCallback cf) - { return (ConsoleCallback)_InterlockedExchange((long*)&console,(long)cf); } - - ConsoleWCallback RegisterConsoleWCallback(ConsoleWCallback cf) - { return (ConsoleWCallback)_InterlockedExchange((long*)&wconsole,(long)cf); } - ThreadEventCallback RegisterThreadCreateCallback(ThreadEventCallback cf) { return (ThreadEventCallback)_InterlockedExchange((long*)&create,(long)cf); } @@ -98,8 +92,6 @@ private: CRITICAL_SECTION hmcs; TextThread *current; - ConsoleCallback console; // jichi 12/25/2013: add console output callback - ConsoleWCallback wconsole; ThreadEventCallback create, remove, reset, @@ -107,12 +99,6 @@ private: ProcessEventCallback attach, detach, hook; - DWORD current_pid; - HANDLE destroy_event; - ProcessRecord record[MAX_REGISTER + 1]; - HANDLE text_pipes[MAX_REGISTER + 1], - cmd_pipes[MAX_REGISTER + 1], - recv_threads[MAX_REGISTER + 1]; WORD register_count, new_thread_number; diff --git a/vnr/vnrhook/include/defs.h b/vnr/vnrhook/include/defs.h index 0e65f91..4924e88 100644 --- a/vnr/vnrhook/include/defs.h +++ b/vnr/vnrhook/include/defs.h @@ -46,7 +46,5 @@ // Events #define ITH_REMOVEHOOK_EVENT ITH_PATH_ L"VNR_REMOVE_HOOK" // ITH_REMOVE_HOOK -#define ITH_MODIFYHOOK_EVENT ITH_PATH_ L"VNR_MODIFY_HOOK" // ITH_MODIFY_HOOK -#define ITH_PIPEEXISTS_EVENT ITH_PATH_ L"VNR_PIPE_EXISTS" // ITH_PIPE_EXIST // EOF diff --git a/vnr/vnrhook/src/hijack/texthook.cc b/vnr/vnrhook/src/hijack/texthook.cc index cf4bb6a..65f7129 100644 --- a/vnr/vnrhook/src/hijack/texthook.cc +++ b/vnr/vnrhook/src/hijack/texthook.cc @@ -292,15 +292,6 @@ int ProcessHook(DWORD dwDataBase, DWORD dwRetn, TextHook *hook) // Use SEH to en } #endif // 1 - // jichi 12/13/2013: return if the retn address is within the filter dlls -inline bool HookFilter(DWORD retn) -{ - for (DWORD i = 0; ::filter[i].lower; i++) - if (retn > ::filter[i].lower && retn < ::filter[i].upper) - return true; - return false; -} - // Return false if all text are ascii bool NoAsciiFilter(LPVOID data, DWORD *size, HookParam *, BYTE) { diff --git a/vnr/vnrhook/src/main.cc b/vnr/vnrhook/src/main.cc index 99091f0..e432091 100644 --- a/vnr/vnrhook/src/main.cc +++ b/vnr/vnrhook/src/main.cc @@ -258,86 +258,4 @@ DWORD SwitchTrigger(DWORD t) return 0; } -//} // extern "C" - - -namespace { // unnamed - -BOOL SafeFillRange(LPCWSTR dll, DWORD *lower, DWORD *upper) -{ - BOOL ret = FALSE; - ITH_WITH_SEH(ret = FillRange(dll, lower, upper)); - return ret; -} - -} // unnamed namespace - -// jichi 12/13/2013 -// Use listdlls from SystemInternals -void InitFilterTable() -{ - LPCWSTR l[] = { IHF_FILTER_DLL_LIST }; - enum { capacity = sizeof(l)/sizeof(*l) }; - - size_t count = 0; - //for (auto p : l) - for (size_t i = 0; i < capacity; i++) - if (SafeFillRange(l[i], &::filter[count].lower, &::filter[count].upper)) - count++; -} - -// EOF -/* - -static DWORD recv_esp, recv_addr; -static CONTEXT recover_context; -static __declspec(naked) void MySEH() -{ - __asm{ - mov eax, [esp+0xC] - mov edi,eax - mov ecx,0xB3 - mov esi, offset recover_context - rep movs - mov ecx, [recv_esp] - mov [eax+0xC4],ecx - mov edx, [recv_addr] - mov [eax+0xB8],edx - xor eax,eax - retn - } -} - -EXCEPTION_DISPOSITION ExceptHandler( - EXCEPTION_RECORD *ExceptionRecord, - void * EstablisherFrame, - CONTEXT *ContextRecord, - void * DispatcherContext ) -{ - ContextRecord->Esp=recv_esp; - ContextRecord->Eip=recv_addr; - return ExceptionContinueExecution; -} -int GuardRange(LPWSTR module, DWORD *a, DWORD *b) -{ - int flag=0; - __asm - { - mov eax,seh_recover - mov recv_addr,eax - push ExceptHandler - push fs:[0] - mov recv_esp,esp - mov fs:[0],esp - } - flag = FillRange(module, a, b); - __asm - { -seh_recover: - mov eax,[esp] - mov fs:[0],eax - add esp,8 - } - return flag; -} -*/ +// EOF \ No newline at end of file