123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- #pragma once
- #include "TSMessage.h"
- #include "TSFindPicture.h"
- typedef bool(__stdcall* MySetWindowHook)(BOOL, DWORD);
- //TSMOUSE_MODE 鼠标模式
- #define MOUSE_NORMAL 0x00000001L
- #define MOUSE_WINDOW 0x00000002L
- #define MOUSE_API 0x00000004L
- //TSKEYBOARD_MODE 窗口模式
- #define KEY_NORMAL 0x00000001L
- #define KEY_WINDOW 0x00000002L
- #define KEY_API 0x00000004L
- #define KEY_STATEAPI 0x00000008L
- #define KEY_LOCKAPI 0x00000010L
- //TSDISPLAY_MODE 显示模式
- #define DISPLAY_GDI 0x00000001L
- #define DISPLAY_DX_2D 0x00000002L
- #define DISPLAY_DX_3D 0x00000004L
- #define DISPLAY_NORMAL 0x00000008L
- #define DISPLAY_DX2 0x00000010L
- #define DISPLAY_GDI2 0x00000020L
- //定义创建内存映射的名字宏
- #define TS_MAPVIEW_NAME "TSMAPVIEW:REMOTECTRL"
- //定义创建绑定窗口标识名字宏
- //定义创建绑定窗口标识名字宏
- #define TS_BINDWINDOW_GDIWINDOW "TSBINDWINDOWNAME_GDIWINDOW:"
- #define TS_BINDWINDOW_SETWINDOWHOOK "TSBINDWINDOWNAME_SETWINDOWHOOK:"
- #define TS_BINDWINDOW_IME "TSBINDWINDOWNAME_IME:"
- #define TS_BINDWINDOW_IME101 "TSBINDWINDOWNAME_IME101:"
- #define TS_BINDWINDOW_103 "TSBINDWINDOWNAME_103:"
- #define TS_EVENT_IMEHOOK "TSEVENT:IMEHOOK:"
- #define TS_EVENT_WRITEMEM L"TSEVENT:WRITEMEM:"
- //定义一个事件内核对象名,用于处理图色处理API
- #define TS_EVENT_NAME L"TSEVENT:DISPLAY"
- #define TS_EVENT_FINDPIC L"TSEVENT:FINDPIC"
- #define TS_EVENT_FINDSTR L"TSEVENT:FINDSTR"
- #define TS_EVENT_FINDCOLOR L"TSEVENT:FINDCOLOR"
- #define TS_EVENT_KEYHOOKNAME L"TSEVENT:KEYHOOK"
- #define TS_IMEUNHOOKAPI_NAME L"TSEVENT:IMEUNHOOKAPI"
- #define TS_BIND201_NAME L"TSEVENT:BIND201"
- //定义内存映射最大值
- #define TS_MAFVIEW_MAXSIZE 1024*5
- //绑定模式
- enum BIND_MODE
- {
- BIND_WINHOOK, // HOOK注入;
- BIND_IME, // 输入法注入;
- BIND_IME101 = 101,
- BIND_103 = 103,
- BIND_201 = 201,
- BIND_203 = 203,
- BIND_MAX,
- };
- ////绑定的显示模式
- //enum DISPLAY_MODE
- //{
- // DISPLAY_GDI,
- // DISPLAY_DX,
- // DISPLAY_MAX,
- //};
- class DXBind
- {
- public:
- //////////////////////////////////这里是本地使用的API接口////////////////////////////////////
- //MyFindPictureClass fpic;
- //绑定操作
- bool bind(HWND wnd, DWORD keyMod, DWORD mouseMod, DWORD disMod, BIND_MODE bindMode);
- bool UnBind();
- //发送消息
- LRESULT SendMsg(UINT Msg, WPARAM wParam = 0, LPARAM lParam = 0) {
- return ::SendMessage(m_mousekeyhwnd, Msg, wParam, lParam);
- }
- bool SetWindowHookExInject(HWND wnd);
- //输入法注入
- bool IMEInject(HWND wnd);
- //201注入
- bool Inject201();
- //
- int findPic(LONG x1, LONG y1, LONG x2, LONG y2, wchar_t* pic_name, wchar_t* color, DOUBLE sim, LONG dir, LONG& intX, LONG& intY, wchar_t* retstring = NULL, int type = 0);
- //
- int findColor(LONG x1, LONG y1, LONG x2, LONG y2, int color, DOUBLE sim, LONG dir, LONG& intX, LONG& intY, wchar_t* colorstr = NULL, wchar_t* retstring = NULL, wchar_t* MultiColor = NULL);
- int GetColor(LONG x, LONG y, BSTR sColor);
- bool CmpColor(LONG x, LONG y, BSTR sColor, DOUBLE sim);
- bool TSSetpath(wchar_t* path);
- //
- void setIsBind(bool isbind);
- int Capture(LONG x1, LONG y1, LONG x2, LONG y2, wchar_t* pic_path, int pictype);
- int CaptureGif(LONG x1, LONG y1, LONG x2, LONG y2, wchar_t* pic_path, int delay, int time);
- bool TSSetDict(int index, wchar_t* filepath);
- bool TSUseDict(int index);
- int Ocr(LONG x1, LONG y1, LONG x2, LONG y2, wchar_t* color, DOUBLE sim, int type = 0);
- //Findstrtype=0,Findstr=Findstr;Findstrtype=1,Findstr=FindstrFast;
- int Findstr(LONG x1, LONG y1, LONG x2, LONG y2, wchar_t* findstring, wchar_t* color, DOUBLE sim, LONG& intX, LONG& intY, BYTE Findstrtype, wchar_t* retstring = NULL, int type = 0);
- //判断是否卡屏
- int IsDisplayDead(LONG x1, LONG y1, LONG x2, LONG y2, int times);
- bool TSGetScreenData(LONG x1, LONG y1, LONG x2, LONG y2);
- //
- bool isBind();
- //////////////////////////////////这里是注入游戏远程使用的API接口///////////////////////////////
- //拦截API,会起一个循环检测的线程
- bool hookApi();
- bool DownCpu(DWORD sleeptime);
- bool TSMatchPicName(wchar_t* pic_name, wchar_t* ret_name);
- bool TSGetMachineCode(wchar_t* retcode);
- void mysleep(DWORD delaytime);
- void InitGdiNormal();
- bool TSEnableRealMouse(LONG X, LONG Y);
- DWORD TSRealKeyMousSleepTime(DWORD type);
- void TSMoveToEx(ULONG x, ULONG y, ULONG w, ULONG h, wchar_t* retstring);
- public:
- DWORD ColorDataInfo[2000][2000];
- COLORREF** pWndBmpBuffer;
- short** pWndBmpStrxy;
- BYTE* pBuffer;
- DWORD winver;
- DWORD nPid;
- DWORD KeyDownsleep;//键盘单击延时
- DWORD NormalKeysleep;
- DWORD MouseClicksleep;//鼠标单击延时
- DWORD WindowsKeyMouseClicksleep;// Windows模式键盘\鼠标单击延时
- DWORD NormalClicksleep;
- HWND m_hwnd; //被绑定的窗口的句柄
- HWND m_mousekeyhwnd; //鼠标键盘后台窗口绑定
- HWND m_parenthwnd; //父窗口句柄
- HANDLE m_eventMsg;
- int BindMode;
- MySetWindowHook mSetHook;
- wchar_t m_SetPath[MAX_PATH];
- wchar_t m_Retstr[MAX_PATH * 100];
- short LastMouseMoveX;
- short LastMouseMoveY;
- bool m_isBind;
- DWORD m_displayMode;
- DWORD m_keyMode;
- DWORD m_mouseMode;
- DWORD m_dwExStyle;
- bool g_IsSYSKEY;
- bool IsNpProtect;
- CMessageData* pData;
- bool Isdxkmprotect; //dx键鼠不被恶意检测盾
- bool Isdxantiapi;//开启dx.public.anti.api保护
- pMyDictInfo MyDictCount[20]; //存储当前所有字库,默认最大字库个数为20个
- int nMaxStrHight[20]; //记录每个字库中,最高的字高.
- int nMyDictCountsize[20]; //记录每个字库的数量
- int NowUsingDictIndex;//记录当前正在使用字库的下标
- bool Isgraphicprotect;//防止图色检测盾
- bool isdxpic;
- BYTE CallCode[0x50];//201注入的代码
- bool IsTSEnableRealMouse;
- bool IsTSEnableRealKeypad;
- LONG mousedelay;
- LONG mousestep;
- DWORD GDI_dwExStyle;
- private:
- int CallCodelen;
- LPVOID Alloaddr;//201注入的申请到的内存地址
- HKL MSetUpIME;
- HKL SysIME;
- int Colors[MAX_PATH];//颜色
- BYTE m_colorOffR[MAX_PATH]; // R的偏移量
- BYTE m_colorOffG[MAX_PATH]; // G的偏移量
- BYTE m_colorOffB[MAX_PATH]; // B的偏移量
- public:
- DXBind(void);
- ~DXBind(void);
- };
|