吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 51|回复: 9
上一主题 下一主题
收起左侧

[资源求助] E语言怎么转换这函数

[复制链接]
跳转到指定楼层
楼主
a601623124a 发表于 2026-8-20 09:17 回帖奖励
25吾爱币

请问下如何用E语言表达这virtualprotectex函数,不用DLL

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
忧郁之子 发表于 2026-8-20 14:18
通过置入代码()在程序运行中动态调用VirtualProtectEx。

以下是一个封装好的子程序示例:
[Asm] 纯文本查看 复制代码
.版本 2

.子程序 汇编_VirtualProtectEx, 整数型, 公开, 修改内存保护属性,成功返回原保护属性,失败返回0
.参数 进程句柄, 整数型, , 目标进程句柄
.参数 内存地址, 整数型, , 要修改的内存地址
.参数 内存长度, 整数型, , 要修改的内存大小
.参数 新保护属性, 整数型, , 新的内存保护属性, 如 #PAGE_EXECUTE_READWRITE (64)
.局部变量 旧保护属性, 整数型, , , 用于接收修改前的保护属性

置入代码 ({ 255, 117, 20, 255, 117, 16, 141, 69, 12, 80, 141, 69, 8, 80, 255, 117, 4, 232, 4, 0, 0, 0, 93, 194, 20, 0, 184, 77, 0, 0, 0, 49, 201, 141, 84, 36, 4, 100, 255, 21, 192, 0, 0, 0, 131, 196, 4, 194, 20, 0 })

返回 (旧保护属性)


代码说明:

置入代码:里面的机器码实现了调用VirtualProtectEx的全部过程。

参数顺序:汇编代码中的255, 117, 20等指令,对应着将新保护属性、内存长度等参数压入栈中,与VirtualProtectEx的参数顺序一致。

旧保护属性:这个变量通过“传址”方式,接收函数返回的修改前的保护属性。

返回值:子程序执行后,旧保护属性变量会被填充,同时子程序本身会返回这个值。如果调用失败,则返回0。
3#
 楼主| a601623124a 发表于 2026-8-20 17:37 |楼主
忧郁之子 发表于 2026-8-20 14:18
通过置入代码()在程序运行中动态调用VirtualProtectEx。

以下是一个封装好的子程序示例:

汇编代码中的255, 117, 20等指令,后面的代码跟我里面的变量这些没关系吧,E新手
4#
 楼主| a601623124a 发表于 2026-8-20 17:38 |楼主
a601623124a 发表于 2026-8-20 17:37
汇编代码中的255, 117, 20等指令,后面的代码跟我里面的变量这些没关系吧,E新手

然后可以直接调用这个 子程序了?
5#
 楼主| a601623124a 发表于 2026-8-20 18:09 |楼主
忧郁之子 发表于 2026-8-20 14:18
通过置入代码()在程序运行中动态调用VirtualProtectEx。

以下是一个封装好的子程序示例:

6#
 楼主| a601623124a 发表于 2026-8-20 18:11 |楼主
忧郁之子 发表于 2026-8-20 14:18
通过置入代码()在程序运行中动态调用VirtualProtectEx。

以下是一个封装好的子程序示例:

7#
 楼主| a601623124a 发表于 2026-8-20 18:13 |楼主
为什么上传不了图片了
8#
 楼主| a601623124a 发表于 2026-8-20 18:16 |楼主
忧郁之子 发表于 2026-8-20 14:18
通过置入代码()在程序运行中动态调用VirtualProtectEx。

以下是一个封装好的子程序示例:

9#
 楼主| a601623124a 发表于 2026-8-20 18:20 |楼主
忧郁之子 发表于 2026-8-20 14:18
通过置入代码()在程序运行中动态调用VirtualProtectEx。

以下是一个封装好的子程序示例:

无效啊?
调试结果显示为负数



10#
忧郁之子 发表于 2026-8-20 21:11
[Asm] 纯文本查看 复制代码
.版本 2

.DLL命令 GetModuleHandleA, 整数型, "kernel32.dll", "GetModuleHandleA"
    .参数 lpModuleName, 整数型, , 传0获取本程序基址

.DLL命令 GetProcAddress, 整数型, "kernel32.dll", "GetProcAddress"
    .参数 hModule, 整数型
    .参数 lpProcName, 文本型

.DLL命令 CallWindowProcA, 整数型, "user32.dll", "CallWindowProcA"
    .参数 函数地址, 整数型
    .参数 参数1, 整数型
    .参数 参数2, 整数型
    .参数 参数3, 整数型
    .参数 参数4, 整数型
    .参数 参数5, 整数型
加上这个试一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-8-21 04:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表