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

記一次 .NET某工控WPF程序被人惡搞的卡死分析

開發 前端
主線程通過 GetMessageW 從消息隊列中拿到了數據,在處理時被 coreclr 押解到 WaitSuspendEventsHelper 處等待一個event事件,接下來看下這個方法的源碼到底是怎么寫的?

一、背景

1. 講故事

這一期程序故障除了做原理分析,還順帶吐槽一下,熟悉我的朋友都知道我分析dump是免費的,但免費不代表可以濫用我的寶貴時間,我不知道有些人故意惡搞卡死是想干嘛,不得而知,希望后面類似的事情越來越少吧!廢話不多說,我們來看看是如何被惡搞的。

二、WinDbg 分析

1. 程序是如何卡死的

既然是窗體程序自然就是看主線程,我們使用 k 命令即可。

0:000> k 
 # Child-SP          RetAddr               Call Site
00 00000036`e1f7da18 00007ffe`70bf30ce     ntdll!NtWaitForSingleObject+0x14
01 00000036`e1f7da20 00007ffd`eff74910     KERNELBASE!WaitForSingleObjectEx+0x8e
...
05 (Inline Function) --------`--------     coreclr!CLREventBase::Wait+0x12 [D:\a\_work\1\s\src\coreclr\vm\synch.cpp @ 412] 
06 00000036`e1f7db20 00007ffd`f00c9afa     coreclr!Thread::WaitSuspendEventsHelper+0xc8 [D:\a\_work\1\s\src\coreclr\vm\threadsuspend.cpp @ 4626] 
07 (Inline Function) --------`--------     coreclr!Thread::WaitSuspendEvents+0x8 [D:\a\_work\1\s\src\coreclr\vm\threadsuspend.cpp @ 4663] 
08 00000036`e1f7dbe0 00007ffd`f0009c80     coreclr!Thread::RareEnablePreemptiveGC+0x7d99a [D:\a\_work\1\s\src\coreclr\vm\threadsuspend.cpp @ 2414] 
09 (Inline Function) --------`--------     coreclr!Thread::EnablePreemptiveGC+0x16 [D:\a\_work\1\s\src\coreclr\vm\threads.h @ 2044] 
0a 00000036`e1f7dc20 00007ffd`f0075d10     coreclr!Thread::RareDisablePreemptiveGC+0xc8 [D:\a\_work\1\s\src\coreclr\vm\threadsuspend.cpp @ 2156] 
0b 00000036`e1f7dca0 00007ffd`f0096a5f     coreclr!JIT_ReversePInvokeEnterRare2+0x18 [D:\a\_work\1\s\src\coreclr\vm\jithelpers.cpp @ 5462] 
0c 00000036`e1f7dcd0 00007ffd`907afe09     coreclr!JIT_ReversePInvokeEnterTrackTransitions+0xaf [D:\a\_work\1\s\src\coreclr\vm\jithelpers.cpp @ 5509] 
0d 00000036`e1f7dd00 00007ffe`72e0e858     0x00007ffd`907afe09
0e 00000036`e1f7dd80 00007ffe`72e0e3dc     user32!UserCallWinProcCheckWow+0x2f8
0f 00000036`e1f7df10 00007ffe`72e20c93     user32!DispatchClientMessage+0x9c
10 00000036`e1f7df70 00007ffe`730f0e64     user32!_fnDWORD+0x33
11 00000036`e1f7dfd0 00007ffe`70b31104     ntdll!KiUserCallbackDispatcherContinue
12 00000036`e1f7e058 00007ffe`72e21c0e     win32u!NtUserGetMessage+0x14
13 00000036`e1f7e060 00007ffe`711e28f2     user32!GetMessageW+0x2e
...
1d 00000036`e1f7e460 00007ffd`f009ba53     xxx!xxx.App.Main+0x5e
...
2a 00000036`e1f7f140 00007ffe`4cd4e1e6     hostfxr!execute_app+0x2fa [D:\a\_work\1\s\src\native\corehost\fxr\fx_muxer.cpp @ 145] 
...
34 00000036`e1f7f890 00000000`00000000     ntdll!RtlUserThreadStart+0x21

