首页
社区
课程
招聘
[原创]empty是如何帮你减少物理内存的
发表于: 2013-9-15 09:47 4850

[原创]empty是如何帮你减少物理内存的

2013-9-15 09:47
4850
empty能优化我们windows进程内存,今天试了下empty果然能减少物理内存使用量.一看软件才10K应该代码不多我就拿这个软件来练手逆向.通过ida分析了一早上,总算知道软件工作原理了,原来关键就是调用SetProcessWorkingSetSize了,还是贴出代码说明吧:

.text:01001F2C ; int __stdcall SetProcessSize(DWORD dwProcessId)
.text:01001F2C SetProcessSize  proc near               ; CODE XREF: main__+80p
.text:01001F2C                                         ; main__+167p
.text:01001F2C
.text:01001F2C MinimumWorkingSetSize= dword ptr -4
.text:01001F2C dwProcessId     = dword ptr  8
.text:01001F2C
.text:01001F2C                 push    ebp             ; 设置进程的内存使用
.text:01001F2D                 mov     ebp, esp
.text:01001F2F                 push    ecx
.text:01001F30                 push    esi
.text:01001F31                 push    edi
.text:01001F32                 push    [ebp+dwProcessId] ; dwProcessId
.text:01001F35                 xor     edi, edi
.text:01001F37                 push    edi             ; bInheritHandle
.text:01001F38                 push    1F0FFFh         ; dwDesiredAccess
.text:01001F3D                 call    ds:OpenProcess
.text:01001F43                 mov     esi, eax
.text:01001F45                 cmp     esi, edi
.text:01001F47                 jnz     short loc_1001F4D
.text:01001F49                 xor     eax, eax
.text:01001F4B                 jmp     short return
.text:01001F4D ; ---------------------------------------------------------------------------
.text:01001F4D
.text:01001F4D loc_1001F4D:                            ; CODE XREF: SetProcessSize+1Bj
.text:01001F4D                 lea     eax, [ebp+dwProcessId]
.text:01001F50                 push    eax             ; lpMaximumWorkingSetSize
.text:01001F51                 lea     eax, [ebp+MinimumWorkingSetSize]
.text:01001F54                 push    eax             ; lpMinimumWorkingSetSize
.text:01001F55                 push    esi             ; hProcess
.text:01001F56                 call    ds:GetProcessWorkingSetSize
.text:01001F5C                 test    eax, eax
.text:01001F5E                 jz      short loc_1001F6E
.text:01001F60                 push    0FFFFFFFFh      ; dwMaximumWorkingSetSize
.text:01001F62                 push    0FFFFFFFFh      ; dwMinimumWorkingSetSize
.text:01001F64                 push    esi             ; hProcess
.text:01001F65                 call    ds:SetProcessWorkingSetSize//这个就是关键使用的api
.text:01001F6B                 xor     edi, edi
.text:01001F6D                 inc     edi
.text:01001F6E
.text:01001F6E loc_1001F6E:                            ; CODE XREF: SetProcessSize+32j
.text:01001F6E                 push    esi             ; hObject
.text:01001F6F                 call    ds:CloseHandle
.text:01001F75                 mov     eax, edi
.text:01001F77
.text:01001F77 return:                                 ; CODE XREF: SetProcessSize+1Fj
.text:01001F77                 pop     edi
.text:01001F78                 pop     esi
.text:01001F79                 leave
.text:01001F7A                 retn    4
.text:01001F7A SetProcessSize  endp
看到代码我想有需要的人应该就知道如何用了.
我想游戏优化内存应该也能用上吧,具体工作如何还没有充分测试有那位有心人测试了或有更好想法给我邮件!感谢了
382100@sina.com

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费
支持
分享
最新回复 (4)
雪    币: 75
活跃值: (218)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
屁优化,忽悠人的,只是置换到虚拟内存,放硬盘了
2013-9-15 11:23
0
雪    币: 106
活跃值: (759)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
优化后切换到桌面巨卡。挪到硬盘还不如不挪。
这工具实用价值不大。
2013-9-15 12:25
0
雪    币: 73
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我去找台机器来上游戏测试效果
2013-9-15 17:13
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
一天到晚说这个优化,不去读msdn也罢了,你真觉得游戏只要几兆的内存?物理原理给狗吃了?
2013-9-15 21:08
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册