VirtualAlloc 申请可执行内存
生活随笔
收集整理的這篇文章主要介紹了
VirtualAlloc 申请可执行内存
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
假設(shè)我有一個數(shù)組,存儲了加法函數(shù)的二進制代碼(硬編碼)
加法函數(shù)
硬編碼數(shù)組
// Plus 的硬編碼 unsigned char code[] = {0x55,0x8B,0xEC,0x81,0xEC,0xC0,0x00,0x00,0x00,0x53,0x56,0x57,0x8D,0xBD,0x40,0xFF,0xFF,0xFF,0xB9,0x30,0x00,0x00,0x00,0xB8,0xCC,0xCC,0xCC,0xCC,0xF3,0xAB,0xB9,0x03,0xC0,0x82,0x00,//0xE8,0xF5,0xFA,0xFF,0xFF, //檢測堆棧平衡的函數(shù)0x8B,0x45,0x08,0x03,0x45,0x0C,0x5F,0x5E,0x5B,0x81,0xC4,0xC0,0x00,0x00,0x00,0x3B,0xEC,//0xE8,0xC9,0xFA,0xFF,0xFF,0x8B,0xE5,0x5D,0xC3 };直接用函數(shù)指針指向數(shù)組是不能調(diào)用的,因為數(shù)組所在的數(shù)據(jù)區(qū)沒有執(zhí)行權(quán)限。
所以需要申請一塊可執(zhí)行的內(nèi)存,把硬編碼復制過去,方可調(diào)用。
總結(jié)
以上是生活随笔為你收集整理的VirtualAlloc 申请可执行内存的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作系统是如何使用重定位表的
- 下一篇: GetProcAddress 根据 or