中国最大的图书批发网站
[首页] [写手之家] [非常SOHO] [SOHO秘籍] [SOHO撰稿] [最新约稿] [编辑心声] [付费方式] [本站社区] [留言板]

□ 写手之家
□ 非常SOHO
□ SOHO秘籍
□ SOHO撰稿
□ 最新约稿
□ 编辑心声
□ SOHO设备
□ 才华SOHO
□ 即时新闻
□ 关注稿费
□ 寻求出版
□ SOHO创业
□ 诚征书稿
□ 承建网站
□ soho计划
□ 开家书店
□ 强力推荐
□ 新书推荐
□ 编辑在线
□ 媒体诚聘
□ 传媒有约
□ 写手推荐
□ SOHO资讯
□ 杂志征稿
□ 报纸征稿
□ 网站征稿
□ 写手教程
□ 混在北京
□ 真我风采
□ 电子商务
□ 名人在线
□ 创业导航
□ 书店指南
□ 网站建设
□ soho创业经验
□ soho投资融资
□ 版税出版您的书稿
□ 招商合作
□ 品牌营销
□ 媒体资源整合
□ 最新创业项目
□ 代写代笔
□ 软文推广
□ sohozones全球报道
□ 新媒体运营
□ 创业动态
□ soho财富故事
□ soho创业指南
□ 域名财富故事
□ 自由职业者
□ soho创业经验
□ 24小时内付稿费公众号
□ 图书批发货源导航
□ 图书营销手册
□ 大众出版
□ 出版产业观察
□ 书业人物
□ SOHOZONES免费环球资源
□ SOHOZONES免费赚钱资源
□ SOHO理财
□ SOHO健康顾问
□ SOHO网上创业
□ SOHO房产
□ SOHO教父
□ SOHO居家办公
□ SOHO成功人士
□ SOHO财富故事
□ SOHO文化
□ SOHO美食
□ SOHO教育
□ SOHO科技
□ SOHO网上社交
□ 寻求发表
□ 爱情故事
□ soho财富故事
□ soho创业指南
□ 书商财富故事
□ 出书巴巴
□ 写作变现致富
□ 创业商机
□ 百万版税求书稿
□ 日本女友爱情故事
□ 外贸SOHO
□ SOHO百万富翁计划
□ 爱上写作
□ 电子书免费阅读
□ 靠谱淘金计划
□ 创业邦
□ 免费分享
□ 现金大派送
□ 稿费认领通知
□ soho博客
□ 生财之道
□ 一本万利
□ soho投资指南
□ soho致富攻略
□ soho淘金启示

 


·电话:010-51662125
·手机:13011807335
·OICQ:652155904
·电子邮件:sohozones@126.com
·通讯地址:北京朝阳建国路15号
·邮政编码:100024
--管中心理
请您留言



浏览总人数:
今日浏览总人数:
昨日浏览总人数:
本月浏览总人数:
上月浏览总人数:

