ida如何显示栈视图和改变局部变量类型

本文详细介绍了如何调整Visual Studio代码中函数内部局部变量的显示样式,包括修改变量类型和处理结构体变量的方法,通过实例展示了具体操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在显示函数时,多是如下显示:

 f_install_start proc near               ; CODE XREF: f_mainentry:loc_4021B6p
.text:00401EF9
.text:00401EF9                         String2         = byte ptr -468h
.text:00401EF9                         var_467         = byte ptr -467h
.text:00401EF9                         Filename        = byte ptr -364h
.text:00401EF9                         var_363         = byte ptr -363h
.text:00401EF9                         String          = byte ptr -260h
.text:00401EF9                         var_25F         = byte ptr -25Fh
.text:00401EF9                         FileName        = byte ptr -15Ch
.text:00401EF9                         Dst             = dword ptr -58h
.text:00401EF9                         var_2C          = dword ptr -2Ch
.text:00401EF9                         var_28          = word ptr -28h
.text:00401EF9                         ProcessInformation= _PROCESS_INFORMATION ptr -14h
.text:00401EF9                         NumberOfBytesWritten= dword ptr -4
.text:00401EF9
.text:00401EF9 55                                      push    ebp
.text:00401EFA 8B EC                                   mov     ebp, esp
.text:00401EFC 81 EC 68 04 00 00                       sub     esp, 468h
.text:00401F02 53                                      push    ebx
.text:00401F03 56                                      push    esi

.....

如果没有显示局部变量

.text:00401EF9                         String2         = byte ptr -468h
.text:00401EF9                         var_467         = byte ptr -467h
.text:00401EF9                         Filename        = byte ptr -364h
.text:00401EF9                         var_363         = byte ptr -363h
.text:00401EF9                         String          = byte ptr -260h
.text:00401EF9                         var_25F         = byte ptr -25Fh
.text:00401EF9                         FileName        = byte ptr -15Ch
.text:00401EF9                         Dst             = dword ptr -58h
.text:00401EF9                         var_2C          = dword ptr -2Ch
.text:00401EF9                         var_28          = word ptr -28h
.text:00401EF9                         ProcessInformation= _PROCESS_INFORMATION ptr -14h
.text:00401EF9                         NumberOfBytesWritten= dword ptr -4

,就不太好看了,这个怎么办呢?

可以在函数 f_install_start proc near 的地方,右键--》change functin。。。。---》然后就有了。

如何改变变量的类型?

看上面的String2的地址为:468h,Filename的地址为364h,中间差了104h,就是MAX_PATH=260的十六进制显示。假设

在后面的程序中,有验证了String2却是是String[MAX_PATH]类型的字符串数组,那么就可以改一下这个变量类型。如何改?

双击string2,到达stack视图模式;

-00000468 String2         db ?
-00000467 var_467         db ?
-00000466                 db ? ; undefined
-00000465                 db ? ; undefined
-00000464                 db ? ; undefined
-00000463                 db ? ; undefined
-00000462                 db ? ; undefined
-00000461                 db ? ; undefined
-00000460                 db ? ; undefined
-0000045F                 db ? ; undefined
-0000045E                 db ? ; undefined
-0000045D                 db ? ; undefined
-0000045C                 db ? ; undefined
-0000045B                 db ? ; undefined
-0000045A                 db ? ; undefined
-00000459                 db ? ; undefined
-00000458                 db ? ; undefined
-00000457                 db ? ; undefined
-00000456                 db ? ; undefined
-00000455                 db ? ; undefined
-00000454                 db ? ; undefined
-00000453                 db ? ; undefined

在该模式里右键string2-》Array--》然后弹出对话框,Array Size里面输入260。怎么样?var_467就自动消失了,也和后面的filename变量补上了。说明我们的判断是正确的。

 

如果变量是结构体变量,怎么显示呢?

双击该变量(如:该变量名为var_10),进入变量编辑模式。选取var_10变量,点击[编辑]->[结构体变量]菜单,在弹出的对话框中选择你的test结构,点击OK按钮,再在弹出的对话框上点击Yes即可。

转载于:https://www.cnblogs.com/keepfocus/archive/2012/07/16/2593343.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值