标签: memory-address

用C++黑客游戏代码保存地址?

我有这个代码在游戏中编辑地址以获得无限弹药和什么不是,我发现每台计算机的地址都不同,有时每次重新启动游戏,所以我怎么能管理这项工作仍然他们改变了.

c++ memory-address

4
推荐指数
2
解决办法
3672
查看次数

对于缓冲区溢出,使用pthreads时堆栈地址是多少?

我正在上一门计算机安全课程,还有额外的学分,可以将可执行代码插入到缓冲区溢出中.我有我正在尝试操作的目标程序的c源代码,并且我已经达到了能够成功覆盖当前函数堆栈帧的eip的程度.但是,我总是遇到Segmentation故障,因为我提供的地址总是错误的.问题是当前函数在pthread内部,因此,堆栈的地址似乎总是在程序的不同运行之间发生变化.是否有任何方法可以在pthread中查找堆栈地址(或者用于估计pthread中的堆栈地址)?(注意:pthread_create的第二个参数为null,所以我们不是手动分配堆栈地址)

c stack pthreads buffer-overflow memory-address

4
推荐指数
1
解决办法
2639
查看次数

如何在8086中生成物理地址?

8086体系结构中,内存空间__CODE__大小分为多个逻辑段__CODE__.

即它有20个地址线,因此使用以下方法:

数据段寄存器向左移位4位然后加到偏移寄存器

我的问题是:虽然所有寄存器只有16位,但我们如何进行移位操作

microprocessors memory-address x86-16

4
推荐指数
1
解决办法
1万
查看次数

存储在C中的指针地址在哪里?

我正在学习C并且目前正在学习指针.我理解将一个字节的地址存储在内存中作为变量的原理,这使得从内存中获取字节并写入内存地址成为可能.

但是,我不明白指针的地址存储在何处.假设一个指针的值(内存中一个字节的地址)存储在内存中 - 程序如何知道指针的存储位置?难道不需要指针指针导致指针指针无穷无尽的指针......?


UPDATE

实际问题是:"编译器如何为变量分配内存地址".我发现这个问题指出了这个话题.

感谢所有回答的人.

c memory variables pointers memory-address

4
推荐指数
1
解决办法
3139
查看次数

如果2 ^ 32位= 4亿位而不是字节,32位如何处理4GB?

从本质上讲,4Gb如何变成4GB?如果内存是寻址字节,那么可能性不是2 (32/8)

cpu-architecture addressing memory-address

4
推荐指数
1
解决办法
1542
查看次数

如何&a是一个指针,如果它生成一个?的地址?

我是编程新手,目前我正在学习C中的指针.

  1. 我知道指针是包含或保存另一个变量的地址的变量.今天当我用K&R更多地了解它时,我感到很困惑,在第80页的给定函数交换(&a,&b)中,"&a是指向a的指针".如何&a是指针?它不是变量,而是变量的地址.我对吗?
  2. 我知道参数可以通过两种方式传递给函数:按值调用和按引用调用.参数的调用者值在第一个中没有改变,但可以在第二个中改变.

我的问题是我已经读过,如果我们想要改变变量的值,我们必须将指针传递给它(即我们想要修改的值的位置).这是什么意思?我的意思是,我们必须传递指向函数的指针吗?声明的含义是什么,"我们必须将指针传递给我们想要修改的位置".

c pointers memory-address

4
推荐指数
1
解决办法
453
查看次数

Cocoa应用程序中有哪些不同类型的内存地址?

每当我在我的Cocoa应用程序中查看内存地址时,我会注意到(通常)3个主要类别的地址

  • 0x00006xxxxxxx
  • 0x00007fffxxxx
  • 0x0000001xxxxx

我知道什么是什么 - 就像我注意到0x00006xxxxxxx地址似乎是我应用程序对象的指针

并且0x0000001xxxxx似乎是内存中实际对象的地址?

但我真的不确定任何事情,我无法形成一个好的谷歌查询给我一个答案.

有没有人有资源,或者知道如何识别Cocoa应用程序中的地址类别?

cocoa objective-c memory-address

4
推荐指数
1
解决办法
73
查看次数

指针可以指向C中自身的内存地址吗?

在以下代码中,指针指向其自己的内存地址.

#include <stdio.h>

int main() 
{
    void * ptr;
    ptr = &ptr;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果指针能够指向自己的内存地址,那会有意义吗?

c pointers memory-address

4
推荐指数
2
解决办法
205
查看次数

在不是地址/指针的值上使用LEA?

我试图了解地址计算指令的工作原理,尤其是leaq命令.然后当我看到leaq用于进行算术运算的例子时,我感到困惑.例如,以下C代码,

long m12(long x) {
return x*12;
}
Run Code Online (Sandbox Code Playgroud)

在组装中

leaq (%rdi, %rdi, 2), %rax
salq $2, $rax
Run Code Online (Sandbox Code Playgroud)

如果我的理解是正确的,那么leaq应该移动任何(%rdi, %rdi, 2)应该2*%rdi+%rdi评估的地址%rax.我感到困惑的是,因为值x存储%rdi在内,这只是内存地址,为什么%rdi乘以3然后左移这个内存地址 2等于x乘以12?是不是当我们%rdi用3时,我们跳到另一个没有值x的内存地址?

c x86 assembly memory-address

4
推荐指数
2
解决办法
4927
查看次数

这个表达式(char*)在C中的含义是什么?

这里对C很新,我认为我几乎没有掌握指针的概念,但语法有点令人困惑所以我在试图理解这个表达式的x = (char *) &a;含义时遇到了麻烦.

其余功能供参考:

#include<stdio.h> 
int main() 
{ 
   int a; 
   char *x; 
   x = (char *) &a; 
   a = 512; 
   x[0] = 1; 
   x[1] = 2; 
   printf("%d\n",a);   
   return 0; 
}
Run Code Online (Sandbox Code Playgroud)

更具体地说,为什么有必要写x = (char *) &a;而不是仅仅x = &a;?添加了(char *)什么来改变表达式?

c pointers memory-address

4
推荐指数
1
解决办法
294
查看次数