VirtualProtect()

Windows环境下的调试器探究——内存断点 如果这个值为0有线程试图读这块内存,如果这个值为1则有线程试图写这块内存。,第一个参数:消息类型,共有7种类型,第二个参数:是否挂起其它线程。描述:当需要在某块内存被访问时产生中断,可以使用内存断点。(修改后,PTE的P位等于1,R/W位等于0)1)CPU访问错误的内存地址,触发页异常。内存访问:内存被读写时产生中断。内存访问:将指定内存的属性修改为。(修改后,PTE的P位等于0)内存写入:将指定内存的属性修改为。内存写入:内存被写入时产生中断。3)列出消息(寄存器/内存)到msdn里面看一下。 阅读详情

VirtualProtect

改变调用进程的一段页的保护属性。要改变其他进程,请使用 VirtualProtectEx 函数。


BOOL WINAPI VirtualProrect(

__in    LPVOID lpAddress ,

__in    SIZE_T dwSize ,

__in    DWORD flNewProtect ,

__out  PDWORD lpflOldProtect 

);

参数:

lpAddress:指向需要修改保护属性的页的基地址。所有的页必须在同一个函数 VirtualAlloc 或 VirtualAllocEx 调用使用 MEM_RESERVE 标记。页不可以跨越到临近的另一个以上两个函数使用 MEM_RESERVE 标记的页。

dwSize:需改变保护属性的内存大小,单位为Bytes 。改变范围为 lpAddress 到( lpAddress + dwSize )。这意味着如果范围跨越了一个页界,那么页界两边的两个页的保护属性均会被改变。

flNewProtect:内存保护属性常量(memory protection constants )。对于那些已经有效的页,如果这个参数与函数 VirtualAlloc 或 VirrualAllocEx 的设置冲突,该参数将被忽略。

lpflOldProtect:这个参数指向一个接受原保护属性的变量。如果该参数为NULL,则函数失败。

返回值:

成功:非零。

失败:零。

获得更多错误信息请调用函数 GetLastError 。

附注:

你只能设置已commit(提交)的页的保护属性。如果页没有被提交,那么函数不会改变页的保护属性,并失败返回。

最好避免使用该函数改变 GlobalAlloc , HeapAlloc , LocalAlloc 函数分配的页的保护属性,因为这些函数分配的内存块可能存在于同一页内。堆的管理者假定堆里的所有页被授予可读可写的权限。

要求:

头文件:声明于Winbase.h;包含于Windows.h 。

库:Kernel32.lib

动态链接库:Kernel32.dll

[转]C/C++ HOOK API(原理深入剖析之-LoadLibraryA) 9月都快结束了,之前一直忙到写自己的东西加上上班。基本没有时间研究下汇编和C C++方面的感兴趣的东西。再怎么说嘛,9月还是得写一篇撒,以后每月至少一篇吧。给自己定了,希望大家监督。嘿嘿!这篇文章就来谈谈平常很常见的HOOK技术,这里呢。写得比较简单,方法很多。只讲原理!希望大鸟们别吐我口水哈 - -。好!切入正题。首先是概念吧。什么是钩子(HOOK)?钩子(Hook),是Window 阅读详情

相关推荐

避免踩坑!微信小程序encryptedData解密失败的5个常见原因及解决方法

本文深度解析了微信小程序开发中encryptedData解密失败的五大常见原因,并提供了详细的解决方案。核心问题通常围绕session_key过期、参数编码错误、算法不一致等,文章通过原理剖析、代码示例和最佳实践,帮助开发者构建健壮的解密流程,有效规避开发陷阱。

palm99的专栏 527

任鸟飞逆向C++高级篇

