功能:显血、不影响聊天改键

其实这个工具就是用了几个api,很简单就能写出来。如果直接和大家介绍用哪几个api函数,那么对大家来讲毫无用处。重点问题是怎么确定是用哪些函数。知其所以然而知其然,以不变应万变,这里就跟大家谈谈我是如何找出相应的函数。

秘籍一:查

学计算机最大的好处就是网上有海量的资料,不懂就查,X度一下什么都出来。

经过查阅资料后,整理出如下解决方案:

显血:玩过魔兽都知道在游戏按“alt”会显双方血。经过查资料发现原来“[”和“]”分别显示我方和敌方的血。(PS:别问我魔兽如何,电脑都能虐我的…)可以尝试用模拟按键消息。

改键:修改某个快捷键文件,或者利用全局钩子的方式进行替换(如何改键又不影响聊天?下面再告诉你。)

“查”是贯彻各个模块功能实现的秘籍,在工程开始时利用“查“网上资料试到编写程序有个大致的方向。然后利用下面的秘籍边查边实现,一步一步来。

秘籍二:试

弄出一万个解决方案还不如亲身写来试一试。

在编写程序的时候,有必要写一些测试工具,对程序某一部分功能的解决方案进行验证。可以如图只有一个按钮的简单对话框,或者在控制台进行测试。

在这个魔兽显血改键工具中,始终贯彻“试”这一秘籍的。例如在上面的:“如何显血”的解决方案中,通过“试“就能验证是否管用。即使不管用,也能从中得到某些提示,从而明确另一个方向。

模拟按键消息。按键常用有三种WM_KEYDOWN、WM_KEYUP和WM_CHAR。使用的函数有SendMessage或者keybd_event (会不会影响魔兽聊天?别急,后面再去分析分析)

Go,开始测试解决方案了,还是如上图写一个简单的对话框,按钮打开计时器每隔一个时间用Findwindows找到魔兽窗口,然后用SendMessage发送各种消息。

(注意如果游戏用 “GetKeyState”来获取键盘消息,获取键盘消息SendMessage是没效的,得用keybd_event。不过我想不到有什么理由会让游戏牺牲这么大性能用GetKeyState?)

点击尝试按钮之后,果真在dota里显血了,测试成功!

秘籍三:分析

单是测试成功还不行,还得进一步获取具体每个消息所起的作用。

经过分别发送WM_KEYDOWN、WM_KEYUP和WM_CHAR消息 。

总结得:WM_KEYDOWN是显示血量的,WM_KEYUP是取消显示血量的。所以我们按下“alt”键显示血量,松开则取消显示血量。根据此分析,即可用语句控制逻辑进行显血了。

又回到之前最大的一个问题是:“如何解决改键而不影响聊天的?”看这个问题好像很难解决,是否需要写代码区分聊天状态和游戏状态?不需要,经过测试和分析,发现WM_KEYDOWN是使用技能,WM_CHAR是输入聊天字符,就是说如果单是发送WM_KEYDOWN而不发送WM_CHAR的话,魔兽聊天时是不会输入到聊天框里的。同时为了不影响其它进程,则指定只发送消息到魔兽窗口。

秘籍四:反汇编

确实遇到困难解决不了,网上又没公开源码怎么办?

在编写的过程中,我看到显血改键比较有名气warkey不用Dll就能截取魔兽中的按键信息,绿色软件需要的是方便,最好做到一个exe文件就搞定,开始我想到是使用GetKeyState主动去获取键盘中的按键信息,但经过测试之后发现GetKeyState的确能获取全局键盘的按键消息,但是却获取不了游戏中的魔兽程序。知道我鹏友告诉我一声哈。百般无奈又查不到相关的信息,此事只能出必杀——反汇编分析。当然这需要一定的反汇编能力。我们可以通过Ollydbg分析目标程序,或者更直接的途径分析别人写好的的显血改键工具!这里以比较出名的warkey显血工具为例(这个工具需要安装,这是我写显血改键工具的原因——我喜欢免安装的绿色工具。)用Ollydbg打开warkey后,搜索程序中的所有使用过的函数,分析跟踪可能性最大的函数:SetWindowsHookEx

跟踪分析,此工具设置了一个WH_KEYBOARD_LL全局钩子。全局钩子不用DLL?不急慢慢接下去分析。

我们知道SetWindowsHookEx中第二个参数是填写钩子回调函数,跟踪入去看看里面有什么。发现里面有keybd_event,而且参数还是KV_NUMPAD7,此举是模拟数字键盘的7!!!

另外还发现弹出广告页面的元凶!我要绿色!!

又回到秘籍二“试”的方法中,一测试,果然WH_KEYBOARD_LL是一个不需要DLL就能设置全局钩子的特殊钩子。

结束语:

总结写程序的秘籍:

1、查 ,利用网上丰富的资源

2、试,多写测试程序检验某部分功能的解决方案

3、分析,利用已有的资料或现象分析定位下一步前进的方向

4、参考别人的代码

