精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

記一次 .NET某酒業業務系統崩潰分析

開發 前端
說實話這個dump分析起來還是挺有難度的,需要你對Windows線程池,clr源碼實現有一個基礎了解,否則很難構造出完整證據鏈。

一、背景

1. 講故事

前些天有位朋友找到我,說他的程序每次關閉時就會自動崩潰,一直找不到原因讓我幫忙看一下怎么回事,這位朋友應該是第二次找我了,分析了下 dump 還是挺經典的,拿出來給大家分享一下吧。

二、WinDbg 分析

1. 為什么會崩潰

找崩潰原因比較簡單,用 !analyze -v 命令觀察一下便知。

0:040> !analyze -v

CONTEXT:  (.ecxr)
eax=0afdf5dc ebx=0698ade8 ecx=00000001 edx=00000000 esi=0698ade8 edi=7eec0000
eip=7753c5af esp=0afdf5dc ebp=0afdf62c iopl=0         nv up ei pl nz na po nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000202
KERNELBASE!RaiseException+0x58:
7753c5af c9              leave
Resetting default scope

EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 7753c5af (KERNELBASE!RaiseException+0x00000058)
   ExceptionCode: c0020001
  ExceptionFlags: 00000001
NumberParameters: 1
   Parameter[0]: 8007042b

PROCESS_NAME:  xxx.exe

從卦中數據看當前崩潰碼是 c0020001,查了下碼表說是 string綁定無效 ,截圖如下:

圖片圖片

這看起來有點無語呀,接下來觀察下線程棧。

0:040> .ecxr
eax=0afdf5dc ebx=0698ade8 ecx=00000001 edx=00000000 esi=0698ade8 edi=7eec0000
eip=7753c5af esp=0afdf5dc ebp=0afdf62c iopl=0         nv up ei pl nz na po nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000202
KERNELBASE!RaiseException+0x58:
7753c5af c9              leave

0:040> k
  *** Stack trace for last set context - .thread/.cxr resets it
 # ChildEBP RetAddr      
00 0afdf62c 70e75e0b     KERNELBASE!RaiseException+0x58
01 0afdf648 70f63bf5     clr!COMPlusThrowBoot+0x1a
02 0afdf654 70b6f1da     clr!UMThunkStubRareDisableWorker+0x25
03 0afdf67c 77a9571e     clr!UMThunkStubRareDisable+0x9
04 0afdf6bc 77a80f0b     ntdll!RtlpTpTimerCallback+0x7a
05 0afdf6e0 77a809b1     ntdll!TppTimerpExecuteCallback+0x10f
06 0afdf830 75c4344d     ntdll!TppWorkerThread+0x562
07 0afdf83c 77a69802     kernel32!BaseThreadInitThunk+0xe
08 0afdf87c 77a697d5     ntdll!__RtlUserThreadStart+0x70
09 0afdf894 00000000     ntdll!_RtlUserThreadStart+0x1b

從卦中的線程棧來看,這里利用了 Windows線程池 的timer回調,回到 clr 之后主動拋了一個異常。

2. 為什么會主動拋異常

要想知道這個答案需要分析下clr 的源碼,簡化后如下:

// Disable from a place that is calling into managed code via a UMEntryThunk.
extern "C" VOID __stdcall UMThunkStubRareDisableWorker(Thread * pThread, UMEntryThunk * pUMEntryThunk, Frame * pFrame)
{
    // Check for ShutDown scenario.  This happens only when we have initiated shutdown 
    // and someone is trying to call in after the CLR is suspended.  In that case, we
    // must either raise an unmanaged exception or return an HRESULT, depending on the
    // expectations of our caller.
    if (!CanRunManagedCode())
    {
        pThread->m_fPreemptiveGCDisabled = 0;
        COMPlusThrowBoot(E_PROCESS_SHUTDOWN_REENTRY);
    }
}

BOOL CanRunManagedCode(BOOL fCannotRunIsUserError, HINSTANCE hInst)
{
    // If we are shutting down the runtime, then we cannot run code.
    if (g_fForbidEnterEE == TRUE)
        return FALSE;

    // If we are finaling live objects or processing ExitProcess event,
    // we can not allow managed method to run unless the current thread
    // is the finalizer thread
    if ((g_fEEShutDown & ShutDown_Finalize2) && !GCHeap::GetGCHeap()->IsCurrentThreadFinalizer())
        return FALSE;

    // If pre-loaded objects are not present, then no way.
    if (g_pPreallocatedOutOfMemoryException == NULL)
        return FALSE;

    return TRUE;
}