從卦中的調用??梢钥吹剑骶€程通過 GetMessageW 從消息隊列中拿到了數據,在處理時被 coreclr 押解到 WaitSuspendEventsHelper 處等待一個event事件,接下來看下這個方法的源碼到底是怎么寫的?簡化后如下:

BOOL Thread::WaitSuspendEventsHelper(void)
{
    if (m_State & TS_DebugSuspendPending)
    {

        ThreadState oldState = m_State;

        while (oldState & TS_DebugSuspendPending)
        {

            ThreadState newState = (ThreadState)(oldState | TS_SyncSuspended);

            if (InterlockedCompareExchange((LONG*)&m_State, newState, oldState) == (LONG)oldState)
            {
                result = m_DebugSuspendEvent.Wait(INFINITE, FALSE);
                break;
            }

            oldState = m_State;
        }
    }
    return result != WAIT_OBJECT_0;
}

從上面的代碼可以明顯的看到當前Thread 處于 TS_DebugSuspendPending 狀態,從名字上看貌似和調試有關,接下來查下這個枚舉的注解。

enum ThreadState
{
    TS_DebugSuspendPending = 0x00000008,    // Is the debugger suspending threads?
}

從注解看是因為調試器阻塞了這個線程,我去,哪里來的調試器呢?這引起了我的巨大興趣。。。

2. 哪里來的調試器

我剛開始是抱有巨大的善意,我以為他的程序被人惡意注入導致卡死,但分析下來我還是太單純了,繼續往下看吧,既然有調試器,一般來說PEB.BeingDebugged=Yes狀態,命令的輸出結果也得到了證實。

0:000> !peb
PEB at 00000036e1c11000
    ...
    BeingDebugged:            Yes
    ...
                    Base TimeStamp                     Module
            7ff7f5230000 65310000 Oct 19 18:08:00 2023 G:\xxx\C#\Projects\NugetApplications\Applications\xxx\bin\Debug\net6.0-windows\xxx.exe
            ...

我以為到這里就可以告訴朋友答案,你的程序可能被人惡意注入了,但眼尖的我發現了一點異常,他的 xxx.exe 啟動目錄怎么會有 \bin\Debug\net6.0-windows\ 呢?很明顯這是用 VS 直接跑起來的呀。。。。

3. 真的是 VS 跑起來的嗎

首先大家要知道 Visual Studio 是托管調試器,托管調試器在調試程序的時候會在 coreclr 層面設置一個全局變量 g_CORDebuggerControlFlags=0x0200,這也是 Debugger.IsAttached 的底層判斷依據,不相信的朋友可以看下這個方法的底層實現:

FCIMPL0(FC_BOOL_RET, DebugDebugger::IsDebuggerAttached)
{
    CORDebuggerAttached();
}

inline bool CORDebuggerAttached()
{
    return (g_CORDebuggerControlFlags & DBCF_ATTACHED);
}

enum DebuggerControlFlag
{
    DBCF_ATTACHED                   = 0x0200,
};

有了這些基礎知識之后,接下來就可以用 x 命令去驗證下。

看到上面的答案基本就可以實錘了,有些朋友可能還是不大相信,我們可以這樣看,VisualStudio 是 WPF 寫的,如果用 VS 來調試,那么線程棧里面應該會有很多類似的 VisualStudio 字符串。

從卦中看,你說正常發布的程序怎么可能會有 9 個 Microsoft.VisualStudio.DesignTools 字符串呢?

4. 這個dump是如何生成的

這個問題我相信可能有一些朋友會比較疑惑,其實沒什么疑惑的,Visual Studio 有生成Dump的功能,操作步驟為:Debug -> Save Dump As... , 接下來通過一個小例子觀察一下。

internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine($"托管調試器:{Debugger.IsAttached}");
            Console.WriteLine($"非托管調試器:{IsDebuggerPresent()}");

            Console.ReadLine();
        }

        [DllImport("kernel32.dll")]
        static extern bool IsDebuggerPresent();
    }

調試起來后,截圖如下:

最后打開生成好的 Dump 文件,使用 kc 觀察主線程的輸出:

0:000> kc
 # Call Site
00 ntdll!NtWaitForSingleObject
01 KERNELBASE!WaitForSingleObjectEx
02 coreclr!CLREventWaitHelper2
03 coreclr!CLREventWaitHelper
04 coreclr!CLREventBase::WaitEx
05 coreclr!CLREventBase::Wait
06 coreclr!Thread::WaitSuspendEventsHelper
07 coreclr!Thread::WaitSuspendEvents
08 coreclr!Thread::RareEnablePreemptiveGC
09 coreclr!Thread::EnablePreemptiveGC
0a coreclr!Thread::RareDisablePreemptiveGC
0b coreclr!Thread::DisablePreemptiveGC
...
19 ConsoleApp4!ConsoleApp4.Program.Main
...
30 ntdll!RtlUserThreadStart

從卦中看,正是停留在 WaitSuspendEventsHelper 函數里,一摸一樣,徹底被360°無死角的證實......

三、總結

這是一次人為的故意惡搞,大概率就是想看下我到底是騾子是馬。我分析的結果對他和他所在的公司來說沒有任何價值,只能白白的浪費我的時間,真是分析多了,什么樣的人都能遇到,謹以此文告知后來者,免費但請不要濫用!

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

2023-09-27 07:23:10

.NET監控軟件

2024-06-06 10:51:15

自動化系統推測

2024-09-14 10:28:56

.NET卡死程序

2024-05-20 09:39:02

.NETurl線程池

2022-10-13 18:40:05

.NETOA后端

2024-07-01 13:00:24

.NET網絡邊緣計算

2022-01-17 21:28:36

管理系統.NET

2024-11-29 10:06:59

2023-05-15 11:15:50

.NET門診語句

2022-10-09 10:47:37

NET視覺軟件

2025-09-02 01:35:00

.NET光學定位軟件

2024-07-12 11:20:34

.NET崩潰視覺程序

2022-10-25 14:17:01

.NET代碼程序

2023-06-26 00:12:46

2024-12-27 13:31:18

.NETdump調試

2024-03-28 12:56:36

2023-04-06 10:52:18

2023-07-06 10:11:38

.NET模式dump

2024-03-26 00:44:53

.NETCIM系統

2023-03-26 20:24:50

ERP網站系統
點贊
收藏

51CTO技術棧公眾號

