易语言APIHOOK应用实例源码
系统结构:还原,初始化,查找函数入口地址,取跳回API代码地址,生成跳转代码,子程序1,MySetWindowTextA,输出调试文本_字节集,字节集到数值文本,数值文本到字节集,字节集到十六进制文本,十进制整数到十六进制文本,十六进制文本到十进制整数,SetWindowLongA,CallWindowProcA,画矩形_,VirtualProtect,GetProcAddress,GetModuleHandleA,CreatePatternBrush,设置背景模式_,填充矩形_,扩展文本描绘_,取对象句柄_,选入设备场景_,删除对象_,WindowFromDC,创建画笔_,释放设备场景_,取设备场景_,取窗口全部设备场景_,取得边界矩形_,取设备场景起点_,取得场景窗口范围_,取得窗口区域_,取设备场景刷子颜色_,取背景色_,SetWindowTextA,
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |
======APIHOOK
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 还原
| |
| |------ 初始化
| |
| |------ 查找函数入口地址
| |
| |------ 取跳回API代码地址
| |
| |------ 生成跳转代码
| |
| |
======窗口程序集1
| |
| |------ _窗口1_创建完毕
| |
| |------ 子程序1
| |
| |------ MySetWindowTextA
| |
| |------ _时钟1_周期事件
| |
| |
======程序集2
| |
| |------ 输出调试文本_字节集
| |
| |------ 字节集到数值文本
| |
| |------ 数值文本到字节集
| |
| |------ 字节集到十六进制文本
| |
| |------ 十进制整数到十六进制文本
| |
| |------ 十六进制文本到十进制整数
| |
| |
======调用的Dll
| |
| |---[dll]------ SetWindowLongA
| |
| |---[dll]------ CallWindowProcA
| |
| |---[dll]------ 画矩形_
| |
| |---[dll]------ VirtualProtect
| |
| |---[dll]------ GetProcAddress
| |
| |---[dll]------ GetModuleHandleA
| |
| |---[dll]------ CreatePatternBrush
| |
| |---[dll]------ 设置背景模式_
| |
| |---[dll]------ 填充矩形_
| |
| |---[dll]------ 扩展文本描绘_
| |
| |---[dll]------ 取对象句柄_
| |
| |---[dll]------ 选入设备场景_
| |
| |---[dll]------ 删除对象_
| |
| |---[dll]------ WindowFromDC
| |
| |---[dll]------ 创建画笔_
| |
| |---[dll]------ 释放设备场景_
| |
| |---[dll]------ 取设备场景_
| |
| |---[dll]------ 取窗口全部设备场景_
| |
| |---[dll]------ 取得边界矩形_
| |
| |---[dll]------ 取设备场景起点_
| |
| |---[dll]------ 取得场景窗口范围_
| |
| |---[dll]------ 取得窗口区域_
| |
| |---[dll]------ 取设备场景刷子颜色_
| |
| |---[dll]------ 取背景色_
| |
| |---[dll]------ SetWindowTextA
调用的DLL命令:
.DLL命令 SetWindowLongA, 子程序指针, , "SetWindowLongA"
.参数 hWnd, 整数型
.参数 nIndex, 整数型
.参数 dwNewLong, 子程序指针
.DLL命令 CallWindowProcA, 整数型, , "CallWindowProcA"
.参数 lpPrevWndFunc, 整数型
.参数 hWnd, 整数型
.参数 Msg, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.DLL命令 画矩形_, 整数型, "gdi32.dll", "Rectangle", , Rectangle
.参数 设备场景句柄, 整数型, , hdc
.参数 左上角横坐标, 整数型, , X
.参数 左上角纵坐标, 整数型, , Y
.参数 右下角横坐标, 整数型, , X1
.参数 右下角纵坐标, 整数型, , Y1
.DLL命令 VirtualProtect, 逻辑型
.参数 lpAddress, 整数型
.参数 dwSize, 整数型
.参数 flNewProtect, 整数型
.参数 lpflOldProtect, 整数型, 传址
.DLL命令 GetProcAddress, 整数型
.参数 hModule, 整数型
.参数 lpProcName, 文本型
.DLL命令 GetModuleHandleA, 整数型
.参数 lpModuleName, 文本型
.DLL命令 CreatePatternBrush, 整数型, , "CreatePatternBrush"
.参数 位图句柄, 整数型
.DLL命令 设置背景模式_, 整数型, "gdi32", "SetBkMode", , SetBkMode,Long,前一个背景模式的值
.参数 设备场景句柄, 整数型, , hdc,设备场景的句柄
.参数 方式, 整数型, , nBkMode,下述常数之一:OPAQUE用当前的背景色填充虚线画笔、阴影刷子以及字符的空隙TRANSPARENT透明处理,即不作上述填充
.DLL命令 填充矩形_, 整数型, "user32.dll", "FillRect", , FillRect,用指定的刷子填充一个矩形
.参数 设备场景, 整数型, , hdc,设备场景的句柄
.参数 填充区域, 矩形_, , lpRect,对填充区域进行描述的一个矩形,采用逻辑坐标
.参数 刷子句柄, 整数型, , hBrush,欲使用的刷子的句柄
.DLL命令 扩展文本描绘_, 整数型, "gdi32.dll", "ExtTextOutA", , 经过扩展的文本描绘函数
.参数 设备场景句柄, 整数型, , hdc,设备场景的句柄
.参数 起点横坐标, 整数型, , X,以逻辑坐标表示的一个点,指定了绘图起点横坐标
.参数 起点纵坐标, 整数型, , Y,以逻辑坐标表示的一个点,指定了绘图起点纵坐标
.参数 标志常数, 整数型, , wOptions,标志常数的任意组合
.参数 描绘的范围, 整数型, , lpRect,指定一个矩形,用于对文本进行格式化处理
.参数 欲描绘的文本, 文本型, , lpString,欲描绘的字串
.参数 文本长度, 整数型, , nCount,字串中要显示出来的字符数
.参数 间距, 整数型, , lpDx,参见相关帮助
.DLL命令 取对象句柄_, 整数型, "gdi32", "GetStockObject"
.参数 类型, 整数型
.DLL命令 选入设备场景_, 整数型, "gdi32.dll", "SelectObject", , SelectObject
.参数 场景句柄, 整数型, , hdc
.参数 对象句柄, 整数型, , hobject
.DLL命令 删除对象_, 整数型, "gdi32.dll", "DeleteObject", , DeleteObject
.参数 对象句柄, 整数型, , hObject,一个GDI对象的句柄
.DLL命令 WindowFromDC, 整数型, , "WindowFromDC"
.参数 hdc
.DLL命令 创建画笔_, 整数型, "gdi32", "CreatePen"
.参数 风格, 整数型
.参数 宽度, 整数型
.参数 颜色, 整数型
.DLL命令 释放设备场景_, 整数型, "user32", "ReleaseDC", , ReleaseDC
.参数 窗口句柄, 整数型, , hwnd,要释放的设备场景相关的窗口句柄
.参数 设备场景, 整数型, , hdc,要释放的设备场景句柄
.DLL命令 取设备场景_, 整数型, "user32", "GetDC", , 获取指定窗口的设备场景 指定窗口的设备场景句柄,出错则为0
.参数 窗口的句柄, 整数型, , 将获取其设备场景的窗口的句柄。若为0,则要获取整个屏幕的DC;
.DLL命令 取窗口全部设备场景_, 整数型, "user32.dll", "GetWindowDC"
.参数 窗口句柄, 整数型
.DLL命令 取得边界矩形_, 整数型, "gdi32", "GetBoundsRect"
.参数 设备场景句柄, 整数型, , hdc Long,边界矩形对应的设备场景
.参数 装载矩形, 矩形_, 传址, lprcBounds RECT,装载设备场景hdc的当前边界矩形
.参数 标识, 整数型, , flags Long,参见相关帮助
.DLL命令 取设备场景起点_, 整数型, "gdi32", "GetDCOrgEx"
.参数 设备场景, 整数型
.参数 起点, 坐标_, 传址
.DLL命令 取得场景窗口范围_, 整数型, "gdi32.dll", "GetWindowExtEx"
.参数 场景句柄, 整数型
.参数 尺寸, 尺寸_
.DLL命令 取得窗口区域_, 整数型, "user32.dll", "GetWindowRgn"
.参数 窗口句柄, 整数型
.参数 区域, 整数型, 传址
.DLL命令 取设备场景刷子颜色_, 整数型, "gdi32.dll", "GetDCBrushColor"
.参数 设备场景句柄, 整数型, , hdc
.DLL命令 取背景色_, 整数型, "gdi32", "GetBkColor", , 取得指定设备场景当前的背景颜色
.参数 设备场景句柄, 整数型, , hdc Long,欲查询背景颜色的一个设备场景
.DLL命令 SetWindowTextA, 整数型, "user32", "SetWindowTextA"
.参数 窗口句柄, 整数型
.参数 窗口标题, 文本型
原贴 [易语言首发]PCVX小程序解密 因为 我也不懂 就看了下这个 PC小程序解密.e 发出来不知道怎么用,所以 度娘一步步找答案得到 的 自行研究捉摸了下 仅供学习参考 1.打开 PC小程序解...
易语言模块基址获取源码,模块基址获取,GetModuleBaseAddress...
易语言流程控制编译原理源码,流程控制编译原理,是否汉字,读字符,是否运算符,是否逻辑运算符,指针回溯,跳过空格,跳过注释,代码块,取程序返回值,外部接口_代码块执行,外部接口_表达式计算,表达式计算,逻辑判断,文本到逻辑,函数调用,函数_位或,函数_测试,函数_信...
易语言搜索程序隐藏代码源码,搜索程序隐藏代码,枚举子程序...
易语言打鱼学习链表源码,打鱼学习链表,入栈,出栈,清空链表,取顶数据,取索引处值,取长度,取值处索引,插入,删除,倒置,是否为空,到八,入队,出队...
易语言脚本解析类源码,脚本解析类,子程序1,QEHash,创建进入许可证_,进入许可区_,退出许可区_,删除进入许可证_,启动线程_,销毁线程_,寻找字节集_,内存_申请,内存_释放,内存_尺寸,内存_读整数,内存_写整数,内存_复制,内存_写字节集,内存_写文本,内存_读字节集,...
易语言核心算术计算解析源码,核心算术计算解析,信息框3,信息框2...
易语言获取网页和密码例程源码,获取网页和密码例程,取文档对象,取浏览器文档对象_API,注册消息_API,发送消息_API,置鼠标捕获窗口_API,取消鼠标捕获窗口_API,取窗口类名_API,取座标窗口句柄_API,取光标位置_API...
易语言置入代码调用子程序办法源码,置入代码调用子程序办法,普通写法,置入写法...