社区
C语言
帖子详情
实现内存全部拷贝
Microsoft777
2008-07-22 08:54:31
如何实现把内存的内容全部拷贝到硬盘上(包括系统文件)?
还有一个问题,什么是PE呢?刚才没有搜索到。
谢谢!
...全文
213
9
打赏
收藏
实现内存全部拷贝
如何实现把内存的内容全部拷贝到硬盘上(包括系统文件)? 还有一个问题,什么是PE呢?刚才没有搜索到。 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yvhkpgf
2008-07-22
打赏
举报
回复
学习学习
Kenny_Glacier
2008-07-22
打赏
举报
回复
拷贝全部内存,个人感觉用程序实现,在user mode下是不可能,但是有其他办法。
1.虚拟机,在虚拟机上可以snap内存(不过不知道保存下来的文件是什么格式)
2.搞一个可以让xp蓝屏的驱动程序,或者你去搜一个叫NotMyFault的测试程序也可以把xp搞蓝屏,然后右键点我的电脑->属性->高级->启动与恢复->下面有一个写调试信息,选面全部的保存那项(我是E文系统,是Complite memory dump)然后你把xp搞蓝屏了,系统就会把全部内存保存下来了,保存路径也是在刚才的地方设置(dump文件里包含内存的2进制码)
hai040
2008-07-22
打赏
举报
回复
当copy到拷贝程序自己所用的内存会不会出错?
aozhi
2008-07-22
打赏
举报
回复
2
Portable Executable的缩写,根据COFF(Common Object File Format)发展起来的。比NE(New Executable)进步了很多
具体去看雪学院看看
青葱岁月不可追
2008-07-22
打赏
举报
回复
进来学习,期待楼下的高手们!~
yyyapple
2008-07-22
打赏
举报
回复
物理内存内容是动态的,时刻变化的,不知道为什么要这样做?
在PC机上,用户态访问是受限的;
系统文件全是二进制,估计也没什么好看的,还不如看看操作系统源码,反正要加载上去;
windows PE 是一个基于windowsXP核心的迷你操作系统,是安装在光盘上的并且只能从光盘引导的简化版Windows XP
ChamPagneZ
2008-07-22
打赏
举报
回复
[Quote=引用 1 楼 KernelDbg 的回复:]
1. 写个驱动程序,直接访问物理地址,不是逻辑地址。(好像不写驱动也行,可以打开“物理内存”这个设备。这种
方法我不确定,只是听说过有这个设备)
2. Portable Executable的缩写,WINDOWS系统的可执行镜像的格式(.exe, .dll)。微软现在有非常详细的文档,去官方网站上找。
[/Quote]
搬凳子来旁听.
KernelDbg
2008-07-22
打赏
举报
回复
1. 写个驱动程序,直接访问物理地址,不是逻辑地址。(好像不写驱动也行,可以打开“物理内存”这个设备。这种
方法我不确定,只是听说过有这个设备)
2. Portable Executable的缩写,WINDOWS系统的可执行镜像的格式(.exe, .dll)。微软现在有非常详细的文档,去官方网站上找。
shanqingshuilan
2008-07-22
打赏
举报
回复
关注中···
Android专用驱动
Android专用驱动构成了Android运行时的基石。从技术上来讲,Android专用驱动也是整个Android系统的亮点,特别是Binder驱动。Binder是一种进程间通信机制(IPC),它与传统的IPC机制对比,最大的特点是高效,因为通信数据在两个进程之间只需要执行一次
拷贝
即可。Binder在Android系统里面使用得非常广泛以及频繁。在涉及到比较大的通信数据时,Binder通常还结合另外一个驱动Ashmem来使用。Ashmem是一个共享
内存
驱动,它与传统的共享
内存
相比,最大的特点是它是通过文件描述符来描述的,并且可以动态地进行分块管理。动态分块管理的目的是可以将部分不再使用了的
内存
交回给系统,非常适合
内存
较小的移动设备使用。另外一个专用驱动Logger是一个日志驱动,它与传统的日志系统对比,特点是日志是记录在内核空间而非文件中,这样就可以提高日志的读写速度。这个PPT讲Logger、Binder和Ashmem三个Android专用驱动的
实现
原理。由于这三个驱动在Android源代码里面用得非常广泛和频繁,因此理解它们的
实现
原理,就可以掌握Android的精华。这对以后阅读Android系统的其它代码,也是非常有帮助的。
Dalvik虚拟机 PPT版
Android应用程序是运行在Dalvik虚拟机里面的,并且每一个应用程序对应有一个单独的Dalvik虚拟机实例。Android应用程序中的Dalvik虚拟机实例实际上是从Zygote进程的地址空间
拷贝
而来的,这样就可以加快Android应用程序的启动速度。Dalvik虚拟机与Java虚拟机共享有差不多的特性,例如,它们都是解释执行,并且支持即时编译(JIT)、垃圾收集(GC)、Java本地方法调用(JNI)和Java远程调试协议(JDWP)等,差别在于两者执行的指令集是不一样的,并且前者的指令集是基本寄存器的,而后者的指令集是基于堆栈的。这个PPT讲Dalvik虚拟机的
内存
管理、垃圾收集、即时编译、Java本地调用、进程和线程管理等。理解Dalvik虚拟机的上述
实现
细节,有助于在运行时修改程序的行为,例如,拦截Java函数的调用。
驱动开发:通过
内存
拷贝
读写
内存
内核中读写
内存
的方式有很多,典型的读写方式有CR3读写,MDL读写,以及今天要给大家分享的
内存
拷贝
实现
读写,
拷贝
读写的核心是使用`MmCopyVirtualMemory`这个内核API函数
实现
,通过调用该函数即可很容易的
实现
内存
的
拷贝
读写。 MmCopyVirtualMemory是Windows内核中一个非常有用的函数,它可以在用户空间和内核空间之间
实现
内存
数据的
拷贝
。这个函数通过复制
内存
页表并更新它们来
实现
拷贝
,从而
实现
了高效的
内存
拷贝
操作。使用MmCopyVirtualMemory可以省去手动复制
内存
内存
拷贝
函数的
实现
以前发表过关于字符串
拷贝
函数的
实现
和分析,那么为什么有了字符串
拷贝
函数,还需要
内存
拷贝
函数? 一.关于
内存
拷贝
函数的原型和
实现
。 原型: void *memmove( void *dest, const void *src, size_t count );
实现
: void* my_memmove(void* p1, void* p2, size_t count)
memcpy
实现
内存
重叠的
拷贝
上周面试腾讯的时候,面试官问我
内存
的
拷贝
,当时答错了,因为没有用过
内存
拷贝
函数。 面试官叫我
实现
内存
拷贝
函数,同时问我出现了
内存
重叠怎么办? 什么叫
内存
重叠呢?我画个图 比如要
拷贝
src的4个字节到dest,那么就出现了
内存
重叠,如果从头开始
拷贝
,那么dest把src覆盖掉了。自己
实现
一款memcpy函数就是 void* Memcpy1(void* dst,const void* src,int...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章