武林外传辅助工具详细制作过程第八篇:终结篇

本篇后不会提供新过程.以后靠大家自己做吧...
内容:
1.我们将使用EnumWindows枚举Windows所有窗口。首先来看看MSDN说明:
   函数功能:该函数枚举所有屏幕上的顶层窗口,办法是先将句柄传给每一个窗口,然后再传送给应用程序定义的回调函数。EnumThreadWindows函数继续到所有顶层窗口枚举完为止或回调函数返回FALSE为止函数原型:BOOL EnumWindows(WNDENUMPROC lpEnumFunc,LPARAM lParam);
   参数:
   lpEnumFunc:指向一个应用程序定义的回调数指针,请参看EnumWindowsProc。
   lPararm:指定一个传递给回调函数的应用程序定义值。
   返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
2.模块部分:
OptionExplicit'得到窗口的标题条文本DeclareFunctionGetWindowTextLib"user32"Alias"GetWindowTextA" (ByVal hwnd AsLong, ByVal lpString AsString, ByVal cch AsLong) AsLong'枚举所有屏幕上的顶层窗口DeclareFunctionEnumWindowsLib"user32" (ByVal lpEnumFunc AsLong, ByVal lParam AsLong) AsLong    
Function EnumWindowsProc(ByVal hwnd AsLong, ByVal lParam AsLong) AsBooleanDim S AsString S = String(80, 0)
CallGetWindowText(hwnd, S, 80)
S = Left(S, InStr(S, Chr(0)) - 1)
IfLen(S) > 0 Then Form1.List1.AddItem S
EnumWindowsProc = TrueEndFunction 3.Form部分,我们需要一个List控件用于显示:
PrivateSub Form_Load()
EnumWindowsAddressOf EnumWindowsProc, 0&
EndSub 4.运行程序,显示了所有窗口的文本。
5.好了,我们完成了核心程序。
现在我们要接着往下做三个工作:(1)只显示我们想要的窗口、(2)显示人物名称、(3)选择目标人物连接游戏窗口。
5.1.筛选枚举出来的窗口。这个很简单,只要在插入List之前的If中再加入一个判断窗口文本内容就可以实现。
IfLen(S) > 0 andUCase(S) = "ELEMENT CLIENT"Then Form1.List1.AddItem S
5.2.显示人物名称,我想这个大家都会吧!
IfLen(S) > 0 AndUCase(S) = "ELEMENT CLIENT"ThenDim ProcID AsLong, hpID AsLong, BuffEnum(35) AsByte, ECXI AsLong, eax AsLong, StrAsStringGetWindowThreadProcessId hwnd, hpID
ProcID = OpenProcess(PROCESS_ALL_ACCESS Or PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, hpID)
    ReadProcessMemory ProcID, ByVal &H8C9E54, ECXI, 4, 0   '这个是存放基址的地址     ReadProcessMemory ProcID, ByVal ECXI + &H24, eax, 4, 0
    ReadProcessMemory ProcID, ByVal eax + &H390, ECXI, 4, 0
    ReadProcessMemory ProcID, ByVal ECXI, BuffEnum(0), 36, 0
    Str = Left$(BuffEnum, 36)
     Form1.List1.AddItem hpID & " " & Str ‘这里我耍了一个小聪明,可以省好多事。
