CE怎样做窗口

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
Cheat Engine(简称 CE )使用方法 游戏作弊高人
下载积分:200
内容提示:Cheat Engine(简称 CE )使用方法 游戏作弊高人
文档格式:PDF|
浏览次数:5531|
上传日期: 08:11:37|
文档星级:
该用户还上传了这些文档
Cheat Engine(简称 CE )使用方法 游戏作弊高人
官方公共微信Windows CE / WM6 .NET CF 很漂亮的一套UI控件(BeeMobile)特别版下载,可用于制作精美的屏幕界面! - 下载频道 - CSDN.NET
&&&&Windows CE / WM6 .NET CF 很漂亮的一套UI控件(BeeMobile)特别版下载,可用于制作精美的屏幕界面!
&Windows CE / WM6 .NET CF 很漂亮的一套UI控件(BeeMobile)特别版下载,可用于制作精美的屏幕界面!
Windows CE / WM6 .NET CF 很漂亮的一套UI控件(BeeMobile)特别版下载,可用于制作精美的屏幕界面!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
评价资源返积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
移动开发下载排行
积分不够下载该资源
如何快速获得积分?
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
Windows CE / WM6 .NET CF 很漂亮的一套UI控件(BeeMobile)特别版下载,可用于制作精美的屏幕界面!
所需积分:10
剩余积分:
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
VIP服务公告:您还未登陆,请登录后操作!
您的举报已经提交成功,我们将尽快处理,谢谢!
你好 没办法的需要自己找到适合的位置隐藏即可
大家还关注CE过NP的方法-就是更改成自己的软件
CE的修改制作自己的UCE彻底解决NP问题(软件名可自己改)任意版本NP存任你修改!
制作成功!(永久吸怪就在不远处)!把经验分享给大家,全英文的,金山词霸一个一个翻译吧,弄了个通宵实在痛苦!!为了方便大家偶牺牲很多饿,ppz的前辈门有好标标的LJ记得给我点(40几级的菜菜也用不了好东西)QQ:
为了陪老婆才玩的 555 - -B
本帖由kwonboa原创 转贴请保留以上信息 谢谢 做有素质的中国人
由于过程非常长和复杂,建议非无电脑基础的朋友不要浪费时间(其实会了也超级简单),我将分步为大家讲解安装!
b下面说明下为什么要修改
修改函数变量是为了让NP不认识你这个新程序
修改软件名称LOGO什么的标志图片把他变成你自己的UCE程序吧
第一步:所需要的软件
1.CE原码:
2.微软的DDK:
3.Delphi7地址自己在网上找,原发地址以不能下)
程序编译:(解压到CE原码文件夹)
第二步BK32.SYS(whatever.sys)制作 \ExW e~Za
1.解压CE原码到本地C盘
2.修改Driver.dat 记事本打开后修改(下面的whatever表示什么都可以
改成你要的个性名称)&&
CEDRIVER53 ----& Whatever1
DBKProcList53 ----& Whatever2
DBKThreadList53 ----&Whatever3
dbk32.sys ----& Whatever.sys
修改完毕保存关闭
3.进入DBKKernel目录
修改DBKDrvr.c文件
记事本打开改文件
搜索"//hideme(DriverObject)"&&
将前面的//去掉 保存关闭
修改sources.ce文件
同样记事本打开
将"TARGETNAME=DBK32"改为 "TARGETNAME=Whatever"(whatever为你刚刚的个性名称)
4.下面马上生成whatever.sys
先安装好DDK(过程略)
开始& 所有程序& Development Kits& Build Environments& Windows
XP& Windows XP Free Build Environme
运行后键入代码:
CD C:\Cheat Engine Delphi\DBKKernel 回车
获得返回代码(无变化)
没事 接着输入:
得到C:\Cheat Engine Delphi\DBKKernel反馈路径
慢慢等吧 工作了 接下来就自动生成了您的whatever.sys
第三步:dpr文件的函数变量修改3a. 我们现在把dbk32目录中的文件"dbk32.dpr" 用Delphi7打开.
我们使用软件菜单 "VIEW" -"roject Manager" 会看到"dbk32.dll" 点旁边的+号打开分目录看到
"DBK32functions"打开它按下面修改
CEDRIVER52 &&& Whatever1 (这里的whatever不用我再解释了吧- -)
DBKProcList51 &&& Whatever2 (" ")
DBKThreadList51 &&& Whatever3 ("")
改好保存关闭 然后进入CE原码根目录 按F3搜索 包含下面变量(VQE OP OT NOP RPM
WPM)的函数全部替换成您的WHATEVER4~10 详细请看下面
VQE ---& Whatever4
OP ---& Whatever5
OT ---& Whatever6
NOP ---& Whatever7
RPM ---& Whatever8
WPM ---& Whatever9
VAE ---& Whatever10
(友情提示下 我犯过的错 弄错文件全变LJ OP OT短的不能使用查好替换 因为里面代码有NOT
直接替换就变成"NWHATEVER6" 其实NOT不是变量是 是程序代码 不需要替换 没办法只能手动一个一个改OP变量)
好累啊!!!!!!!!!!!!!!!!大家记得回复我的帖子哦 谢谢了!~全部手动写不比复制
下面接着改文件(记住所有修改不只是改文件名 所有目录下的改文件内容中的也全部要做修改)
DBK32functions.pas &&& Whateverfunctions.pas (
不想再说whatever什么意思 除非你是...保存到dbk32目录)
NewKernelHandler.pas &&& WhateverHandler.pas (保存到根目录)
保存关闭所有
注意再提示下表忘了修改下面
dbk32.sys &&& Whatever.sys
dbk32.dll &&& Whatever.dll (下面一步生成)
用Delphi打开 Whatever.dpr(DBK32.DPR) 按Ctrl+F9. 生成上面的WHATEVER.DLL
如果发生错误请检查文件变量是否全部修改
文件CEHook.dpr 和hypermode.pas 改成Whatever54.(只能改whatever54)
现在用Delphi 打开CEHook.dpr(上面改名了)
Ctrl+F9生成文件
修改下面文件(修改包括文件名和所有文件内容)
newkernelhandler.pas &&& Whateverhandler
CeFuncProc .pas &&& Whatever56
CheatEngine &&& WhateverEngine (警告:cheatengine.bpg绝对不能修改
cheat engine &&& Whatever Engine
最后用Delphi打开 cheatengine.bpg 进行总的编译吧进入后按SHIT+F12选择CE主程序(MAIN什么的)进行编译
左修改参数LEFT为228(注意:这里不改看不到CE主程序)
下面就是最爽的时候了 哈哈 把所有的能改的地方全改了软件名字 版权什么的 你喜欢汉化就自己查中文意思改下标签的名字
最重要的修改:
"VIEW" -"roject Manager" 选中CHEATENGIN.EXE点OPTION什么的 里面有个
Versions Options
版本修改 里面都是CE什么什么的 全部改掉 为了就是NP不认识CE!~~~~~~~~~~~~~~能改多少改多少
最后就一键CTRL+F9生成您的自己的新软件 嘎嘎!~~~感觉一定不错!~~~不过别忘了 这里会发生很多错误
估计就是你函数没改全!~~仔细看文章 哪些改哪些 遇到没改的发生错误自动会停 马上改成我要你改的新名字就不会发生错误了!~最后搞定了
自动生成了您的新软件.EXE
因为原文是跟贴,而且不连续,所以现在把译文补全,总结成贴。
不当之处,还请斧正。
没有比这更简单的,相信我
嗨,各位。我决定做一个教程,因为当我想去破解但是没有UCE的时候我感觉自己多么“菜”,这个教程很长但是非常地详细而且非常地初级,这个教程非常值得一看。从法律的角度说,我没有这样说:“我没有鼓励破解,我简单地希望大家能够学习此教程”无论如何,回到CE的讨论,我们中的许多人已经读过一篇简单的教程,如Drkz
from MPC, Vener88, or Rolling Dice(MPC论坛上的Drkz, Vener88,Rolling
Dice),但是问题是…
& Drkz: 它从来没起作用,我编译的时候总是遇到同样的错误
&&& Vener88:
它用了740的文件,但是740已经被检测到了(740是NP的版本).
&&& Rolling
Dice: 这个教程我已经看熟,但它是好的教程却不是那么初级(不适合新手)。
当我学到这篇教程的时候我是幸运的,因为我有程序设计背景,不要误解我,我的意思是:假如你知道你在做什么,这将是一篇很好的教程。
这篇教程有点象Rolling Dice那篇,原因很简单,我正是认真地学习了他的那篇教程。
首先,一点点的忠告,我知道这是陈词滥调、但是
“龟兔赛跑乌龟胜了兔子”
这意味着,如果你要快速并且准确地做这件事情,抓紧你的时间检查好每一步,这总比快速地浏览完这篇教程然后犯错误好,那样知道你地错误的人就只有-_____-
那么,我们开始
1.下载一些必要的软件 (前面两个东东可以去我网盘下,)
& -Actual Search and
Replace&& 一个查找及替换软件
& -CE Source (updated 5.24.06) CE的deiphi源代码。
7&&&&&&&&&&&&&&
Delphi 7 买光盘安装吧,很难下载到,也太大,1G左右。
& -Windows DDK (Windows DDK (包含在
KMDF,核心模式驱动架构中)
下载:/whdc/driver/wdf/KMDF_pkg.mspx
2.创造DBK32.sys
& 2a.用记事本代开CE主目录里面的driver.dat ,做如下修改:
&&& CEDRIVER53
&& string1
DBKProclist53 && string2
DBKThreadList53 && string3
&&& dbk32.sys
&& string.sys
& 2b. 用记事本打开DBKKernel文件夹下面的DBKDrvr.c,查找:
hideme,跳过第一处,来到第
& 二处,你会看到这样的句子: //hideme (DriverObject).
然后将hideme前面的 // 去掉。
& 2C. 用记事本打开打开DBKKernel
文件夹下面的sources.ce,做如下修改:
TARGETNAME=DBK32 && TARGETNAME=string
& 2D. 现在编译 String.sys (也就是以前的DBK32.sys).
把你的DBKKernel文件夹所在目录的地址复制下来(等会用)。
& 打开window
DDK,从开始菜单&&程序里面打开(确定你已经安装了KMDF)
打开之后是一个CMD界面,输入 cd &&(&&既你刚才复制的地址,现在粘贴到这里)
&&& 输入ce,确定
如果一切正常,你将会看到“files compiled. 1 Executable built”的字样,String.sys
也已经出现在你的CE主目录里面。
3. 替换已被检测字符
3a.用delphi 7(中文版) 打开dbk32文件夹下的dbk32.dpr。
查看&&工程管理器,然后展开dbk32.dll,双击DBK32functions打开它,做如下修改:
& CEDRIVER52 &&
String1(跟CEDRIVER53是同一个东西)
& DBKProcList51 && String2
(跟DBKProcList53是同一个)
& DBKThreadList51 && String3
(跟DBKThreadList53是同一个)
& 都做完了么?然后保存,可以关掉delphi7了
然后打开文字替换工具(也就是Actual Search and Replace)
& File& Settings & Editor,找到你的delphi
7目录的delphi运行文件,也就是delphi32.exe,
& 类似于"C:\Program
Files\Borland\Delphi7\Bin\delphi32.exe" ,确定
点到 options 标签,确定"include subfolders"(包含子文件)已经被选上。
点到 Search and Replace标签,
& 在 "Masks" 里面,键入: newkernelhandler.
DBK32functions. DBK32.dpr
&&& 在 "Path"
里面加入:CE主目录
然后把whole words 选上。
开始进行字符替换,在"to search"里填要替换的字符,在"to Replace or insert"填上要替换成的字符。
被替换和替换成的字符如下:
VQE && string4
OP &&&& string5
OT &&&& string6
string7&&&&&&&&&&
……(依次递推)&&&&&&&&&&
VAE&&&&&&&&&&&&
CreateRemoteAPC&&&&&&
ReadPhysicalMemory&&&&&&
WritePhysicalMemory&&&&&&
GetPhysicalAddress&&&&&&
GetPEProcess&&&&&&&&
GetPEThread&&&&&&&&
ProtectMe&&&&&&&&&&
UnprotectMe&&&&&&&&&&
IsValidHandle&&&&&&
GetCR4&&&&&&&&&&
GetCR3&&&&&&&&&&
SetCR3&&&&&&&&&&
GetSDT&&&&&&&&&&
GetSDTShadow&&&&&&&&
setAlternateDebugMethod&&
getAlternateDebugMethod&&&&
DebugProcess&&&&&&&&
StopDebugging&&&&&&&&
StopRegisterChange&&&&&&
RetrieveDebugData&&&&&&
GetThreadsProcessOffset&&
GetThreadListEntryOffset&&
GetDebugportOffset&&&&&&
GetProcessnameOffset&&&&
StartProcessWatch&&&&&&
WaitForProcessListData&&&&
GetProcessNameFromID&&&&
GetProcessNameFromPEProcess
GetIDTCurrentThread&&&&
GetIDTs&&&&&&&&&&
MakeWritable&&&&&&&&
GetLoadedState&&&&&&
ChangeRegOnBP&&&&&&&&
DBKSuspendThread&&&&&&
DBKResumeThread&&&&&&
DBKSuspendProcess&&&&&&
DBKResumeProcess&&&&&&
KernelAlloc&&&&&&&&&&
GetKProcAddress&&&&&&
Protect2&&&&&&&&&&
test&&&&&&&&&&&&
useIOCTL&&&&&&&&
& 3b. 现在我们将newkernelhandler.pas,
DBK32functions.pas, 和DBK32.dpr改名.
& 用Delphi 7打开上面3个文件. Newkernelhandler
在CE主目录,另外两个文件在DBK32文件夹. 打开,
& 然后执行“文件 ”& “另存为”,3个文件分别另存为:
& DBK32.dpr && String.dpr
DBK32functions.pas && Stringfunctions.pas
KernelHandler.pas && Stringfunctions.pas
& 然后保存,退出。
& 现在,打开查找和替换工具,把 mask 改成 " *.* ". (Include
Subfolders要选中)
&&& 做如下替换。
&&& dbk32.sys
&& string.sys
&&& dbk32.dll
&& string.dll
&&& 现在用delphi
7打开string.dpr . 我们将编译 string.dll. 执行 Project & compile string.
如果正常你将会
& 看到"警告"和"提示"窗口,否则你将看到"错误"窗口. 如果得到错误,那么检查你的步骤。
& 好的,如果一切正常,你就可以在CE主目录看到string.dll了
3c. 制作 CEHook
再次用到查找和替换工具,“Mask”里键入 CEHook.hypermode.pas
替换:myhook && string54
用delphi7打开CEHOOK文件夹下面的CEHook.dpr
,然后将user下面的system注释掉,也就是在system
前面加入“ // ”。
3d. 创造 Stealth - 打开stealth.dpr(在Stealth目录下)
并且编译它,这里什么都不需要变(HOHO…)
3e. 重新命名 NewKernelHandler 和 CeFuncProc
打开cheatengine.dpr(CE 主目录下).来到 工程管理器 ,再次打开NewKernelHandler.pas 和
& CeFuncProc.pas 执行文件 & 另存为".
保存到CE主目录,两文件分别保存为:
& NewKernelHandler.pas && StringHandler.pas
(replace? Yes!)
CeFuncProc.pas && String55.pas
保存,退出。
然后查找替换,Mask填:*.*,(取消 include subfolders)
NewKernelHandler && Stringhandler
(改变所有文件除了Newkernelhandler.pas)
& CeFuncProc && String55
3f. 改变数值字符 (十六进制数值)
需要改变3个数值:&&
,&& 7FFFFFFF
可以给3个数值加上同样的数,比如说加5他们就变成:000005
然后查找替换,(Include subfolders),Mask:"*.*"
& 7FFFFFFF &&
3g. 改变CheatEngine 图形界面里面的单词
& 再次查找和替换, (取消 include subfolders) ,Mask:"*.*"
& nextscanbutton && String56
& scanvalue && String57
& scanvalue2 && String58
& ScanType && String59
& VarType && String60
& newscan && String61
& ScanText && String62
(你可以改变为任何网站)
3h. 再次查找和替换,(取消 include subfolders). mask:"*.pas "
& CheatEngine && StringEngine
& cheat engine && String Engine
3i.配置Cheat Engine 图形界面
& 打开CE主目录下的cheatengine.bpg. 然后工程管理器, 打开 MainUnit .
双击Cheat Engine图形界面就
& 弹出来了.
& 查找灰色显示的单词: "scan type" 和"value
type",单击该下拉框来到scantype,这一步的目的就是检查你修改的字符是否正确,然后看左边的工程树和工程检测器,希望工程树下的
String59 是高亮显示的,现在向下滚动工程检测器,知道你看到"name",希望它的下一格也是String59
& 如果你这一步做正确了,那么继续重复做单词的检查。
最后,点击红色箭头下面的"ProtectMe2" 和"crash me",转到工程监测器,把它的标题上的单词删掉
这样,它们是存在的,可是我们却看不到它们了。
下面,是一些有关个性化你的UCE的方法:
改变版本信息:用工程管理器打开Cheatengine.exe,右键&选项,点击"版本信息"标签,自由发挥吧
改变应用程序名,帮助,和图标,同上,然后点击“应用程序”标签。
改变设置和关于…部分,分别用工程管理器打开formsettingsunit" 和 "aboutunit"
3j. 编译 cheatengine.exe
查看工程管理器,确定你现在选择的是cheatengine.exe而不是cheatengine.DEU / NLD / RUS
最小化DelPhi,然后用wendows资源管理器打开CE主目录,建立一个文本文件,然后改名为:
trainerwithassembler.exe
& 现在回到delphi,编译,这将会是很长的一步(但也是令人高兴的,因为你正接近成功)
当你尝试编译的时候,你也许会得到错误,类似:
[Error] autoassembler.pas(531): Undeclared identifier:
'KernelAlloc'
希望你已将你的改变如我要求的那样记录到一张纸上,现在去看你的记录,你将KernelAlloc变成了什么,
在该教程里,我改变为 String50
& 再次编译,如果你再次得到错误,处理它,再编译,直到没有错误。
(这是很长的一步,却是关键的一步)
4. 完成接触
4a. 编译UCE需要的文件
& 打开Delphi.
编译systemcallsignal.dpr (在 SystemcallRetriever 文件夹下).
编译Systemcallretriever.dpr(在 SystemcallRetriever
文件夹下).&&
编译Kernelmoduleunloader.dpr ( dbk32\kernelmodule unloader文件夹下)
4b. 另外的填充
& 首先.. 在你进行打包搞遭前,制作一个源文件的拷贝.
现在打开主目录下的cheatengine.bpg ,另存为stringengine.bpg
再次打开cheatengine.bpg,在cheatengine.exe 上右击,选择"查看源文件",
& 另存 cheatengine.dpr 为 stringengine.dpr 然后
编译它,你就会得到StringEngine.exe. !! (CE主文件,在这里已经变成SE了)
4c. 希望现在你有了所有下面的文件..
& 创造一个新的文件夹把他们放进去。
& stringengine.exe
& driver.dat
& string.sys
& string.dll
& stealth.dll
& cehook.dll
& systemcallsignal.exe
& systemcallretriever.exe
& kernelmoduleunloader.exe
& 所所所所…有的事情已经做好!! 现在你仅需要去测试它。
5.测试你的UCE
我想大家都会测试吧…不翻译了。
夜深了,困死了
到这里,文章就基本翻译完了,有的地方没有按原文翻译,是因为原文有图片,发帖子似乎不能进行图文混排,所以就只能用文字表达,我想我基本已经表达清楚作者的意思了。
因为我自己也没有delphi7,也不会用delphi7所以没有进行具体的操作,所有有些关于delphi程序菜单的翻译是用类似BC的文字,我想差距也不会很大吧,大家应该都能明白。
HOHOHO,本文章只是提供改CE的控件名字,变量名等东西,没有涉及内部模块函数调用的改变,所以做的基本上只是表面文章,也许对了一般的反外挂程序还行,但是似乎对付不了NP、、、
翻译这篇文章,用了偶接近4个小时的时间,555
其实,这个过程也是自己整理思路的过程,同时把它发到论坛上来,也希望能与大家共享
最后,把别人改的一个CE版本发上来,叫做Google Engine
不过,大家失望吧,它不能过NP~
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。5106人阅读
Cheat Engine Tutorial 闯关手记 第一关
Cheat Engine 能做什么?修改游戏的数值,就象《金山游侠V》,但它能胜任动态地址的查找;制作游戏专用的修改器,补丁,你可以将制作好的补丁发布出去,让大家共享你的乐趣;当然,Cheat Engine 还能更多的事情,比如,制作网游外挂,软件反汇编等等,具体的介绍大家可以BAIDU一下。
&&&&&& Cheat Engine (简称 CE )的作者为了让大家更快的熟悉软件的使用方法,发布的同时还附带了练习小程序 Tutorial.exe ,这个小序程将我们在修改游戏过程中所遇到的问题总结在一起,分成了 8 个关卡(5.5 版),让我们一步一步的学习,最终成为——游戏作弊高人!
&&&&&& 本篇手记就是 Tutorial.exe 的第一关的闯关记录,我会尽量将我所理解的全盘记叙下来,有兴趣的朋友一起研究,共同进步吧~
&&&&& 通过本关的任务,可以熟悉 CE 基本的操作界面,并可以解决最简单的数值修改问题。
&&&&&& 在开始之前,我们先统一软件,否则研究起来可能会有不少的出入,CE 目前已经有了 5.6 版本,但汉化的版本好象还不甚完美,本手记使用 Cheat Engine 5.5 汉化中文版,英文牛人飘过好了……
&&&&&&& (注:如果链接无效,请至迅雷网站查找 Cheat Engine 5.5 中文版)
&&&&&& 将下载的压缩包解压,已解压的文件夹下将包括如下图所示的文件:
&&&&&& 我们要关注的是图上用红字标注出的执行程序,执行汉化版程序,CE 主界面如下图所示:
&&&&&& 好象用不着怎么介绍,我们可以看出,在没有选择进程的情况下,CE 有部分是“虚”的,图中我用红框标示的部分,并且界面左上方
图标周围红绿框在不停的闪烁。
&&&&&& 现在可以执行练习程序了,首先看到的是欢迎界面,没错,它是英文的,呵呵,如下图:
&&&&&& (注:网上有人将这个小程序汉化了,但在用 CE 分析时可能会出错,无法完成预定的关卡,建议大家还是用英文版的)
&&&&&& 鉴于大家应该和我一样的英盲,下面将翻译过的文本提供给大家,上图中的文本大意如下:
&&&&&& 欢迎你来到CE教程。 (v3.1)
&&&&&& 这个教程是解释在游戏中作弊的基本步骤,并让你更熟悉CE的使用。
&&&&&& 首先运行CE,如果你还没运行的话。然后点击 &请选择要调试的程序& 按钮 (在左上角有电脑图标的那个)
&&&&&& 当进程列表窗口打开后,找到这个教程,进程的名字应该是 &tutorial.exe” ,除非你把它改名了,选择它,并点击 打开 。现在先不要管其他的按钮,如果你愿意的话,以后再研究它们。
&&&&&& 如果没什么问题,进程列表窗口将会消失并且在 CE 主界面的上方会显示选择的进程名。
&&&&&& 好了,点击 next 按钮继续到下一个步骤 (或者输入密码进入你想去的其它练习)。
&&&&&& 明白说了什么,我们照做吧,点击那个不停闪烁电脑图,在弹出的进程列表中选择 Tutorial.exe ,打开它,如下图所示:
&&&&&& 打开后如下图:
&&&&&& 我们再点击 Tutorial.exe 上的 next ,看看第一关我们要做什么,如下图:
&&&&&& 翻译如下:
&&&&&& 步骤 2:精确数值扫描 (密码=090453)
&&&&&& 现在你已经在 CE 中打开了 Tutorial ,为我们进入到下一步作好了准备。
&&&&&& 在这个窗口的左下方的 Health (血值):XXX ,每次你点击 &Hit me& 时,血便会减少。
&&&&&& 要进入下一关,你必须找到这个数值并把它改成 1000 。
&&&&&& 有不少方法都可以找到这个数值的位置,但我会告诉你一个最简单的方法,“精确数值扫描”:
&&&&&& 首先确认数值类型设置为2字节或4字节,当然,设置成1字节也可以的,但最终修改它的时候便会有点麻烦了(虽然很容易解决),如果该地址后边的字节数值都是 0 ,那么你设置成 8 字节也未尝不可,不过在这我们就不必尝试了。单浮点数,双浮点数,以及其他的扫描方在这里行不通的,因为它们储存数值的方式不同。
&&&&&& (注:1个字节所表示的最大数值为十进制的 255 ,十六进制为 FF ,2个字节所表示的最大数值为十进制的 65535 ,十六进制表示为 FF FF ;通常在游戏中很少有用8个字节表示数值)
&&&&&& 当数值类型设置正确后,确认扫描类型设置在 &精确数值& ,把血的数值填在数值输入框上,并点击 &首次扫描& ,一会儿(如果你的电脑非常慢的话),扫描完毕后,扫描的结果将会显示在主界面的左侧。
&&&&&& 如果你扫描到不止一个地址,你又不知道哪一个是正确的,那么继续点击 Tutorial 上的 &Hit me& ,并把变更后 血的数值 填到数值输入框中,然后点击 &再次扫描& ,重复这些步骤,直到你能确认你已经找到地址(在地址列表上只有一个地址)。
&&&&&& 好,双击左边列表上的地址,这个地址便移动到下方的列表上并显示它的当前数值。
&&&&&& 双击下方列表的中数值(或者选择它,按下回车),填入你要修改的数值:1000 。
&&&&&& 如果操作正确,下一步按钮将会变成可点击的了,你就可以准备进入下一关了。
&&&&&& 提示:
&&&&&& 如果你在扫描过程中做错了,可以点击 &新的扫描& 重新再来。当然,你也可以点 &Hit me& 去找一些更有价值的线索。
&&&&&& OK,我们一步一步的来,首先按下图所示填好界面中的选项:
&&&&&& 血值,呵呵,如果你刚才没有点击 &Hit me& 的话,它初始就是100,不信的话,你看上面的关于 Tutorial 图示?如果你已经忍不住点了两下,那么你要在 CE 数值框中填入你目前的血值再点击 首次扫描 按钮;第一次扫描,CE 找到 Tutorial 程序中所有值为100的地址,显示在左侧的列表中,如下图:
&&&&&& 在左侧列表的上方,可以看到扫描结果为:39 ,表示CE找到了39个值为100的地址,太多了,我们不能确定哪一个才是我们要找的,这时,可以点击 &Hit me& 了,让血值产生变化,CE便可以查找或监控到哪一个地址发生了变化;点击后,如下图所示:
&&&&&& 现在,血值为97,将97填入 CE 的数值框中去,然后点击 &再次扫描& 按钮,如下图:
&&&&&& 很快,CE找到了惟一的地址,双击它,或是点击图中
按钮,便可将该地址转入下方的列表中,如下图:
&&&&&& 简单介绍一下,&锁定& :勾选可将数值锁定(即不产生变化,保持数值不变);&说明& :可以帮助我们记忆修改的地址内容,比如说,我们可以双击图中 &无说明& 处,改为 &生命值&;&地址& :放置数值的内存地址;&类型&:数值类型;&数值&:数值喽。
&&&&&& 按照 Tutorial 本关的提示,双击&数值& 处,或是单击这一栏,按回车键,在弹出的对话框中填入 1000,如下图:
&&&&&& 确定后,可以看到CE 下方列表 &数值& 部分已变更为 1000,如下图:
&&&&&&& 看一下 Tutorial ,next 按钮已经激活,但好象数值还是 97,呵呵,勾选上&锁定&,再点一下 &Hit me& ?是不是搞定了?!
&&&&&& 至此,闯过第一关了,好累,呵呵,不是说我水平不行哦,短短几分钟的事,为了写这个足足花费了2个多钟头的时间;希望大家都能看明白,因为第二关,我就不会插入这么多的图片说明了,毕竟不能老做重复的功,与本关相似的地方,文字说明好了~
&&&&&& 哦,别忘了,记下第二关的密码(PW=419482),下次直接从第二关开始……
Cheat Engine Tutorial 闯关手记 第二关
&&&&&& 经过第一关的演练,我们熟悉了 CE 的界面,用它查找到了有精确数值的地址,看来以后修改一下游戏中的生命,金钱,经验之类的应当没什么问题了,那么第二关是什么考验呢?
&&&&&& 执行 Tutorial.exe 文件,在欢迎窗口的右下角,输入上次我们获得的第二关的密码,点击 &OK& 键,进入第二关,如果打从我上篇讲完你压根没休息,那就忽视这段……
&&&&&& 先翻译第二关的说明,还象上篇一样用淡蓝色的字体标示如下:
&&&&&& 步骤 3:未知初始数值 (PW=419482)
&&&&&& OK,看来你已经理解了怎样利用精确数值扫描并找到一个数值了,让我们进入下一步。
&&&&&& 在上一关中我们知道初始数值的大小,所以我们利用精确数值扫描,但这一关中我们仅有一个进度条,我们并不知道它开始时的数值。
&&&&&& 我们只知道这个数值在0到500之间,并且每次你点 &Hit me& 之后你会减些血,每次减的血量会显示在进度条的上方。
&&&&&& 同样有好几种方法可以找这个数值,(例如使用 &减少了的数值...& 的扫描方式),但我只教你使用最简单的方法,&未知初始值& 和 &减少的数值& 。
&&&&&& 因为你不知道现在数值的多少,利用精确数值进行扫描便派不上了用场,所以选择扫描方式为 &未知初始数值& ,数值类型仍然选择 4 字节(这是因为大多数WINDOWS应用程序都使用 4 字节存放数据)。
&&&&&& 点击 &首次扫描& 并等它扫描完成。
&&&&&& 扫描完成后,点击 &Hit me& ,你会掉些血 (失去的血量大小会显示几秒后消失,不过你并不需要关注它)。
&&&&&& 回到CE,在扫描类型中选择 &减少的数值& ,点击 &再次扫描& 。
&&&&&& 当扫描完成后,再次点击 &Hit me& ,并重复上面的步骤,直到你找到了很少的几个地址。
&&&&&& 刚才我们说过,这个数值在0到500之间,所以挑出那个相似的地址,并将它加到下方的列表。
&&&&&& 现在,更改血值为 5000,以便我们进到下一关。
&&&&&& 好,弄明白过关要求,我们执行 CE ,点击
选择 Tutorial.exe 进程,并打开它,按下图设置好,点击 &首次扫描& (如果进行完上一篇你没有关闭 CE ,需要先点击 &新的扫描& 按钮,然后再点击 &首次扫描& ,这意味着你告诉 CE ,你现在要进行一个新的任务)。
&&&&&& 扫描完毕,我们可以看到扫描结果有许多,这个数字也许在你那会有所不同,左侧的地址列表中没有显示任何的数据(上一篇的说明中提到过:超出额定的数据量,数据便不会显示),好,回到 Tutorial.exe 程序,点击窗口左下角的 &Hit me& ,血量会下降一点,再回到 CE ,按下图设置好,点击 &再次扫描& 。
&&&&& 可以看到扫描结果减少了一部分,但仍然无法确认哪一条才是我们要找的地址,所以,回到 Tutorial.exe 程序,点击 &Hit me& ,血量下降后,回到 CE ,点击 &再次扫描& ,重复桔红色的步骤直到左侧的地址列表中只剩下了很少的几个地址,如下图所示:
&&&&&& 双击它,将该地址转至下方的列表中,并修改数值为 5000,如下图:
&&&&&& 回到 Tutorial 窗口,next 按钮已经可以点击了,让我们进入第三关!别忘了记下第三关的密码 (PW=890124),我得先休息一下~
&&&&&& 注:写这篇文章的过程中,发现按 &未知初始值& 搜索时,软件会偶尔报错,说是内存访问出错,在网上查找原因未果,试着在 &首次扫描& 前,将 内存扫描选项 中的 精细扫描 勾选后,进行扫描就不再报错;如果你也碰上这样的问题,可以试一下,或是找个安装版的重新安装。
Cheat Engine Tutorial 闯关手记 第三关
&&&&&& 通过第二关,玩《拳皇》,血也不掉了……看看第三关说点什么?
&&&&&& 步骤 4:浮点数 (PW=890124)
&&&&&& 在前面的教程中,我们使用字节的方式来扫描,但有些游戏使用了 &浮点数& 的来存储数值(这么做是为了给新手制造一些麻烦,让他们没那么容易修改游戏)。
&&&&&& 浮点数是带有小数点的数字(如5.12或11321.1)。
&&&&&& 正如本窗口中的血和子弹,两者都以浮点方法储存数据,不同的是,血为单精度浮点数,而子弹为双精度浮点数。
&&&&&& 点击 &Hit me& 可以减少一些血,而点击 &Fire& 可以消耗掉 0.5 的子弹。
&&&&&& 你得把这两者都修改到5000或者更多才能过关。
&&&&&& &精确数值& 扫描的方式可以胜任本关的工作,也许你想试试其他的扫描方式?
&&&&&& 本关看来比较容易,将扫描类型设置为 &精确数值& ,数值类型按浮点数精度设置正确,便可以使用第一关的步骤完成任务。
&&&&&& 血和子弹需要分别完成,咱们先扫描血的值,OK,用 CE 打开 Tutorial.exe 的进程(呵呵,如果你没有休息的话,这步省略,直接点击 CE主界面中的 &新的扫描& 便可以了,下次我就不再说明了),比照下图设置,进行首次扫描:
&&&&&& 扫描出的结果看不出是哪个地址,我们点击 Tutorial.exe 窗口上的 &Hit me& , 回到 CE ,我们发现 CE 将变化的地址放在了左侧列表的第一位,如下图:
&&&&&& 没错,就是它,双击转至下方列表,将数值改为 5000;点击 &新的扫描& 为修改子弹做好准备,参照下图设置,扫描子弹的数值:
&&&&&& 点击 Tutorial.exe 窗口上的 &Fire& ,回到 CE 窗口,左侧列表中第一位数据已经发生了变化,如下图:
&&&&&& 已经很肯定是它了,照旧将它转至下方列表,修改数&#2,如下图:
&&&&&& Tutorial.exe 窗口上的 next 按钮可以点击了,记下第四关的密码 (PW=888899) ,休息一下!
Cheat Engine Tutorial 闯关手记 第四关
&&&&&& 第三关,练习程序已经告诉我们数值的类型是什么了(浮点数),所以我们有的放矢,感觉容易了许多,但在真正的游戏中,我们可看不出是以什么方式存诸的数据,那就要多试几次了(变更 CE &数值类型&),这也许是个比较漫长的过程……
&&&&&& 第四关的说明翻译如下:
&&&&&& 步骤 5:代码查找 (PW=888899)
&&&&&& 某些游戏重新开始时,数据会存储在与上次不同的地方,甚至,游戏的过程中数据的存储位置也会变动,在这种情况下,你还是可以简单几步搞定它。
&&&&&& 这次,我将尽量阐述如何运用 代码查找 的功能。
&&&&&& 下方的数值在你每次启动 Tutorial.exe 的时候都会存放在不同的位置,所以正常的(固定的)地址列表就不管用了。
&&&&&& 我们要先找到这个数值的存储地址(要如何去做,确信不用我再啰嗦了)。
&&&&&& 当你找到地址后,右击 CE 中的这个地址,在菜单中选择 &查找写入该地址的代码& 的选项,会弹出一个空白的窗口。
&&&&&& 接着,点击 Tutorial.exe 窗口上的 &Change Value& 按钮,并且回到 CE ,如果操作没问题,在刚才弹出的空白窗口中,会出现一些汇编代码,选中它,点进 &替换& 按钮,将它替换成什么也不做的代码,同时,修改后的代码也将放置在 高级选项 的 代码列表 中去(当你保存地址列表时它将会同时保存)。
&&&&&& 点击 &停止& ,这样游戏将会接着以正常的方式运行下去,然后,点 &关闭& ,关掉这个窗口。
&&&&&& 好了,点击 Tutorial.exe 窗口上的 &Change Value& ,没问题的话,&next& 将变成可点击的了。
&&&&&& 提示:如果你以足够快的速度锁定住这个地址,&next& 按钮也会变成可点击的。
&&&&&& 本关对于不懂汇编的可能有点难,即便找到了关键的代码,又该如何修改呢?别被吓的打了退堂鼓,幸亏改游戏用不着太多的汇编指令,嘿嘿。
&&&&&& 用 CE 打开 Tutorial.exe 的进程,按第一关的方法查找数值的地址,结果如下图所示:
&&&&& 在 CE 下方的地址上点击鼠标右键 ,弹出菜单如下:
&&&&&& 选择 &查找写入该地址的代码& ,弹出下图的警示框:
&&&&&& 大意是:这将使用CE来调试进程,无视它,选择 &是&,弹出了两个窗口,如下图:
&&&&&& 点击 Tutorial.exe 窗口上的 &Change Value& ,返回 CE ,刚才空白的窗口中出现了一条汇编代码,选择它,点击 &替换& ,如下图:
&&&&&& 当你将鼠标放置在 &替换& 按钮上足够长的时间,你会发现有条提示信息,“将替换内存无关紧要的代码。 (Nops)”,呵呵,它告诉我们两个信息,1.万一改的不对,可能会影响程序的使用;2.那条让计算机什么也不做的代码就是 &nop& (汇编指令中 nop ,表示空指令)。
&&&&&& 点击 &替换& 按钮,在对话框中填入空指令,如下图:
&&&&&& 点击 确定 ,在刚才 &替换& 按钮 的下方有 &更多信息& 按钮,现在,你可以点击它,或是双击窗口上的那条汇编代码,弹出如下图所示的 更多信息窗口:
&&&&&& 可以看出,在原本代码行(红色标识),已经更改了新的指令(空指令),关闭信息窗口,点击 &停止& 按钮,如下图:
&&&&&& 点击后,该按钮上的文字会变为 &关闭& ,没错,关闭它,随手关掉刚才我们需要忽视的那个窗口~
&&&&&& Tutorial.exe 窗口上的 next 按钮还不能点击?再 &Change Value& 一下吧。记下第五关的密码 (PW=098712) ,休息一下~
Cheat Engine Tutorial 闯关手记 第五关
&&&&&& 我记得《植物大战僵尸》的太阳数值就是变动的,第四关的学习,我想便能解决这个问题了~
&&&&&& 第五关的说明翻译如下:
&&&&&& 步骤 6: 指针 (PW=098712)
&&&&&& 上一步解释了如何使用 代码查找 功能对付变化位置的数据地址,但这种方法往往不能达到预期的效果,所以,我们需要用到指针。
&&&&&& 在本关的 Tutorial.exe 窗口下面有两个按钮,一个会改变数值,另一个不但能改变数值而且还会改变数值在内存中存储的位置。
&&&&&& 在这一步,你不需要懂汇编,但如果你懂的话会很有帮助。
&&&&&& 首先找到数值的地址,然后,再找到是什么在改写这个地址。再次改变数值,CE 便可以将找到的汇编代码列出来,双击一行汇编代码(或选择它 并点击 &更多信息&),打开的 更多信息窗口 将显示详细的信息,来告诉你当这个指令运行时发生什么事情。
&&&&&& 如果这条汇编指令中,没看到方括号([])的存在,我们就应该换另外一条汇编代码查看详细信息,如果看到了方括号,那就表示我们找到了需要的指针了。
&&&&&& 除了 更多信息窗口我们暂时保留以外(如果你已经关掉了,那么要记好方栝号中间的代码),剩余的窗口请关闭掉,回到CE主窗口,做一次4字节的扫描,扫描 更多信息窗口 中告诉你的一串十六进制数值。
&&&&&& 当扫描完成时,它可能返回一个或几百个地址。大多数情况下你想要的会排在地址列表中的最上面。
&&&&&& 点击 手工添加地址 按钮,并在勾选 &指针& 选项。
&&&&&& 添加地址窗口 将发生变化,多出了 &Address of Pointer& 和&Offset (Hex)& 的文本框,在 &Address of Pointer& 那一栏中填入刚才扫描到的地址。
&&&&&& 如果汇编指令中的方栝号中存在计算(例如:[esi+12]),那么应当把数值部分填在 &Offset (Hex)& 的文本框中,如果不存在,则让它保持为 0 。
&&&&&& 如果看上去是更复杂的计算指令的话,不若举例说明一下:
&&&&&& [EAX*2+EDX+] eax=4C 并且 edx= (在更多信息窗口的下方,会列出寄存器中的值)
&&&&&& 这种情况下 EDX 便是数值的指针,而 EAX*2+ 则是它的偏移量,所以你要填在 &Offset (Hex)& 将是 2*4C+A8 (这些都是在十六进制下计算的,你可以使用WINDOWS的计算器,在科学方式下用十六进制计算)。
&&&&&& 点击确定,这个地址便会加到 CE主窗口下方的列表上,如果没做错,在地址处将显示 P-&xxxxxxxx,而 xxxxxxxx 会和你扫描到的地址数值是一致的,如果不一致,那么你可能哪里出错了。
&&&&&& 现在,改变那条指针地址的数&#2 并锁定它,,然后点击Tutorial.exe窗口上的 &Change pointer& 按钮,如果一切正确,那么 &next& 按钮将变成可点击状态了。
&&&&&& 提示:
&&&&&& 你也可以使用 &扫描该地址指针& 的方式来找到这个指针地址。
&&&&&& 看上去好头晕,我们一步一步的来,用第四关的方式我们可以找到数值的地址,将地址转入CE下方的列表中,点击鼠标右键,选择 &查找写入该地址的代码& ,如下图:
&&&&&& 在Tutorial 窗口中点击 &Change Value& 按钮,回到 CE ,出现改动地址的汇编代码,查看更多信息,如下图:
&&&&&& 按照本关的说明,只要汇编代码的指令中含有方括号的部分,就象上图中代码里的 &[eax]&,我们便可以基本上判断找到了指针数据;并且CE会提示我们应该查找的数值,呵呵,就是中间用英文 &Copy memory& 开头的部分,我们只需要在这部分提示文字上点击鼠标右键,选择 &复制信息到剪贴板&,便可以复制数值,以备后用,如下图:
&&&&&& 关闭不需要的窗口,回到CE主窗口,点击 &新的扫描& ,将刚才获得的一串十六进制的数值填在数值框中,然后点击 &首次扫描& ,参照下图设置:
&&&&&& 扫描后,得到惟一的地址,如下图:
&&&&&& 看到地址用绿色的标注,表示我们找到了需要修改的数据其真正的固定地址,现在,我们点击,&手动添加地址& 按钮,参照下图填写:
&&&&&& 因为汇编代码方括号中的指令,并不存在本关说明中所说的计算,所以,&Offset (Hex)& 中填入 0,点击确定,在CE 主窗口的下方列表中出现该条地址,如下图:
&&&&&& 呵呵,正象说明中所说的,地址以 P-&xxxxxxxx 的形式出现,xxxxxxxx 也与扫描到的地址数值一致;最关键的,它所指向的数据与最初找到的也一致,就是列表的 &数值& 部分。
&&&&&& 现在可以改数值为 5000,并且锁定它了,如下图:
&&&&&& 在Tutorial 窗口中点击 &Change pointer& 按钮,next 接钮可以点击了;记下第六关的密码 (PW=013370) ,让老汉好好休息一下~
Cheat Engine Tutorial 闯关手记 第六关
&&&&&& 结合第四关与第五关的教程,可以将数值存储的真正地址找出来,锁定数值或修改游戏中的代码,如果你想制作在任何电脑上都能使用的修改器补丁,那么这两关的学习至少是个前题。
&&&&&& 本关的说明解释如下:
&&&&&& 步骤 7:代码注入 (PW=013370)
&&&&&& 代码注入是将一小段代码注入到目标进程中的技巧,然后使这个进程执行你写入的代码。
&&&&&& 在这一步教程中,你将有一个血值和一个每按一次将减少1点血值的按钮,你的任务是利用 代码注入 ,使得每按一次按钮增加2点的血值。
&&&&&& 开始查找这个地址,然后查看是什么在改写它(&查找写入此地址的代码&)。
&&&&&& 当你看到那条减少数值的汇编代码已经后,选择 &显示反汇编程序& , 然后打开 自动汇编窗口 (菜单-工具-&自动汇编 或 按下快捷键 Ctrl+a ),选择 &模板& 中的 &代码注入& 。CE将自动生成一部分汇编代码并为你输入指令做好准备(如果CE没有给出正确的地址,你可以手工输入它)。
&&&&&& 注意 alloc 这部分代码,它会为你的代码分配出一小块空白的内存,过去,在 Win2000 之前的系统,这种行为存在安全隐患,很可能导致系统崩溃,幸运的是,这种情况在 win2000 以后的操作系统得到改善
&&&&&& 也要注意 line newmem 这部分代码,原代码,以及用文本 &此处放置你的代码& 标示出的空白部分,正如你猜测的,在这儿可以写下每次增加2点血值的代码。
&&&&&& 推荐你使用 &ADD& 汇编指令,下面是一些示例:
&&&&&& &ADD [& 使 [] 地址的值增加9
&&&&&&& &ADD [ESP+4],9&&& 使地址指针 [ESP+4] 的值增加9
&&&&&& 在本关的情况下,你可以使用相同的手法去处理 减血值那条原代码方栝号之间的那部分。
&&&&&& 提示:
&&&&&& 推荐你从原代码中删除减血值的那行代码, 否则你得加3点生命值(你增加了3点,原代码减去1点,最终结果才会增加2点),这样看上去很容易让人迷惑,但最终方案还是由你来决定好了。
&&&&&& 提示:
&&&&&& 某些游戏中,原代码可能在多条指令之外,有时候(并非一向如此),它可能由不同的地方跳转至你的指令中并结束运行,其结果可能引起未知的错误;如果出现了这种情况,通常应当查看附近的那些跳转指令,进行修改,或者在尝试使用不同地址进行 代码注入,确认无误后便可以将你修改的代码注入原代码中了。
&&&&&& 本关的教程应当是第四关的补充,在第四关找到代码只是简单的改为空指令,游戏运行到你修改后的指令什么都不会做,比如,按照这样的方法,我们可以制作买东西不需要花钱的,又或是不掉血的修改补丁;这一次,我们深入一点,熟悉更多的汇编指令,如果弄明白,便可以制作出买东西倒找你钱,又或是越战血越多的补丁了。
&&&&&& 这次我们不啰嗦,按着前几关的介绍,查找到数值地址,右键 &查找写入该地址的代码& ,更改血值后,来到下图这一步:
&&&&&& 点击 &显示反汇编& ,打开 &内存查看器& 窗口,如下图:
&&&&&& 在 工具 菜单中选择 &自动汇编 或 按下快捷键 Ctrl+a &,如下图:
&&&&&& 按下图打开 &代码注入& :
&&&&&& 跳出地址填写窗口,如下图:
&&&&&& 点击 确定 ,自动汇编已帮我们创建了一部分的代码,如下图:
&&&&&& 能看懂汇编的,就不用我多解释了,这是一段很简单的代码,CE帮我们先开出了一小块内存用于注入我们自己的代码,然后在原地址处插入跳转语句,跳入我们输入的代码段,执行完毕后再跳转回原代码继续执行后边的代码。
&&&&&& 现在我们要做的就是将加血的代码输入在图中 newmem 的位置,如下图代码所示:
&&&&&& 你可以按照说明中所说的那样,在 newmem 区域,写入 &add [ebx+&,加3的原因是因为在执行完我们输入的代码后,原代码还要再减去1;当然,你也可以灵活运用我们的知识,直接将原代码改为 &add [ebx+&,那么在 newmem 区域就不用输写任何代码了,如下图:
&&&&&& OK,写完代码,可以点击 &执行& 按钮了,弹出确认对话框,直按点击 &是&,弹出 注入成功的窗口,并提示我们,新的代码段放置的位置,如下图:
&&&&&& &确定& ,关闭 &自动汇编& 窗口,在 &内存查看器& 窗口 中的汇编代码部分,可以看到,原代码已被修改,如下图:
&&&&&& 回到 Tutorial.exe 窗口 ,点 &Hit me& ,增加了2点血值,next 按钮也可以点击了,记下第七关的密码(PW=525927),我们休息一下~
Cheat Engine Tutorial 闯关手记 第七关
&&&&&& 我们直接翻译说明吧,经过前面几个步骤的学习,基本上用不着再铺垫什么了。
&&&&&& 步骤 8:多级指针 (PW=525927)
&&&&&& 本关,将解释如何使用多级指针。
&&&&&& 在第 6 步(手记中的第五关),你已经清楚1级指针的概念和用途, 并可以利用数值的首个地址找到存放数据真正的基址。
&&&&&& 在本关中,你将看到4级指针,它由第一个指针指向第二个指针,再由第二个指针指向第三个指针,由第三个指针指向第四个指针,最终指向血值的真正地址。
&&&&&& 开始的几步与在第 6 步(手记中的第五关)中的操作基本相同。找出是什么在访问这个数值,然后分析汇编指令,查找指针地址中的数值,以及它的偏移量,将它们记下来。但这次你按的数值找出的仍然是一个指针,你得依据这些数值,使用同样的操作方法找出指向这个指针的指针。
&&&&&& 看看是什么访问了你发现的那个指针地址,分析汇编指令, 留意可能的代码和偏移量,并加以利用。
&&&&&& 持续这种过程,直到不能更进一步查找为止(通常当基址是静态的地址时,这个地址将以绿色标识)。
&&&&&& 点击 &Change value& 改变血值,如果你发现列表中那些指针地址所指向的值发生同样的变化时,那表示你可以试着将基址中的值更改为 5000,并锁定它,以便完成本关的任务了。
&&&&&& 备注1:这个问题也可以使用自动汇编程序脚本或者使用指针扫描器加以解决。
&&&&&& 备注2:在某些情况下,可以改变CE软件 &代码查找器& 的相关设置,当你遇到像 mov eax,[eax] 的指令时,调试程序将显示改变之后的寄存器中的值,也许利用它更容易找出指针的位置。
&&&&&& 备注3:你还在读?!当你查看汇编指令时你可能已经注意到,这些指针是在相同的代码块(相同的程序,如果你懂汇编,可以查看程序的起始代码)位置被读写。这种情况并不总会发生,但是当你在查找某个指针遇到问题的时候,没准能起到很大的用处。
&&&&&& 这一关很让人迷惑,关键点在于如何累加指针地址与偏移量,我们一步一步的来,先按照第五关所说的,查找到数值的第一个地址,将其加入CE的下方列表中,鼠标右键 选择 &查找写入该地址的代码& ,并查看该汇编指令的详细信息,如下图:
&&&&&& 记下详细信息中需要查找的数值,记下方括号中的偏移量:18,关闭除CE主窗口外的其他CE窗口,点击 &新的扫描& ,勾选数值框前的Hex选项,并在数值框中填入需要查找的数值,点击 &首次扫描& ,CE主窗口的左侧列表中会列出扫描到的地址,点击 &手动添加地址& 按钮,在弹出的 &添加地址& 窗口中勾选 &指针&,分别将查出的指针地址及偏移量填入对应的文本框中,如下图:
&&&&&& &确定& ,CE 将所地址添加在 主窗口下方的地址列表中,至此,我们已用完在第五关中所学到的知识,可以看到,本次扫描后,左侧所列地址的颜色仍然是黑色标识的,这说明虽然我们找到了地址,但它仍然不是静态的(不是真正的基址),需要继续深入下去。
&&&&&& 在加入的地址上点右健,选择 &查找访问该地址的代码& ,如下图:
&&&&&& 这和第一次查寻指针时选择的不一样了,要注意一下,弹出下图所示的窗口:
&&&&&& 强烈抗议,汉化不全面……,选择第一项 &找出是什么访问了该指针&。
&&&&&& 在 Tutorial.exe 窗口上 &Change value& 后,双击 CE 中那条汇编代码,查看详细信息,如下图:
&&&&&& 记下需要查找的数值,还有偏移量(这次方括号中不存在偏移,那么偏移量为 0),关闭CE主窗口外所有CE窗口,按上面所说的查找新的数值,然后手动添加地址,如下图:
&&&&&& 下面是重点哦,此时不能点击 &确定&,我们还要完成一项任务!要知道,我们得出的这个地址是指针,这个指针指向的是上次我们找到的指针地址,而上次找到的指针地址才是指向我们在 Tutorial.exe 窗口上看到的那个数值地址,所以我们得将这样的关系标注出来~在添加地址窗口上,点击 &添加指针& 按钮,如下图:
&&&&&& 我们只需要将上次的偏移量填在相应的位置上就可以了,现在可以点击 &确定& 了;CE又将新的地址在下方的列表中列出;这次扫描的地址仍然不是以绿色标识的,看来我们还没有找到真正的地址哦,继续吧,重复上述的步骤,&查找访问该地址的代码& ,&Change value& ,查看汇编代码详细信息,如下图:
&&&&&& 查找数值,添加地址,添加指针,累计偏移量,如下图:
&&&&&& 还不是真正的地址,继续!重复上述步骤,查看详细信息,如下图:
&&&&&& 查找数值,你会发现,找到的地址是绿色标识的哦,如下图:
&&&&&& 这说明我们终于来到了源头~添加地址,添加指针,累计偏移量,如下图:
&&&&&& &确定&,地址出现在CE的下方列表中,如下图:
&&&&&& 还有什么疑问?赶快修改数值,并锁定,在 Tutorial.exe 上点击 &Change pointer& ,next 按钮变为可点击,同时我们还能发现,除了我们找到的真正的地址数值保持不变,其他的指针地址都不再起作用了,如下图:
&&&&&& 本关结束,记下第八关密码(PW=),老汉看会电影休息一下,哈~
Cheat Engine Tutorial 闯关手记 第八关
&&&&&& 步骤 9:注入++ (PW=)
&&&&&& 这一步基本上和步骤 7(代码注入,手记中的第六关)的做法是相似的,不过会稍稍有点难度。
&&&&&& 本关你必须用一小段代码来修改减少血值的原代码,并且做到,如果当前时间的秒数大于或等于 30 将血值设置为1000,如果当前时间的秒数小于 30 将血值设置为 2000。
&&&&&& 我们可以用 API 调用函数获取当前的时间,并利用 自动汇编 完成这项任务,但这里好象有更简单的做法:C语言脚本注入。
&&&&&&& 找到血量的地址,然后打开 CE 脚本引擎 (内存查看器窗口 快捷键:ctrl+alt+a ,或是点击 工具-&脚本引擎)。
&&&&&& 然后,和其它的教程不同的是,这在里我会多给你一些提示(假设你从未接触过C语言)。
&&&&&& ----------------
&&&&&& #include &time.h&
&&&&&& struct tm *
&&&&&& time_
&&&&&& c=time(0);
&&&&&& timep=localtime(&c);
&&&&&& if (timep-&tm_sec&=30)
&&&& &&& *(int *)addresstochange=1000;
&&&&&& else
&&&&&&& && *(int *)addresstochange=2000;
&&&&&& -------------
&&&&&& 使用血值的地址替换代码中的 addresstochange,另外,不要忘记在地址的前面加上 0x 。比如,地址是 0012345,则输入 0x0012345
&&&&&& 选择 &注入& ,&注入到当前进程& ,将代码注入到当前进程,此时,&自动汇编&窗口 弹出,并自动生成调用代码(Call)。
&&&&&& 现在,就象步骤 7 (手记中的第六关)那样,在 &内存查看器&窗口 选择代码地址,在 &自动汇编&窗口 选择 &模板&,&代码注入&,输入刚才获取的调用代码(Call)。 要注意的是,调用代码(Call)将更改 寄存器 EAX 的数据,因此,有必要的话,你应该在压栈之前和出栈之后保存它, 你也可以将原代码移除,它在这里也起不到什么作用了。
&&&&&& 点击 &执行& ,点击 Tutorial.exe 窗口上 &Hit me& 。
&&&&&& 如果没什么问题的话,血值会按照当前的时间变动。
&&&&&& 额外信息:
&&&&&& 正如前面所说,CE 支持标准的汇编语言。所以,你可以在代码中使用函数名称来调用函数。
&&&&&& 你也可以在脚本中引用 DLL 文件,例如:
&&&&&& injectdll(mydll.dll) // 可以使用你喜欢的语言去写DLL文件
&&&&&& codecave:
&&&&&& call functionofmydll
&&&&&& jmp exit
&&&&&& 这一关,多少得了解一点点的C语言,不过,作者怕我们没有接触过C语言,给了我们一段C语言的代码,在说明的结尾又告诉我们,可以引用我们自己用任何语言写的DLL文件,增加CE脚本的灵活性;虽然有点头蒙,不过完成本关不需要那么麻烦,还是一步一步的来。
&&&&&& 我们先查找 Tutorial.exe 中的数值地址,找到后,&查看写入该地址的代码&,点击 Tutorial.exe 中的 &Hit me& ,&显示反汇编&,如下图:
&&&&&& 在 &内存查看器&窗口 中打开 &脚本引擎& ,如下图:
&&&&&& 在 &脚本引擎& 窗口 填入说明中的那段代码,并将 addresstochange 替换成我们查找到的数值地址,如下图:
&&&&&& 你可以按上图在原代码中加入 红框标识出的 代码(声名变量并赋值,值为地址,记得地址前要加 0x),也可以直接用地址替换掉 addresstochange ;将写好后的代码注入当前进程,如下图:
&&&&&& 在打开的 &自动汇编&窗口 中 生成了调用代码,如下图:
&&&&&& 在 &内存查看器& 选择查找到的汇编地址,回到 &自动汇编&窗口 选择 &模板& 中的 &代码注入&,如下图:
&&&&&& CE 自动将选择的汇编地址填入(如果不正确,可以手动填写),如下图:
&&&&&& &确定& ,生成如下图代码:
&&&&&& 我们需要将代码修改一下,将 call 这一条放置在 newmem 区域,将原代码注销掉,如下图:
&&&&&& 小提示:好多网友在这段代码改写完,出现了结果为 999 或 1999 的这种情况,这可能是我没标注清楚的原因,请大家留意上图中代码 &dec [ebx+]& 前边我添加了 &//& ,这表示将这条代码注释掉了,好多网友出现了这种情况应该都是忘了注释掉它的结果;感谢78461 网友的提醒!
&&&&& 原理在第六关已解释过了,在这就不多讲了吧,点击 &执行& ,回到 &内存查看器& 窗口,可以看到,原代码地址处的代码已修改,如下图:
&&&&&& OK,我们已完成代码段的注入,现在可以点击 &Hit me& 了,说明中给出的C语言代码,是调用了本地的时间,如果秒数大于等于30秒,就将血加到 1000 ,小于30秒,将血加到2000,如果一切没问题的话,next 按钮激活。我给出两张不同时间的对比图:
&&&&&& 点击 next 按钮,通关画面,,可惜不是动画的……
&&&&&& 至此,教学八关就完成了,但这仅仅是个基础,有空我们再研究如何实战,以及如何制作游戏的修改器~
Cheat Engine &=6.2 step9 cracked
最近才看到Cheat&Engine6.2&教程增加了step9,没研究透,卡了一天,百度了一下发现国内好像还没有人研究,或者是大牛觉得都很简单没必要发布...
托同事的福,下面是过程。
之前我把step9&想的太简单了,这一步必须得懂汇编。
首先找到玩家1的生命地址,然后是基址。这步不说了,很简单。&原文中有这么一句话,
某处代码可以区别两队。我原来没仔细看,不过也实现了目标。
我的作法是,敌人生命始终大于100,只要判断大于100的生命,就置0.
代码注入:
===============================================
alloc(newmem,2048)&//2kb&should&be&enough
label(returnhere)
label(originalcode)
label(exit)
label(cao2109)&&
newmem:&//this&is&allocated&memory,&you&have&read,write,execute&access
//place&your&code&here
cmp&[ebx+04],(float)200&&&&&//敌人的生命是500,无论是和200比,还是和100比都可以。
jmp&returnhere
xor&eax,eax
originalcode:
mov&[ebx+04],eax
jmp&returnhere
&Tutorial-i386.exe&+250C6:
jmp&newmem
returnhere:
==================================================
点击auto的结果是敌人会被秒杀,我方不掉血。
标准作法是这样,分析两队结构,看图。
写入生命的地址是[ebx+04],那就去ebx+04&看看。右下角的几行都是结构的内容,依次取出4个人的结构。
-----------------------------------------------------------------------------------------------------------------------------------------------
28&FC&54&00&00&00&BC&42&FE&26&00&00&C9&A8&1B&00&0100&00&00&04&<span style="color:#&61&76&6500&00&00&00&00&00&00
28&FC&54&00&00&00&B0&42&EF&04&00&00&DA&AE&34&00&0100&00&00&04&45&72&69&&00&00&00&00
28&FC&54&00<span style="color:#ff&F7&4314&10&00&00&89&14&2E&00&0200&00&00&03&48&41&4C00&00&00&00&00&00&00&00
28&FC&54&00&00&80&F8&43&6B&10&00&00&F0&DE&13&00&0200&00&00&04&4B&49&54&&00&00&00&00
-----------------------------------------------------------------------------------------------------------------------------------------------
我标出的黄色区域就是表示两队的一个特征。还是代码注入:
=====================================================
alloc(newmem,2048)&//2kb&should&be&enough
label(returnhere)
label(originalcode)
label(exit)
newmem:&//this&is&allocated&memory,&you&have&read,write,execute&access
//place&your&code&here
cmp&[ebx&#43;10],1&&&&&&&&&&&&&&&&&&&&&&&&&&//10和A要分的清啊。
jne&originalcode
jmp&returnhere
originalcode:
mov&[ebx&#43;04],eax
jmp&returnhere
&Tutorial-i386.exe&&#43;250C6:
jmp&newmem
returnhere:
=======================================================
这个是目前最简单的解决办法。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:749669次
积分:8359
积分:8359
排名:第1066名
原创:27篇
转载:537篇
评论:113条
(4)(6)(18)(10)(8)(17)(5)(2)(7)(7)(7)(10)(15)(23)(25)(5)(19)(9)(3)(9)(7)(10)(18)(19)(25)(13)(14)(7)(15)(36)(7)(3)(8)(17)(13)(32)(14)(4)(14)(26)(7)(15)(11)(16)(5)

我要回帖

更多关于 ce 窗口如何透明 的文章

 

随机推荐