反汇编遇到疑问
时间:2010-12-13
来源:互联网
我是用IDA5.0进行反汇编的。在反汇编某一函数时,在开头都有一串如下的赋值:
Assembly code
这些一般来说都是与保存了栈顶指针的寄存器配合来访问堆栈,比如Assembly code
arg_开头的,一般都是参数。
而var_开头的,我都理解成了此函数用到的一些局部变量。
变量在使用之前都应该先初始化吧?如果不进行初始化,必然会导致最终结果无法预料,但是找遍了整个函数中,之前的代码,没有一处对那个空间进行初始化的地方。
请问,这是怎么回事哦?
难道是把那个堆栈空间当成了全局对象,并在程序开头初始化?那岂不是很危险?并且,我反汇编的是一个DLL!
Assembly code
var_59= word ptr -59h var_57= word ptr -57h var_C= dword ptr -0Ch var_4= dword ptr -4 arg_0= byte ptr 8 arg_3= byte ptr 0Bh
这些一般来说都是与保存了栈顶指针的寄存器配合来访问堆栈,比如Assembly code
movzx eax, [ebp+arg_0]。
arg_开头的,一般都是参数。
而var_开头的,我都理解成了此函数用到的一些局部变量。
变量在使用之前都应该先初始化吧?如果不进行初始化,必然会导致最终结果无法预料,但是找遍了整个函数中,之前的代码,没有一处对那个空间进行初始化的地方。
请问,这是怎么回事哦?
难道是把那个堆栈空间当成了全局对象,并在程序开头初始化?那岂不是很危险?并且,我反汇编的是一个DLL!
作者: PDD123 发布时间: 2010-12-13
这个与编译器有关,局部变量不一定预先初始化,可能需要程序中自己初始化。
作者: DelphiGuy 发布时间: 2010-12-13
初始化的问题ukjg
作者: abgood 发布时间: 2010-12-13
引用 1 楼 delphiguy 的回复:
这个与编译器有关,局部变量不一定预先初始化,可能需要程序中自己初始化。
这个与编译器有关,局部变量不一定预先初始化,可能需要程序中自己初始化。
我说的初始化的意思就是赋一个确定的值,或者经过计算可以确定的值。
我遇到的问题就是无法确定那个空间里面是什么值,似乎完全依赖以前遗留的状态,不可确定。
作者: PDD123 发布时间: 2010-12-13
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28