签到

05月05日
尚未签到

共有回帖数 0

    做月子

    等级:
    启动VC++6.0,创建一个项目,就和你上机时候一样,然后开始输入代码

    头文件当然先输入,那个stdio.h我们就不多说了,谁都懂的,现在我们要输入第二个书上没有的
    #includewindows.h
    这个windows.h非常重要,如果缺少,后面很多函数将无法调用
    好了,接下来自然是main函数,这个也不解释大家都懂,然后我们外挂当然要说明
    prinf这个函数也是书上的常用的知识,说明就这样输到屏幕上
    这里嘛,就拿我前天在贴吧上推荐的游戏双星物语2开刀,原因是我打了半天打不过把我惹毛了
    那么,我的说明是这样的,代码如下

    首先我们先把退出功能给做了,我们用一个while(1)循环让程序持续运行,因此只要一个break;跳出循环就能让程序退出了

    这里我们将大小写E都考虑到,为的是让操作更加人性化,好了,如果输入的字母不是E,就执行else


    然后我们继续判断输入的字母是什么,我们现在先做打开外挂这部分,看上图,其中O是打开外挂的命令,写到这里我们要回到顶部定义两个变量,看我红圈,一个是HWND(句柄),一个是DWORD(双字),你可以把两个都理解为我们熟悉的int,他们都是数字,只不过叫法不同
    我觉得我有必要解释下句柄(HWND)和PID是什么,我们可以把它们理解成我们现实中的学生证和身份证,两个东西都可以证明你的身份,功能都是一样的,只不过叫法不同,而且你的身份证和学生证是唯一的,也就是说没有人的身份证学生证和你的一模一样,计算机里的程序也是这样,每一个程序都会有他的身份证明,而且也是唯一的,为什么要这两样东西呢,想想,我们要修改的是双星物语2这个游戏,而不是暗黑破坏神3这玩意,当然要用这两个东西确认我们要修改的程序

    好了,我们继续,看代码我们知道,修改游戏的代码应该写在这里

    好了,打开游戏。憋一眼,看到这款游戏的窗体上写着“双星物语2”,我们待会就要用这个名字来取得这个游戏程序的句柄和PID(process ID)

    现在我们在刚刚说的地方写入代码,第一个函数FindWindow就是靠名字来取得这个游戏程序的句柄,第二个GetWindowThreadProcessId是靠句柄取得PID,为什么要靠句柄取得PID呢,因为我们修改的游戏需要PID而不是句柄,就像你要去开房,学生证没用,要身份证才行

    接下来我们还要定义一个句柄,他的名字叫HANDLE,其实它和HWND,PID一样,都是用来证明程序身份的

    继续写代码,获得了PID后,我们就要打开进程,问什么要打开进程,就像抢银行,你不先把银行的大门打开你怎么进去抢(银行金库没窗户别钻空子),打开进程用OpenProcess函数,第一个参数的意思是取得全部权限(就是抢银行既能抢钞票又能抢金条,没权限就相当于银行工作人员宁死不屈什么都抢不到,部分权限就是比如只能抢钞票之类的云云),第二个参数是之前提到的Pid,假如成功的话,hProcess就不等于0(相当于打开了银行的门),假如没成功就等于0(抢银行泡汤)

    打开大门后可以干事了,我们现在先做修改金钱的部分,如上代码,应该不难理解

    现在我们要用到一个软件,名字叫CE

    我建议不会用的可以先学习下教程,这里我简单做下教程(很容易的),看图

    点开后,选择游戏进程,什么?不知道什么叫游戏进程,那把任务管理器打开,然后选到游戏的那个点右键再点跳转到进程,再在上面找到和它一样的就行了,然后点open

    然后我们切回游戏画面,把现在的钱的数目记下



    回到游戏,再弄点钱,然后再回ce,填写新的钱数,再点next scan

    之后左边就剩下一个了

    那好笔把地址抄下吧,这个就是金钱的地址,打个比方就是抢银行时银行金库的位置,回到VC继续编程,可以看到我们又定义了三个变量DWORD,一个呢就是钱的数目,一个呢记录地址,
    还有一个记录执行结果,就是有没有干成功,有的话不等于0,没的话等于0


    额,这里还要加个getchar()之前忘记了,用来抵消回车的
    可以运行下看看了



    看,钱成功到手了

    楼主 2015-06-26 13:27 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知