在线观看一二三区| 亚洲精品午夜视频| av丝袜在线| 99久久婷婷国产精品综合| 91国内免费在线视频| 国产女人18毛片水18精品| а天堂中文在线资源| 久久久久久久久久久久电影| 性欧美疯狂xxxxbbbb| 日本成人黄色| 99久久精品免费看国产交换| 国产视频一区在线观看一区免费| 在线中文字幕日韩| 黑人玩弄人妻一区二区三区| 都市激情在线视频| 国产一区二区福利视频| 5566日本婷婷色中文字幕97| 日韩av片在线免费观看| 国产女人18毛片水真多18精品| 色一情一伦一子一伦一区| 少妇熟女一区二区| 视频一区二区免费| 国产精品资源在线看| 日韩在线视频国产| 中国黄色片视频| 欧美videossex| 国产三级精品三级| 国产精品免费一区二区三区四区| 五月婷婷丁香在线| 国产一区二区三区久久| 欧美韩日一区二区| 毛片毛片毛片毛片毛| 性欧美freesex顶级少妇| 亚洲卡通欧美制服中文| 欧美日韩国产免费一区二区三区 | av亚洲精华国产精华精| 国产综合色香蕉精品| 国产免费一级视频| 夜夜嗨av一区二区三区网站四季av| 久久久国产精品亚洲一区| 怡红院一区二区三区| 性欧美18xxxhd| 亚洲国产欧美一区二区三区丁香婷| 亚洲看片网站| 理论在线观看| 久久噜噜亚洲综合| 久久精品日产第一区二区三区| www.99视频| 国产一区二区伦理片| 国产精品视频网| 亚洲久久在线观看| 伊人成人在线视频| 国内精品美女av在线播放| 久久久久成人网站| 欧美日韩精品一区二区三区在线观看| 欧美一级在线观看| xxxx国产视频| 哺乳挤奶一区二区三区免费看| 日韩一级黄色大片| 国产精品无码自拍| 成人h动漫免费观看网站| 精品精品欲导航| 又粗又黑又大的吊av| gogo高清午夜人体在线| 午夜精品一区在线观看| 中文字幕无码精品亚洲35| 国产va在线视频| 岛国视频午夜一区免费在线观看| 黄色一级片播放| 人人视频精品| 欧美日韩免费高清一区色橹橹 | 亚洲欧美一区二区精品久久久| 久久久久久久久免费看无码| 免费成人网www| 中文字幕欧美国内| 国产真实乱在线更新| 午夜日韩电影| 26uuu日韩精品一区二区| 精品久久久久久久久久久久久久久久久久 | 激情欧美一区二区| 欧美成人午夜剧场免费观看| 黄色一级视频在线观看| 亚洲精品黄色| 国产精品成人免费电影| 国产日韩欧美一区二区东京热 | 水蜜桃av无码| 欧美猛男男男激情videos| 中文字幕久精品免费视频| 国产精品白嫩白嫩大学美女| 亚洲国产精品第一区二区| 国产成人jvid在线播放| 国产又粗又猛又黄又爽| 成人禁用看黄a在线| 欧美激情导航| www在线视频| 91美女视频网站| 视频在线一区二区三区| 在线电影福利片| 色综合中文字幕国产| 国产性生活一级片| 日韩精品免费一区二区夜夜嗨 | 日本免费新一区视频| 亚洲www在线观看| 日夜干在线视频| 国产一区不卡精品| 精品九九九九| 麻豆视频在线观看免费| 国产丝袜欧美中文另类| 国产精品波多野结衣| 自拍偷拍亚洲视频| 91精品国产欧美日韩| 中文字幕在线看高清电影| 91精品啪在线观看国产18| 69视频在线免费观看| 国产一区二区女内射| 久久亚洲一区二区三区明星换脸 | 在线观看www91| 岛国精品一区二区三区| 日韩一区二区在线免费| 日本一区二区三区四区视频| 99视频国产精品免费观看a| 国产日产欧产精品推荐色| 国产真实老熟女无套内射| 国产精品伦一区二区| 日韩国产精品一区| 久久久久久久久久91| 老司机免费视频一区二区| 日韩av三级在线观看| www.黄色片| 中文字幕人成不卡一区| av丝袜天堂网| 亚洲另类av| 性色av一区二区三区红粉影视| 国产精品日韩无码| 国产精品久99| 黄色片视频在线| sdde在线播放一区二区| 欧美专区在线视频| 五月天婷婷视频| 亚洲狠狠爱一区二区三区| 97超碰人人看| **女人18毛片一区二区| 国产欧美日韩精品丝袜高跟鞋| 国产专区在线| 亚洲欧洲成人自拍| 激情 小说 亚洲 图片: 伦| 国产精品一国产精品| 欧美一级免费视频| 日韩一卡二卡三卡四卡| 日韩精品视频一区二区| 欧美亚韩一区| 99re在线| 黑人精品视频| 亚洲第一网站男人都懂| 日韩av女优在线观看| 成人免费毛片app| 国产精品www在线观看| 97久久综合区小说区图片区| 色综合久久久888| 亚洲欧美另类综合| 午夜久久电影网| 免费在线观看你懂的| 另类av一区二区| 国产成人精品一区二区| 日本韩国一区| 在线观看网站黄不卡| 91资源在线播放| 美腿丝袜亚洲综合| 国产又黄又爽免费视频| 三级欧美日韩| 久久久亚洲国产天美传媒修理工| 色婷婷视频在线| 欧美日韩综合视频| 免费看黄色av| 加勒比av一区二区| 国产自产在线视频| 亚洲精品亚洲人成在线| 国产精品亚洲综合天堂夜夜| 国产日产一区二区| 亚洲成人动漫在线播放| www.久久精品视频| 18涩涩午夜精品.www| ass极品水嫩小美女ass| 亚洲美女网站| 亚洲女人毛片| 高清一区二区三区| 国产精品99久久久久久白浆小说 | 久久国产视频网站| 色呦呦免费观看| 欧美性色黄大片手机版| 久久国产免费观看| 久久精品人人爽人人爽| 三上悠亚 电影| 日日摸夜夜添夜夜添精品视频 | 六月婷婷一区| 大桥未久一区二区| 中文精品一区二区| 91在线精品观看| 欧美大片免费观看网址| 欧美日本精品在线| 国产区高清在线| 精品国内二区三区| 中文字幕自拍偷拍| 午夜国产精品一区| www欧美com| 久久精品人人做人人综合| 一区二区在线免费观看视频| 久久综合九色| www插插插无码视频网站 | www亚洲精品| 深夜福利在线看| 日韩欧美一区二区不卡| 波多野结衣人妻| 欧美日韩国产中文精品字幕自在自线 | 国产人成亚洲第一网站在线播放 | 亚洲日产国产精品| 久久久一二三四| 国产免费播放一区二区| 国产伦精品一区二区| 97久久精品一区二区三区的观看方式 | 三级黄色在线观看| 国产人成一区二区三区影院| 久久久久成人精品无码中文字幕| 国产一区二区三区综合| 污版视频在线观看| 日韩精品一级中文字幕精品视频免费观看 | 扒开伸进免费视频| 国产一区二区久久| 日本一二三区在线| 精品一区二区av| 中文久久久久久| 久久亚洲风情| 黄色a级片免费| 国产偷自视频区视频一区二区| 欧美精品久久久久久久自慰| 狠狠综合久久av一区二区老牛| 91在线观看免费高清| 亚洲奶水xxxx哺乳期| 最新的欧美黄色| 成人亚洲性情网站www在线观看| 精品夜色国产国偷在线| 午夜黄色小视频| 日韩电影免费观看在线观看| 亚洲欧美另类日韩| 亚洲第一福利在线观看| 丰满人妻一区二区三区免费视频| 91精品在线免费观看| 国产精品乱码久久久| 欧美精品久久久久久久久老牛影院| 1024手机在线视频| 亚洲天天做日日做天天谢日日欢| 女人十八毛片嫩草av| 国产欧美日韩视频在线观看| 精品无码人妻一区二区免费蜜桃 | 久久精品国产99国产| 亚洲综合欧美在线| 激情六月婷婷久久| 国产91在线免费观看| 国产成人av一区二区三区在线观看| 手机在线观看日韩av| 国产白丝网站精品污在线入口 | 99re热这里只有精品视频| 成年人的黄色片| 国产亚洲欧美日韩俺去了| 亚洲第一综合网| 中文字幕一区不卡| 青青操视频在线播放| 亚洲丶国产丶欧美一区二区三区| 日韩精品成人在线| 色婷婷综合久久久| 国产精品51麻豆cm传媒| 91精品国产色综合久久不卡蜜臀| 精品人妻少妇嫩草av无码专区| 亚洲国产成人在线播放| 久久伊伊香蕉| 久久久精品视频成人| 日本资源在线| 日本欧美中文字幕| 国产乱码精品一区二区三区亚洲人 | 丝袜亚洲欧美日韩综合| 伊人222成人综合网| 91精品国产91久久久久久最新| 写真福利精品福利在线观看| 91精品久久久久久久久久入口| 国产精品一区免费在线| 精品视频第一区| 欧美aaaaaaaaaaaa| 人妻少妇精品久久| 轻轻草成人在线| 美女露出粉嫩尿囗让男人桶| 久久精品夜色噜噜亚洲aⅴ| 一级性生活免费视频| 亚洲mv在线观看| 一级黄色短视频| 亚洲国产日韩精品在线| 日本福利在线| 97国产一区二区精品久久呦 | 成人免费视频网站入口| 国产精品一线天粉嫩av| 热久久最新地址| 国产精品片aa在线观看| 中文字幕一区二区三区乱码| 亚洲精品四区| 国产美女视频免费看| 91美女在线视频| 久久久精品视频在线| 欧美主播一区二区三区美女| 亚洲欧美强伦一区二区| 中文字幕亚洲情99在线| 美女在线视频免费| 亚洲综合色av| 成人写真视频| 欧美一区二区三区爽大粗免费| 精品一区二区在线播放| 亚洲第一成人网站| 亚洲成人中文在线| 国产又粗又长又大视频| 在线精品91av| 亚洲欧美小说色综合小说一区| **亚洲第一综合导航网站| 欧美军人男男激情gay| 久色视频在线播放| 国产 日韩 欧美大片| www.av成人| 欧美伦理视频网站| 国产私拍精品| 欧美在线视频一区| 卡一精品卡二卡三网站乱码| 先锋影音男人资源| 久久国产精品一区二区| 亚洲а∨天堂久久精品2021| 黑丝美女久久久| 天天色综合av| 海角国产乱辈乱精品视频| 日韩有吗在线观看| 黑人巨茎大战欧美白妇| 精彩视频一区二区三区| 女同久久另类69精品国产| 欧美日韩视频在线一区二区| 国产一区二区影视| 国产91精品网站| 精品国产一区二区三区小蝌蚪| www.爱色av.com| 91丨九色丨尤物| youjizz在线视频| 亚洲精品一区二区三区不| 亚洲精品永久免费视频| 美女主播视频一区| 久久不射网站| 无码 人妻 在线 视频| 91久久香蕉国产日韩欧美9色| 欧美成人综合在线| 国产成人一区二区在线| 欧美日韩黑人| 亚洲 国产 图片| 亚洲免费在线视频一区 二区| aa视频在线免费观看| 欧美激情在线狂野欧美精品| 国产免费不卡| 日本一区二区三区视频在线播放| 久久亚洲风情| 911国产在线| 日韩一区二区中文字幕| 牛牛电影国产一区二区| 精品久久一区二区三区蜜桃| 美女诱惑一区| 黄色免费一级视频| 欧美一区二区成人| av岛国在线| 日本福利一区二区三区| 美日韩一区二区| 美女的奶胸大爽爽大片| 欧美成人性战久久| 中文字幕21页在线看| 日韩国产精品一区二区三区| 寂寞少妇一区二区三区| 久久精品久久国产| 亚洲日本欧美日韩高观看| 日韩一级特黄| 免费拍拍拍网站| 国产喷白浆一区二区三区| 国产精品高潮呻吟久久久| 欧美激情视频在线观看| 亚洲97av| 国产美女视频免费看| 福利视频第一区| 国产色在线观看| 欧美精品一区在线| 国产最新精品精品你懂的| 日韩黄色精品视频| 中文字幕日韩精品在线| 最新国产一区二区| 亚洲精品怡红院| 亚洲线精品一区二区三区八戒| 黄色在线免费观看大全| 亚洲一区二区三区777| 久久免费国产| 日韩乱码一区二区| 久久精品国产视频| 久久综合亚洲|