如何编写一个软件,使他能够读取别的程序的内存空间啊5555555

如何编写一个软件,使他能够读取别的程序的内存空间啊5555555,第1张

这个要看你要读取哪些程序的内存空间。因为不同程序的内存空间开辟位置是不一样的。

类似的程序比较早的有金 山 游 侠。专门读取游程序内存数据的。

当然你也可以创建一个内存 钩 子 来实时 监 听 某程序的启动然后去读取它调用的内存空间。不过这种方法容易被杀毒软件误认为是威胁软件。

在内核中怎样获得一个结构的物理地址 这样取物理地址是不对的, 物理地址是由硬件规定的, 是固定的。 虚拟地址是有物理地址映射而来, 你不能直接由普通的虚拟地址得到物理地址。 要将数据传到用户空间, 可以直接 做一个 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如何得到磁盘的剩余空间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10178614.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存