根據上面的源碼,應該就是CanRunManagedCode()函數返回false 導致的,那這個函數真的返回 false 嗎?可以用 Windbg 驗證下g_fForbidEnterEE 這個變量。

0:040> dp clr!g_fForbidEnterEE L1
712a2684  00000001

無語了,這個變量為true表示當前的CLR處于關閉狀態,應該是主線程調用了 Exit 方法,用 windbg 可以簡單驗證下。

0:000> k
00 0028d3b0 77549cd4     ntdll!NtQueryAttributesFile+0x12
01 0028d3b0 70bf560b     KERNELBASE!GetFileAttributesW+0x71
02 0028d3c8 710602a5     clr!CheckFileExistence+0x1a
...
39 0028ebc0 70d2684b     clr!WaitForEndOfShutdown_OneIteration+0x81
3a 0028ebc8 70d300e2     clr!WaitForEndOfShutdown+0x1b
3b 0028ec08 70d1329e     clr!EEShutDown+0xad
3c 0028ec14 70d132fb     clr!HandleExitProcessHelper+0x4d
3d 0028ec70 70d2ff99     clr!EEPolicy::HandleExitProcess+0x50
3e 0028ec70 7115af3b     clr!ForceEEShutdown+0x31
3f 0028ec70 702a9faf     clr!SystemNative::Exit+0x4f

接下來研究下它要進入到什么托管方法中,這個答案就在 UMEntryThunk.m_pManagedTarget 字段里,參考源碼如下:

class UMEntryThunk
{
private:
 // The start of the managed code
 const BYTE* m_pManagedTarget;

 // This is used for profiling.
 PTR_MethodDesc m_pMD;
}

有了這些前置知識就可以用 windbg 輕松挖掘。

0:040> kb 5
 # ChildEBP RetAddr      Args to Child              
00 0afdf62c 70e75e0b     c0020001 00000001 00000001 KERNELBASE!RaiseException+0x58
01 0afdf648 70f63bf5     006e0fe0 0afdf67c 70b6f1da clr!COMPlusThrowBoot+0x1a
02 0afdf654 70b6f1da     0698ade8 00580a38 0698ade8 clr!UMThunkStubRareDisableWorker+0x25
03 0afdf67c 77a9571e     00000000 00000001 7d723ac9 clr!UMThunkStubRareDisable+0x9
04 0afdf6bc 77a80f0b     0afdf71c 006e0fe0 006f6c10 ntdll!RtlpTpTimerCallback+0x7a

0:040> dp 00580a38 L2
00580a38  00386580 008f2eb8

0:040> !U 00386580
Unmanaged code
00386580 e9ab390000      jmp     00389f30
...

0:040> !ip2md 00389f30
MethodDesc:   0018af94
Method Name:  xxx._checkInput1(IntPtr, Boolean)
Class:        00435a7c
MethodTable:  0018afd8
mdToken:      06000034
Module:       0018a6a8
IsJitted:     yes
CodeAddr:     00389f30
Transparency: Critical

通過一頓反解果然是一個托管回調函數,分析到這里ztm的開心哈,感覺馬上就要看到光了,仔細找了下代碼,果然是借助Windows線程池創建了一個定時事件,無語了,截圖如下:

圖片圖片

圖片圖片

到這里就真相大白了,退出進程的時候一定要先調用C#的Dispose()方法把非托管的Timer給關掉,否則就會出現這種偶發的崩潰異常。

3. 一些題外話

這個dump的錯誤碼非常有誤導性,一個是外部的c0020001 ,一個內部的 8007042Bh,尤其是搜內部的 8007042Bh 會把你帶入到誤區里,讓你修復系統文件啥的,其實就是一個固定的死值,沒有意義的,參見匯編代碼。

0:000> ub 70f63bf5
clr!UMThunkStubRareDisableWorker+0x7:
70f63bd7 c9              leave
70f63bd8 e8d47fc3ff      call    clr!CanRunManagedCode (70b9bbb1)
70f63bdd 8b7508          mov     esi,dword ptr [ebp+8]
70f63be0 85c0            test    eax,eax
70f63be2 7511            jne     clr!UMThunkStubRareDisableWorker+0x25 (70f63bf5)
70f63be4 b92b040780      mov     ecx,8007042Bh
70f63be9 c7460800000000  mov     dword ptr [esi+8],0
70f63bf0 e8f721f1ff      call    clr!COMPlusThrowBoot (70e75dec)

所以還是多以代碼說話,少道聽途說陷入迷途不知返。

三、總結

