C语言靠地址怎么找到值,关于直接访问内存地址值,该怎么处理

该博客讨论了如何在不同编程语言(如C#和Python)中直接读取内存地址值的问题。作者提到了WinIO.sys作为可能的解决方案,并探讨了使用汇编语言的直接方法。还提到了WinIo.h库作为Windows环境下访问物理地址的工具,包括其相关函数如InitializeWinIo和MapPhysToLin等。博客寻求实现从给定地址读取内存值的高效方法,并在Windows环境下操作。
摘要由CSDN通过智能技术生成

关于直接访问内存地址值

HI,各位,最近着手一个项目,需要从给定的地址中读取内存的值做后续的业务,我刚开始尝试C#,python都没有得到很理想的结果,我想做到如下的功能:

12281081.png

请问各位能有好的思路或者查考吗?

谢谢各位

------解决思路----------------------

使用WinIO.sys?

------解决思路----------------------

嵌入汇编代码是比较本质的方法吧。

------解决思路----------------------

你要读物理地址?

------解决思路----------------------

什么系统, 做什么用的

------解决思路----------------------

c语言和汇编都可以解决

------解决思路----------------------

WinIo.h:#ifndef WINIO_H

#define WINIO_H

#ifdef WINIO_DLL

#define WINIO_API _declspec(dllexport)

#else

#define WINIO_API _declspec(dllimport)

#endif

extern "C"

{

WINIO_API bool _stdcall InitializeWinIo();

WINIO_API void _stdcall ShutdownWinIo();

WINIO_API PBYTE _stdcall MapPhysToLin(PBYTE pbPhysAddr, DWORD dwPhysSize, HANDLE *pPhysicalMemoryHandle);

WINIO_API bool _stdcall UnmapPhysicalMemory(HANDLE PhysicalMemoryHandle, PBYTE pbLinAddr);

WINIO_API bool _stdcall GetPhysLong(PBYTE pbPhysAddr, PDWORD pdwPhysVal);

WINIO_API bool _stdcall SetPhysLong(PBYTE pbPhysAddr, DWORD dwPhysVal);

WINIO_API bool _stdcall GetPortVal(WORD wPortAddr, PDWORD pdwPortVal, BYTE bSize);

WINIO_API bool _stdcall SetPortVal(WORD wPortAddr, DWORD dwPortVal, BYTE bSize);

WINIO_API bool _stdcall InstallWinIoDriver(PSTR pszWinIoDriverPath, bool IsDemandLoaded = false);

WINIO_API bool _stdcall RemoveWinIoDriver();

}

extern bool IsNT;

extern HANDLE hDriver;

extern bool IsWinIoInitialized;

bool _stdcall StartWinIoDriver();

bool _stdcall StopWinIoDriver();

#endif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值