反汇编的一些疑问 [
问题有点多,希望DD们不吝指教1 基址是什么?是数据段基地址么(这里主要是讨论数据)。如果是这样的,为什么
一般反汇编的数据基本是这种格式
[[[12F82C]+28]+240]
我的理解是(不知对否,请指点)
12F82C是数据段基址
28为数据或结构体,开始地址
240为索引值
以上三个值,是在编译时已固定,当程序载入不同机器时,windows会在内存中分配相应开始地址,但对数据基址,这些没有影响??
以上三个值,是以结构休或者数据的存储方式,如果是单个变量的话,对导址方式一般应该为 [[12F82C]+偏移] ???
数据段基址不一定是EDX,可能是在ESI,ESP中?
数据段基址只会有一个么,还是多个呢?
2 在反汇编中,函数地址不定是在代码段ECS中吗?如果是这样,函数入口参数,数据变量是存储在那里的呢?是在数据段中,还是栈,堆中?是要看数据
变量是全局还是,局部变量吗?
3 程序运行时,每当进入一个函数,基址指针就指向该函数的栈起始地址,以后在函数运行周期内不再变化;
变址指针在函数栈内移动,访问函数内各变量
这句话怎么样理解? 函数每次运行的时候,函数内的变址会变么?