c#读写内存

本文介绍了作者使用C#编写《植物大战僵尸》游戏工具的过程,通过找到游戏内存基址,实现了对游戏内阳光、金钱和关卡的读写操作。利用Visual Studio 2008开发,核心代码在新建的窗体类中实现。
摘要由CSDN通过智能技术生成

最近闲来无事发现周围的朋友都在玩《植物大战僵尸》的游戏!于是动了制作这游戏工具的念头!虽然在网上同类工具很多 但是用C#写的我几乎看不到!所以我想用C#写一个!
    首先用CE或者OD或者其他反汇编工具找出游戏的内存基址!
    游戏内存基址:base = 0x006A9EC0
    游戏阳光地址:[base+0x768]+0x5560
    游戏金钱地址:[base+0x82C]+0x28
    游戏关卡地址:[base+0x82C]+0x24  //关卡如:A-B 实际值为:(A-1)×10+B
至于如何获取这些地址不在我们这论坛研究的范围中!
对了我是用工具vs2008编写的!
新建窗体:

C# code
   
   
   
using System; using System.Drawing; using System.Text; using System.Windows.Forms; namespace PlantsVsZombiesTool { /// <summary> /// /// </summary> public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load( object sender, EventArgs e) { } // 启动无线阳光 private void btnGet_Click( object sender, EventArgs e) { if (Helper.GetPidByProcessName(processName) == 0 ) { MessageBox.Show( " 哥们启用之前游戏总该运行吧! " ); return ; } if (btnGet.Text == " 启用-阳光无限 " ) { timer1.Enabled = true ; btnGet.Text = " 关闭-阳光无限 " ; } else { timer1.Enabled = false ; btnGet.Text = " 启用-阳光无限 " ; } } private void timer1_Tick( object sender, EventArgs e) { if (Helper.GetPidByProcessName(processName) == 0 ) { timer1.Enabled = false ; btnGet.Text = " 启用-阳光无限 " ; } int address = ReadMemoryValue(baseAddress); // 读取基址(该地址不会改变) address = address + 0x768 ;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值