繁体   English   中英

从输入中获取内存地址。 C

[英]Get memory address from input. C

我正在尝试制作一个程序,该程序获取一个表示 48 位地址的字符串,例如“0x7f1241249000”,并访问该给定虚拟地址的内容。 输入的地址应该是合法的,因为它是从内存上映射文件的结果中得到的。 因此我知道这样的文件被分配在哪里。

我试图实现的目标是在屏幕上逐字节打印映射文件的内容,但我无法将字符串转换为相应的内存地址。

编辑好的,现在我可以将字符串视为指向给定地址的指针。 但是现在当我尝试访问映射文件的内容时,我遇到了分段错误。 我在代码中所做的是: char * address = (char *) strtoull(input, NULL,16); 国际我; for(i=0; i<10; i++){ printf("%c\\n", address[i]); }

使用 gdb 并显示地址输出正确的地址以及映射文件的内容,但 printf 崩溃。 对不起,如果这是一个愚蠢的问题,我是 C 的新手

使用sscanf将字符串转换为unsigned long long ,然后将其转换为char * ,然后从该地址打印字节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM