关于C# 直接访问内容地址值的问题

问题描述

做一个项目是这样的:从给出的指定内容地址中直接读到值:如下图所展示的工具可以直接访问值,我尝试过Marshal.ReadByte方法,不过貌似读出来的结果不尽如人意,因为他的值和工具的值完全不同,我查了一下资料貌似是因为内存保护的原因,现在查了很多,都没有合适的资料提供,麻烦有知道解决方案的能提供一下,后续高分送上:)

解决方案

解决方案二:
什么是内容地址值?你指的是内存地址吗?如果要获取内存地址,最好使用C++之类的跟底层更近的编译器
解决方案三:
引用1楼Z65443344的回复:

什么是内容地址值?你指的是内存地址吗?如果要获取内存地址,最好使用C++之类的跟底层更近的编译器

内存地址,sorry,打五笔都出错我已经尝试过python,号称胶水语言,引用他的模块也不能访问到直接的值
解决方案四:
你这是要用c++直接操作内存地址?然后再用c#来调用dll?这问题还是发c和c++版块比较靠谱吧
解决方案五:
引用3楼starfd的回复:

你这是要用c++直接操作内存地址?然后再用c#来调用dll?这问题还是发c和c++版块比较靠谱吧

那个版块不认识人,我本还指望能用C#来解决问题的
解决方案六:
你直接找zhao4老师啊,他专门弄C和C++的
解决方案七:
c#也可以操作内存,unsafe代码,但这块其实也就是直接操作指针的,可惜我不懂这块……
解决方案八:
引用6楼starfd的回复:

c#也可以操作内存,unsafe代码,但这块其实也就是直接操作指针的,可惜我不懂这块……

C#操作的内存都是先传入一个指定的线程的地址,然后进行后续的操作,没有说脱离线程变量,直接输入任意内存地址的方法,找了很多都没有结果。
解决方案九:
C#对内存的保护机制做的还是很完善的你不要老企图破解框架本身的机制还是换种跟底层更近的语言,绕开这些机制
解决方案十:
内存的限制是在操作系统上,语言关系不大,c/c++可以的,c#也可以实现,重点在于。。。你从指定内存地址读取数据。。。“内存”是指的进程内内存。。还是物理内存,还是跨进程内存。。。平台是windowslinux还是mac等你先搞清楚你实际需求,然后再去搜索,网上有相关实现的,其实就是系统api的调用了,原生都是c的,但是c#也是可以调用的(windows)
解决方案十一:

解决方案十二:
引用9楼lc316546079的回复:

内存的限制是在操作系统上,语言关系不大,c/c++可以的,c#也可以实现,重点在于。。。你从指定内存地址读取数据。。。“内存”是指的进程内内存。。还是物理内存,还是跨进程内存。。。平台是windowslinux还是mac等你先搞清楚你实际需求,然后再去搜索,网上有相关实现的,其实就是系统api的调用了,原生都是c的,但是c#也是可以调用的(windows)

兄台教训的在理,我没有补充好题目的说明:windows平台下的内存的实际值而到底是物理内存,还是进程内存,我暂时没有明白,因为我使用的是:RwPortableX64V1.6.7,这个软件所访问的是物理内存还是进程内存?
解决方案十三:
引用11楼nice_fish的回复:

Quote: 引用9楼lc316546079的回复:
内存的限制是在操作系统上,语言关系不大,c/c++可以的,c#也可以实现,重点在于。。。你从指定内存地址读取数据。。。“内存”是指的进程内内存。。还是物理内存,还是跨进程内存。。。平台是windowslinux还是mac等你先搞清楚你实际需求,然后再去搜索,网上有相关实现的,其实就是系统api的调用了,原生都是c的,但是c#也是可以调用的(windows)

兄台教训的在理,我没有补充好题目的说明:windows平台下的内存的实际值而到底是物理内存,还是进程内存,我暂时没有明白,因为我使用的是:RwPortableX64V1.6.7,这个软件所访问的是物理内存还是进程内存?

这么说吧,你到底是跨进程访问内存,还是不跨进程就是你访问的是这个软件自身的内存地址,还是其他软件的内存?如果是物理内存,那么跟进程是无关的,就是说,我就是想从这个内存里取东西,不管有没有进程占用它
解决方案十四:
几年前做的一个内存修改器估计代码有些乱源码地址用的是Write/ReadProcessMemory读取写入内存的
解决方案十五:
引用11楼nice_fish的回复:

Quote: 引用9楼lc316546079的回复:
内存的限制是在操作系统上,语言关系不大,c/c++可以的,c#也可以实现,重点在于。。。你从指定内存地址读取数据。。。“内存”是指的进程内内存。。还是物理内存,还是跨进程内存。。。平台是windowslinux还是mac等你先搞清楚你实际需求,然后再去搜索,网上有相关实现的,其实就是系统api的调用了,原生都是c的,但是c#也是可以调用的(windows)

兄台教训的在理,我没有补充好题目的说明:windows平台下的内存的实际值而到底是物理内存,还是进程内存,我暂时没有明白,因为我使用的是:RwPortableX64V1.6.7,这个软件所访问的是物理内存还是进程内存?

我没用过你说的工具,不过如果你那个是类似ce(CheatEngine我最早用来修改某些单机游戏的金币数量之类的东西。。)的话,那就是如楼上几位说的读取别的进程内存的接口了
解决方案:
引用13楼crystal_lz的回复:

