2608881662 发表于 2025-4-5 22:22:55

求助 易语言转火山代码 禁用DEP数据执行保护

本帖最后由 2608881662 于 2025-4-5 22:24 编辑

火山写的dll回崩溃,StackHash_56f5模块报错
百度查了一下说需要禁用DEP 希望大佬帮忙看看火山好像没有提供这个api函数
火山的嵌入代码不怎么会用请大佬帮帮

易语言代码如图

Xelloss0618 发表于 2025-4-5 22:35:25

摘取自PIV模块

<火山程序 类型 = "通常" 版本 = 1 />

方法 置进程DEP策略 <公开 静态 类型 = 逻辑型 注释 = "设置32位进程的数据执行保护(DEP)策略,本方法不适用于64位进程(64位进程始终开启DEP且无法禁用)."
      注释 = "如果想获取进程的DEP策略,可调用\"进程操作类.取进程DEP策略\"." 返回值注释 = "返回是否设置成功,失败一般是因为系统DEP策略的关系." 折叠 @禁止流程检查 = 真>
参数 DEP设置 <类型 = 整数 注释 = "只能在系统DEP为\"选择性启用\"和\"选择性禁用\"时修改DEP策略,系统的DEP策略可通过\"取系统DEP策略\"获取."
      注释 = "0 禁用当前进程的DEP;" 注释 = "1 在当前进程上永久启用DEP,后续将无法在进程的生命周期内禁用DEP;"
      注释 = "3 当前进程永久启用DEP,并禁用DEP-ATL thunk emulation;">
{
    @ typedef BOOL(WINAPI * Typedef_SetProcessDEPPolicy)(DWORD);
    @ Typedef_SetProcessDEPPolicy pfn = reinterpret_cast<Typedef_SetProcessDEPPolicy>(::GetProcAddress(::GetModuleHandleW(L"Kernel32.dll"), "SetProcessDEPPolicy"));
    @ if (pfn) {
    @   return pfn(static_cast<DWORD>(@<DEP设置>));
    @ }
    @ return FALSE;
}

2608881662 发表于 2025-4-5 22:40:45

Xelloss0618 发表于 2025-4-5 22:35
摘取自PIV模块

非常感谢
页: [1]
查看完整版本: 求助 易语言转火山代码 禁用DEP数据执行保护