开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 944|回复: 4
收起左侧

[求助] 一段代码C转e

[复制链接]
结帖率:71% (10/14)
发表于 2023-3-26 22:29:19 | 显示全部楼层 |阅读模式   北京市北京市
VOID Protection(_In_ PVMMDLL_MAP_VADENTRY pVad, _Out_writes_(6) LPSTR sz)
BYTE vh = (BYTE)pVad->Protection >> 3;
    BYTE vl = (BYTE)pVad->Protection & 7;
    sz[0] = pVad->fPrivateMemory ? 'p' : '-';                                    // PRIVATE MEMORY
    sz[1] = (vh & 2) ? ((vh & 1) ? 'm' : 'g') : ((vh & 1) ? 'n' : '-');         // -/NO_CACHE/GUARD/WRITECOMBINE
    sz[2] = ((vl == 1) || (vl == 3) || (vl == 4) || (vl == 6)) ? 'r' : '-';     // COPY ON WRITE
    sz[3] = (vl & 4) ? 'w' : '-';                                               // WRITE
    sz[4] = (vl & 2) ? 'x' : '-';                                               // EXECUTE
    sz[5] = ((vl == 5) || (vl == 7)) ? 'c' : '-';                               // COPY ON WRITE
    if(sz[1] != '-' && sz[2] == '-' && sz[3] == '-' && sz[4] == '-' && sz[5] == '-') { sz[1] = '-'; }

转成e怎么写
结帖率:89% (67/75)

签到天数: 6 天

发表于 2023-3-26 22:36:54 | 显示全部楼层   福建省莆田市
这段代码是用于获得指定虚拟地址所在的虚拟内存区域的保护属性,并将保护属性解析为字符串形式。

具体来说,Protection 函数接收一个指向 PVMMDLL_MAP_VADENTRY 结构体的指针 pVad 和一个字符串数组指针 sz,然后将 pVad 指向的虚拟内存区域的保护属性转换成一个 8 位无符号整数,再将其解析为对应的字符串,并存储在 sz 数组中。

代码首先将保护属性的高 5 位右移 3 位,获取高三位的值 vh。然后将保护属性的低 3 位与 7 按位与操作,获取低三位的值 vl。接着将保护属性的各个标记转换成对应的字符并存储在 sz 数组中,例如:

如果虚拟内存区域的 fPrivateMemory 标记为真,则将 sz[0] 赋值为字符 'p',否则赋值为字符 '-'。
如果保护属性的第 6 位为 1,则表示禁用缓存,根据第 7 位判断是 NO_CACHE 还是 WRITE_COMBINE,赋值到 sz[1] 中;否则,根据第 7 位判断是全称还是非全称,赋值到 sz[1] 中,如果第 7 位为 0,则直接赋值为字符 '-'。
如果保护属性的低三位为 1、3、4 或 6,则表示启用了拷贝时写共享(Copy On Write)特性,将字符 'r' 赋值到 sz[2] 中,否则赋值为字符 '-'。
如果保护属性的第 3 位为 1,则表示启用了写入权限,将字符 'w' 赋值到 sz[3] 中,否则赋值为字符 '-'。
如果保护属性的第 2 位为 1,则表示启用了可执行权限,将字符 'x' 赋值到 sz[4] 中,否则赋值为字符 '-'。
如果保护属性的低三位为 5 或 7,则表示启用了拷贝时写所有者(Copy On Write Owner)特性,将字符 'c' 赋值到 sz[5] 中,否则赋值为字符 '-'。
最后,如果 sz[1] 不是字符 '-',而且 sz[2]、sz[3]、sz[4] 和 sz[5] 都是字符 '-',则将 sz[1] 赋值成字符 '-'。
回复 支持 反对

使用道具 举报

结帖率:71% (10/14)
 楼主| 发表于 2023-3-26 22:44:26 | 显示全部楼层   香港特别行政区*
啊麟 发表于 2023-3-26 22:36
这段代码是用于获得指定虚拟地址所在的虚拟内存区域的保护属性,并将保护属性解析为字符串形式。

具体来说 ...

别chatgpt了好吗

点评

这都让你看出来了   广西壮族自治区南宁市  发表于 2023-3-26 22:46

评分

参与人数 1好评 +1 精币 +3 收起 理由
陽陽陽 + 1 + 3 毫无意义

查看全部评分

回复 支持 反对

使用道具 举报

结帖率:89% (67/75)

签到天数: 6 天

发表于 2023-3-27 13:52:00 | 显示全部楼层   福建省莆田市

这不写的很明白了吗,对着抄呀
回复 支持 反对

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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