简介:除了 特征码搜索和构造HOOK跳转,还有基本的多级指针读写。也就是用了这些函数以后就可以修改游戏的变量和反汇编代码了。当然也可以读取游戏的变量数值。

'获取窗口句柄
'参数是游戏进程名 或 窗口类名 或 窗口标题
Function GetWindowHwnd(ByVal WindowClassVsWindowText As String) As Long '

'获取进程PID
'参数是游戏进程名 或 窗口类名 或 窗口标题
Function GetPid(ByVal WindowClassVsWindowTextExeName As String) As Long

'获取窗口句柄
'参数是游戏进程名 或 窗口类名 或 窗口标题
Function GetProcessHwnd(ByVal WindowClassVsWindowTextExeName As String) As Long '获窗口句柄

'获取进程句柄
'参数是游戏进程名 或 窗口类名 或 窗口标题
'a=GetProcessHwnd("天地玄门")
Function GetProcessHwnd(ByVal WindowClassVsWindowTextExeName As String) As Long '获窗口句柄

'写入反汇编对应的字节集 , 比如
'参数1 '参数是游戏进程名 或 窗口类名 或 窗口标题
'参数2 反汇编代码地址
'参数3 反汇编字节集
'VB超级模块.WriteAsmByte ("天地玄门","6A9EC0","90 90 90 90 90 90 90")
'VB超级模块.WriteAsmByte ("天地玄门","Game.dll*4E32","90 90 90 90 90 90 90")
Function WriteAsmByte(ByVal WindowClassVsWindowTextExeName As String, ByVal PeCodeAdr As String, ByVal AsmByte As String) As String

构造 JMP 跳转
'参数1 目标游戏进程名或窗口名 或窗口类名,
'参数2 目标进程的HOOK点的代码地址
'参数3 My函数的代码地址
'CALL  JmpCode ("天地玄门","4D9EC0","6A0000" )
Function JmpCode(ByVal WindowClassVsWindowTextExeName As String, ByVal PeCodeAdr As String, ByVal MyCodeAdr As String) As String '不含申请内存的

'搜索特征码
'A=FindAsm ("天地玄门","50000-6A9EC0" , "2b f3 89 b7 60 55 00 00")
'参数1是 游戏进程名或者窗口名或窗口类名
'参数2是 搜索范围
'参数3是 特征码-字节集
Function FindAsm(ByVal WindowClassVsWindowTextExeName As String, ByVal AddrRange As String, ByVal AsmCodeByte As String) As String

'读取4字节整数  a = ReadLong ("天地玄门", "6A9EC0+768+5560")
'读取4字节整数  a = ReadLong ("天地玄门", "Game.dll*43AE+768+5560")
'参数1:游戏进程名或者窗口名或窗口类名
'参数2:可以是 多级指针结构,也可以单独1个内存地址
Function ReadLong(ByVal WindowClassVsWindowTextExeName As String, ByVal ProcesAddr As String) As Long '读取4字节整数

'读取2字节的整数
'参数1:游戏进程名或者窗口名或窗口类名
'参数2:可以是 多级指针结构,也可以单独1个内存地址
'读取2字节整数  a = ReadInteger ("天地玄门", "6A9EC0+768+5560")
'读取2字节整数  a = ReadInteger ("天地玄门", "Game.dll*43AE+768+5560")
Function ReadInteger(ByVal WindowClassVsWindowTextExeName As String, ByVal ProcesAddr As String) As Integer
'读取1字节的整数
'参数1:游戏进程名或者窗口名或窗口类名
'参数2:可以是 多级指针结构,也可以单独1个内存地址
'读取1字节整数  a = ReadByte ("天地玄门", "6A9EC0+768+5560")
'读取1字节整数  a = ReadByte ("天地玄门", "Game.dll*43AE+768+5560")
Function ReadByte(ByVal WindowClassVsWindowTextExeName As String, ByVal ProcesAddr As String) As Byte

