(转)制作自己的CE彻底解决被封问题

 
本帖由kwonboa原创 转贴请保留以上信息 谢谢 做有素质的中国人
由于过程非常长和复杂,建议非无电脑基础的朋友不要浪费时间(其实会了也超级简单),我将分步为大家讲解安装! b下面说明下为什么要修改
修改函数变量是为了让NP不认识你这个新程序
修改软件名称LOGO什么的标志图片把他变成你自己的UCE程序吧
第一步:所需要的软件
1.CE5.4原码:http://bbs.bpsend.com/read.php?tid=1384
2.微软的DDK:http://www.microsoft.com/whdc/driver/wdf/KMDF_pkg.mspx
3.Delphi7地址自己在网上找,原发地址以不能下)
程序编译:http://www.sgnova.com/ucetut/trainerwithassembler.zip(解压到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: 回车
得到C:\Cheat Engine Delphi\DBKKernel反馈路径
接着输入:
CE 回车
慢慢等吧 工作了 接下来就自动生成了您的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源代码。
   -Delphi 7               Delphi 7 买光盘安装吧,很难下载到,也太大,1G左右。
   -Windows DDK (Windows DDK (包含在 KMDF,核心模式驱动架构中)
     KMDF 下载:http://www.microsoft.com/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.pas; DBK32functions.pas; DBK32.dpr
     在 "Path" 里面加入:CE主目录
然后把whole words 选上。
开始进行字符替换,在"to search"里填要替换的字符,在"to Replace or insert"填上要替换成的字符。
被替换和替换成的字符如下:
VQE >> string4
OP >>   string5
OT >>   string6
RPM>> string7          
WPM   ……(依次递推)          
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        
DBKGetDC 最新回复
笑苍天 at 2008-2-05 09:32:25
3b. 现在我们将newkernelhandler.pas, DBK32functions.pas, 和DBK32.dpr改名.
   用Delphi 7打开上面3个文件. Newkernelhandler 在CE主目录,另外两个文件在DBK32文件夹. 打开,
   然后执行“文件 ”> “另存为”,3个文件分别另存为:
   DBK32.dpr >> String.dpr
     DBK32functions.pas >> Stringfunctions.pas
     New 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.dpr;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个数值:00400000   ,   7FFFFFFF ,   80000000
可以给3个数值加上同样的数,比如说加5他们就变成:00400005,80000004,80000005
然后查找替换,(Include subfolders),Mask:"*.*"
   00400000 >> 00400005
   7FFFFFFF >> 80000004
   80000000 >> 80000005
3g. 改变CheatEngine 图形界面里面的单词
   再次查找和替换, (取消 include subfolders) ,Mask:"*.*"
   nextscanbutton >> String56
   scanvalue >> String57
   scanvalue2 >> String58
   ScanType >> String59
   VarType >> String60
   newscan >> String61
   ScanText >> String62
   syndic.com/ce >> myspace.com (你可以改变为任何网站)
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
其实,这个过程也是自己整理思路的过程,同时把它发到论坛上来,也希望能与大家共享
posted @ 2010-08-30 11:10  devlyn  阅读(3571)  评论(0编辑  收藏  举报