码迷,mamicode.com
首页 > 其他好文 > 详细

source insight coredump分析

时间:2015-03-04 13:04:09      阅读:334      评论:0      收藏:0      [点我收藏+]

标签:程序崩溃   调试技术   汇编   全局变量   windows   

系统:windows xp sp3

崩溃的exe:insight3_en.exe

版本:3.50.0064


崩溃时的信息:

(4c64.4af4): Access violation - code c0000005 (!!! second chance !!!)
eax=00000000 ebx=7ffd9000 ecx=00000000 edx=00000274 esi=0006d708 edi=0006ceb0
eip=004fdae2 esp=0006ce4c ebp=0006ce54 iopl=0         nv up ei pl nz ac po cy
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000213
*** ERROR: Module load completed but symbols could not be loaded for D:\Program Files\SourceInsight\Insight3_en.exe
Insight3_en+0xfdae2:
004fdae2 8b00            mov     eax,dword ptr [eax]  ds:0023:00000000=????????

堆栈:

0:000> kb
ChildEBP RetAddr  Args to Child              
WARNING: Stack unwind information not available. Following frames may be wrong.
0006ce54 00500754 0006ce80 0006d6e8 00000001 Insight3_en+0xfdae2
0006cf28 00481841 0006eb48 0006cf78 0000000a Insight3_en+0x100754
0006f000 00481608 01a707e8 0006f020 00000001 Insight3_en+0x81841
0006fc20 0048149a 01a707e8 06809d58 00000001 Insight3_en+0x81608
0006fc38 00481456 01a707e8 00000001 01f86f50 Insight3_en+0x8149a
0006fc4c 004813c8 01a707e8 00000001 01f86f50 Insight3_en+0x81456
0006fc60 004812d5 01a707e8 00000001 01a707e8 Insight3_en+0x813c8
0006fc74 004421f4 00000001 00030000 00000001 Insight3_en+0x812d5
0006fee0 00440b1a 000000a0 000000a0 7c937d08 Insight3_en+0x421f4
0006ff34 00521ecb 00400000 00000000 00091f11 Insight3_en+0x40b1a
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\WINDOWS\system32\kernel32.dll -
0006ffc0 7c81776f 7c80e0e8 00000000 7ffd9000 Insight3_en+0x121ecb
0006fff0 00000000 00521dfd 00000000 78746341 kernel32!RegisterWaitForInputIdle+0x49

分析过程:

用IDA打开Insight3_en,看一下004fdae2附近的汇编:

.text:004FDAB5                 rep movsd
.text:004FDAB7                 mov     eax, [ebp+arg_0]
.text:004FDABA                 mov     dword ptr [eax+4], offset sub_4FDB2A
.text:004FDAC1                 mov     eax, [ebp+arg_0]
.text:004FDAC4                 mov     ecx, dword_5BD034
.text:004FDACA                 mov     [eax+58h], ecx
.text:004FDACD                 cmp     dword_5BD034, 0FFFFFFFFh
.text:004FDAD4                 jz      short loc_4FDB24
.text:004FDAD6                 mov     eax, dword_5BD034
.text:004FDADB                 mov     eax, dword_5C6B80[eax*4]
.text:004FDAE2                 mov     eax, [eax]

由上面可知,dword_5BD034和dword_5C6B80是全局变量,且dword_5C6B80是一个数组,且是指针数组,dword_5BD034存放着这个数组的index.

看一下这两个全局变量的内容:

0:000> dd 5C6B80 L 1
005c6b80  00000000
0:000> dd 5BD034 L 8
005bd034  00000000 00000035 00000001 00000400
005bd044  58584654 58585858 00000000 58584c43

可见,index为0,且这个数组的第一个元素为空指针。那么空指针是从哪里来的?

在IDA双击dword_5C6B80

.data:005C6B80 dword_5C6B80    dd ?                    ; DATA XREF: sub_441940+EAr
.data:005C6B80                                         ; sub_441940+262r ...

按下面操作

技术分享

打开引用这个全局变量的代码位置列表,在这个列表,找出改变这个全局变量的地方(幸好只有一处)

技术分享

并跳转过去。

看一下这附近的汇编:

.text:004E8B3C loc_4E8B3C:                             ; CODE XREF: sub_4E8AD3+50j
.text:004E8B3C                 push    3D8h            ; Size
.text:004E8B41                 call    sub_420BBC
.text:004E8B46                 mov     [ebp+var_C], eax
.text:004E8B49                 cmp     [ebp+var_C], 0
.text:004E8B4D                 jnz     short loc_4E8B54

.text:004E8B4F                 or      eax, 0FFFFFFFFh
.text:004E8B52                 jmp     short loc_4E8B95
.text:004E8B54 ; ---------------------------------------------------------------------------
.text:004E8B54
.text:004E8B54 loc_4E8B54:                             ; CODE XREF: sub_4E8AD3+7Aj
.text:004E8B54                 mov     eax, [ebp+var_4]
.text:004E8B57                 mov     ecx, [ebp+var_C]
.text:004E8B5A                 mov     dword_5C6B80[eax*4], ecx

看一下红色那一块,显然,dword_5C6B80里面的元素在读取时不可能为空指针,除非这两种情况发生:

1.004E8B5A 比崩溃地址004FDAE2晚执行。因为,如果004E8B5A晚执行,那么dword_5C6B80的值会保持默认值,即所有元素的值为空。

2.dword_5C6B80前面的地址被其它代码修改时,越界了,把dword_5C6B80的内容给覆盖了。


究竟是哪一种原因导致的呢?

看一下dword_5C6B80的上一个全局变量是哪个地址:

.data:005C6900 unk_5C6900      db    ? ;               ; DATA XREF: sub_485375+6A3o
.data:005C6901                 db    ? ;
.data:005C6902                 db    ? ;
.data:005C6903                 db    ? ;
.data:005C6904                 db    ? ;
.data:005C6905                 db    ? ;
.data:005C6906                 db    ? ;
.data:005C6907                 db    ? ;
.data:005C6908                 db    ? ;
.data:005C6909                 db    ? ;
.data:005C690A                 db    ? ;
.data:005C690B                 db    ? ;
.data:005C690C                 db    ? ;
.data:005C690D                 db    ? ;
.data:005C690E                 db    ? ;
.data:005C690F                 db    ? ;
.data:005C6910                 db    ? ;
.data:005C6911                 db    ? ;
.data:005C6912                 db    ? ;
.data:005C6913                 db    ? ;
.data:005C6914                 db    ? ;
.data:005C6915                 db    ? ;
.data:005C6916                 db    ? ;
.data:005C6917                 db    ? ;
.data:005C6918                 db    ? ;
.data:005C6919                 db    ? ;
.data:005C691A                 db    ? ;
.data:005C691B                 db    ? ;
.data:005C691C                 db    ? ;
.data:005C691D                 db    ? ;
.data:005C691E                 db    ? ;
.data:005C691F                 db    ? ;
.data:005C6920                 db    ? ;
.data:005C6921                 db    ? ;
.data:005C6922                 db    ? ;
.data:005C6923                 db    ? ;
.data:005C6924                 db    ? ;
.data:005C6925                 db    ? ;
.data:005C6926                 db    ? ;
.data:005C6927                 db    ? ;
.data:005C6928                 db    ? ;
.data:005C6929                 db    ? ;
.data:005C692A                 db    ? ;
.data:005C692B                 db    ? ;
.data:005C692C                 db    ? ;
.data:005C692D                 db    ? ;
.data:005C692E                 db    ? ;
.data:005C692F                 db    ? ;
.data:005C6930                 db    ? ;
.data:005C6931                 db    ? ;
.data:005C6932                 db    ? ;
.data:005C6933                 db    ? ;
.data:005C6934                 db    ? ;
.data:005C6935                 db    ? ;
.data:005C6936                 db    ? ;
.data:005C6937                 db    ? ;
.data:005C6938                 db    ? ;
.data:005C6939                 db    ? ;
.data:005C693A                 db    ? ;
.data:005C693B                 db    ? ;
.data:005C693C                 db    ? ;
.data:005C693D                 db    ? ;
.data:005C693E                 db    ? ;
.data:005C693F                 db    ? ;
.data:005C6940                 db    ? ;
.data:005C6941                 db    ? ;
.data:005C6942                 db    ? ;
.data:005C6943                 db    ? ;
.data:005C6944                 db    ? ;
.data:005C6945                 db    ? ;
.data:005C6946                 db    ? ;
.data:005C6947                 db    ? ;
.data:005C6948                 db    ? ;
.data:005C6949                 db    ? ;
.data:005C694A                 db    ? ;
.data:005C694B                 db    ? ;
.data:005C694C                 db    ? ;
.data:005C694D                 db    ? ;
.data:005C694E                 db    ? ;
.data:005C694F                 db    ? ;
.data:005C6950                 db    ? ;
.data:005C6951                 db    ? ;
.data:005C6952                 db    ? ;
.data:005C6953                 db    ? ;
.data:005C6954                 db    ? ;
.data:005C6955                 db    ? ;
.data:005C6956                 db    ? ;
.data:005C6957                 db    ? ;
.data:005C6958                 db    ? ;
.data:005C6959                 db    ? ;
.data:005C695A                 db    ? ;
.data:005C695B                 db    ? ;
.data:005C695C                 db    ? ;
.data:005C695D                 db    ? ;
.data:005C695E                 db    ? ;
.data:005C695F                 db    ? ;
.data:005C6960                 db    ? ;
.data:005C6961                 db    ? ;
.data:005C6962                 db    ? ;
.data:005C6963                 db    ? ;
.data:005C6964                 db    ? ;
.data:005C6965                 db    ? ;
.data:005C6966                 db    ? ;
.data:005C6967                 db    ? ;
.data:005C6968                 db    ? ;
.data:005C6969                 db    ? ;
.data:005C696A                 db    ? ;
.data:005C696B                 db    ? ;
.data:005C696C                 db    ? ;
.data:005C696D                 db    ? ;
.data:005C696E                 db    ? ;
.data:005C696F                 db    ? ;
.data:005C6970                 db    ? ;
.data:005C6971                 db    ? ;
.data:005C6972                 db    ? ;
.data:005C6973                 db    ? ;
.data:005C6974                 db    ? ;
.data:005C6975                 db    ? ;
.data:005C6976                 db    ? ;
.data:005C6977                 db    ? ;
.data:005C6978                 db    ? ;
.data:005C6979                 db    ? ;
.data:005C697A                 db    ? ;
.data:005C697B                 db    ? ;
.data:005C697C                 db    ? ;
.data:005C697D                 db    ? ;
.data:005C697E                 db    ? ;
.data:005C697F                 db    ? ;
.data:005C6980                 db    ? ;
.data:005C6981                 db    ? ;
.data:005C6982                 db    ? ;
.data:005C6983                 db    ? ;
.data:005C6984                 db    ? ;
.data:005C6985                 db    ? ;
.data:005C6986                 db    ? ;
.data:005C6987                 db    ? ;
.data:005C6988                 db    ? ;
.data:005C6989                 db    ? ;
.data:005C698A                 db    ? ;
.data:005C698B                 db    ? ;
.data:005C698C                 db    ? ;
.data:005C698D                 db    ? ;
.data:005C698E                 db    ? ;
.data:005C698F                 db    ? ;
.data:005C6990                 db    ? ;
.data:005C6991                 db    ? ;
.data:005C6992                 db    ? ;
.data:005C6993                 db    ? ;
.data:005C6994                 db    ? ;
.data:005C6995                 db    ? ;
.data:005C6996                 db    ? ;
.data:005C6997                 db    ? ;
.data:005C6998                 db    ? ;
.data:005C6999                 db    ? ;
.data:005C699A                 db    ? ;
.data:005C699B                 db    ? ;
.data:005C699C                 db    ? ;
.data:005C699D                 db    ? ;
.data:005C699E                 db    ? ;
.data:005C699F                 db    ? ;
.data:005C69A0                 db    ? ;
.data:005C69A1                 db    ? ;
.data:005C69A2                 db    ? ;
.data:005C69A3                 db    ? ;
.data:005C69A4                 db    ? ;
.data:005C69A5                 db    ? ;
.data:005C69A6                 db    ? ;
.data:005C69A7                 db    ? ;
.data:005C69A8                 db    ? ;
.data:005C69A9                 db    ? ;
.data:005C69AA                 db    ? ;
.data:005C69AB                 db    ? ;
.data:005C69AC                 db    ? ;
.data:005C69AD                 db    ? ;
.data:005C69AE                 db    ? ;
.data:005C69AF                 db    ? ;
.data:005C69B0                 db    ? ;
.data:005C69B1                 db    ? ;
.data:005C69B2                 db    ? ;
.data:005C69B3                 db    ? ;
.data:005C69B4                 db    ? ;
.data:005C69B5                 db    ? ;
.data:005C69B6                 db    ? ;
.data:005C69B7                 db    ? ;
.data:005C69B8                 db    ? ;
.data:005C69B9                 db    ? ;
.data:005C69BA                 db    ? ;
.data:005C69BB                 db    ? ;
.data:005C69BC                 db    ? ;
.data:005C69BD                 db    ? ;
.data:005C69BE                 db    ? ;
.data:005C69BF                 db    ? ;
.data:005C69C0                 db    ? ;
.data:005C69C1                 db    ? ;
.data:005C69C2                 db    ? ;
.data:005C69C3                 db    ? ;
.data:005C69C4                 db    ? ;
.data:005C69C5                 db    ? ;
.data:005C69C6                 db    ? ;
.data:005C69C7                 db    ? ;
.data:005C69C8                 db    ? ;
.data:005C69C9                 db    ? ;
.data:005C69CA                 db    ? ;
.data:005C69CB                 db    ? ;
.data:005C69CC                 db    ? ;
.data:005C69CD                 db    ? ;
.data:005C69CE                 db    ? ;
.data:005C69CF                 db    ? ;
.data:005C69D0                 db    ? ;
.data:005C69D1                 db    ? ;
.data:005C69D2                 db    ? ;
.data:005C69D3                 db    ? ;
.data:005C69D4                 db    ? ;
.data:005C69D5                 db    ? ;
.data:005C69D6                 db    ? ;
.data:005C69D7                 db    ? ;
.data:005C69D8                 db    ? ;
.data:005C69D9                 db    ? ;
.data:005C69DA                 db    ? ;
.data:005C69DB                 db    ? ;
.data:005C69DC                 db    ? ;
.data:005C69DD                 db    ? ;
.data:005C69DE                 db    ? ;
.data:005C69DF                 db    ? ;
.data:005C69E0                 db    ? ;
.data:005C69E1                 db    ? ;
.data:005C69E2                 db    ? ;
.data:005C69E3                 db    ? ;
.data:005C69E4                 db    ? ;
.data:005C69E5                 db    ? ;
.data:005C69E6                 db    ? ;
.data:005C69E7                 db    ? ;
.data:005C69E8                 db    ? ;
.data:005C69E9                 db    ? ;
.data:005C69EA                 db    ? ;
.data:005C69EB                 db    ? ;
.data:005C69EC                 db    ? ;
.data:005C69ED                 db    ? ;
.data:005C69EE                 db    ? ;
.data:005C69EF                 db    ? ;
.data:005C69F0                 db    ? ;
.data:005C69F1                 db    ? ;
.data:005C69F2                 db    ? ;
.data:005C69F3                 db    ? ;
.data:005C69F4                 db    ? ;
.data:005C69F5                 db    ? ;
.data:005C69F6                 db    ? ;
.data:005C69F7                 db    ? ;
.data:005C69F8                 db    ? ;
.data:005C69F9                 db    ? ;
.data:005C69FA                 db    ? ;
.data:005C69FB                 db    ? ;
.data:005C69FC                 db    ? ;
.data:005C69FD                 db    ? ;
.data:005C69FE                 db    ? ;
.data:005C69FF                 db    ? ;
.data:005C6A00                 db    ? ;
.data:005C6A01                 db    ? ;
.data:005C6A02                 db    ? ;
.data:005C6A03                 db    ? ;
.data:005C6A04                 db    ? ;
.data:005C6A05                 db    ? ;
.data:005C6A06                 db    ? ;
.data:005C6A07                 db    ? ;
.data:005C6A08                 db    ? ;
.data:005C6A09                 db    ? ;
.data:005C6A0A                 db    ? ;
.data:005C6A0B                 db    ? ;
.data:005C6A0C                 db    ? ;
.data:005C6A0D                 db    ? ;
.data:005C6A0E                 db    ? ;
.data:005C6A0F                 db    ? ;
.data:005C6A10                 db    ? ;
.data:005C6A11                 db    ? ;
.data:005C6A12                 db    ? ;
.data:005C6A13                 db    ? ;
.data:005C6A14                 db    ? ;
.data:005C6A15                 db    ? ;
.data:005C6A16                 db    ? ;
.data:005C6A17                 db    ? ;
.data:005C6A18                 db    ? ;
.data:005C6A19                 db    ? ;
.data:005C6A1A                 db    ? ;
.data:005C6A1B                 db    ? ;
.data:005C6A1C                 db    ? ;
.data:005C6A1D                 db    ? ;
.data:005C6A1E                 db    ? ;
.data:005C6A1F                 db    ? ;
.data:005C6A20                 db    ? ;
.data:005C6A21                 db    ? ;
.data:005C6A22                 db    ? ;
.data:005C6A23                 db    ? ;
.data:005C6A24                 db    ? ;
.data:005C6A25                 db    ? ;
.data:005C6A26                 db    ? ;
.data:005C6A27                 db    ? ;
.data:005C6A28                 db    ? ;
.data:005C6A29                 db    ? ;
.data:005C6A2A                 db    ? ;
.data:005C6A2B                 db    ? ;
.data:005C6A2C                 db    ? ;
.data:005C6A2D                 db    ? ;
.data:005C6A2E                 db    ? ;
.data:005C6A2F                 db    ? ;
.data:005C6A30                 db    ? ;
.data:005C6A31                 db    ? ;
.data:005C6A32                 db    ? ;
.data:005C6A33                 db    ? ;
.data:005C6A34                 db    ? ;
.data:005C6A35                 db    ? ;
.data:005C6A36                 db    ? ;
.data:005C6A37                 db    ? ;
.data:005C6A38                 db    ? ;
.data:005C6A39                 db    ? ;
.data:005C6A3A                 db    ? ;
.data:005C6A3B                 db    ? ;
.data:005C6A3C                 db    ? ;
.data:005C6A3D                 db    ? ;
.data:005C6A3E                 db    ? ;
.data:005C6A3F                 db    ? ;
.data:005C6A40                 db    ? ;
.data:005C6A41                 db    ? ;
.data:005C6A42                 db    ? ;
.data:005C6A43                 db    ? ;
.data:005C6A44                 db    ? ;
.data:005C6A45                 db    ? ;
.data:005C6A46                 db    ? ;
.data:005C6A47                 db    ? ;
.data:005C6A48                 db    ? ;
.data:005C6A49                 db    ? ;
.data:005C6A4A                 db    ? ;
.data:005C6A4B                 db    ? ;
.data:005C6A4C                 db    ? ;
.data:005C6A4D                 db    ? ;
.data:005C6A4E                 db    ? ;
.data:005C6A4F                 db    ? ;
.data:005C6A50                 db    ? ;
.data:005C6A51                 db    ? ;
.data:005C6A52                 db    ? ;
.data:005C6A53                 db    ? ;
.data:005C6A54                 db    ? ;
.data:005C6A55                 db    ? ;
.data:005C6A56                 db    ? ;
.data:005C6A57                 db    ? ;
.data:005C6A58                 db    ? ;
.data:005C6A59                 db    ? ;
.data:005C6A5A                 db    ? ;
.data:005C6A5B                 db    ? ;
.data:005C6A5C                 db    ? ;
.data:005C6A5D                 db    ? ;
.data:005C6A5E                 db    ? ;
.data:005C6A5F                 db    ? ;
.data:005C6A60                 db    ? ;
.data:005C6A61                 db    ? ;
.data:005C6A62                 db    ? ;
.data:005C6A63                 db    ? ;
.data:005C6A64                 db    ? ;
.data:005C6A65                 db    ? ;
.data:005C6A66                 db    ? ;
.data:005C6A67                 db    ? ;
.data:005C6A68                 db    ? ;
.data:005C6A69                 db    ? ;
.data:005C6A6A                 db    ? ;
.data:005C6A6B                 db    ? ;
.data:005C6A6C                 db    ? ;
.data:005C6A6D                 db    ? ;
.data:005C6A6E                 db    ? ;
.data:005C6A6F                 db    ? ;
.data:005C6A70                 db    ? ;
.data:005C6A71                 db    ? ;
.data:005C6A72                 db    ? ;
.data:005C6A73                 db    ? ;
.data:005C6A74                 db    ? ;
.data:005C6A75                 db    ? ;
.data:005C6A76                 db    ? ;
.data:005C6A77                 db    ? ;
.data:005C6A78                 db    ? ;
.data:005C6A79                 db    ? ;
.data:005C6A7A                 db    ? ;
.data:005C6A7B                 db    ? ;
.data:005C6A7C                 db    ? ;
.data:005C6A7D                 db    ? ;
.data:005C6A7E                 db    ? ;
.data:005C6A7F                 db    ? ;
.data:005C6A80                 db    ? ;
.data:005C6A81                 db    ? ;
.data:005C6A82                 db    ? ;
.data:005C6A83                 db    ? ;
.data:005C6A84                 db    ? ;
.data:005C6A85                 db    ? ;
.data:005C6A86                 db    ? ;
.data:005C6A87                 db    ? ;
.data:005C6A88                 db    ? ;
.data:005C6A89                 db    ? ;
.data:005C6A8A                 db    ? ;
.data:005C6A8B                 db    ? ;
.data:005C6A8C                 db    ? ;
.data:005C6A8D                 db    ? ;
.data:005C6A8E                 db    ? ;
.data:005C6A8F                 db    ? ;
.data:005C6A90                 db    ? ;
.data:005C6A91                 db    ? ;
.data:005C6A92                 db    ? ;
.data:005C6A93                 db    ? ;
.data:005C6A94                 db    ? ;
.data:005C6A95                 db    ? ;
.data:005C6A96                 db    ? ;
.data:005C6A97                 db    ? ;
.data:005C6A98                 db    ? ;
.data:005C6A99                 db    ? ;
.data:005C6A9A                 db    ? ;
.data:005C6A9B                 db    ? ;
.data:005C6A9C                 db    ? ;
.data:005C6A9D                 db    ? ;
.data:005C6A9E                 db    ? ;
.data:005C6A9F                 db    ? ;
.data:005C6AA0                 db    ? ;
.data:005C6AA1                 db    ? ;
.data:005C6AA2                 db    ? ;
.data:005C6AA3                 db    ? ;
.data:005C6AA4                 db    ? ;
.data:005C6AA5                 db    ? ;
.data:005C6AA6                 db    ? ;
.data:005C6AA7                 db    ? ;
.data:005C6AA8                 db    ? ;
.data:005C6AA9                 db    ? ;
.data:005C6AAA                 db    ? ;
.data:005C6AAB                 db    ? ;
.data:005C6AAC                 db    ? ;
.data:005C6AAD                 db    ? ;
.data:005C6AAE                 db    ? ;
.data:005C6AAF                 db    ? ;
.data:005C6AB0                 db    ? ;
.data:005C6AB1                 db    ? ;
.data:005C6AB2                 db    ? ;
.data:005C6AB3                 db    ? ;
.data:005C6AB4                 db    ? ;
.data:005C6AB5                 db    ? ;
.data:005C6AB6                 db    ? ;
.data:005C6AB7                 db    ? ;
.data:005C6AB8                 db    ? ;
.data:005C6AB9                 db    ? ;
.data:005C6ABA                 db    ? ;
.data:005C6ABB                 db    ? ;
.data:005C6ABC                 db    ? ;
.data:005C6ABD                 db    ? ;
.data:005C6ABE                 db    ? ;
.data:005C6ABF                 db    ? ;
.data:005C6AC0                 db    ? ;
.data:005C6AC1                 db    ? ;
.data:005C6AC2                 db    ? ;
.data:005C6AC3                 db    ? ;
.data:005C6AC4                 db    ? ;
.data:005C6AC5                 db    ? ;
.data:005C6AC6                 db    ? ;
.data:005C6AC7                 db    ? ;
.data:005C6AC8                 db    ? ;
.data:005C6AC9                 db    ? ;
.data:005C6ACA                 db    ? ;
.data:005C6ACB                 db    ? ;
.data:005C6ACC                 db    ? ;
.data:005C6ACD                 db    ? ;
.data:005C6ACE                 db    ? ;
.data:005C6ACF                 db    ? ;
.data:005C6AD0                 db    ? ;
.data:005C6AD1                 db    ? ;
.data:005C6AD2                 db    ? ;
.data:005C6AD3                 db    ? ;
.data:005C6AD4                 db    ? ;
.data:005C6AD5                 db    ? ;
.data:005C6AD6                 db    ? ;
.data:005C6AD7                 db    ? ;
.data:005C6AD8                 db    ? ;
.data:005C6AD9                 db    ? ;
.data:005C6ADA                 db    ? ;
.data:005C6ADB                 db    ? ;
.data:005C6ADC                 db    ? ;
.data:005C6ADD                 db    ? ;
.data:005C6ADE                 db    ? ;
.data:005C6ADF                 db    ? ;
.data:005C6AE0                 db    ? ;
.data:005C6AE1                 db    ? ;
.data:005C6AE2                 db    ? ;
.data:005C6AE3                 db    ? ;
.data:005C6AE4                 db    ? ;
.data:005C6AE5                 db    ? ;
.data:005C6AE6                 db    ? ;
.data:005C6AE7                 db    ? ;
.data:005C6AE8                 db    ? ;
.data:005C6AE9                 db    ? ;
.data:005C6AEA                 db    ? ;
.data:005C6AEB                 db    ? ;
.data:005C6AEC                 db    ? ;
.data:005C6AED                 db    ? ;
.data:005C6AEE                 db    ? ;
.data:005C6AEF                 db    ? ;
.data:005C6AF0                 db    ? ;
.data:005C6AF1                 db    ? ;
.data:005C6AF2                 db    ? ;
.data:005C6AF3                 db    ? ;
.data:005C6AF4                 db    ? ;
.data:005C6AF5                 db    ? ;
.data:005C6AF6                 db    ? ;
.data:005C6AF7                 db    ? ;
.data:005C6AF8                 db    ? ;
.data:005C6AF9                 db    ? ;
.data:005C6AFA                 db    ? ;
.data:005C6AFB                 db    ? ;
.data:005C6AFC                 db    ? ;
.data:005C6AFD                 db    ? ;
.data:005C6AFE                 db    ? ;
.data:005C6AFF                 db    ? ;
.data:005C6B00                 db    ? ;
.data:005C6B01                 db    ? ;
.data:005C6B02                 db    ? ;
.data:005C6B03                 db    ? ;
.data:005C6B04                 db    ? ;
.data:005C6B05                 db    ? ;
.data:005C6B06                 db    ? ;
.data:005C6B07                 db    ? ;
.data:005C6B08                 db    ? ;
.data:005C6B09                 db    ? ;
.data:005C6B0A                 db    ? ;
.data:005C6B0B                 db    ? ;
.data:005C6B0C                 db    ? ;
.data:005C6B0D                 db    ? ;
.data:005C6B0E                 db    ? ;
.data:005C6B0F                 db    ? ;
.data:005C6B10                 db    ? ;
.data:005C6B11                 db    ? ;
.data:005C6B12                 db    ? ;
.data:005C6B13                 db    ? ;
.data:005C6B14                 db    ? ;
.data:005C6B15                 db    ? ;
.data:005C6B16                 db    ? ;
.data:005C6B17                 db    ? ;
.data:005C6B18                 db    ? ;
.data:005C6B19                 db    ? ;
.data:005C6B1A                 db    ? ;
.data:005C6B1B                 db    ? ;
.data:005C6B1C                 db    ? ;
.data:005C6B1D                 db    ? ;
.data:005C6B1E                 db    ? ;
.data:005C6B1F                 db    ? ;
.data:005C6B20                 db    ? ;
.data:005C6B21                 db    ? ;
.data:005C6B22                 db    ? ;
.data:005C6B23                 db    ? ;
.data:005C6B24                 db    ? ;
.data:005C6B25                 db    ? ;
.data:005C6B26                 db    ? ;
.data:005C6B27                 db    ? ;
.data:005C6B28                 db    ? ;
.data:005C6B29                 db    ? ;
.data:005C6B2A                 db    ? ;
.data:005C6B2B                 db    ? ;
.data:005C6B2C                 db    ? ;
.data:005C6B2D                 db    ? ;
.data:005C6B2E                 db    ? ;
.data:005C6B2F                 db    ? ;
.data:005C6B30                 db    ? ;
.data:005C6B31                 db    ? ;
.data:005C6B32                 db    ? ;
.data:005C6B33                 db    ? ;
.data:005C6B34                 db    ? ;
.data:005C6B35                 db    ? ;
.data:005C6B36                 db    ? ;
.data:005C6B37                 db    ? ;
.data:005C6B38                 db    ? ;
.data:005C6B39                 db    ? ;
.data:005C6B3A                 db    ? ;
.data:005C6B3B                 db    ? ;
.data:005C6B3C                 db    ? ;
.data:005C6B3D                 db    ? ;
.data:005C6B3E                 db    ? ;
.data:005C6B3F                 db    ? ;
.data:005C6B40                 db    ? ;
.data:005C6B41                 db    ? ;
.data:005C6B42                 db    ? ;
.data:005C6B43                 db    ? ;
.data:005C6B44                 db    ? ;
.data:005C6B45                 db    ? ;
.data:005C6B46                 db    ? ;
.data:005C6B47                 db    ? ;
.data:005C6B48                 db    ? ;
.data:005C6B49                 db    ? ;
.data:005C6B4A                 db    ? ;
.data:005C6B4B                 db    ? ;
.data:005C6B4C                 db    ? ;
.data:005C6B4D                 db    ? ;
.data:005C6B4E                 db    ? ;
.data:005C6B4F                 db    ? ;
.data:005C6B50                 db    ? ;
.data:005C6B51                 db    ? ;
.data:005C6B52                 db    ? ;
.data:005C6B53                 db    ? ;
.data:005C6B54                 db    ? ;
.data:005C6B55                 db    ? ;
.data:005C6B56                 db    ? ;
.data:005C6B57                 db    ? ;
.data:005C6B58                 db    ? ;
.data:005C6B59                 db    ? ;
.data:005C6B5A                 db    ? ;
.data:005C6B5B                 db    ? ;
.data:005C6B5C                 db    ? ;
.data:005C6B5D                 db    ? ;
.data:005C6B5E                 db    ? ;
.data:005C6B5F                 db    ? ;
.data:005C6B60                 db    ? ;
.data:005C6B61                 db    ? ;
.data:005C6B62                 db    ? ;
.data:005C6B63                 db    ? ;
.data:005C6B64                 db    ? ;
.data:005C6B65                 db    ? ;
.data:005C6B66                 db    ? ;
.data:005C6B67                 db    ? ;
.data:005C6B68                 db    ? ;
.data:005C6B69                 db    ? ;
.data:005C6B6A                 db    ? ;
.data:005C6B6B                 db    ? ;
.data:005C6B6C                 db    ? ;
.data:005C6B6D                 db    ? ;
.data:005C6B6E                 db    ? ;
.data:005C6B6F                 db    ? ;
.data:005C6B70                 db    ? ;
.data:005C6B71                 db    ? ;
.data:005C6B72                 db    ? ;
.data:005C6B73                 db    ? ;
.data:005C6B74                 db    ? ;
.data:005C6B75                 db    ? ;
.data:005C6B76                 db    ? ;
.data:005C6B77                 db    ? ;
.data:005C6B78                 db    ? ;
.data:005C6B79                 db    ? ;
.data:005C6B7A                 db    ? ;
.data:005C6B7B                 db    ? ;
.data:005C6B7C                 db    ? ;
.data:005C6B7D                 db    ? ;
.data:005C6B7E                 db    ? ;
.data:005C6B7F                 db    ? ;
.data:005C6B80 dword_5C6B80    dd ?                    ; DATA XREF: sub_441940+EAr
.data:005C6B80                                         ; sub_441940+262r ...
.data:005C6B84                 db    ? ;