'写入4字节的整数
'参数1:游戏进程名或者窗口名或窗口类名
'参数2:可以是 多级指针结构,也可以单独1个内存地址
'参数3:写入的数值
'读取4字节整数  a = WriteLong ("天地玄门", "6A9EC0+768+5560",100)
'读取4字节整数  a = WriteLong ("天地玄门", "Game.dll*43AE+768+5560",100)
Sub WriteLong(ByVal WindowClassVsWindowTextExeName As String, ByVal ProcesAddr As String, ByVal vas As Long)

'写入2字节的整数
'参数1:游戏进程名或者窗口名或窗口类名
'参数2:可以是 多级指针结构,也可以单独1个内存地址
'参数3:写入的数值
'写入2字节整数  CALL  WriteInteger ("天地玄门", "6A9EC0+768+5560",100)
'写入2字节整数   CALL   WriteInteger ("天地玄门", "Game.dll*43AE+768+5560",100)
Sub WriteInteger(ByVal WindowClassVsWindowTextExeName As String, ByVal ProcesAddr As String, ByVal vas As Integer)

'写入1字节的整数
'参数1:游戏进程名或者窗口名或窗口类名
'参数2:可以是 多级指针结构,也可以单独1个内存地址
'参数3:写入的数值
'写入1字节整数  CALL  WriteInteger ("天地玄门", "6A9EC0+768+5560",100)
'写入1字节整数   CALL   WriteInteger ("天地玄门", "Game.dll*43AE+768+5560",250)
Sub WriteByte(ByVal WindowClassVsWindowTextExeName As String, ByVal ProcesAddr As String, ByVal vas As Byte)

'写入单精度小数
'参数1:游戏进程名或者窗口名或窗口类名
'参数2:可以是 多级指针结构,也可以单独1个内存地址
'参数3:写入的数值
'写入单精度小数字节整数  CALL  WriteSingle ("天地玄门", "6A9EC0+768+5560",100)
'写入单精度小数字节整数   CALL   WriteSingle ("天地玄门", "Game.dll*43AE+768+5560",100)
Sub WriteSingle(ByVal WindowClassVsWindowTextExeName As String, ByVal ProcesAddr As String, ByVal vas As Single)     '修改 4字节浮点数

'写入双进度小数
'参数1:游戏进程名或者窗口名或窗口类名
'参数2:可以是 多级指针结构,也可以单独1个内存地址
'参数3:写入的数值
'写入单精度小数字节整数  CALL  WriteDouble ("天地玄门", "6A9EC0+768+5560",100)
'写入单精度小数字节整数   CALL   WriteDouble ("天地玄门", "Game.dll*43AE+768+5560",100)
Sub WriteDouble(ByVal WindowClassVsWindowTextExeName As String, ByVal ProcesAddr As String, ByVal vas As Double)       '修改 4字节浮点数

'读取单精度小数
'参数1:游戏进程名或者窗口名或窗口类名
'参数2:可以是 多级指针结构,也可以单独1个内存地址
'读取单精度小数字节整数 a=WriteDouble ("天地玄门", "6A9EC0+768+5560",100)
'读取单精度小数字节整数  a= WriteDouble ("天地玄门", "Game.dll*43AE+768+5560",100)
Function ReadSingle(ByVal WindowClassVsWindowTextExeName As String, ByVal ProcesAddr As String) As Single '读取1字节整数

'
'读取双精度浮点数
'参数1:游戏进程名或者窗口名或窗口类名
'参数2:可以是 多级指针结构,也可以单独1个内存地址
'读取双精度浮点数 a=WriteDouble ("天地玄门", "6A9EC0+768+5560",100)
'读取双精度浮点数  a= WriteDouble ("天地玄门", "Game.dll*43AE+768+5560",100)
Function ReadDouble(ByVal WindowClassVsWindowTextExeName As String, ByVal ProcesAddr As String) As Double

