首页
社区
课程
招聘
[旧帖] [求助]IDA调试时,压入堆栈的参数在进入子函数前无法看到其真正内容 0.00雪花
发表于: 2007-12-12 04:04 3286

[旧帖] [求助]IDA调试时,压入堆栈的参数在进入子函数前无法看到其真正内容 0.00雪花

2007-12-12 04:04
3286
在IDA中调试,一个比对字符串的子函数,其调用前压堆栈的代码和数据段如下:
code:
.text:004697CB mov     [ebp+var_3C], 0
.text:004697CF lea     edx, [ebp+var_6A]
.text:004697D2 push    edx                             ; char *
.text:004697D3 lea     eax, [ebp+var_44]
.text:004697D6 push    eax                             ; char *
.text:004697D7 call    _strcmp

Data:
0012C6C2 var_6A db 39h                                 ;edx
0012C6C3 db  38h ; 8                          
...................
0012C6E5 db 0 ,0A7h ,0 ;  ?
0012C6E8 var_44 db 39h                                  ;eax

在此时查看eax和edx的数据都是一样的39h,然而在用F7进入子函数后,却发生了变化
在子函数的第一行中断后,代码和数据如下:
Code:
.text:004C4330 arg_0= dword ptr  4
.text:004C4330 arg_4= dword ptr  8
.text:004C4330 mov     edx, [esp+arg_0]
此时中断在第一行未执行,
Data:
0012C544 arg_0 dd offset s_9865e816              ; "9865E816"
0012C548 arg_4 dd offset s_9865e816_0            ; "9865E816"

其指向的数据段如下
0012C6C2 s_9865e816_0 db '9865E816',0   DATA XREF: Stack[000005F4]:arg_4
0012C6CB db    0
.............................
0012C6E4 dd   0A70000h ; debug027:unk_A70000
0012C6E8 s_9865e816 db '9865E816',0        DATA XREF: Stack[000005F4]:arg_0
此时,数据段的数据就是真实需要比较的字段了,
请问在进入子函数前,为什么无法看到这两个字段的真实内容,而这两个地址的内容又是在哪个被更改的呢?

重新用softice做了一遍,发现在进入子函数前该地址可以看到相应的待比较的字符串,为什么IDA不能正确显示该字符串内容呢?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//