几年前做的一个内存修改器估计代码有些乱源码地址用的是Write/ReadProcessMemory读取写入内存的

感谢分享:)
解决方案:
引用14楼lc316546079的回复:

Quote: 引用11楼nice_fish的回复:
Quote: 引用9楼lc316546079的回复:
内存的限制是在操作系统上,语言关系不大,c/c++可以的,c#也可以实现,重点在于。。。你从指定内存地址读取数据。。。“内存”是指的进程内内存。。还是物理内存,还是跨进程内存。。。平台是windowslinux还是mac等你先搞清楚你实际需求,然后再去搜索,网上有相关实现的,其实就是系统api的调用了,原生都是c的,但是c#也是可以调用的(windows)

兄台教训的在理,我没有补充好题目的说明:windows平台下的内存的实际值而到底是物理内存,还是进程内存,我暂时没有明白,因为我使用的是:RwPortableX64V1.6.7,这个软件所访问的是物理内存还是进程内存?

我没用过你说的工具,不过如果你那个是类似ce(CheatEngine我最早用来修改某些单机游戏的金币数量之类的东西。。)的话,那就是如楼上几位说的读取别的进程内存的接口了

这个软件读出的是物理地址的值,而我们的操作方法都是去获取进程地址值,我去C版块问过了,目前的合适的解决方案是C语言的WinIO.sys我正在看相应的文档和说明

时间: 2024-10-31 22:05:50

关于C# 直接访问内容地址值的问题的相关文章

vb 中如何访问plc地址中的值

问题描述 vb 中如何访问plc地址中的值 在plc地址中M7500对应皮带,M7501对应输送机,M7502对应螺旋机,现在我要取到他们对应的值要如何做 解决方案 可以现则一个OPC,然后用VB调用

string-怎样区分java字符串用==比较地址值还是内容

问题描述 怎样区分java字符串用==比较地址值还是内容 例如; String st1="hello"; String st2="hello"; System.out.println(st1==st2); 结果输出为true 改为String st1="hello"; String st2="word"; System.out.println(st1==st2); 结果输出为false java中说用==比较的是两个字符串在栈

c++-C++中以指针作为函数参数修改实参值得问题,求大神解答下!为什么老是提示修改内存地址值冲突

问题描述 C++中以指针作为函数参数修改实参值得问题,求大神解答下!为什么老是提示修改内存地址值冲突 #include using namespace std; void g(char* p) { int i=0; char* a=p; char* b="dcba"; for(i=0;i<4;i++) { *a=*b; a++; b++; } } void main() { char* x="abcd"; char* p=x; g(p); cout<&l

C# 访问一个地址后,如何获取返回的信息

问题描述 这个问题,我研究了一天半,试了各种办法,都未能搞定,希望大家能帮帮我如图:1比如普通浏览器,按F12调试,然后打开一个网页,network里面有收到好多返回的url地址,在WebBrowser里面,我要如何得到这些返回来的url地址呢?2用C#开发的,或者不用WebBrowser控件也行,访问一个地址后,要如何得到它的所有返回的URL呢? 解决方案 解决方案二:那些返回URL,是原网址所请求的url资源,可以先获取原网址内容,然后用正则表达式去获取url规则的字符串,这个算较简单的做法

PHP获取用户访问IP地址的5种方法_php技巧

本文实例为大家分享了5种PHP获取用户访问IP地址的方法,供大家参考,具体内容如下 <?php //方法1: $ip = $_SERVER["REMOTE_ADDR"]; echo $ip; //方法2: $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; $user_IP = ($

屏蔽Windows XP“设定程序访问和默认值”

想来大家现在已经为自己的系统打上SP2补丁了吧,不知道你注意到没有,打完SP2补丁之后,在控制面板的"添加/删除程序"对话框中会添加一项叫做"设定程序访问和默认值"的选项,如图1所示."设定程序访问和默认值"简化了指定用于活动(如 Internet 冲浪和发送电子邮件)的默认程序的过程.另外,通过该功能用户还可以指定从"开始"菜单.桌面和其他位置可以访问的程序.该功能可以给我们设定程序带来很大的方便,但是,如果你是和他人共用一

Android 可以在微信中打开网址,但是在phone微信中访问该地址却提示无法链接

问题描述 Android 可以在微信中打开网址,但是在phone微信中访问该地址却提示无法链接 Android 可以在微信中打开网址,但是在phone微信中访问该地址却提示无法链接?请问谁遇到过呀?在IPhone微信中打开其他的微信页面时没有问题的!该怎么解决呀?谢谢! 解决方案 微信中打开网页,链接无法跳转处理 解决方案二: 安卓能访问,iPhone不能访问

登录失败时记住访问的地址

登录失败时记住访问的地址 使用spring MVC 访问时,在拦截器中记录访问的地址: Java代码   String path = request.getRequestURI();//"/demo_channel_terminal/news/list"              System.out.println("您无权访问:" + path);              //用于登录成功之后回调              session.setAttribu

怎么将gridview中所选择的内容的值具体显示到另一个页面的textbox或者table中

问题描述 怎么将gridview中所选择的内容的值具体显示到另一个页面的textbox或者table中 解决方案 这就是页面之间传值啊,点击选择的时候触发一个事件,存在session里或者通过跳转的get方式传值.