Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

C/C++本地代码调试

帖子发起人: josh   发起时间: 2013-05-28 14:15 下午   回复: 3

Print Search
帖子排序:    
   2013-05-28, 14:15 下午
hellokit 离线,最后访问时间: 2014/8/8 4:06:51 josh

发帖数前200位
注册: 2012-12-21
发 贴: 6
Geeked [8-|] ie6的一个错误附dmp
Reply Quote
 事情是这样的,我今天一不小心点开了QQ空间,很自然的IE6启动了,没想到一打开就挂了,WINDBG自动挂上去后看了一下栈回朔和EIP,初步感觉是栈缓冲区溢出了,EIP被指向了一个无效的地址,但我看了一下出事的地点ESP中的返回值是很正常的也就是没被破坏,因为这个情况不是经常出现,可能一个月出现一次吧,所以重新下断点观察是不可能了,我又想到了观察一下参数,于是跟进了shlwapi!_imp__RegQueryValueExW这个函数,可是这个函数好象是混淆了,论坛的哥哥姐姐谁帮看看啊!
!  
好像传不了附件@.@
这是栈信息
  0:000> kb
ChildEBP RetAddr  Args to Child              
WARNING: Frame IP not in any known module. Following frames may be wrong.
0012e1c0 77f442c7 000000f8 7d595484 00000000 0x6465c603
0012e638 77f44499 000000f8 7d595484 00000000 shlwapi!RegQueryValueExWrapW+0x17d
0012e780 77f4457f 000000f8 7d595484 0000ffff shlwapi!SHRegQueryValueW+0x88
0012e8c8 77f445b8 80000002 0012e91c 7d595484 shlwapi!SHRegGetValueW+0x10c
0012e8ec 77f4c150 80000002 0012e91c 7d595484 shlwapi!SHGetValueW+0x21
0012eb28 77f46cfe 00000000 7d596ec8 7d595484 shlwapi!SHGetRestriction+0x67
0012eb48 7d5bc50d 00800000 00000000 7d5954d0 shlwapi!SHRestrictionLookup+0x4e
0012eb60 7d5d8282 00800000 0014d478 0012ee10 shell32!SHRestricted+0x32
0012ed88 7d5d7e91 0012ee10 7c937c58 ffffffff shell32!_RefreshSettingsFromReg+0x293
0012edd8 7d5d7e63 0014d478 0000000c 00000000 shell32!_RefreshSettings+0x21
0012edf4 7d604712 0012ee10 00000400 00000000 shell32!SHGetSetSettings+0x5e
0012ee54 75f1a5c2 75f78148 0000000c 0014d478 shell32!ReadCabinetState+0x21
0012ee6c 75f154bf 0012ee84 0014d478 00000000 browseui!GetCabState+0x42
0012fef0 7e5d9b00 0014d478 00000000 00000000 browseui!SHOpenFolderWindow+0x36
0012ff10 00402372 001423ba 00020dc8 0776ede4 shdocvw!IEWinMain+0x133
0012ff60 00402444 00400000 00000000 001423ba IEXPLORE!WinMainT+0x2de
0012ffc0 7c817077 0776ede4 00000018 7ffd9000 IEXPLORE!_ModuleEntry+0x99
0012fff0 00000000 00402451 00000000 00000000 kernel32!BaseProcessStart+0x23

跟进shlwapi!_imp__RegQueryValueExW函数的部分代码,这部分感觉不正常0.0
0:000> uf 77f4101c
Flow analysis was incomplete, some code may be missing
shlwapi!_imp__RegQueryValueExW:
77f4101c 7aa7            jp      shlwapi!_imp__RegCloseKey <PERF> (shlwapi+0xfc5) (77f40fc5)

