D3D9黑屏优化大幅降低CPU占用率代码
来源:互联网 发布:网络曝光台吧 编辑:程序博客网 时间:2024/05/16 09:23
#define BaseBlackScreenMainHook //BaseBlackScreenMainThreadHook
#define BaseBlackScreenD3D9Hook
//主线程HOOK 黑屏优化
00528EDF 8BC0 MOV EAX,EAX
00528EE1 90 NOP
00528ECA 74**E8********8B86940100008B088B91A8000000
//+15 ?00528EDF-00528ECA
//HOOK Data[3]={0x8B,0xC0,0x90}//{0x90,0x90,0x90};
//022 00528ECA 74**E8********8B86940100008B088B91A8000000
// 00528ECA 74**E8********8B86940100008B088B91A8000000
//+15 ?00528EDF-00528ECA
//HOOK Data[3]={0x8B,0xC0,0x90}//MOV EAX,EAX;NOP//{0x90,0x90,0x90};
//主线程HOOK 黑屏优化
strcpy_s(szpFeatureCode,"74**E8********8B86940100008B088B91A8000000");
//定位特征码
ndCurAddr=ScanFeatureCode(hProcess,szpFeatureCode,0x0527000,0x0527000+0x10000);
//读取基址1
ndBase=ndCurAddr+0x15;
// printf("ndCurAddr=%X\n",ndCurAddr);
printf("#define BaseBlackScreenMainHook 0x%X//022 主线程黑屏优化基址0x%X \n",ndBase,ndBase);
fprintf(pfile,"#define BaseBlackScreenMainHook 0x%X//022 主线程黑屏优化基址 0x%X\n",ndBase,ndBase);
d3d9.5F32279F=GetModuleHandle("d3d9.dll")+0x2279F;
5F322797 C2 0400 RETN 0x4
HOOK Data[3]={0xc2,0x04,0x00};HINSTANCE LoadLibrary(
LPCTSTR lpLibFileName // address of filename of executable module
);
HMODULE GetModuleHandle(
LPCTSTR lpModuleName // address of module name to return handle
// for
);//返回值就是模块基址
d3d9.5F32279F=GetModuleHandle("d3d9.dll")+偏移;
d3d9.5F32279F=GetModuleHandle("d3d9.dll")+d3d9.5F32279F-d3d9.5F300000
d3d9.5F32279F=GetModuleHandle("d3d9.dll")+0x2279F;
5F322796 5D POP EBP
5F322797 C2 0400 RETN 0x4
5F32279A 90 NOP
5F32279B 90 NOP
5F32279C 90 NOP
5F32279D 90 NOP
5F32279E 90 NOP
5F32279F 8BFF MOV EDI,EDI
5F3227A1 55 PUSH EBP ; 5F322860 C2 0400 RETN 0x4
5F3227A2 8BEC MOV EBP,ESP
5F3227A4 6A FF PUSH -0x1
5F3227A6 68 FCAD495F PUSH d3d9.5F49ADFC
5F3227AB 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
5F3227B1 50 PUSH EAX
5F3227B2 83EC 14 SUB ESP,0x14
5F3227B5 53 PUSH EBX
5F3227B6 56 PUSH ESI
5F3227B7 57 PUSH EDI
5F3227B8 A1 50924A5F MOV EAX,DWORD PTR DS:[0x5F4A9250]
5F3227BD 33C5 XOR EAX,EBP
5F3227BF 50 PUSH EAX
5F3227C0 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-0xC]
5F3227C3 64:A3 00000000 MOV DWORD PTR FS:[0],EAX
5F3227C9 8965 F0 MOV DWORD PTR SS:[EBP-0x10],ESP
5F3227CC 8B75 08 MOV ESI,DWORD PTR SS:[EBP+0x8]
5F3227CF 33DB XOR EBX,EBX
5F3227D1 3BF3 CMP ESI,EBX
//主线程HOOK 黑屏优化
00528EDF 8BC0 MOV EAX,EAX
00528EE1 90 NOP
00528ECA 74**E8********8B86940100008B088B91A8000000
//+15 ?00528EDF-00528ECA
00528EB7 |. 8B91 E4000000 |MOV EDX,DWORD PTR DS:[ECX+0xE4]
00528EBD |. 6A 01 |PUSH 0x1
00528EBF |. 6A 0E |PUSH 0xE
00528EC1 |. 50 |PUSH EAX
00528EC2 |. FFD2 |CALL EDX
00528EC4 |> 391D 30E3F500 |CMP DWORD PTR DS:[0xF5E330],EBX
00528ECA |. 74 05 |JE SHORT Client.00528ED1
00528ECC |. E8 9F380000 |CALL Client.0052C770
00528ED1 |> 8B86 94010000 |MOV EAX,DWORD PTR DS:[ESI+0x194]
00528ED7 |. 8B08 |MOV ECX,DWORD PTR DS:[EAX]
00528ED9 |. 8B91 A8000000 |MOV EDX,DWORD PTR DS:[ECX+0xA8] ; d3d9.6C24279F
00528EDF 50 PUSH EAX
00528EE0 FFD2 CALL EDX ; 真正的黑屏优化
00528EE2 |. 8BCE |MOV ECX,ESI
00528EE4 |. 891D C0F9F500 |MOV DWORD PTR DS:[0xF5F9C0],EBX
00528EEA E8 71E5FFFF CALL Client.00527460 ; 伪黑屏CALL
00528EEF |. 3D 68087688 |CMP EAX,0x88760868
00528EF4 |. 74 0E |JE SHORT Client.00528F04
00528EF6 |. 3D 27087688 |CMP EAX,0x88760827
00528EFB |. 74 07 |JE SHORT Client.00528F04
00528EFD |. 3D 6C087688 |CMP EAX,0x8876086C
00528F02 |. 75 1D |JNZ SHORT Client.00528F21
00528F04 |> 50 |PUSH EAX
00528F05 |. 68 0016A000 |PUSH Client.00A01600 ; ASCII "Device Lost : Present() returned %d"
00528F0A |. E8 41C6F9FF |CALL Client.004C5550
00528F0F |. 83C4 08 |ADD ESP,0x8
00528F12 |. C686 AE000000>|MOV BYTE PTR DS:[ESI+0xAE],0x1
00528F19 |> 6A 64 |PUSH 0x64 ; /Timeout = 100. ms
00528F1B |. FF15 CCD19E00 |CALL DWORD PTR DS:[<&KERNEL32.Sleep>] ; \Sleep
00528F21 |> 83BD D0D6FFFF>|CMP DWORD PTR SS:[EBP-0x2930],0x12
#define BaseBlackScreenD3D9Hook
//主线程HOOK 黑屏优化
00528EDF 8BC0 MOV EAX,EAX
00528EE1 90 NOP
00528ECA 74**E8********8B86940100008B088B91A8000000
//+15 ?00528EDF-00528ECA
//HOOK Data[3]={0x8B,0xC0,0x90}//{0x90,0x90,0x90};
//022 00528ECA 74**E8********8B86940100008B088B91A8000000
// 00528ECA 74**E8********8B86940100008B088B91A8000000
//+15 ?00528EDF-00528ECA
//HOOK Data[3]={0x8B,0xC0,0x90}//MOV EAX,EAX;NOP//{0x90,0x90,0x90};
//主线程HOOK 黑屏优化
strcpy_s(szpFeatureCode,"74**E8********8B86940100008B088B91A8000000");
//定位特征码
ndCurAddr=ScanFeatureCode(hProcess,szpFeatureCode,0x0527000,0x0527000+0x10000);
//读取基址1
ndBase=ndCurAddr+0x15;
// printf("ndCurAddr=%X\n",ndCurAddr);
printf("#define BaseBlackScreenMainHook 0x%X//022 主线程黑屏优化基址0x%X \n",ndBase,ndBase);
fprintf(pfile,"#define BaseBlackScreenMainHook 0x%X//022 主线程黑屏优化基址 0x%X\n",ndBase,ndBase);
d3d9.5F32279F=GetModuleHandle("d3d9.dll")+0x2279F;
5F322797 C2 0400 RETN 0x4
HOOK Data[3]={0xc2,0x04,0x00};HINSTANCE LoadLibrary(
LPCTSTR lpLibFileName // address of filename of executable module
);
HMODULE GetModuleHandle(
LPCTSTR lpModuleName // address of module name to return handle
// for
);//返回值就是模块基址
d3d9.5F32279F=GetModuleHandle("d3d9.dll")+偏移;
d3d9.5F32279F=GetModuleHandle("d3d9.dll")+d3d9.5F32279F-d3d9.5F300000
d3d9.5F32279F=GetModuleHandle("d3d9.dll")+0x2279F;
5F322796 5D POP EBP
5F322797 C2 0400 RETN 0x4
5F32279A 90 NOP
5F32279B 90 NOP
5F32279C 90 NOP
5F32279D 90 NOP
5F32279E 90 NOP
5F32279F 8BFF MOV EDI,EDI
5F3227A1 55 PUSH EBP ; 5F322860 C2 0400 RETN 0x4
5F3227A2 8BEC MOV EBP,ESP
5F3227A4 6A FF PUSH -0x1
5F3227A6 68 FCAD495F PUSH d3d9.5F49ADFC
5F3227AB 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
5F3227B1 50 PUSH EAX
5F3227B2 83EC 14 SUB ESP,0x14
5F3227B5 53 PUSH EBX
5F3227B6 56 PUSH ESI
5F3227B7 57 PUSH EDI
5F3227B8 A1 50924A5F MOV EAX,DWORD PTR DS:[0x5F4A9250]
5F3227BD 33C5 XOR EAX,EBP
5F3227BF 50 PUSH EAX
5F3227C0 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-0xC]
5F3227C3 64:A3 00000000 MOV DWORD PTR FS:[0],EAX
5F3227C9 8965 F0 MOV DWORD PTR SS:[EBP-0x10],ESP
5F3227CC 8B75 08 MOV ESI,DWORD PTR SS:[EBP+0x8]
5F3227CF 33DB XOR EBX,EBX
5F3227D1 3BF3 CMP ESI,EBX
//主线程HOOK 黑屏优化
00528EDF 8BC0 MOV EAX,EAX
00528EE1 90 NOP
00528ECA 74**E8********8B86940100008B088B91A8000000
//+15 ?00528EDF-00528ECA
00528EB7 |. 8B91 E4000000 |MOV EDX,DWORD PTR DS:[ECX+0xE4]
00528EBD |. 6A 01 |PUSH 0x1
00528EBF |. 6A 0E |PUSH 0xE
00528EC1 |. 50 |PUSH EAX
00528EC2 |. FFD2 |CALL EDX
00528EC4 |> 391D 30E3F500 |CMP DWORD PTR DS:[0xF5E330],EBX
00528ECA |. 74 05 |JE SHORT Client.00528ED1
00528ECC |. E8 9F380000 |CALL Client.0052C770
00528ED1 |> 8B86 94010000 |MOV EAX,DWORD PTR DS:[ESI+0x194]
00528ED7 |. 8B08 |MOV ECX,DWORD PTR DS:[EAX]
00528ED9 |. 8B91 A8000000 |MOV EDX,DWORD PTR DS:[ECX+0xA8] ; d3d9.6C24279F
00528EDF 50 PUSH EAX
00528EE0 FFD2 CALL EDX ; 真正的黑屏优化
00528EE2 |. 8BCE |MOV ECX,ESI
00528EE4 |. 891D C0F9F500 |MOV DWORD PTR DS:[0xF5F9C0],EBX
00528EEA E8 71E5FFFF CALL Client.00527460 ; 伪黑屏CALL
00528EEF |. 3D 68087688 |CMP EAX,0x88760868
00528EF4 |. 74 0E |JE SHORT Client.00528F04
00528EF6 |. 3D 27087688 |CMP EAX,0x88760827
00528EFB |. 74 07 |JE SHORT Client.00528F04
00528EFD |. 3D 6C087688 |CMP EAX,0x8876086C
00528F02 |. 75 1D |JNZ SHORT Client.00528F21
00528F04 |> 50 |PUSH EAX
00528F05 |. 68 0016A000 |PUSH Client.00A01600 ; ASCII "Device Lost : Present() returned %d"
00528F0A |. E8 41C6F9FF |CALL Client.004C5550
00528F0F |. 83C4 08 |ADD ESP,0x8
00528F12 |. C686 AE000000>|MOV BYTE PTR DS:[ESI+0xAE],0x1
00528F19 |> 6A 64 |PUSH 0x64 ; /Timeout = 100. ms
00528F1B |. FF15 CCD19E00 |CALL DWORD PTR DS:[<&KERNEL32.Sleep>] ; \Sleep
00528F21 |> 83BD D0D6FFFF>|CMP DWORD PTR SS:[EBP-0x2930],0x12
0 0
- D3D9黑屏优化大幅降低CPU占用率代码
- 135-D3D9_HOOK黑屏优化分析及地址定位 可大幅降低CPU占用 郁金香灬老师 2015年游戏外挂视频教程第131课内容
- 降低 CPU 占用率的方法
- OpenCv训练降低CPU占用率
- D3D9 hook Present优化CPU
- Dynamips降低CPU占用率的方法
- papervision3d大场景时 如何降低cpu占用率
- spice 优化音频降低cpu
- 使用Java代码控制CPU占用率
- 使用Java代码控制CPU占用率
- CPU占用率
- CPU 占用率
- CPU占用率
- 降低指定进程的CPU占用率(适合游戏多开)
- QT仪表显示程序CPU占用率太高,怎么优化?
- liunx下cpu占用率高如何定位代码问题
- liunx下cpu占用率高如何定位代码问题
- Linux服务器定位CPU高占用率代码位置经历
- Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)的用法
- jquery 中的 $(“#”) 与 js中的document.getElementById(“”) 的区别
- 80后感叹过年像“过劫” 最怕“三问”
- C#复习_控制每行的输出个数
- 在Spring3中,配置DataSource的6种方法
- D3D9黑屏优化大幅降低CPU占用率代码
- [经典面试题][腾讯]集合差集
- 【Java】两个ArrayList之间求交并补
- flashback
- sphinx 使用教程-挺简单易懂
- PCL学习笔记(1):pcl1.6.0+vs2010环境配置以及第一个pcl程序
- 数据集网址
- java混合字符串中获取汉字部分
- Square root - UVa 10023 大数开方