0
总之,我想要做的是能够随意导致数据执行保护(DEP)错误。导致故意的DEP错误
这是专门在XP SP3机器上。我喜欢它,所以当我运行一个脚本或小程序时,它会出现XP DEP错误框。
我是否认为用某种脚本或程序最简单的方法是正确的?我知道DEP是用来防止缓冲区溢出攻击,但我宁愿不冒险使用任何 恶意代码。
任何人都可以提出任何建议让我走上正确的路线吗?
总之,我想要做的是能够随意导致数据执行保护(DEP)错误。导致故意的DEP错误
这是专门在XP SP3机器上。我喜欢它,所以当我运行一个脚本或小程序时,它会出现XP DEP错误框。
我是否认为用某种脚本或程序最简单的方法是正确的?我知道DEP是用来防止缓冲区溢出攻击,但我宁愿不冒险使用任何 恶意代码。
任何人都可以提出任何建议让我走上正确的路线吗?
最简单的方法是分配没有可执行属性的内存并跳转到分配的地址。 这可以用下面的代码完成。
void Code(){
return;
}
void GenerateDepError(){
// Allocate data area
PVOID pMem = VirtualAlloc(NULL, 0x100,
MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
// Copy a function into data area
for(DWORD i = 0; i < 0x100; i++){
((char*)pMem)[i] = ((char*)Code)[i];
}
// Consider the memory area as a function.
void (*dep_trigger)() = (void (*)())pMem;
// Invoke the function. This should cause DEP error if DEP is ON.
dep_trigger();
// If it returns without error this message will be displayed.
printf("No error on dep_trigger()\n");
}
int main(int argc, char** argv){
GenerateDepError();
return 0;
}
这应该是非常简单的..只是分配一个页面作为非可执行文件,写一些东西到不可执行的页面,并尝试执行它。 – vcsjones
这是我以前做过的任何事情的联盟。我会如何将特定内存标记为非可执行文件? – user3220393