【课程简介】本课程为任鸟飞逆向C++高级篇,注重在逆向中运用的技巧和思维逻辑,掌握后相关工具与手法可以熟练运用,在反汇编的世界里如鱼得水。 本套课程不只是一套深入学习C++的课程,更是一套深入学习汇编逆向课程、外挂与反外挂、软件安全的课程。 逆向思路技术随笔,请关注我的优快云博客:https://blog.youkuaiyun.com/qq_36553941 欢迎大家来学习交流,活动折扣咨询等请在博客私聊我。 PS: 课程中工具包、源码、课件请关注第一章的第一节的随课课件,工欲望善其事,必先利其器! 【学前预备知识】任鸟飞逆向C++系列课程是一条精心安排为掌握汇编逆向、外挂与反外挂、软件安全以及软件编程的学习路线,包括但不限于 基础篇、进阶篇、高级篇(本篇)、实战篇等,所以为保证您能学有所成请在学习本篇之前务必掌握基础篇与进阶篇!!! 基础篇优快云学院链接:https://edu.youkuaiyun.com/course/detail/30509进阶篇优快云学院链接:https://edu.youkuaiyun.com/course/detail/30680 【学员学成收获】认真学习并练习后将掌握:1、熟练游戏逆向思想与技巧。2、熟练通用辅助程序设计。3、熟练诸多逆向工具使用。4、熟练常见数据结构逆向分析。5、熟悉智能主线脚本编写。 

利用ROP链突破DEP保护机制

@Puzzor          本文旨在介绍如何利用ROP绕过DEP保护机制,也是学习过程中的总结 DEP保护机制即Data Execution Prevention,其分为软件DEP以及硬件DEP,下面所讨论的都是基于硬件DEP下的绕过方式。相关术语请自行学习。 所用实例为一存在溢出漏洞的程序,当处理某些文件时未能检查文件长度的限制,导致栈区溢出,若不开启DEP保护,则溢出后E

Puzzor的专栏 6885

VirtualProtect函数

首先我们来看看MSDN上对VirtualProtect函数的说明。 BOOL VirtualProtect(    LPVOID lpAddress,    DWORD dwSize,    DWORD flNewProtect,    PDWORD lpflOldProtect  );   各参数的意义为: lpAddress,要改变属性的内存起始地址。 dwSize,要改变属性的内存区

zacklin的专栏 4万+

利用Ret2Libc挑战DEP之二——利用VirtualProtect