可知是unk_5C6900,看一下unk_5C6900被哪段汇编代码引用了。用上面查找的方式可以找到,唯一被引用的地方是00485A18

看一下这附近的汇编:

.text:00485A18                 push    offset unk_5C6900
.text:00485A1D                 call    sub_488A15

看一下sub_488A15,并记得unk_5C6900是它的第一个参数:

.text:00488A15 sub_488A15      proc near               ; CODE XREF: sub_485375+6A8p
.text:00488A15                                         ; sub_485CD1+2A9p
.text:00488A15
.text:00488A15 arg_0           = dword ptr  8
.text:00488A15
.text:00488A15                 push    ebp
.text:00488A16                 mov     ebp, esp
.text:00488A18                 push    esi
.text:00488A19                 push    edi
.text:00488A1A                 mov     ecx, 9Ch
.text:00488A1F                 xor     eax, eax
.text:00488A21                 mov     edi, [ebp+arg_0]
.text:00488A24                 rep stosd

.text:00488A26                 mov     eax, [ebp+arg_0]
.text:00488A29                 mov     ecx, dword_5EAE2C

上面红色的汇编就是memset的内联优化,算一下,5C6900+9C*4 = 5C6B70(因为是stosd,说明是四个字节).和5C6B80相差较远。继续分析sub_488A15,也是发现它并没有越界。

只可能是第一种情况。

定位完毕。


对这个问题的建议是:

1.对使用dword_5C6B80里面的元素,需要进行判空操作,不能够直接引用。

2.如果source insight是由C++写成的,应该使用单实例类来代替dword_5C6B80,这样可以更好保证数据在使用前已经初始化了。



source insight coredump分析

标签:程序崩溃   调试技术   汇编   全局变量   windows   

原文地址:http://blog.csdn.net/xuzhina/article/details/44056689

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!