最近闲来无事发现周围的朋友都在玩《植物大战僵尸》的游戏!于是动了制作这游戏工具的念头!虽然在网上同类工具很多但是用C#写的我几乎看不到!所以我想用C#写一个! 首先用CE或者OD或者其他反汇编工具找出游戏的内存基址! 游戏内存基址:base=0x006A9EC0 游戏阳光地址:[base+0x768]+0x5560 游戏金钱地址:[base+0x82C]+0x28 游戏关卡地址:[base+0x82C]+0x24//关卡如:A-B实际值为:(A-1)×10+B至于如何获取这些地址不在我们这论坛研究的范围中!对了我是用工具vs2008编写的!新建窗体:C#codeusingSystem;;;;namespacePlantsVsZombiesTool{///<summary>//////</summary>publicpartialclassForm1:Form{publicForm1(){ponent();}privatevoidForm1_Load(objectsender,EventArgse){}//启动无线阳光privatevoidbtnGet_Click(objectsender,EventArgse){if((ProcessName)==0){("哥们启用之前游戏总该运行吧!");return;}if(=="启用-阳光无限"){=true;="关闭-阳光无限";}else{=false;="启用-阳光无限";}}privatevoidtimer1_Tick(objectsender,EventArgse){if((ProcessName)==0){=false;="启用-阳光无限";}intaddress=ReadMemoryValue(baseAddress); //读取基址(该地址不会改变)address=address+0x768; //获取2级地址address=ReadMemoryValue(address);address=address+0x5560; //获取存放阳光数值的地址WriteMemory(address,0x1869F); //写入数据到地址(0x1869F表示99999)=1000;}//启动无线金钱privatevoidbtnMoney_Click(objectsender,EventArgse){if((ProcessName)==0){("哥们启用之前游戏总该运行吧!");return;}if(=="启用-金钱无限"){=true;="关闭-金钱无限";}else{=false;="启用-金钱无限";}}privatevoidtimer2_Tick(objectsender,EventArgse){if((ProcessName)==0){=false;="启用-金钱无限";}intaddress=ReadMemoryValue(baseAddress); //读取基址(该地址不会改变)address=address+0x82C; //获取2级地址address=ReadMemoryValue(address);address=address+0x28; //得到金钱地址WriteMemory(address,0x1869F); //写入数据到地址(0x1869F表示99999)=1000;}privatevoidbtnGo_Click(objectsender,EventArgse){if((processName)==0){("哥
C#读写内存,编写《植物大战僵尸》外挂 来自淘豆网m.daumloan.com转载请标明出处.