'读取Unicode字符串
'参数1:游戏进程名或者窗口名或窗口类名
'参数2:可以是 多级指针结构,也可以单独1个内存地址
'读取Unicode字符串 a=ReadStringUnicode ("天地玄门", "6A9EC0+768+5560",100)
'读取Unicode字符串  a= ReadStringUnicode ("天地玄门", "Game.dll*43AE+768+5560",100)
Function ReadStringUnicode(ByVal WindowClassVsWindowTextExeName As String, ByVal ProcesAddr As String) As String '

'读取 Ansi字符串
'参数1:游戏进程名或者窗口名或窗口类名
'参数2:可以是 多级指针结构,也可以单独1个内存地址
'Ansi字符串 a=ReadStringAnsi ("天地玄门", "6A9EC0+768+5560",100)
'Ansi字符串  a= ReadStringAnsi ("天地玄门", "Game.dll*43AE+768+5560",100)
Function ReadStringAnsi(ByVal WindowClassVsWindowTextExeName As String, ByVal ProcesAddr As String) As String   '读取1字节整数

'获取游戏进程上的某个模块地址
'参数1 进程窗口名、类名或者进程名
'参数2 模块名 ,比如Client.dll 或  Game.dll  或  Game.dat  或  Client.dat
Public Function GetProcessModuleHandle(ByVal WindowClassVsWindowTextExeName As String, ByVal ModuleName As String) As Long

'参数1 进程窗口名、类名或者进程名,参数2 模块名 ,参数3 模块所在的路径关键字 比如 C盘 WINDOWS 目录下的路径 就填写 "WINDOWS" 即可
'这个函数一般不怎么用,一般用上面的 GetProcessModuleHandle 函数就可以了,那么这个函数为啥我要写呢? 因为 有的时候 同模块名 但是路径不同 并且这2个模块 版本也不同,只是模块名相同。这个时候 就需要区分 路径关键字了
'比如d3d9.dll这个 模块 一般 某类进程目录下面有,操作系统C盘上也有。  但是 真正调用的是系统的那个模块
' Dim mymod1 As Long
' mymod1 = GetProcessModuleHandleEx("天地玄门中文版", "d3d9.dll","WINDOWS")

Public Function GetProcessModuleHandleEx(ByVal WindowClassVsWindowTextExeName As String, ByVal ModuleName As String, ByVal DLL_Path As String) As Long

'获取模块地址 用PID
''参数1 进程窗口名、类名或者进程名,参数2 模块名
Public Function GetProcessModuleHandleByPid(ByVal GamePid As String, ByVal ModuleName As String) As Long

VB6.0超级模块模块下载去 技术交流站 www.zai996.com  q1016058890  