感觉最近作者给出的shellcode,有一种“他就是这样”、“这样的shellcode是最合理”的感觉了。刚开始看有点看不懂,但是跟着最终实现代码一点点跟,就会发现这个代码的巧妙之处。 0x01 环境 系统:Windows 2003 SP2 编译器:VS2008 注意编译选项: release版本 禁用优化(C++——optimization disable) GS禁用(C++——c

Yx0051的博客 1046

动态调用VirtualProtect去除IAT特征

编译环境:windows 10 专业版 x64 vs2017 获取Kennel32基址: __declspec(naked) DWORD getKernel32() { __asm { mov eax, fs:[030h]; test eax, eax; js finished; mov eax, [eax + 0ch]; mov eax, [eax + 14h];...

R4bbit 1334

DEP: Ret2Libc via VirtualProtect()

VirtualProtect() 绕过DEP 文章参考 0day 安全:软件漏洞分析技术: 学习了DEP 绕过技术中的 VirtualProtect()绕过DEP,不过书中的例子是以windows 2003 为例,通过学习,一步一步在xp上测试成功。 BOOL VirtualProtect{ LPVOID lpAddress, // 需要修改属性的内存的起始地址

ShadowAssassin的专栏 1210

帕德伯恩大学轴承数据集(PU)介绍

PU数据集介绍一、帕德伯恩大学轴承数据集故障类别说明二、关于损伤描述2.1 损伤组合:2.2 重复和多重损伤的安排:2.3 几何尺寸2.4 损伤程度2.5损伤特征数据集损伤类别三、人为损坏轴承3.1 最常用的人为损伤制造方法是:3.2 本数据集使用的人工损坏是由三种不同方法引起的四、通过加速寿命试验产生真正的轴承损坏样本 一、帕德伯恩大学轴承数据集 数据集下载地址 从帕德伯恩大学获得的PU数据集是一个6203轴承数据集,包括人为诱发的和真实的损害。采用压电加速度计采集轴承座的振动信号,采样频率为64 kHz

m0_47180208的博客 3万+

VirtualProtect() 原理(摘自Undocument NT)

<br />VirtualProtect() 函数并不将页标记为可读写,而是保持页的只读属性。 然而,为了将此页与其它的正常只读页取分开来,它被标记为写时拷贝(copy-on-write)。 Windows NT 使用了 PTE 中的一个空闲位来做这个标记。当此页被写入时,因为是只读页,处理器发出页错误异常。页错误处理程序做一份此页的拷贝并相应地修改发生页错误进程的列表。新的拷贝被标记为可读写以使进程可以写入。

绝迹·危言的专栏 4598

可信数据空间:可信空间、区域功能节点、业务功能节点、连接器的关联关系

可信数据空间通过分层架构实现安全数据共享:可信空间作为顶层制定全局规则;区域功能节点协调辖区内功能节点协作;功能节点提供具体数据服务;连接器作为唯一通信通道确保安全交互。系统采用"规则自上而下约束,数据自下而上流动"机制,通过分层治理和标准化连接,在保证数据主权的同时实现跨域协作,具有策略分级执行、去中心化治理等特性,支持灵活扩展业务场景。

友莘居士的博客 1687

FPGA防抄板实战:如何利用Xilinx芯片的“身份证”(DNA)实现你的加密锁?

本文深入探讨了如何利用Xilinx FPGA芯片的DNA(Device Native Authentication)功能实现硬件级加密保护,防止设计被抄袭。文章详细解析了DNA的物理实现、获取方式,并提供了从DNA到加密密钥的转换方法,以及构建商业级加密防护系统的实战方案。通过JTAG和原语两种读取方式的对比,帮助开发者选择最适合的方案。

weixin_42548829的博客 384

VirtualProtect

VirtualProtect,是对应 Win32 函数的逻辑包装函数,它会在呼叫处理程序的虚拟位置空间里,变更认可页面区域上的保护。 lpAddress [in] 指针,指向要变更保护属性的内存基址。 dwSize [in] 要变更的记忆体分页区域的大小 (单位是字节)。但是需要注意,页面边界2字节的内存属性更改,有可能导致改变2个页的属性同时被改变 flNewProtect [in] 要套用的记忆体保护类型。 lpflOldProtect [out] 上一个记忆体保护值的指针。 ...

weixin_41454036的博客 885

用GraphPad Prism直出单细胞亚群堆叠柱状图

用GraphPad Prism直出单细胞亚群堆叠柱状图

fivehuge的博客 4197

计算机实验指导书,计算机操作系统实验指导书

《操作系统管理》实验指导书VirsualUnlock() 释放虚拟内存的锁定区域,必要时,允许系统将其交换到页面文件中 提供虚拟内存分配功能的是VirtualAlloc() API。该API支持用户向系统要求新的虚拟内存或改变已分配内存的当前状态。用户若想通过VirtualAlloc() 函数使用虚拟内存,可以采用两种方式通知系统:1)简单地将内存内容保存在地址空间内2)请求系统返回带有物理存储...

weixin_39530960的博客 493

手把手教你:基于STM32H7自制飞控,如何从零开始移植PX4固件(附避坑指南)

本文详细介绍了如何基于STM32H7自制飞控板并移植PX4固件的完整流程,包括硬件设计、开发环境搭建、关键配置文件移植、驱动开发与适配等关键步骤。特别针对PX4-AutoPilot的移植过程提供了实用技巧和避坑指南,帮助开发者高效完成飞控系统开发。

weixin_30271335的博客 143

Fortran基础编程(3)——格式化输出

本篇推文将进一步讲解Fortran基础语法中格式化输出与声明部分,让我们的代码更加美观起来吧~

qq_45715554的博客 3827

(转)VirtualProtect、VirtualLock、VirtualUnlock

VirtualProtect改变指定虚拟内存分页的保护属性,函数原型如下: BOOL VirtualProtect(     LPVOID lpAddress,     SIZE_T  dwSize,     DWORD flNewProtect,     PDWORD lpflOldProtect); 参数: lpAddress: 输入参数,虚拟内存基地址。

gxj1680的专栏 1721

Xilinx FPGA资源解析与使用系列——Transceiver(六)关键时钟梳理之TXOUTCLK和RXOUTCLK

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Xilinx FPGA资源解析与使用系列——Transceiver(六)transceiver内部关键时钟梳理之TXOUTCLK和RXOUTCLK前言TXOUTCLKRXOUTCLK 前言 前面我们已经研读了 transceiver的参考时钟 和复位的相关内容。 但是随着内容的深入,越来越多的信号出现在我的面前。 例如 TXOUTCLK、TXUSERCLK、TXUSERCLK2 RXOUTCLK、RXUSERCLK、RXUSERCLK2

gzy0506的博客 8089

9.3 Ret2Libc 实战之利用VirtualProtect

VirtualProtect DEP绕过

qq_55202378的博客 2515

射频仿真软件:ADS (Advanced Design System)_(29).ADS脚本编程与自动化

ADS脚本编程为射频设计提供了强大的自动化工具,可以帮助用户实现设计流程的优化、参数扫描和优化、结果分析和报告生成等任务。选择合适的脚本语言(Python、Tcl、AEL)并合理设置ADS环境,可以显著提高设计效率和准确性。通过实际项目中的应用案例,我们可以更好地理解如何利用脚本编程解决复杂的射频设计问题。希望本文对您的ADS脚本编程学习有所帮助。

kkchenjj的博客 2472

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Windows Shellcode学习笔记——通过VirtualProtect绕过DEP

本文讲的是Windows Shellcode学习笔记——通过VirtualProtect绕过DEP, 0x00 前言 在掌握了栈溢出的基本原理和利用方法后,接下来就要研究如何绕过Windows系统对栈溢出利用的重重防护,所以测试环境也从xp转到了Win7(相比xp,Win7的防护更全面)。本文将要介绍经典的DEP绕过方法——通过VirtualProte...

weixin_34004576的博客 2026

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VirtualProtect、VirtualLock、VirtualUnlock

VirtualProtect改变指定虚拟内存分页的保护属性,函数原型如下: BOOL VirtualProtect(     LPVOID lpAddress,     SIZE_T  dwSize,     DWORD flNewProtect,     PDWORD lpflOldProtect); 参数: lpAddress: 输入参数,虚拟内存基地址。

whatday的专栏 4478

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

virtualProtect

// VirtualProtect.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "windows.h" typedef void (*FUN)(); FUN fun = NULL; int _tmain(int argc, _TCHAR* argv[]) { char* p2 = "Helloworl...

weixin_30505225的博客 608

0day2 挑战DEP,ret2libc利用VirtualProtect详细实现

0day2 挑战DEP,ret2libc利用VirtualProtect详细实现 本文参考于 0day安全:软件漏洞分析技术(第2版) 此方法是利用ret2libc来改变内存属性,使栈空间可以执行命令 实验环境 windows xp sp3,vc6.0,仅开启dep,OD调试器; 代码如下: // GS_Virtual.cpp : 定义控制台应用程序的入口点。 // #include <stdlib.h> #include <string.h> #include <stdi

weixin_45612751的博客 343

VirtualProtect导致程序crash的问题。

VirtualProtect函数用于改变内存页面的存取属性 : #define PAGE_NOACCESS 0x01 #define PAGE_READONLY 0x02 #define PAGE_READWRITE 0x04 #define PAGE_WRITECOPY 0x08

ADF1230的专栏 3119
上一篇: ReadProcessMemory()
下一篇: GetProcAddress()
windroid
博客等级 码龄12年 28粉丝 27原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值