首页
社区
课程
招聘
[求助]请问一下关于VirtualProtectEx小问题。
发表于: 2005-9-17 17:27 7076

[求助]请问一下关于VirtualProtectEx小问题。

2005-9-17 17:27
7076
本人在DIY程序的时候,准备用SMC的方法注入自己的代码。但原来的内存地址是不可写的。找了很多资料,找到了VirtualProtectEx这个函数能改变内存的区段属性。本人不会编程,而网上大都是用编程,在这里也看到有好几篇逆向分析程序的,偶尔提到这个函数,我读了一个通宵还是没能弄懂。于是斗胆请教一下各位老大。希望能帮的就帮我一下。如这段是取自本论坛的一个帖子,

0040111E  PUSH AsprDbgr.004046E4                                  ; /pOldProtect = AsprDbgr.004046E4   这里好像只有这一个地址,是否就是进程句柄存放的地址。
00401123  PUSH DWORD PTR DS:[4046E4]                              ; |NewProtect = 0
00401129  PUSH 1                                                  ; |Size = 1
0040112B  PUSH DWORD PTR DS:[404664]                              ; |Address = NULL
00401131  PUSH DWORD PTR DS:[404217]                              ; |hProcess = NULL
00401137  CALL <JMP.&kernel32.VirtualProtectEx>                   ; \VirtualProtectEx

以下是在网上找着关于这个函数的说明。
BOOL VirtualProtectEx(
 HANDLE hProcess, // 要修改内存的进程句柄            
 LPVOID lpAddress, // 要修改内存的起始地址
 DWORD dwSize, // 修改内存的字节
 DWORD flNewProtect, // 修改后的内存属性
 PDWORD lpflOldProtect // 修改前的内存属性的地址
);

 HANDLE hProcess, // 要修改内存的进程句柄   **这里不太明白,或许大家觉得很简单。请大家给点思路,或者是不是spy++等工具查找,或者给个修改区段属性的小程序给我逆向分析一下,跟一下也许就能学会。我今天用了个猛壳是有这个函数的调用,可惜不能断下来,一断程序就出错。

我要注入的地址是一个DLL文件,已知DLL的内存地址,确定自己要修改地址的大小,我还要了解哪些才能调用这个VirtualProtectEx函数。如果手上有使用这个函数的小程序,可能分享一份,让我自己慢慢分析,

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 47147
活跃值: (20470)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
最初由 ttboy 发布
或者给个修改区段属性的小程序给我逆向分析一下,跟一下也许就能学会。


附件:codeencrypt.rar

或 你用LordPE直接修改目标程序的区块为可执行属性也能达到目的。
2005-9-17 17:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢老大,回去学习中,用手工改变属性的方法会了,我想了解一下那个程序动态的修改之法,毕竟这个方法能用在的地方比较广.手工直接修改对付不了动态程序.
2005-9-18 00:57
0
游客
登录 | 注册 方可回帖
返回
//