1 Star 1 Fork 5

yenmuse / TSPlug

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
DXBind.h 5.67 KB
一键复制 编辑 原始数据 按行查看 历史
GJX 提交于 2017-08-10 10:29 . 天使插件
#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,
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);
};
C++
1
https://gitee.com/yenmuse/TSPlug.git
git@gitee.com:yenmuse/TSPlug.git
yenmuse
TSPlug
TSPlug
master

搜索帮助