yxuenong
发表于 2013-10-14 11:50:03
11111111111111111111111
灿球
发表于 2013-10-31 05:31:04
支持支持支持
nrwei11
发表于 2013-11-2 19:51:23
游戏封包的加密解密过程....经典.....
beyond12345
发表于 2013-11-20 04:31:11
CPU优化_解决游戏CPU占用太高之方法
我不敢保证能降低所有游戏的CPU占用率,我只测试了TX的某一款游戏,但是我觉得方法应该是可以通用的。
确实如大家所理解的,游戏占用CPU时间主要在绘制显示上,一般的逻辑判断其实对CPU占用是很低的,当然对于一些特殊游戏也可能不是这样,但那是特例。就如论坛上很多讨论如何去掉一些与显示有关的人物动作,或者减少一些背景的绘制,但是这些东西需要经验取分析,费时费力,甚至还有hook d3d等等,需要对D3D有一些了解才行。新手基本会忘而却步。
我们换个思路,我们想去掉显示,那需要看谁调用了显示函数,我们直接把调用的显示函数nop掉,是否会更简单?对于一般的程序处理显示的函数不会分布到各处,这样对于程序的维护是需要代价的,虽然我对游戏引擎不是很了解,但是我写过多年嵌入式程序,成熟的完善的程序,基本上执行显示是有一个或几个函数实现的。因此我们只要将这个函数nop掉,显示就会完全去掉,而CPU的占用率自然也降了下来。
本帖隐藏的内容需要回复才可以浏览
基本原理我已经说明了。下面再将如何定位这个游戏中执行的显示函数地址。
起始很简单的:
1、OD载入
2、对于D3D游戏,在D3D对应的DLL下内存访问断点,对于其他类型的游戏,比如OPENGL的,请在对应的DLL上下内存断点。
3、断下来后,ctrl+F9或者alt+F9,返回到游戏主程序空间。此时可以直接观看堆栈和查看周围代码。
4、怀疑其是游戏处理的显示函数,直接nop掉(注意堆栈平衡),看显示是否有变化。
给个提示,如果发现周围有 getmessage之类的函数调用,那可能就是游戏的主循环了,而你将你找到的函数nop掉应该会将显示去掉。
当然如果你成功的将显示去掉整个游戏是黑屏的,你如果要想看游戏画面,直接恢复就OK。
1016832420
发表于 2013-11-27 16:31:46
简单的汇编命令
本文来自猴岛游戏论坛 :http://bbs.houdao.com/r379102_u28278445/
wddl119
发表于 2013-12-22 15:25:52
2345354365364535
陈朝
发表于 2014-5-20 09:40:51
111111111111111111111111
zhaojiwei1
发表于 2014-10-26 12:03:06
希望喜欢的朋友多多转载,让更多的人知道看流星社区
1975335896
发表于 2014-10-26 12:11:23
{:3_45:} {:3_45:}
hyh520521
发表于 2014-10-26 12:48:49
看看 额呵呵