2018-07-26 12:48:18 +08:00
|
|
|
#ifndef MISC_H
|
|
|
|
#define MISC_H
|
|
|
|
|
2018-08-23 00:24:55 +08:00
|
|
|
#include "qtcommon.h"
|
2018-08-25 00:50:20 +08:00
|
|
|
#include "types.h"
|
2018-07-26 12:48:18 +08:00
|
|
|
|
2018-07-27 13:42:21 +08:00
|
|
|
QString GetFullModuleName(DWORD processId, HMODULE module = NULL);
|
2018-07-26 12:48:18 +08:00
|
|
|
QString GetModuleName(DWORD processId, HMODULE module = NULL);
|
2018-09-10 10:37:48 +08:00
|
|
|
QMultiHash<QString, DWORD> GetAllProcesses();
|
2018-08-25 02:24:46 +08:00
|
|
|
std::optional<HookParam> ParseCode(QString HCode);
|
2018-08-05 06:01:59 +08:00
|
|
|
QString GenerateCode(HookParam hp, DWORD processId);
|
2018-07-26 12:48:18 +08:00
|
|
|
|
2018-08-05 06:01:59 +08:00
|
|
|
static QString CodeInfoDump =
|
|
|
|
"Enter hook code\r\n\
|
2018-10-31 08:50:50 +08:00
|
|
|
/H{A|B|W|S|Q|V}[N][codepage#]data_offset[*deref_offset1][:split_offset[*deref_offset2]]@addr[:module[:func]]\r\n\
|
2018-08-05 06:01:59 +08:00
|
|
|
OR\r\n\
|
|
|
|
Enter read code\r\n\
|
2018-10-31 08:50:50 +08:00
|
|
|
/R{S|Q|V}[#codepage][*deref_offset|0]@addr\r\n\
|
|
|
|
All numbers except codepage in hexadecimal\r\n\
|
2018-08-03 14:32:05 +08:00
|
|
|
A/B: Shift-JIS char little/big endian\r\n\
|
|
|
|
W: UTF-16 char\r\n\
|
|
|
|
S/Q/V: Shift-JIS/UTF-16/UTF-8 string\r\n\
|
|
|
|
Negatives for data_offset/sub_offset refer to registers\r\n\
|
|
|
|
-4 for EAX, -8 for ECX, -C for EDX, -10 for EBX, -14 for ESP, -18 for EBP, -1C for ESI, -20 for EDI\r\n\
|
2018-08-05 06:29:43 +08:00
|
|
|
* means dereference pointer+deref_offset";
|
2018-07-26 12:48:18 +08:00
|
|
|
#endif // MISC_H
|