shlwapi!_imp__RegQueryValueExW+0x2:
77f4101e 06              push    es
77f4101f 008ea70600a0    add     byte ptr [esi-5FFFF959h],cl
77f41025 a7              cmps    dword ptr [esi],dword ptr es:[edi]
77f41026 06              push    es
77f41027 00b2a70600c6    add     byte ptr [edx-39FFF959h],dh
77f4102d a7              cmps    dword ptr [esi],dword ptr es:[edi]
77f4102e 06              push    es
77f4102f 00d6            add     dh,dl
77f41031 a7              cmps    dword ptr [esi],dword ptr es:[edi]
77f41032 06              push    es
77f41033 00e4            add     ah,ah
77f41035 a7              cmps    dword ptr [esi],dword ptr es:[edi]
77f41036 06              push    es
77f41037 00f2            add     dl,dh
77f41039 a7              cmps    dword ptr [esi],dword ptr es:[edi]
77f4103a 06              push    es
77f4103b 0002            add     byte ptr [edx],al
77f4103d a806            test    al,6
77f4103f 0016            add     byte ptr [esi],dl
77f41041 a806            test    al,6
77f41043 0028            add     byte ptr [eax],ch
77f41045 a806            test    al,6
77f41047 0038            add     byte ptr [eax],bh
77f41049 a806            test    al,6
77f4104b 0046a8          add     byte ptr [esi-58h],al
77f4104e 06              push    es
77f4104f 0058a8          add     byte ptr [eax-58h],bl
77f41052 06              push    es
77f41053 006aa8          add     byte ptr [edx-58h],ch
77f41056 06              push    es
77f41057 007aa8          add     byte ptr [edx-58h],bh
77f4105a 06              push    es
77f4105b 008ea80600a4    add     byte ptr [esi-5BFFF958h],cl
77f41061 a806            test    al,6
77f41063 00b8a80600c2    add     byte ptr [eax-3DFFF958h],bh
77f41069 a806            test    al,6
77f4106b 00cc            add     ah,cl
77f4106d a806            test    al,6
   环境:windows xp sp3 32位

IP 地址: 已记录   报告
   2013-05-28, 16:46 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: ie6的一个错误附dmp
Reply Quote

shlwapi!_imp__RegQueryValueExW是函数指针,是数据,不是代码,它指向的才是函数体

uf poi(shlwapi!_imp__RegQueryValueExW)才对

 


IP 地址: 已记录   报告
   2013-05-28, 17:04 下午
hellokit 离线,最后访问时间: 2014/8/8 4:06:51 josh

发帖数前200位
注册: 2012-12-21
发 贴: 6
Sleep [|-)] Re: ie6的一个错误附dmp
Reply Quote
OH!,谢谢张老师回复,我太粗心了没看到是一个接间CALL,
 call    dword ptr [shlwapi!_imp__RegQueryValueExW (77f4101c)]

执行了下面一段
0:000> dd 77f4101c
77f4101c  0006a77a 0006a78e 0006a7a0 0006a7b2
77f4102c  0006a7c6 0006a7d6 0006a7e4 0006a7f2
77f4103c  0006a802 0006a816 0006a828 0006a838
77f4104c  0006a846 0006a858 0006a86a 0006a87a
77f4105c  0006a88e 0006a8a4 0006a8b8 0006a8c2
77f4106c  0006a8cc 0006a8e8 0006a908 0006a91e
77f4107c  0006a934 0006a944 0006a954 0006a970
77f4108c  0006a980 0006a990 0006a9a0 0006a9b0

0:000> dd 0006a77a 
0006a77a  ???????? ???????? ???????? ????????
0006a78a  ???????? ???????? ???????? ????????
0006a79a  ???????? ???????? ???????? ????????
0006a7aa  ???????? ???????? ???????? ????????
0006a7ba  ???????? ???????? ???????? ????????
0006a7ca  ???????? ???????? ???????? ????????
0006a7da  ???????? ???????? ???????? ????????
0006a7ea  ???????? ???????? ???????? ????????
这段内存没有映射,这个是DMP文件中,是不是DMP文件的信息不完整....


IP 地址: 已记录   报告
   2013-05-29, 12:59 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: ie6的一个错误附dmp
Reply Quote

77f4101c 处应该就是函数的地址了,使用dds命令观察,看到的应该是类似下面这样的内容:

0:000> dds shlwapi!_imp__RegQueryValueExW
762814b4  75cf1f2e kernel32!RegQueryValueExW
762814b8  75cf7e28 kernel32!RegEnumValueW
762814bc  75d0f98e kernel32!RegEnumKeyExA
762814c0  75d0ff76 kernel32!RegEnumValueA
762814c4  75cf5146 kernel32!RegOpenCurrentUser
762814c8  75cf4d7e kernel32!RegGetValueW
762814cc  00000000

感觉IAT表被破坏了...


IP 地址: 已记录   报告
高端调试 » 软件调试 » C/C++本地代码调试 » Re: ie6的一个错误附dmp

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.