中国最大的图书批发网站
[首页] [写手之家] [非常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

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


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