当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 文/jorge有了前述的数据,编写接口层似乎已经不成问题了。
 

 

    摘要:花了一个下午翻了msdn,写了这个例子,为了安全,我用delphi建了个什么也没有作的程序prjzzhost.exe,将它用作被注入的宿主进程.写了一个testdll.dll,里面只有一个log函数,用来在文件test.txt中输出信息.最重要的一个程序project1.exe是用来注入的.测试环境: windows server 2003 + delphi 7.0程序很简单,高手就不用看了.废话......
 ·borland第三方组件安装方法     »显示摘要«
    摘要:不是由borland提供的组件叫第三方组件:安装方法:就目前常见的各种形式的组件的安装方法介绍一下。 1 只有一个dcu文件的组件。dcu文件是编译好的单元文件,这样的组件是作者不想把源码公布。一般来说,作者必须说明此组件适合delphi的哪种版本,如果版本不对,在安装时就会出现错误。也正是因为没有源码,给使用者带来了不便,那就是一旦delphi版本升级,此组件就不能再使用了,当然有的作者给出了几......


扫雷外挂的设计与实现(二)

文/jorge

这样,运行过程已经确定下来: 【程序编程相关:Authorware UCD 开发大揭秘

有了前述的数据,编写接口层似乎已经不成问题了.现在来构思一下程序运行的过程.说句实话,那种对于某种变化实时作出响应的程序,一般都用什么方法编成,本人并不很了解,推测无非是两种思想,一种是用一个线程不断地对这个变化进行检查,发现改变则动作;另一种是注册一个类似于钩子的东西,用回调函数来处理.无疑第二种方式要更节省系统资源,只是难在本人对windows的钩子掌握的还一塌糊涂.若换了个高手,无疑应该用这种方式,而我却只有望着spy++中迅速滚动的消息发呆的份.也许等我学好了钩子之后,会写个0.2版,而在0.1版中我已经决定了使用丑陋的反复检查的方式.于是,用了一个ttimer控件,定时间隔设在了30左右,用它的ontimer事件来进行一次检查与反馈操作.时间间隔是反复试验确定的,太小,会很占cpu,太大则反应会变慢. 【推荐阅读:Authorware UCD 开发大揭秘

所谓不可进行操作的时候,无非是指:根本没有扫雷窗口,或者窗口部分被遮挡(此时无法取得正确的像素值),或者扫雷游戏没有开始. 【扩展信息:用DELPHI开发AUTHORWARE的

ontimer事件->判断当前可否进行操作->取得整个雷区当前状况->用算法进行分析->反馈操作

在我的代码中,ontimer事件处理过程的核心就是如下简单的几句:

=================================================================

if getminewindow then

begin

    fetchcells;

    analyzecells;

    operatecells;

end;

=================================================================

其中:

getminewindow函数返回一个boolean值,表示可否进行操作.如果可以,同时将关于扫雷窗口的一些参数存放进全局变量中.

fetchcells过程取得整个雷区所有方块的信息,填入输入缓冲区.

analyzecells过程对输入缓冲区中的数据进行分析,将反馈操作填入输出缓冲区.

operatecells过程根据输出缓冲区中的数据对扫雷窗口进行反馈操作.

上述输入缓冲区与输出缓冲区,各是一个二维数组,直观地对应了扫雷窗口上的每一个方块.前者保存每个方块的当前状态供分析,后者保存分析完毕后,将要实施到每一个方块的操作.雷区的宽与高都不是固定的,而这两个二维数组,则无论何时都要能够保存所有方块的信息.
...   下一页

    摘要:文/jorge其实我不玩网络游戏的,所以对于外挂类程序也没什么好或坏的感觉,甚至平时基本不会想到这个概念。这个实验项目一开始称为“扫雷助手”,而究其技术含量,与现在真正实用的游戏外挂程序也没有可比性。设计它的意义,无非在于对某些windows api的的进一步熟悉,使从未涉足过此领域的新手(当初的我自己)能够揭开某些“神秘的面纱”。之所以选择&ldq......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE