Joh*_*ing 2 c++ windows debugging memory-management
我看到在Windows上,函数EnumProcessModules返回为指定进程加载的一些模块(其中一些应该是系统dll,如guard32.dll,version.dll等).
我的问题是:这些模块是否映射到流程的虚拟空间?我可以从主应用程序代码跳转到其中一个模块(当然知道地址)的指令吗?
是的,DLL应该映射到进程虚拟地址空间.如果该页面中的代码尚未执行,则映射可能无法由真实物理页面支持,当然,如果没有正确的初始化或设置以使代码正确执行(例如调用处理函数),则执行"随机"位代码那些使用一些需要在另一个函数中分配的数据)在一些不好的定义中会明显地结束.还要记住,DLL可能会在运行相同代码等的不同时间加载到不同的地址,因此您不能依赖DLL的地址是恒定的 - 并且它可能在另一台机器中完全不同.
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |