您的位置:首页 > 编程语言 > C#

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英文版找的,其他版本可能不一样 ,自己看看吧

有点着急 希望上面没什么错误

好了,要去自习了...悲剧..
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: