首页
社区
课程
招聘
[求助]如何使用VirtualProtect對HEAP區進行保護
发表于: 2013-6-10 17:39 3838

[求助]如何使用VirtualProtect對HEAP區進行保護

2013-6-10 17:39
3838
個人之前程式因為記憶體超用導致程式異常,後來花費許多時間才找出程式出錯位置,因此想將程式修改如下做法:
1. 每個Class如有配置記憶體需求則使用HeapCreate, HeapDestroy, HeapAlloc, HeapFree等
    API取代CRT之預設HEAP區,每個Class使用私有HEAP區。
2. Class被呼叫時將私有HEAP區設成可寫,離開Class時將私有HEAP區設成可讀不可寫,防止私有
    HEAP區被破壞,而且在越區寫入時產生Exception,顯現程式出錯的地方。

目前開發該功能時遭遇到下列問題,請板上先進能提供範例程式或在那些網站有現成範例,謝謝:
1. 建立私有HEAP區後執行HeapAlloc傳回之位址並非完全在HEAP區內,如果配置之空間太大,系
    統會在HEAP區外配置記憶體。
2. 程式設定HEAP區讀寫屬性時,如何找出HEAP區各個配置區塊之連結關係,並透過   
    VirtualProtect一一將區塊改變屬性。
3. 在網路上有找到_HEAP, _HEAP_SEGMENT, _HEAP_ENTRY等struct定義,但無法弄懂  
    HEAP區之架構。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 1042
活跃值: (500)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
看繁体比看英文还眼花。
2013-6-10 19:21
0
游客
登录 | 注册 方可回帖
返回
//