挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
游戏交易就上寄售网-专注稳定-诚信赢天下玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)天下盾/国内/免实名/免备案CDN无视一切CC/DD攻击
→入驻S9企业发卡网各种全黑号辅助群:475351077 ██【我要租此广告位】██.
.. .
查看: 3369|回复: 6
打印 上一主题 下一主题

[讨论交流] 小试DirectX游戏CPU优化

[复制链接]
3正式会员
298/300

298

积分

134

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
164
海币
1702
交易币
0
跳转到指定楼层
楼主
发表于 2015-2-8 15:56:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


小试DirectX游戏CPU优化

[ 破解工具 ] OD
[ 破解平台 ] WINXP SP3
[ 软件名称 ] 国内某三流游戏
[ 软件大小 ] 1.65G
[ 原版下载 ] 自己猜
[ 保护方式 ] 裸奔
[ 软件简介 ] 相当三流的游戏
[ 破解声明 ] 技术研究,请勿跨省
-----------------------------------------------------
 效果见过 优化前 10-15%左右  优化后 0%-2% 观察没超过3
[ 破解过程 ]-----------------------------------------

  看到论坛上有人在问D3D游戏CPU占用问题,自己晚上抽空学习了一下
典型的D3D程序渲染过程如下


//-----------------------------------------------------------------------------
// Desc: 渲染图形
//-----------------------------------------------------------------------------
VOID Render()
{
//清空后台缓冲区
     g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(45, 50, 170), 1.0f, 0 );

//开始在后台缓冲区绘制图形
     if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
     {
   //设置世界矩阵
         SetupWorldMatrice();

   //在后台缓冲区绘制图形
         g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );
         g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
         g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2*50-2 );

   //结束在后台缓冲区渲染图形
         g_pd3dDevice->EndScene();
     }

//将在后台缓冲区绘制的图形提交到前台缓冲区显示
     g_pd3dDevice->Present( NULL, NULL, NULL, NULL );
}

研究后发现
SetStreamSource
EndScene
此二函数消耗CPU较多 做法也很简单 直接 NOP 不掉这俩函数 不让调就行了
比较极端,这样子的坏处就是游戏界面显示不了了..见附图

具体分析过程



  先断 D3D.Present 然后
SHIFT+F9向上找(这个过程比较漫长,我的方法比较笨,一层一层的试,把每一层调用NOP掉,找这样子的层,NOP掉后黑屏,并且不掉线,并且越上层越好,因为越上层NOP 那么省掉的运算就越少,效果也越好..)




我定位出来是在这个一层
0079751E      E8 AD2DFBFF    call    0074A2D0
                  这里是 SetStreamSource 已经被我NOP掉了
00797523      90             nop   
00797524      90             nop
00797525      90             nop
00797526      90             nop
00797527      90             nop
00797528      8BF8           mov     edi, eax
0079752A      33F6           xor     esi, esi
0079752C      85FF           test    edi, edi
0079752E      74 10          je      short 00797540
00797530      E8 7B4B2200    call    009BC0B0
00797535   .  6A 01          push    1
00797537   .  8BC8           mov     ecx, eax
00797539   .  E8 32412C00    call    00A5B670
0079753E   .  8BF0           mov     esi, eax
00797540   >  E8 6B502200    call    009BC5B0
00797545   .  8BC8           mov     ecx, eax
00797547   .  E8 74512200    call    009BC6C0
0079754C   .  57             push    edi
              这里应该是 EndScene 也已经被NOP掉
0079754D      90             nop   
0079754E      90             nop
0079754F      90             nop
00797550      90             nop
00797551      90             nop
00797552   .  83C4 04        add     esp, 4
00797555   .  E8 56502200    call    009BC5B0
0079755A   .  8BC8           mov     ecx, eax
0079755C   .  E8 2F522200    call    009BC790
00797561   .  85F6           test    esi, esi
00797563   .  C705 A86AC400 >mov     dword ptr [C46AA8], 0
0079756D   .  74 2A          je      short 00797599
0079756F   .  E8 3C4B2200    call    009BC0B0
00797574   .  6A 01          push    1                                 
00797576   .  8BC8           mov     ecx, eax                           
00797578   .  E8 A34C2200    call    009BC220                           
0079757D   .  E8 2E4B2200    call    009BC0B0
00797582   .  6A F4          push    -0C                                 
00797584   .  6A 01          push    1                                   
00797586   .  68 00006040    push    40600000                           
0079758B   .  6A 00          push    0                                 
0079758D   .  68 00008040    push    40800000                           
00797592   .  8BC8           mov     ecx, eax                           
00797594   .  E8 474D2200    call    009BC2E0                           
00797599      85FF           test    edi, edi
0079759B    ^ 0F84 8BE4FFFF  je      00795A2C
007975A1      C645 FC 1F     mov     byte ptr [ebp-4], 1F
007975A5   .  E8 86001100    call    008A7630
007975AA   .  8B10           mov     edx, dword ptr [eax]
007975AC   .  8BC8           mov     ecx, eax
007975AE   .  FF92 18010000  call    dword ptr [edx+118]
007975B4   .  85C0           test    eax, eax
007975B6   .  74 0F          je      short 007975C7
007975B8   .  E8 636EF9FF    call    0072E420
007975BD   .  8B10           mov     edx, dword ptr [eax]
007975BF   .  8BC8           mov     ecx, eax
007975C1   .  FF92 9C000000  call    dword ptr [edx+9C]
007975C7   >  E8 A4222200    call    009B9870
007975CC   .  8BC8           mov     ecx, eax
007975CE   .  E8 AD242200    call    009B9A80
007975D3   .  E8 C85E2200    call    009BD4A0
007975D8   .  8B10           mov     edx, dword ptr [eax]
007975DA   .  8BC8           mov     ecx, eax
007975DC   .  FF52 40        call    dword ptr [edx+40]
007975DF   .  B9 50EFC700    mov     ecx, 00C7EF50
007975E4   .  E8 E7621700    call    0090D8D0
007975E9   .  E8 42001100    call    008A7630
007975EE   .  8B10           mov     edx, dword ptr [eax]
007975F0   .  8BC8           mov     ecx, eax


看起来很简单 实际上真正动手做的时候还是有点麻烦,需要耐心

 此乃菜鸟胡扯之作,如有谬误,敬请各位大侠指教.
[ 最后的胡扯  ]-----------------------------------------



欢迎各位多发技术贴,少发炫耀帖,保护论坛的学术氛围, 像 海这样子的纯技术论坛太少了 希望大家珍惜





联系我时,请说是在 挂海论坛 上看到的,谢谢!



上一篇:XNF全屏吸物源码,没有VM也稳定
下一篇:写点东西,菜鸟也玩保护...
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:[email protected]),本站将立即改正。

3正式会员
118/300

118

积分

43

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
75
海币
3556
交易币
0
沙发
发表于 2015-2-8 15:57:22 | 只看该作者
广告位,,坐下看看
贡献
11
海币
582
交易币
0
板凳
发表于 2015-2-16 23:31:46 | 只看该作者
垃圾内容,路过为证。
4中级会员
590/600

590

积分

166

主题

18

听众
已帮网友解决0 个问题
好评
0
贡献
394
海币
3128
交易币
0
地板
发表于 2015-3-17 09:45:51 | 只看该作者
楼主加油,我们都看好你哦。

0

积分

0

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
0
海币
300
交易币
0
5#
发表于 2015-5-26 07:13:49 | 只看该作者
支持楼主,用户楼主,楼主英明呀!

1

积分

0

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
23
交易币
0
6#
发表于 2016-12-23 09:33:13 | 只看该作者
新挂海模块2.0版- 内存皮肤模块-  海宝盒

1

积分

0

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
23
交易币
0
7#
发表于 2016-12-23 16:12:55 | 只看该作者
手观察 AAGFW,现在将转入登录前页面
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2024-5-18 13:32 , Processed in 0.359512 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

快速回复 返回顶部 返回列表