VB6.0超级模块-内存操作篇-含特征码搜索和HOOK跳转构造相关推荐

  1. VB6.0超级模块函数. GetProcessModuleHandleEx得到目标进程的模块地址

    '参数1 进程窗口名.类名或者进程名,参数2 模块名 ,参数3 模块所在的路径关键字 比如 C盘 WINDOWS 目录下的路径 就填写 "WINDOWS" 即可 '这个函数一般不怎 ...

  2. VB6.0超级模块函数:GetWindowHwnd 获取窗口句柄

    Function GetWindowHwnd(ByVal WindowClassVsWindowText As String) As Long '获窗口句柄 可以是: 窗口名 或者是 窗口类名Dim ...

  3. 让你的VB6.0支持滚轮操作

    因为工作的原因,最近装上了VB6.0,突然发现VB6.0不支持滚轮操作,郁闷至极,忍受了一个上午,渡过了一上午没有滚轮的日子...... 中午去微软官方网站查了查相关信息,终于搞定了 1.下载 htt ...

  4. C语言处理字符串及内存操作

    字符串处理函数 1.字符串长度 strlen表示包含的字符的个数,size_t strlen(char cosnt *string), 返回的是size_t类型,它是无符号整数类型,在表达式中进行运算 ...

  5. Cortex-M3栈内存操作

    访问堆栈用堆栈指针,并且PUSH指令和POP指令默认使用SP. 堆栈的PUSH与POP 堆栈是一种存储器的使用模型.它由一块连续的内存和一个栈顶指针组成,用于实现"后进先出"的 ...

  6. VB6监视/操作剪贴板示例(VB6.0代码)

    剪贴板的监视,需要先使用SetClipboardViewer设置某个句柄为剪贴板查看器的一员. 然后当剪贴板发生改变时,系统就会向这个句柄发送WM_DRAWCLIPBOARD消息. 只要使用子类化拦截 ...

  7. Win10下VB6.0开发之串口通信基础(一)控件属性篇

    前言:VB串口通信的方法一般有两种:一是通过Windows的通信API进行通信:另一种是通过VB的标准控件MSComm来实现.这篇文章要讲的是上位机如何通过VB的串口控件MSComm和下位机进行串口通 ...

  8. 《ANSYS Workbench 16.0超级学习手册》——1.2 ANSYS Workbench 16.0平台及模块

    本节书摘来自异步社区<ANSYS Workbench 16.0超级学习手册>一书中的第1章,第1.2节,作者: 黄志新 更多章节内容可以访问云栖社区"异步社区"公众号查 ...

  9. OpenGL超级宝典学习笔记:着色器存储区块、原子内存操作、内存屏障

    前言 本篇在讲什么 本篇为蓝宝书学习笔记 着色器存储区块 原子内存操作 内存屏障 本篇适合什么 适合初学Open的小白 本篇需要什么 对 C++语法有简单认知 对 OpenGL有简单认知 最好是有 O ...

  10. 用VB操作Excel(VB6.0)(整理)

    用VB操作Excel(VB6.0)(整理). 一. VB读写EXCEL表: VB本身提自动化功能可以读写EXCEL表,其方法如下: 1.在工程中引用Microsoft Excel类型库: 从" ...

最新文章

  1. oauth最后的确认按钮_spring-oauth集成cas单点登录,登陆完成进入授权页面后,按回退按钮进入404页面的问题...
  2. 基于visual Studio2013解决面试题之1002公共子串
  3. Windows Server 2016离线安装.NET Framework 3.5
  4. 第四范式与丘成桐北京雁栖湖应用数学研究院签署战略合作协议
  5. activeMq-2 高可用以及集群搭建
  6. 基于httpd建立私有CA实现https加密连接
  7. 用GitHub Issue取代多说,是不是很厉害?
  8. [2021-CVPR] Jigsaw Clustering for Unsupervised Visual Representation Learning 论文简析及关键代码简析
  9. 国防科技大学计算机学院教员,我国最好的四所科技大学,第一名排名世界前列,还有一所是铁饭碗...
  10. [转载] 山楂树之恋——01-03
  11. 兴趣爱好-常用的10种算法
  12. Android简单实现图片缩略图类ThumbnailUtils
  13. Stellar Phoenix Office Repair(Office修复工具)v6.2绿色版
  14. html5制作旋转正方体,如何制作一个旋转的正方体
  15. 基于 Apache APISIX,爱奇艺 API 网关的更新与落地实践
  16. 软件安全漏洞测试报告_现实生活中的软件安全漏洞以及如何确保安全
  17. ffmpeg生成hls点播
  18. camunda 流程执行追踪_Camunda流程调用梳理
  19. Win11下Clion+MSYS2(MinGW64)配置C++编译环境
  20. 无线通信基础——“单跳”与“多跳”

热门文章

  1. 超宽带 DWM1000模块 电气规格
  2. 帆软报表填报成功后实时刷新当前页面
  3. IE改善七大手法| ECRS工时分析软件
  4. Java、JSP医院药库管理系统
  5. 算法导论答案 16.2-2 0-1背包问题的动态规划算法
  6. 3ds Max2021安装步骤详解
  7. [转] 数学专业参考书整理推荐
  8. 《给予者》:害羞,内向,不善言辞,如何构建人脉?
  9. 惠普薄锐ENVY 15 X360升级DIY
  10. 内蒙古工业大学2022年数据结构习题集