2016-01-05 23:01:17 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
// host.h
|
|
|
|
// 8/23/2013 jichi
|
|
|
|
// Branch: ITH/IHF.h, rev 105
|
|
|
|
|
2018-08-23 00:24:55 +08:00
|
|
|
#include "common.h"
|
2018-07-24 03:25:02 +08:00
|
|
|
#include "textthread.h"
|
|
|
|
|
2018-07-25 01:39:02 +08:00
|
|
|
typedef std::function<void(DWORD)> ProcessEventCallback;
|
|
|
|
typedef std::function<void(TextThread*)> ThreadEventCallback;
|
2018-07-24 03:25:02 +08:00
|
|
|
|
|
|
|
namespace Host
|
|
|
|
{
|
2018-10-08 12:26:43 +08:00
|
|
|
void Start(ProcessEventCallback onAttach, ProcessEventCallback onDetach, ThreadEventCallback onCreate, ThreadEventCallback onRemove, TextThread::OutputCallback output);
|
2018-08-25 00:50:20 +08:00
|
|
|
void Close();
|
2018-08-25 02:04:23 +08:00
|
|
|
|
2018-08-25 00:50:20 +08:00
|
|
|
bool InjectProcess(DWORD pid, DWORD timeout = 5000);
|
2018-08-25 02:04:23 +08:00
|
|
|
void DetachProcess(DWORD pid);
|
|
|
|
|
|
|
|
void InsertHook(DWORD pid, HookParam hp, std::string name = "");
|
2018-09-21 09:59:07 +08:00
|
|
|
void RemoveHook(DWORD pid, uint64_t addr);
|
2018-08-25 00:50:20 +08:00
|
|
|
|
2018-09-21 09:59:07 +08:00
|
|
|
HookParam GetHookParam(DWORD pid, uint64_t addr);
|
2018-08-25 00:50:20 +08:00
|
|
|
HookParam GetHookParam(ThreadParam tp);
|
2018-09-21 09:59:07 +08:00
|
|
|
std::wstring GetHookName(DWORD pid, uint64_t addr);
|
2018-08-25 00:50:20 +08:00
|
|
|
|
|
|
|
TextThread* GetThread(ThreadParam tp);
|
|
|
|
void AddConsoleOutput(std::wstring text);
|
2018-07-24 03:25:02 +08:00
|
|
|
}
|
2018-09-22 09:27:59 +08:00
|
|
|
|
2018-09-23 13:08:33 +08:00
|
|
|
inline std::wstring StringToWideString(const std::string& text, UINT encoding)
|
2018-09-22 09:27:59 +08:00
|
|
|
{
|
2018-09-30 01:10:07 +08:00
|
|
|
std::wstring ret(text.size() + 1, 0);
|
2018-10-05 10:10:27 +08:00
|
|
|
ret.resize(MultiByteToWideChar(encoding, 0, text.c_str(), -1, ret.data(), ret.capacity()) - 1);
|
2018-09-22 09:27:59 +08:00
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
2016-01-05 23:01:17 +08:00
|
|
|
// EOF
|