C#制作辅助工具
2011-11-09 12:08
417 查看
看到这么多朋友对辅助感兴趣,这里我就做个简单的教程吧,(真是最近没时间呀,,大家多多体谅一下),
好了,开始吧,
用到的工具有 OD 和 CE(cheat engine) 这两个网上都可又下到的 ,其实只要找到基址下面的就简单了,只要用调用这3个API就行了
//打开进程 返回进程句柄
[DllImport("kernel32.dll")]
public static extern int OpenProcess(int dwDesiredAccess, int bInheritHandle, int dwProcessId);
//向内存写入数据
[DllImport("kernel32.dll")]
public static extern int WriteProcessMemory(int hProcess, IntPtr lpBaseAddress, [In, Out] byte[] lpBuffer, int nSize, ref int lpNumberOfBytesWritten);
//关闭进程
[DllImport("kernel32.dll")]
public static extern void CloseHandle( IntPtr hObject );
至于这函数怎么用,自己百度吧,(只看名子应该就知道了吧,呵呵,)
知道这些,下来就是基址了,这基址找的方法也很多,我这里就用CE +OD ,先做过简单的例子,
由于鬼泣游戏比较大,我机子又不怎么行,就开起就得半天,这里就用个简单的游戏做例子吧,
相信植物大战僵尸大家都玩过吧,这里就用它吧,(鬼泣里的基址找法是一样的)
首先 运行游戏 打开CE 附加上游戏
我们就来找阳光的基址吧 ,这里的初始值是50,我们就先搜索50 (注意:有时候这表面的数据跟内存里的数据不一样,比如这个游戏中的金币就是 他是内存中的值乘10后显示到界面的,)
出来一堆,没关系,我们让这个值改变再搜索(你要是问为什么这样,说明你汇编,内存相关知识欠缺,那本书看看了,呵呵,真想说清楚,我觉得还得说好多)
唉 ,种个向日葵吧,一下这个值变成0了,我们就搜索0(记住点再次搜索)
看,就胜一个了,一般情况下这就是我们要找的
我们来测试看看是不是,我把这里的数据改成5000,
下来我们要找的就是基址了,通过基址加偏移,就能寻址到这个单元,(因为每次程序运行,放阳光的地址都是变化的,这个由系统自动分配的)
我们在 下面的地址上点右键,选择“谁在访问这个地址”
这里有两条指令,说明这两条指令访问了这个单元,按理说每条指令都是可又找的,这里我们选第二条指令吧(因为我比较喜欢esi eax 这样的寄存器 呵呵),选上,双击打开
存放阳光的地址是0c239568 , 这里有[esi+5560] esi=0c234008 再+5560刚好是0c239568,
好了我们再找esi,选上十六进制 首次搜索 晕了,出来一大堆,我前面说过按理说每个都可以用的,前提是那个地址的数值不变,所以我们多点几下,
最后是这样的
你的机子跟我的或许不一样(基本上一样是不可能的,但都不影响最后的结果)
我们就用第一个吧
双击 选中 右键 查看谁访问该地址了,
又了好多,但是我们刚说了要找esi
刚好第一个是 mov esi ,[edi+768]
就用这个吧,双击他,
edi=00da7e60 ,768这里是偏移
我们再搜索edi
到这里就基本差不多了,
我们来整理一下
[esi+5560]
esi=[edi+768]
edi=[006a9ec0]
所以就有 [[[006a9ec0]+768]+5560]
这就是我们要找的,来测试一下
呵呵没错吧,改变一下这里的数值,
没问题吧
其他基址也是类似的,鬼泣里也是这样,我机子不行,附加CE 搜索就更慢了,原理是一样的,
有时CE搜索不出来,就要用到OD ,鬼泣里就是好多要用到od
由于我真的最近很忙,就先做这么多了,大家别打击我,我会什么都说什么,毫无保留!
下面这我找的鬼泣基址加偏移
红魔石基址: [[00e558b8]+114]
技能点: [[00e558c8]+ec] [[00e558c8]+ec]
血量: [[[00e558b8]+24]+15ce]=满血:0x469c(18076) 当前值
二级偏移+4处是血量满值
[[[00e558b8]+24]+15d2]=满血:0x469d(18077) 格子数目 满血
人怪无敌 [0051bfe5]
写入0x90909090
恢复0x46110FF3
人怪一击杀
[0051bfdc]
写0xc1
恢复写0xc0
Vital Star S :[[00e558c8]+2c]
Vital Star M :[[00e558c8]+30]
Vital Star L :[[00e558c8]+34]
Devil Star S :[[00e558c8]+38]
Devil Star L :[[00e558c8]+3C]
holy water基址:[[00e558c8]+40]
Gold Orb(复活币) :[[00e558c8]+28]
无限魔人: [[[00e558b8]+24]+1f24]=0x461c4000(1176256512) 当前魔法数
[[[00e558b8]+24]+1f28]=0x461c4000(1176256512) 魔法格子
回复[007a80a6] 0x00001F2487110FF3
[007a8187] 0x00001F2487110FF3
[007a8191] 0x00001F248F110FF3
[007af00b] 0x00001F2486110FF3
[007d76ff] 0x00001F2486110FF3
无限全写 0x9090909090909090
潘多拉大炮 (无限灾厄): [[[00e558b8]+24]+151f4]=0x461c3400(1176253440)
[007bca39] 0x000151F48E110FF3
[007bca5b] 0x000151F486110FF3
无限全写 0x9090909090909090
加速 [[[00e558b8]+24]+2834]=0x43622A18(1130506776) //瞬间加速
[00804581]
回复写 0x0000283483110FF3
加速写 0x9090909090909090
RG
[[[00E558B8]+24]+14dac]=满写 0xEA60 一半写0x4665
[007bb977] 0x00014DAC8E110FF3
无限 0x9090909090909090
无限EX尼禄
[007ea4a2]
无限写 0x00 (蓄满不减)
恢复写 0xff
时间静止
[00494dA1]
静止写:0x90909090
恢复写: 0xD85c0ff3
这是在DX9英文版找的,其他版本可能不一样 ,自己看看吧
有点着急 希望上面没什么错误
好了,要去自习了...悲剧..
好了,开始吧,
用到的工具有 OD 和 CE(cheat engine) 这两个网上都可又下到的 ,其实只要找到基址下面的就简单了,只要用调用这3个API就行了
//打开进程 返回进程句柄
[DllImport("kernel32.dll")]
public static extern int OpenProcess(int dwDesiredAccess, int bInheritHandle, int dwProcessId);
//向内存写入数据
[DllImport("kernel32.dll")]
public static extern int WriteProcessMemory(int hProcess, IntPtr lpBaseAddress, [In, Out] byte[] lpBuffer, int nSize, ref int lpNumberOfBytesWritten);
//关闭进程
[DllImport("kernel32.dll")]
public static extern void CloseHandle( IntPtr hObject );
至于这函数怎么用,自己百度吧,(只看名子应该就知道了吧,呵呵,)
知道这些,下来就是基址了,这基址找的方法也很多,我这里就用CE +OD ,先做过简单的例子,
由于鬼泣游戏比较大,我机子又不怎么行,就开起就得半天,这里就用个简单的游戏做例子吧,
相信植物大战僵尸大家都玩过吧,这里就用它吧,(鬼泣里的基址找法是一样的)
首先 运行游戏 打开CE 附加上游戏
我们就来找阳光的基址吧 ,这里的初始值是50,我们就先搜索50 (注意:有时候这表面的数据跟内存里的数据不一样,比如这个游戏中的金币就是 他是内存中的值乘10后显示到界面的,)
出来一堆,没关系,我们让这个值改变再搜索(你要是问为什么这样,说明你汇编,内存相关知识欠缺,那本书看看了,呵呵,真想说清楚,我觉得还得说好多)
唉 ,种个向日葵吧,一下这个值变成0了,我们就搜索0(记住点再次搜索)
看,就胜一个了,一般情况下这就是我们要找的
我们来测试看看是不是,我把这里的数据改成5000,
下来我们要找的就是基址了,通过基址加偏移,就能寻址到这个单元,(因为每次程序运行,放阳光的地址都是变化的,这个由系统自动分配的)
我们在 下面的地址上点右键,选择“谁在访问这个地址”
这里有两条指令,说明这两条指令访问了这个单元,按理说每条指令都是可又找的,这里我们选第二条指令吧(因为我比较喜欢esi eax 这样的寄存器 呵呵),选上,双击打开
存放阳光的地址是0c239568 , 这里有[esi+5560] esi=0c234008 再+5560刚好是0c239568,
好了我们再找esi,选上十六进制 首次搜索 晕了,出来一大堆,我前面说过按理说每个都可以用的,前提是那个地址的数值不变,所以我们多点几下,
最后是这样的
你的机子跟我的或许不一样(基本上一样是不可能的,但都不影响最后的结果)
我们就用第一个吧
双击 选中 右键 查看谁访问该地址了,
又了好多,但是我们刚说了要找esi
刚好第一个是 mov esi ,[edi+768]
就用这个吧,双击他,
edi=00da7e60 ,768这里是偏移
我们再搜索edi
到这里就基本差不多了,
我们来整理一下
[esi+5560]
esi=[edi+768]
edi=[006a9ec0]
所以就有 [[[006a9ec0]+768]+5560]
这就是我们要找的,来测试一下
呵呵没错吧,改变一下这里的数值,
没问题吧
其他基址也是类似的,鬼泣里也是这样,我机子不行,附加CE 搜索就更慢了,原理是一样的,
有时CE搜索不出来,就要用到OD ,鬼泣里就是好多要用到od
由于我真的最近很忙,就先做这么多了,大家别打击我,我会什么都说什么,毫无保留!
下面这我找的鬼泣基址加偏移
红魔石基址: [[00e558b8]+114]
技能点: [[00e558c8]+ec] [[00e558c8]+ec]
血量: [[[00e558b8]+24]+15ce]=满血:0x469c(18076) 当前值
二级偏移+4处是血量满值
[[[00e558b8]+24]+15d2]=满血:0x469d(18077) 格子数目 满血
人怪无敌 [0051bfe5]
写入0x90909090
恢复0x46110FF3
人怪一击杀
[0051bfdc]
写0xc1
恢复写0xc0
Vital Star S :[[00e558c8]+2c]
Vital Star M :[[00e558c8]+30]
Vital Star L :[[00e558c8]+34]
Devil Star S :[[00e558c8]+38]
Devil Star L :[[00e558c8]+3C]
holy water基址:[[00e558c8]+40]
Gold Orb(复活币) :[[00e558c8]+28]
无限魔人: [[[00e558b8]+24]+1f24]=0x461c4000(1176256512) 当前魔法数
[[[00e558b8]+24]+1f28]=0x461c4000(1176256512) 魔法格子
回复[007a80a6] 0x00001F2487110FF3
[007a8187] 0x00001F2487110FF3
[007a8191] 0x00001F248F110FF3
[007af00b] 0x00001F2486110FF3
[007d76ff] 0x00001F2486110FF3
无限全写 0x9090909090909090
潘多拉大炮 (无限灾厄): [[[00e558b8]+24]+151f4]=0x461c3400(1176253440)
[007bca39] 0x000151F48E110FF3
[007bca5b] 0x000151F486110FF3
无限全写 0x9090909090909090
加速 [[[00e558b8]+24]+2834]=0x43622A18(1130506776) //瞬间加速
[00804581]
回复写 0x0000283483110FF3
加速写 0x9090909090909090
RG
[[[00E558B8]+24]+14dac]=满写 0xEA60 一半写0x4665
[007bb977] 0x00014DAC8E110FF3
无限 0x9090909090909090
无限EX尼禄
[007ea4a2]
无限写 0x00 (蓄满不减)
恢复写 0xff
时间静止
[00494dA1]
静止写:0x90909090
恢复写: 0xD85c0ff3
这是在DX9英文版找的,其他版本可能不一样 ,自己看看吧
有点着急 希望上面没什么错误
好了,要去自习了...悲剧..
相关文章推荐
- C#使用WebBrowser制作网页游戏辅助工具关键技术分析
- [z]C#使用WebBrowser制作网页游戏辅助工具关键技术分析
- C#使用 WebBrowser制作网页游戏辅助工具关键技术分析
- [导入]利用C#制作一个文件连接小工具[Longever原创]
- C#关于制作截图工具(一)<简单截图>
- 零基础制作【武林外传】辅助工具(三)
- NodeJS应用程序设置为window service-辅助工具(C#)
- 网页制作辅助工具-jQuery标尺参考线插件
- Flash网页游戏辅助工具制作简析
- 数据库编程辅助工具(C#开源)
- C#开发的辅助工具介绍
- 不用VS自带的打包工具,不用InstallShield。用C#自己制作安装程序
- [C#]SogotRestore v1.0 网站辅助恢复工具!
- 用C#写外挂或辅助工具必须要的WindowsAPI
- 零基础制作【武林外传】辅助工具(一)
- 实现一套 mysql 于 c++ 和 C# 的辅助代码构建工具及库
- C#操作数据库简单辅助工具
- 零基础制作【武林外传】辅助工具(二)
- C# ClipboardHelper (系统复制粘贴辅助工具)
- Flash网页游戏辅助工具制作简析