說實話這個dump分析起來還是挺有難度的,需要你對Windows線程池,clr源碼實現有一個基礎了解,否則很難構造出完整證據鏈。

責任編輯:武曉燕 來源: 一線碼農聊技術
相關推薦

2024-03-28 12:56:36

2024-03-26 00:44:53

.NETCIM系統

2023-03-26 20:24:50

ERP網站系統

2025-10-29 01:11:00

.NET系統windows

2023-06-29 17:55:00

.NET日志WinDbg

2023-06-26 00:12:46

2024-12-27 13:31:18

.NETdump調試

2024-06-04 10:54:34

.NET代碼程序

2024-07-12 11:20:34

.NET崩潰視覺程序

2022-10-25 14:17:01

.NET代碼程序

2024-05-31 12:56:06

.NET代碼方法

2024-06-13 17:09:55

2025-09-05 02:22:00

.NETCRM物流行業

2023-04-06 10:52:18

2024-08-27 13:08:50

2022-01-17 21:28:36

管理系統.NET

2024-07-01 13:00:24

.NET網絡邊緣計算

2024-11-29 10:06:59

2022-10-10 17:52:08

CPUERP系統

2021-11-02 07:54:41

內存.NET 系統
點贊
收藏

51CTO技術棧公眾號

中文久久久久久| 国产成人免费电影| 免费一级黄色录像| 精品国产亚洲一区二区在线观看| 亚洲一区二区三区爽爽爽爽爽| 黑人另类av| 在线播放成人av| 亚洲大胆在线| 在线日韩欧美视频| 日本性生活一级片| 国产成人精品一区二区三区视频| 一区二区在线免费观看| 欧美日韩精品综合| 国产丰满果冻videossex| 亚洲一区日本| 欧美日韩第一视频| 一级片久久久久| 99国产精品久久一区二区三区| 色综合久久久网| 欧美大片免费播放| 第三区美女视频在线| 国产精品一区二区免费不卡| 国产成人免费av| 亚洲国产精品成人无久久精品| 日韩片欧美片| 亚洲欧美日韩爽爽影院| 久久久久99人妻一区二区三区| 素人啪啪色综合| 精品日韩中文字幕| ijzzijzzij亚洲大全| 国内精品一区视频| 91在线观看下载| 9a蜜桃久久久久久免费| 97人人爽人人爽人人爽| 久久精品欧洲| 91av视频在线免费观看| 久久久久久久国产视频| 91综合在线| 永久免费精品影视网站| 中日韩精品一区二区三区| 99re6热只有精品免费观看| 91精品国产综合久久福利软件| 国产精品入口免费软件| 久久久一本精品| 福利二区91精品bt7086| 青青青免费在线| 国产美女福利在线观看| 一区二区三区中文在线观看| 中文字幕一区二区三区最新 | 蜜桃一区二区三区四区| 日本不卡免费高清视频| 国产情侣在线视频| 国产精品jizz在线观看美国| 久久亚洲国产成人| 永久免费看片视频教学| 香蕉久久网站| 久久夜精品va视频免费观看| 国产在线观看免费视频软件| 日韩欧美视频专区| 久久天天躁狠狠躁老女人| 日本 欧美 国产| 在线国产一区二区| 欧美成人精品激情在线观看 | 亚洲免费成人av| 性欧美18一19内谢| av在线免费观看网址| 亚洲精选视频免费看| 男人天堂网站在线| av丝袜在线| 精品美女国产在线| 999精品网站| 国产精品.xx视频.xxtv| 7777女厕盗摄久久久| 男人女人拔萝卜视频| 国产区精品视频在线观看豆花| 亚洲国内高清视频| 粉嫩av蜜桃av蜜臀av| 欧洲激情综合| 欧美成人高清视频| 国产在线精品观看| 天堂久久久久va久久久久| 国产精品一区二区三区成人| 国产同性人妖ts口直男| 99精品视频一区二区| 欧美在线播放一区| av网站免费在线观看| 午夜精品久久一牛影视| 国产视频一区二区视频| 国产一区高清| 精品久久国产97色综合| 欧美偷拍一区二区三区| 天天操综合网| 97精品视频在线| 在线播放国产一区| 不卡视频一二三| 视频一区亚洲| 男女在线观看视频| 欧美性受xxxx| 少妇熟女视频一区二区三区| 宅男在线一区| 久久av在线看| 日本高清不卡码| 国产一区二区视频在线播放| 久久青青草原一区二区| 国产视频在线播放| 色哟哟精品一区| 在线中文字日产幕| 成人3d动漫在线观看| 欧美—级a级欧美特级ar全黄| 亚洲 日本 欧美 中文幕| 国精品**一区二区三区在线蜜桃| 精品一区二区三区国产| 国产精品刘玥久久一区| 欧美性生交xxxxx久久久| 香蕉网在线视频| 欧美亚洲国产激情| 欧美伊久线香蕉线新在线| 国产露脸91国语对白| 久久久国际精品| 男人添女荫道口图片| 激情久久99| 精品亚洲国产成av人片传媒| 欧美色图一区二区| 久久99国产乱子伦精品免费| 欧美精品二区三区四区免费看视频 | 久久蜜桃精品| 国产伦精品一区二区三区四区免费| 1区2区3区在线观看| 日韩欧美成人区| 国模私拍在线观看| 欧美午夜不卡影院在线观看完整版免费| 国产精品色婷婷视频| 欧美xxx.com| 懂色av影视一区二区三区| 欧美图片自拍偷拍| 欧美96在线丨欧| 91精品啪在线观看麻豆免费| 午夜精品一区| 欧美色涩在线第一页| 在线免费观看a级片| 在线播放不卡| 国产精品一区在线播放| 少妇av在线| 日韩精品一区二区三区swag| 国产一区二区播放| 国产黄色91视频| av不卡在线免费观看| 欧洲亚洲精品久久久久| 中文字幕亚洲欧美日韩高清| 在线播放一级片| 国产精品每日更新| 性猛交ⅹ×××乱大交| 色一区二区三区四区| 国产精品一区二区久久久| 一区二区高清不卡| 欧美精品xxxxbbbb| 波多野结衣家庭教师| 国产老妇另类xxxxx| www.18av.com| 懂色av一区二区| 欧美一区二区色| 九色在线视频蝌蚪| 欧美性猛交xxxxxx富婆| 日韩av片在线免费观看| 国产在线视频不卡二| 三上悠亚免费在线观看| 亚洲视频三区| 26uuu亚洲伊人春色| 黄色在线网站| 欧美日韩欧美一区二区| 国产日产精品一区二区三区的介绍| 精品中文av资源站在线观看| 亚洲国产一二三精品无码| av成人综合| 情事1991在线| 日本中文字幕在线看| 欧洲人成人精品| 成人免费视频国产免费观看| 成人一区二区三区视频 | 疯狂撞击丝袜人妻| 国产成人啪免费观看软件| 国产九九九九九| av中文一区| 91在线观看免费观看 | 亚洲精品欧美二区三区中文字幕| 加勒比av中文字幕| 亚洲欧洲一区| 天堂社区 天堂综合网 天堂资源最新版| 亚洲日本中文| 91av视频在线免费观看| 黄色成人在线观看| 日韩h在线观看| 一级片视频免费| 亚洲一级电影视频| 国产18无套直看片| 国产高清亚洲一区| 免费在线观看的毛片| 欧美日韩午夜| 四虎永久在线精品免费一区二区| 国产亚洲久久| 日韩美女毛茸茸| 日本在线观看大片免费视频| 亚洲人午夜精品免费| www.五月激情| 欧美视频一二三区| 毛片视频网站在线观看| 亚洲免费在线观看| 69精品无码成人久久久久久| 大尺度一区二区| 天堂在线中文在线| 久久亚洲美女| 国产va亚洲va在线va| 97在线精品| 日本一区免费看| 日韩免费一级| 国产精品中文字幕久久久| 国产精品迅雷| 久久久午夜视频| 黄色网址视频在线观看| 亚洲三级av在线| 日本高清视频免费观看| 91精品国产91综合久久蜜臀| 中文字幕在线天堂| 疯狂蹂躏欧美一区二区精品| 国产一级淫片免费| 亚洲精品欧美激情| caoporn91| 亚洲欧洲三级电影| 欧美a在线播放| 久久久www成人免费毛片麻豆| www.88av| 成人精品免费视频| av电影中文字幕| 国产精品18久久久久久久久 | 日韩欧美激情视频| 亚洲一区在线看| 欧美日韩国产精品综合 | 日韩成人激情视频| 高清国产mv在线观看| 欧美一级二级三级蜜桃| 国产永久免费视频| 欧美日韩中文字幕一区| 久久午夜鲁丝片| 欧美在线视频全部完| 夜夜爽妓女8888视频免费观看| 欧美日韩免费观看中文| 国产成人无码精品久在线观看| 亚洲午夜精品一区二区三区他趣| 麻豆成人在线视频| 一区二区三区91| 久热精品在线观看| 亚洲大型综合色站| 三级黄色在线视频| 欧美日韩免费看| 亚洲图片在线视频| 欧美中文字幕一区二区三区| 日韩久久久久久久久久| 欧美酷刑日本凌虐凌虐| 国产农村老头老太视频| 精品日韩欧美在线| 性感美女一级片| 亚洲欧美日韩区| avtt亚洲| 欧美另类69精品久久久久9999| 亚洲奶水xxxx哺乳期| 久久久久一本一区二区青青蜜月| 久久电影网站| 日本精品久久久久久久| 日韩欧美2区| 成人在线视频网| www.成人网| 美日韩免费视频| 日韩精品dvd| 4444亚洲人成无码网在线观看| 影音先锋亚洲精品| 国产成人精品无码播放| 久久国产精品色| av在线天堂网| 久久免费国产精品| 99成人在线观看| 午夜一区二区三区在线观看| 潘金莲一级淫片aaaaaa播放| 欧美日韩高清在线| 开心激情综合网| 国产亚洲视频中文字幕视频| 国产盗摄在线观看| 97婷婷涩涩精品一区| 成人午夜毛片| 成人av资源网| 日韩成人综合| 日本中文字幕网址| 久久国产三级精品| 亚洲一区二区在线免费| 国产精品女主播在线观看| 国产一卡二卡在线播放| 欧美亚洲国产一区在线观看网站| 国产黄色一区二区| 国产亚洲欧美日韩美女| 日本大胆在线观看| 国产精品日韩在线一区| 国产无遮挡裸体免费久久| 亚洲国产高清国产精品| 国产免费成人| 久久久久亚洲av片无码v| www国产成人免费观看视频 深夜成人网| 波多野结衣久久久久| 色综合久久99| 成人午夜免费福利| 久久久成人av| 亚洲成人一区在线观看| 国产一区二区高清不卡| 亚洲一区二区| 色悠悠久久综合网| 97精品电影院| 免费看一级一片| 欧美挠脚心视频网站| 麻豆影视在线| 韩国三级日本三级少妇99| 粉嫩av国产一区二区三区| 日韩在线第一区| 亚洲男女自偷自拍| 99久久久无码国产精品性波多| 中文字幕一区视频| 国产精品高清无码| 亚洲美女av电影| 黄视频网站在线观看| 99精品欧美一区二区三区| 婷婷色综合网| 亚洲欧美在线精品| 日本一区二区三区免费乱视频 | 黄色片网站在线| 国产精品视频免费在线| 香蕉人人精品| 少妇人妻在线视频| 不卡欧美aaaaa| 五月天婷婷综合网| 亚洲精品国产精品国自产在线| 久久香蕉一区| 国内精品视频在线播放| 国产精品扒开腿做爽爽爽软件| 91视频福利网| 亚洲综合一区在线| 成人毛片在线精品国产| 久久久久亚洲精品国产 | 亚洲精品成人久久久998| 日韩中文字幕区一区有砖一区| 精品成人av一区二区三区| 欧美性感美女h网站在线观看免费 欧美性xxxx在线播放 | 亚洲三级电影在线观看| 中国xxxx性xxxx产国| 图片区日韩欧美亚洲| 天堂a中文在线| 日韩美女中文字幕| 欧美日中文字幕| 中文字幕天天干| 成人欧美一区二区三区小说| 国产精品久久免费| 久久影院资源网| av男人一区| 99精品人妻少妇一区二区| 久久一日本道色综合| 影音先锋国产在线| 久久亚洲电影天堂| 国产香蕉精品| 久久久久久久久久久久久国产精品| 久久精品一区四区| 97精品人妻一区二区三区| 欧美高清在线观看| 精品自拍偷拍| 日韩中文字幕免费在线| 中文字幕在线不卡一区二区三区| 国产精品久久久久精| 欧美激情乱人伦| 亚洲尤物av| 91欧美一区二区三区| 亚洲一级二级在线| 九色在线视频| 亚洲综合第一页| 国产日韩欧美三区| 亚洲熟女少妇一区二区| 欧美v日韩v国产v| 亚洲淫成人影院| 久久久一二三四| av激情亚洲男人天堂| 最近中文字幕免费在线观看| 欧美另类老女人| 亚洲综合福利| 日本高清免费在线视频| 黑人巨大精品欧美一区二区一视频| seseavlu视频在线| 国产精品视频免费观看| 日本中文字幕一区二区有限公司| 国产极品美女在线| 亚洲精品一区av在线播放| 国产精品777777在线播放| 国产毛片视频网站| 亚洲三级久久久| 久久久久久久影视| 成人免费在线一区二区三区| 爽好久久久欧美精品|