EndIf 5.3.选择目标窗口连接游戏。
当然要在List1_Click中插入代码了。我使用两个Form,先显示Form1选择游戏窗口,传递游戏窗口的PID给Form2,然后再Form2里OpenProcess即可。所以我的List1_Click代码:
Form2.Show
Me.Hide
6.写到这里,后面的大家就应该知道怎么吧。这次就不公布源码了,因为特征码的关系遭封杀的几率太大,另外这样也好给大家留出一些设计的空间。
注意:
如果你在原有程序的基础上,添加新的Form2用于选择游戏窗口,请设置从Form2启动。
程序关闭时别忘卸载隐藏的Form。
更多相关文章
  • 1.我们可以用CE打开武林外传.运行CE,按照下图的次序打开(...\武林外传\element\elementclient.exe)2.游戏启动后,别忘了选择游戏窗口.3.这是游戏中人物的数据.4.好,现在我们要在CE中显示人物的生命值.同样按照图中的顺序打开"添加地址"对话框, ...
  • 武林外传辅助工具详细制作过程第四篇:自动保护
    1.首先我们要绘制一个界面,最先添加一个Frame控件.最少两个Label控件用于输出生命和真气值.两个Text控件用于输入数据还有两个Timer控件,分别改名为TimerList及TimerAdd,最后添加一个Command控件.可以参考下图,呵呵~我知道你可以画的更好看!2.下一步就是添加代码了 ...
  • 武林外传辅助工具详细制作过程第六篇:物品过滤
    接下来我们就能让可恶的配方从此在背包中消失2.首先看看图片,我要用到那些控件主要控件: List1 /用于显示地面物品 List2 /用于显示需要过滤的物品名称 Timer1 /用于刷新地面物品 Timer2 /用于过滤地面物品 Combo1 /用于添加或保存过滤物品名称 Command1 /添加按 ...
  • 一.操作BGP路由过滤(基于路由条目)实际案例(配图+详细验证过程)二.操纵BGP路由过滤(基于AS-PATH)实际案例(配图+详细验证过程)三.BGP后门链路(Backdoor)实际案例(配图+详细验证过程四.操纵BGP路径选择---local preference属性案例(配图+详细验证过程)五 ...
  • 一.'''RPM简介'''Linux系统上的软件包管理器用于实现对系统上的安装的程序进行跟踪和管理,其中比较著名的有rpm,dpkg等.RPM的全称为RPM Package Manager(早期也叫做Red Hat Package Manager),它最早是Red Hat开发用于实现在Red Hat ...
  • 如何用busybox制作Linux及解决制作过程中会出现的问题
     一.busybox定义及版本      我们制作微型Linux,要借助一个软件,我们这里讲的是busybox,首先我们要知道busybox是什么?它是一个含有很多个最常用linux命令和工具的软件,例如:ls,cp,echo, grep,mount等.      我们在当前需要做一个程序,编译出来 ...
  • 2010-12-01 14:15 来源:华军资讯 作者:芬达 编译 RSS复制链接打印核心提示:据国外媒体报道,大家在处理日常事务时需要借助一些常用软件的帮助,软件管家固然方便,但它所提供的应用范围受到限制,对于普通用户而言其中的很多软件并不实用.下面是科技网站Pcworld为大家推荐的15款免费的 ...
  • 应生产环境中rpm编译需求,现记录下rpm包编译制作过程:一.SRPM(Source rpm)包的制作rpm包的过程:即没有编译过的原始文件,一般对应软件的官网上都有下载.1.下载*.src.rpm包并安装,默认/usr/src/redhat/SPECS目录下会生成对应的.spec文件.说明下/us ...
一周排行
  • IDC评述网(idcps.com)03月25日报道:根据百度统计的数据显示,2016年2月份,国内网民上网的最高峰时段下移至9,其比例环比上月,下降0.12%,为6.20%.下面,请看IDC评述网 ...
  • <!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><! ...
  • 自反acl配置
    自反acl的配置 实验环境:小凡模拟器实验目的:通过访问控制列表实现内网可以访问外网但是, ...
  • php中变量的声明, 和变量的初始化 是结合在一起的, 要声明变量, 就是通过初始化变量来实现的. 感觉页面版式的布局, 还是:先大致规划出布局, 如两栏 三栏, 一览的左右上下结合, 搭配.然后,再考虑放值内容. ...
  • cobbler安装1.先安装epel#  wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-.noarch.rpm# r ...
  • win7不能新建文件夹
     不知道怎么搞的,右键新建文件夹被搞丢了,肯定是注册表问题,网上找了一下,果然被我找到,保 ...
  • 一函数原型及参数function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer;hWnd:对话框父窗口句柄,对话框显示在Delph ...
  • 背景 在我看来,toString方法是一个类最重要的方法之一.在JavaScript中,将一个对象转化为字符串形式的默认方法就是调用其toString方法.因此,为类型实现一个合理的toString方法对于开发和调试 ...
  • 文/舒化鲁市面有一本书,叫<申五的店>,讲的是一个真实的故事.申五真名叫申五性,大学毕业,但学的是机械工程专业.他毕业后,进了沿海一家颇有名气的国有企业.因为他的质朴,造成在公司政治中没有臆料到的人际关系 ...
  • PPT(八)-如何让你的PPT更酷
    有一种能马上让你的PPT变得更酷的方法,那就是用宽屏来演讲你的幻灯片,,有种看电影 ...