社区
汇编语言
帖子详情
请问如何修改内存的属性
TeddyWing
2002-03-29 04:34:38
我用VC写了一个程序,通过PE文件的导入表修改导入函数的地址,在debug状态下修改成功,但转到release状态下以后,修改函数地址的时候发生了非法访问的错误,这是为什么?有什么办法可以改掉这段内存的只读属性吗?
...全文
469
4
打赏
收藏
请问如何修改内存的属性
我用VC写了一个程序,通过PE文件的导入表修改导入函数的地址,在debug状态下修改成功,但转到release状态下以后,修改函数地址的时候发生了非法访问的错误,这是为什么?有什么办法可以改掉这段内存的只读属性吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wowocock
2002-03-30
打赏
举报
回复
我只在WIN9X下试过,由于我的机器太破,所以没有试过2000,不过在2000下有
太多的限制,可能没那么容易,而且一般不用驱动程序恐怕无法进RING0,不过
我想如果在80X86的机器上实现的保护,无外于段级保护加页级保护,WIN9X之所以
脆弱,就是应为它没有采用页级保护,一般来说只要能进RING0就可以修改任何东西,即使无法修改,也是以为其物理页属性为只读,而且CR0的WP位为1,只要在RING0中修改该位,就可以做任何事了。估计NT下也是那么作的。
TeddyWing
2002-03-30
打赏
举报
回复
问题已经解决了,我直接修改了PE的Section表中对应Section(.rdata)的属性,将只读改为了可读可写,不过,wowocock(机器猫)你提到的修改该地址所映射的物理地址的页属性的实现复杂吗?要作线性地址到物理地址的转换?这个转换本身似乎不太复杂,但在Ring0是不是可以访问PTD?我不太清楚,请你解释一下。
我用的是Win2000/SP2。
wowocock
2002-03-29
打赏
举报
回复
一般情况下,所有的API函数都是只读的,你用SOFTICE的PAGE 函数名可以看到
所有的函数属性都是用户,只读,也就是说你在RING3下无法修改,解决的方法只有2种,1是进入RING0层去修改,当然前提是你的CR0寄存器的WP位为0,不然进RING0也没用,还有就是修改该地址所映射的物理地址的页属性,改为用户,可读写,就可以了,关于线性地址到物理地址的转换,你可以参考我以前的一个问题,
让WIN9X和NT一样坚固,在里面我通过修改GDT,IDT的页属性达到防止所有WIN9X下RING0层病毒的目的。
TeddyWing
2002-03-29
打赏
举报
回复
忘了说清楚,修改是在程序加载的时候进行的(实际上是通过加载一个动态库:DLL_PROCESS_ATTACH 的时候来实现的),因为我想截获一些API函数的调用。
秦殇1.30版
内存
修改
器
1.从
修改
器选择游戏进程后(一般来说是Poq.exe),先点击"初始化", 2.再回到游戏中将物品栏中的物品拿起放下,回到
修改
器中就能读取数据再
修改
了. 3.
修改
完成后保存.回到游戏中把
修改
的物品扔到地下再捡起来,就能看到
修改
效果了. 可以
修改
装备的
属性
,并可以自由定制装备颜色。 1.0正式版新增加了一个模板功能,能存储玩家的
修改
方案。 感谢YES2提供
修改
思路!
更改CPU
属性
注册表
更改CPU
属性
注册表
Linux
内存
保护
属性
,[译]如何在任意进程中
修改
内存
保护
属性
最近,我们面临着一个非常特殊的任务:在任意进程中更改
内存
区域的保护标志。 这项任务看似微不足道,但是我们遇到了一些障碍,并在此过程中学到了新的东西,主要是关于Linux机制和内核开发。 以下是我们工作的简要概述,包括我们采取的三种方法以及每次寻求更好解决方案的原因。引言在现代操作系统中,每个进程都有自己的虚拟地址空间(从虚拟地址到物理地址的映射)。 此虚拟地址空间由
内存
页(某些固定大小的连续
内存
块...
Windbg常用命令 -
修改
可执行
内存
属性
断点
下面命令对32位程序,
修改
内存
属性
为读写执行时,断下,并打印出地址、大小、和新
属性
值 bp kernel32!VirtualProtect ".if(poi(@esp+4*3)==40){.printf \"addr=0x%08x size=0x%08x newProtect=0x%08x\\n\",poi(@esp+4),poi(@esp+4*2),poi(@esp+4*3);.echo hit!!! }.else{gc}; " 比较坑的是.printf命令,换行要用\\n才行。 ...
【Android 逆向】函数拦截 (
修改
内存
页
属性
| x86 架构插桩拦截 )
一、
修改
内存
页
属性
、 二、x86 架构下的插桩拦截、
汇编语言
21,459
社区成员
41,601
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章