这个要看你要读取哪些程序的内存空间。因为不同程序的内存空间开辟位置是不一样的。
类似的程序比较早的有金 山 游 侠。专门读取游程序内存数据的。
当然你也可以创建一个内存 钩 子 来实时 监 听 某程序的启动然后去读取它调用的内存空间。不过这种方法容易被杀毒软件误认为是威胁软件。
在内核中怎样获得一个结构的物理地址 这样取物理地址是不对的, 物理地址是由硬件规定的, 是固定的。 虚拟地址是有物理地址映射而来, 你不能直接由普通的虚拟地址得到物理地址。 要将数据传到用户空间, 可以直接 做一个 ioctl 调用
得到磁盘方法如下:
CString CurDiskNo; //当前录像的盘符号
CString TotalDiskSize; //当前录像盘的总大小
CString FreeDiskSize; //当前录像盘和剩余空间
char cName[4 m_iMaxCount] = {0};
char sDiskPath[4 m_iMaxCount] = {0};
GetModuleFileName(NULL, cName, sizeof(cName)); //得到当前运行程序的路径
CString sSettingFile;
sSettingFileFormat("%s", cName);
sSettingFile = sSettingFileLeft(sSettingFileReverseFind('//'));
sSettingFile = sSettingFile + "//" + "Settingini";
//得到配置文件的全路径,录像盘的盘符保存在Settingini中
GetPrivateProfileString("disk", "path", NULL, sDiskPath, sizeof(sDiskPath), sSettingFile);
//从配置文件中得到盘符
char DiskName[4];
DiskName[0] = sDiskPath[0];
DiskName[1] = sDiskPath[1];
DiskName[2] = sDiskPath[2];
DiskName[3] = '/0';
ULARGE_INTEGER lpuse;
ULARGE_INTEGER lptotal;
ULARGE_INTEGER lpfree;
GetDiskFreeSpaceEx(DiskName,&lpuse,&lptotal,&lpfree);
//得到DiskName盘符的的总容量、已用空间大小、剩余空间大小
TotalDiskSizeFormat("总空间:%42fGB",lptotalQuadPart/10240/10240/10240);
FreeDiskSizeFormat("可用空间:%42fGB",lpfreeQuadPart/10240/10240/10240);
CurDiskNoFormat("当前磁盘:%s",sDiskPath);
Settingini文件内容如下:
[package]
time=1
[disk]
path=E:/
那么上面的DiskName就是 E:/ 得到的就是E盘的空间大小
备注:要把Settingini文件放到执行文件的目录下。
以上就是关于如何编写一个软件,使他能够读取别的程序的内存空间啊5555555全部的内容,包括:如何编写一个软件,使他能够读取别的程序的内存空间啊5555555、驱动程序里怎么得到用户空间地址对应的物理地址、VC如何得到磁盘的剩余空间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)