vb制作简单游戏修改器
作者:俏云八舞 -上传日期:2004-6-18
 中国SOHO特区网(http://www.sohozones.com)会员来稿

vb制作简单游戏修改器
工具:SoftICE、金山游侠V(fpe2000也可)、vb6.0
测试平台:WindowXP Professional
 
    所需知识:
    1、SoftICE、金山游侠V(fpe2000)的使用方法
    2、 汇编基础
    3、 vb简单编程
    开始:
    1、运行SoftICE、金山游侠V(fpe2000)。
    2、运行要修改的游戏,在此以红色警戒2为例。
    3、在游戏中按“*”号键呼出金山游侠查找金钱,查找2-3次会找到地址0AAB8C6C(此地址是动态的,每次查出的可能不一样),记下此地址,回到游戏,按“Ctrl+D”键呼出SoftICE,输入“bpm 0AAB8C6C w”回车(拦截写入地址0AAB8C6C的指令),再按“Ctrl+D”回到游戏,建造一个建筑,SoftICE的窗口会弹出,按Ctrl+方向上键可看到以下代码:
       001B:004E4B85 JLE    004E4BB1
       001B:004E4B87 JMP    004E4B18
       001B:004E4B89 SUB    EAX,EDI               //此行为关键
       001B:004E4B8B MOV    [ESP+24],EDI
       001B:004E4B8F MOV    [EBX+0000024C],EAX   //此行即为写入金钱地址0AAB8C6C的指令
       001B:004E4B95 JMP    004E4BE3             //此行高亮显示
    你可以不知道以上代码的意义,只要注意高亮显示那一行上边的SUB XXX,XXX指令即可,那一行即是将金钱减少的指令,我们只要让其不执行金就不会减少了,到了这里,大家应该知道怎么做了吧,最简单的方法就是将SUB XXX,XXX改为NOP(空操作,俗称"90大法"),如果觉得不过隐,还可以将其改为ADD XXX,XXX,那么每造一样东西,金钱就会增加所造东西的价格。我们可以在SoftICE里打入:
    A 001B:004E4B89 回车
      NOP           回车
      NOP           回车
      回车
   或:
   A 001B:004E4B89 回车 
      ADD   EAX,EDI 回车
      回车
   再打入
   D 001B:004E4B89 回车
记下数据栏中001B:004E4B89和001B:004E4B8A两个字节的数值备用(如果用NOP指令数据为90 90,如果为ADD指令,数据为03 C7,指令视具体游戏而定)。
    4、制作修改器:
打开vb6.0新建一工程,在窗体上加一按钮command1,写入以下代码:
 
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal _
lpClassName As String, ByVal lpWindowName As String) As Long
 
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal _
hwnd As Long, lpdwProcessId As Long) As Long

Private Declare Function OpenProcess Lib "kernel32" (ByVal _
dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
 
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal _
hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long

Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal _
hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal _
 nSize As Long, lpNumberOfBytesWritten As Long) As Long

Private Declare Function CloseHandle Lib "kernel32" (ByVal _
hObject As Long) As Long
 
Private Const PROCESS_ALL_ACCESS = &H1F0FFF
Dim hh As Long
Dim pp As Long
Dim pp2 As Long

Private Sub Command1_Click()
dim str as string
str="red alert 2"     '此为游戏窗体名称,视游戏的不同而改变
hh = FindWindow(vbNullString, str)
If hh <> 0 Then
GetWindowThreadProcessId hh, pp
pp2 = OpenProcess(PROCESS_ALL_ACCESS, False, pp)
If pp2 <> 0 Then
WriteProcessMemory pp2, &H4E4B89, &H90, 1, 0   '如果为ADD指令则为WriteProcessMemory pp2, &H4E4B89, &H03, 1, 0
WriteProcessMemory pp2, &H4E4B8A, &H90, 1, 0   '如果为ADD指令则为WriteProcessMemory pp2, &H4E4B8A, &H27, 1, 0

CloseHandle (pp2)
Else
MsgBox "打开进程失败", , "红警修改器"
End If
Else
MsgBox "请先运行红色警戒2", , "红警修改器"
End If
End Sub
 
     编译后,每次使用时先运行红色警戒2,再切换到windows运行编译的程序即可修改金钱。程序代码中的WriteProcessMemory pp2, &H4E4B89, &H90, 1, 0里的&H4E4B89即为上面提到的关键代码的地址,&H90为刚才记下的备用数据,根据游戏不同而变化,由于SUB EAX,EDI是2字节指令所以在地址&H4E4B8A也写入90(SUB XXX,XXX指令的字节数可用SUB指令的下一指令的地址减SUB指令的地址得到,即004E4B8B-004E4B89),很多游戏都可以用上面的方法找到关键代码SUB XXX,XXX做修改器,此方法即简单又不需太多的知识应该可以轻易做到。
如有疑问可以与我联系:zcxlhx@km169.net  QQ:37988815
 
撰稿人:云南省楚雄州禄丰县医保中心  素还真
邮编:651200

                浏览次数:3129-- 发表评论,已评论1次


----上篇文章:已经没有了
----下篇文章:vb.net中调用api函数应注意的问题


关于我们 | 付费指南 | 广告服务 | 联系方式

中国soho特区 版权所有