前面三个没有先后之分,始终穿插到程序中,第四个建议是最后才使用。因为如果一开始就参考别人的代码,你的思维就会限制到别人的代码中,从而会忽略很多细节(例如为什么用这个函数而不用哪个函数?这样写和那样写有什么区分?),你看到的代码是别人经过分析比较后的代码,但在分析细节中获取的往往是最多的。

KeyXing魔兽显血改键工具|制作过程相关推荐

  1. 魔兽显血改键工具的脱壳和修改

    玩过魔兽的多少都接触过这个工具,然而昨天在我打算玩两把的时候在打开此工具时会弹出两个网页,以前也有过这种情况.果断不能忍,开始对他动刀. 第一分析PE  查壳 PEcompact  这是我第一次接触这 ...

  2. 自己写了个魔兽显血改键工具

    xlWarKey v1.2 正式版 软件介绍 -------- xlWarKey 是一款魔兽争霸改键.显血工具.目前支持永久显示血条,支持键盘上几乎所有按键的一对一映射,支持多个改键方案. 本工具的定 ...

  3. 我也来分享一个魔兽显血改键工具

    现在显血和改键工具有很多,并且都很不错,但正如我上篇文章中所说,总有一些地方不合我的胃口,例如一些改键工具总喜欢在运行时打开某些链接,我想这是广大玩家都很不爽的.所以我就自己写了一个,其界面如下: 它 ...

  4. 换脸视频怎么做出来的?AI视频换脸教程【完整版手把手】免费AI换脸视频工具制作过程详解

    上期分享了wav2lip-GFPGan图片说话转视频的文章: 超写实虚拟数字人再升级:Wav2Lip-GFPGAN完整版教程及效果视频评测[手把手]_baoxueyuan的博客-CSDN博客 部分饱子 ...

  5. 详解linux下auto工具制作Makefile源码包(制作篇)

    2019独角兽企业重金招聘Python工程师标准>>> 详解linux下auto工具制作Makefile源码包(制作篇) 水木杨 一.     概述 为了更好的制作configure ...

  6. (转载)连连看游戏外挂详细制作过程

    标 题: [原创]新人入手第一个游戏外挂,附上详细制作过程 作 者: caigui 时 间: 2013-01-09,00:56:16 链 接: http://bbs.pediy.com/showthr ...

  7. 转wordpress小工具制作前台后台全解析

    wordpress主题制作中对边栏的处理一直是我们比较烦恼的,我们希望边栏的变化更多更复杂,今天我们就来具体讲解下wordpress边栏小工具的制作. 一.让你的主题显示小工具 有些相当简单的主题你会 ...

  8. 使用kali的工具攻击win10_使用“媒体创建工具”制作Win10系统安装U盘

    MS酋长前面已经介绍过"使用微软媒体创建工具下载原版Win10 ISO镜像"的方法,其实使用该工具还可以轻松制作Win10系统安装U盘.下面MS酋长就来演示一下如何使用媒体创建工具 ...

  9. macos安装盘第三方工具制作_一步一步教你为macOS创建系统安装盘

    电脑用久了就会比较卡,一般用户此时选择最多的是格式化硬盘重新安装系统,这在windows下非常容易,微软官方提供了安装盘制作工具.macOS稍微复杂一点,不过整理过程也是很简单的,本文就简单介绍一下如 ...

最新文章

  1. MyBatis Plus入门
  2. pd16.5生成mysql列说明_PowerDesigner16逆向工程生成PDM列注释(My Sql5.0模版)
  3. JFileChooser多选、选择目录
  4. python xml.dom模块解析xml
  5. java监听器原理_java监听器原理
  6. 【CF#757A】Gotta Catch Em' All!
  7. 诗与远方:无题(三十五)- 曾经写给妹子的一首诗
  8. iOS连续上传多张图片
  9. FFmpeg源代码简单分析:内存的分配和释放(av_malloc()、av_free()等)
  10. CF1137E Train Car Selection(单调栈维护凸函数)
  11. 计算机操作系统--UNIX操作系统
  12. C#窗体连连看小游戏(超详细)
  13. 大工之星编程挑战赛第五周题解
  14. Adaptive AutoSAR第四版发布大规模应用
  15. Ubuntu配置adb
  16. __wakeup绕过版本_PHP__wakeup()方法
  17. Glide加载常用类型图片(带白色边框的圆形图、圆角矩形图片、圆形图片)
  18. 华为AR1220路由器配置GRE隧道
  19. Eclipse - Reset Perspective
  20. Eureka注册中心配置登录验证

热门文章

  1. 华为nova7和nova7pro有什么区别(华为nova7系列配置参数及常见问题)
  2. 大公司的PHP面试题
  3. Tailwind Base
  4. Unity支持GIF,零卡顿,秒解码
  5. python基础-input函数
  6. spring-依赖注入(DI)
  7. 有关xml中的xmlns
  8. java 求tan的角度_Java StrictMath tan()用法及代码示例
  9. etcd 本机手动测试集群及 member 操作
  10. 当局讳莫如深 青龙县避震成功经验获联合国嘉奖