国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

記一次.NET某企業ERP網站系統崩潰分析

開發 前端
這次事故是由于 satrda 層面找不到文件路徑導致的程序崩潰,據朋友說在 C# 層面沒收到這種C++異常,確實當 C# 和 C++ 產生交互時經常會有各種奇怪的問題,我無意刪除你的,你無意干擾我的,大家都好自為之吧!

一:背景

1. 講故事

前段時間收到了一個朋友的求助,說他的ERP網站系統會出現偶發性崩潰,找了好久也沒找到是什么原因,讓我幫忙看下,其實崩潰好說,用 procdump 自動抓一個就好,拿到 dump 之后,接下來就是一頓分析了。

二:WinDbg 分析

1. 是什么導致的崩潰

windbg 有一個自動化的分析命令 !analyze -v 可以幫我們提前預診一下,就好像進醫院先在問詢臺那里過一下。

0:019> !analyze -v
CONTEXT: (.ecxr)
eax=14c9cd00 ebx=00000000 ecx=00000000 edx=00000000 esi=00000000 edi=14c9d664
eip=682a024a esp=14c9cfd4 ebp=14c9d018 iopl=0 nv up ei pl nz ac po nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000212
msvcr90!fprintf+0x34:
682a024a 83c414 add esp,14h
Resetting default scope

EXCEPTION_RECORD: (.exr -1)
ExceptionAddress: 682a024a (msvcr90!fprintf+0x00000034)
ExceptionCode: c0000417
ExceptionFlags: 00000001
NumberParameters: 0

PROCESS_NAME: w3wp.exe

ERROR_CODE: (NTSTATUS) 0xc0000417 - C

EXCEPTION_CODE_STR: c0000417

STACK_TEXT:
14c9d018 1766013b 00000000 176d9c60 17def1a8 msvcr90!fprintf+0x34
WARNING: Stack unwind information not available. Following frames may be wrong.
14c9d664 454c5153 75636578 203a6574 5332347b satrda!Writer_Write+0x4bb
000000c8 75636578 203a6574 5332347b 207d3230 0x454c5153
000000c8 17673623 17d538e8 17ded730 00000001 crypt32!profapi_NULL_THUNK_DATA_DLA <PERF> (crypt32+0x126578)
00000009 176604b6 14c9d74c 17ded730 17dae9c8 satrda!SATRDA_Proto_UnitTest+0x6c93
ffffffff 17654012 17dae9c8 17d538e8 17ded730 satrda!Writer_Write+0x836
17dae9c8 665fe072 14c9d74c 00000001 1765405b satrda!ConfigDSN+0xd0c2
...
160a0000 00000000 00000000 00000000 00000000 0x7071e31

FAULTING_SOURCE_LINE: f:\dd\vctools\crt_bld\self_x86\crt\src\fprintf.c

FAULTING_SOURCE_FILE: f:\dd\vctools\crt_bld\self_x86\crt\src\fprintf.c

FAULTING_SOURCE_LINE_NUMBER: 55

FAULTING_SOURCE_CODE:
No source found for 'f:\dd\vctools\crt_bld\self_x86\crt\src\fprintf.c'


SYMBOL_NAME: msvcr90!fprintf+34

MODULE_NAME: msvcr90

IMAGE_NAME: msvcr90.dll

STACK_COMMAND: ~19s; .ecxr ; kb

FAILURE_BUCKET_ID: INVALID_CRUNTIME_PARAMETER_c0000417_msvcr90.dll!fprintf

從錯誤信息看,問題是出在 satrda.dll 這個第三方庫,趕緊網上搜一下是這是何方神圣。

圖片

看樣子是一個連接數據庫的商業組件,接下來看下 FAILURE_BUCKET_ID: INVALID_CRUNTIME_PARAMETER_c0000417_msvcr90.dll!fprintf 信息,可以發現因為在調用 fprintf 函數時出現了參數錯誤,到這里我們將包圍圈極大的收縮了。

2. 為什么會出現參數錯誤

熟悉 C 語言 fprintf 函數的朋友都知道,它是用來向 文件 寫入數據的,類似 C# 的 WriteFile,既然報了參數異常,那就說明肯定在參數上出了問題,接下來看下它的簽名。

int fprintf(
FILE *stream,
const char *format [,
argument ]...
);

有了這些基礎之后切到 19 號線程觀察下它的調用棧。

0:019> ~19s; .ecxr ; kb 10
eax=14c9cd00 ebx=00000000 ecx=00000000 edx=00000000 esi=00000000 edi=14c9d664
eip=682a024a esp=14c9cfd4 ebp=14c9d018 iopl=0 nv up ei pl nz ac po nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000212
msvcr90!fprintf+0x34:
682a024a 83c414 add esp,14h
# ChildEBP RetAddr Args to Child
00 14c9d018 1766013b 00000000 176d9c60 17def1a8 msvcr90!fprintf+0x34 [f:\dd\vctools\crt_bld\self_x86\crt\src\fprintf.c @ 55]
WARNING: Stack unwind information not available. Following frames may be wrong.
01 14c9d664 454c5153 75636578 203a6574 5332347b satrda!Writer_Write+0x4bb
02 000000c8 75636578 203a6574 5332347b 207d3230 0x454c5153
03 000000c8 17673623 17d538e8 17ded730 00000001 crypt32!profapi_NULL_THUNK_DATA_DLA <PERF> (crypt32+0x126578)
04 00000009 176604b6 14c9d74c 17ded730 17dae9c8 satrda!SATRDA_Proto_UnitTest+0x6c93
05 ffffffff 17654012 17dae9c8 17d538e8 17ded730 satrda!Writer_Write+0x836
06 17dae9c8 665fe072 14c9d74c 00000001 1765405b satrda!ConfigDSN+0xd0c2
07 17ded730 63207463 2c44492e 6f532e63 632c7472 clr!CompressDebugInfo::CompressBoundariesAndVars+0x2d0
08 656c6573 2c44492e 6f532e63 632c7472 7261502e 0x63207463
09 656c6573 6f532e63 632c7472 7261502e 49746e65 0x2c44492e
0a 656c6573 69482e63 6e656464 4c2e632c 6c657665 Microsoft_Build_Tasks_v4_0_ni+0x2f2e63
0b 2c687461 6e656464 4c2e632c 6c657665 64646948 System_ServiceModel_Web_ni+0xf2e63
0c 69482e63 4c2e632c 6c657665 64646948 632c6e65 System_Runtime_Serialization_ni+0x226464
0d 6e656464 6c657665 64646948 632c6e65 6d6f432e 0x4c2e632c
0e 6e656464 64646948 632c6e65 6d6f432e 656e6f70 System_ServiceModel_ni+0x537665
0f 6c657665 632c6e65 6d6f432e 656e6f70 632c746e 0x64646948

從線程棧來看 msvcr90!fprintf 函數的第一個參數居然是 00000000 ,也就是說 *stream 這個參數為 NULL,難怪說參數異常!

3. 為什么 stream 為空

熟悉 C 的朋友應該知道 *stream 參數是通過 fopen 函數得到的,可能有些朋友有點混,這里就寫個簡單的模型吧。

int main()
{
FILE* pFile;
int n;
char name[100];

pFile = fopen("D:\\dumps\\myfile2.txt", "w");

gets_s(name, 100);

fprintf(pFile, "%s", name);

fclose(pFile);

return 0;
}

接下來我們到 dump 中尋找一下 fopen 函數,這個在線程棧上是沒有了,先提取出 msvcr90!fprintf+0x34 中的 RetAddr=1766013b 返回值地址到匯編窗口查找,截圖如下:

圖片

從圖中可以看到,esi 是 eax 給的,而 eax 是 call 返回值給的,不出意外 176D727Ch 中存的就是 fopen 函數,輸出如下:

0:019> u poi(176D727Ch)
msvcr90!fopen [f:\dd\vctools\crt_bld\self_x86\crt\src\fopen.c @ 123]:
682a01a2 8bff mov edi,edi
682a01a4 55 push ebp
682a01a5 8bec mov ebp,esp
682a01a7 6a40 push 40h
682a01a9 ff750c push dword ptr [ebp+0Ch]
682a01ac ff7508 push dword ptr [ebp+8]
682a01af e825ffffff call msvcr90!_fsopen (682a00d9)
682a01b4 83c40c add esp,0Ch

接下來我們需要提取 fopen 中的兩個參數,截圖如下:

圖片

第二個參數很好獲取就是 176D9C60h 的 ascii 表示,第一個參數獲取起來就麻煩了,我們需要詳細的如圖那樣推測當時的 esp 指向的位置。

0:019> da 14c9d074
14c9d074 "0810"
0:019> da 176D9C64h
176d9c64 "at++"

還原成 C 代碼大概就是:

FILE*  pFile = fopen("0810", "at++");

代碼大概是恢復出來了,那為什么會拋異常呢?windbg 有一個 !gle 命令可以查看當時發生了什么錯誤。

0:019> !gle
LastErrorValue: (NTSTATUS) 0 (0) - STATUS_SUCCESS
LastStatusValue: (NTSTATUS) 0xc000003a - { } %hs

接下來到微軟的官方文檔:https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/596a1078-e883-4972-9bbc-49e60bebca55 找一下這個 3a 到底表示啥意思,截圖如下:

圖片

從圖中看,原來是路徑不存在的錯誤,應該就是沒找到 0810 這個文件。

到這里就基本弄清楚了來龍去脈,應該是朋友的服務器有意或者無意清理了由 satrda 生成的 0810 文件,引發 satrda.dll 找不到文件路徑導致的程序崩潰,將這些信息提供給朋友之后,讓朋友去找 satrda 官網去了解下詳情,畢竟官方才是最清楚的。

三:總結

這次事故是由于 satrda 層面找不到文件路徑導致的程序崩潰,據朋友說在 C# 層面沒收到這種C++異常,確實當 C# 和 C++ 產生交互時經常會有各種奇怪的問題,我無意刪除你的,你無意干擾我的,大家都好自為之吧??????

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

2023-06-26 00:12:46

2024-03-28 12:56:36

2024-07-09 11:51:20

Windows線程池源碼

2023-06-29 17:55:00

.NET日志WinDbg

2025-10-29 01:11:00

.NET系統windows

2024-03-26 00:44:53

.NETCIM系統

2024-12-27 13:31:18

.NETdump調試

2024-06-04 10:54:34

.NET代碼程序

2022-10-25 14:17:01

.NET代碼程序

2024-05-31 12:56:06

.NET代碼方法

2024-07-12 11:20:34

.NET崩潰視覺程序

2024-06-13 17:09:55

2025-09-05 02:22:00

.NETCRM物流行業

2023-04-06 10:52:18

2022-10-13 18:40:05

.NETOA后端

2024-08-27 13:08:50

2024-07-01 13:00:24

.NET網絡邊緣計算

2024-11-29 10:06:59

2022-01-17 21:28:36

管理系統.NET

2022-10-10 17:52:08

CPUERP系統
點贊
收藏

51CTO技術棧公眾號

日韩一区二区不卡| 一本大道综合伊人精品热热| 国产精品第二页| 日本在线观看视频| 97久久精品人人澡人人爽| 亚洲淫片在线视频| 青娱乐极品盛宴一区二区| 色国产精品一区在线观看| 亚洲午夜精品久久久久久人妖| 亚洲深夜av| 国产精品视频大全| 国产精品亚洲综合在线观看 | 日本在线免费播放| 亚洲伊人色欲综合网| 国产男女在线观看| 精品一区二区三区在线观看国产| 成人情视频高清免费观看电影| 欧美偷窥清纯综合图区| 日韩专区在线播放| 中文字幕在线视频久| 欧美精品久久99久久在免费线 | 婷婷色播视频| 成人黄色网址在线观看| 图片区小说区区亚洲五月| 国内一区二区三区| 亚洲精品欧美日韩| 欧美疯狂party性派对| 日韩美女视频在线观看| 一区二区三区四区精品视频| 在线国产精品播放| 五月天av在线| 精品国产伦理网| www久久日com| 日韩一区二区三区三四区视频在线观看 | 伊人福利在线| 欧美精品色一区二区三区| 韩日在线视频| 欧美色欧美亚洲高清在线视频| 一个人看的免费网站www视频| 亚洲色图一区二区三区| 深夜黄色小视频| 久久久久亚洲综合| 日日碰狠狠躁久久躁婷婷| 久久久久久久综合色一本| 亚洲欧美另类动漫| 亚洲免费观看视频| 白虎精品一区| 色综合天天综合网国产成人综合天| 在线免费av观看| 欧美日韩国产精品一区二区三区四区 | 在线观看国产精品日韩av| 日韩天堂在线| 久久久国产一区| 97视频一区| 国产精品日韩一区| 中文一区一区三区免费在线观看| 国产精品免费视频一区二区| 亚洲女同在线| www.成年人视频| 久久新电视剧免费观看| xxxx影院| 欧美在线免费播放| 极品在线视频| 久久伊人免费视频| 国产精品一区二区三区av麻 | 超碰在线公开超碰在线| 欧美性黄网官网| 日本在线观看大片免费视频| 亚洲欧美日韩精品| 视频一区日韩精品| 国产精品成人一区二区| 亚洲另类黄色| 妺妺窝人体色www看人体| 国产精品国产精品国产专区不片| 在线看视频你懂得| 精品少妇一区二区三区免费观看| 福利精品一区| 国产精品日韩在线播放| 秋霞成人午夜伦在线观看| 成人亚洲视频在线观看| 欧美日韩国产综合新一区| xxxx另类黑人| 欧美一级电影久久| 久久青草久久| 欧美大尺度做爰床戏| 欧美午夜片在线看| 免费一级欧美在线观看视频| 国产精品久久久久久久久久三级| 日产国产欧美视频一区精品| 国产精品视频黄色| 91高清在线观看| 亚洲国产aⅴ精品一区二区三区| 国产精品视频区1| 久久se这里有精品| 青檬在线电视剧在线观看| 亚洲精品综合精品自拍| 精品久久视频| 欧美又粗又长又爽做受| 日韩欧美中文字幕在线播放| 天堂综合在线播放| 国产日韩三区| 中文字幕巨乱亚洲| 91白丝在线| 亚洲中国色老太| 久久欧美中文字幕| mm1313亚洲国产精品美女| 97成人精品区在线播放| 精品一区二区免费视频| 高清欧美一区二区三区| 91精品婷婷国产综合久久竹菊| 美女免费视频一区| 色综合久久中文字幕综合网| 天堂电影一区| 亚洲mm色国产网站| 成人丝袜视频网| 毛片在线免费| 欧美精品18videosex性欧美| 老司机午夜精品视频| 国产女优裸体网站| 综合国产在线视频| 午夜在线视频观看日韩17c| 蜜桃视频中文字幕| 色青青草原桃花久久综合| 99精品视频免费| 日本中文字幕高清视频| 精品国产欧美一区二区五十路 | 337p亚洲精品色噜噜| av一级亚洲| 亚洲精品美女久久7777777| 亚洲欧洲国产日韩| 成人在线视频播放| 57pao精品| 97se狠狠狠综合亚洲狠狠| 日本在线免费中文字幕| 人人做人人澡人人爽欧美| 亚洲经典三级| 四虎影视2018在线播放alocalhost| 欧美激情第6页| 国产福利91精品一区二区三区| av大片在线| 国产区一区二区| 亚洲国产wwwccc36天堂| 老司机精品在线| 欧美xxxxx在线视频| 深夜福利91大全| 成人性生交大片免费看中文 | 台湾天天综合人成在线| 日韩影片在线播放| 91福利社在线观看| 91欧美大片| 在线看视频你懂得| 国产女人精品视频| 亚洲成人在线免费| 日韩欧美大片| 男操女在线观看| 91九色露脸| 欧美精品第1页| 美女精品一区| 大片免费在线观看| 欧美一区二区三区成人久久片 | 欧美黑白配在线| 久热精品在线观看视频| 九色精品美女在线| 国产精品嫩草99a| 久久资源综合| 成年美女网站| 国产精品欧美日韩| 午夜伦理一区二区| 欧美精品成人| 91涩漫在线观看| 日本三级中国三级99人妇网站| 日韩欧美国产一区在线观看| 精品一区二区三区免费| 欧美理论影院| av黄色在线网站| 97超级碰碰碰| 精品国产乱码久久久久久天美 | 欧美日韩爱爱视频| 中文字幕 久热精品 视频在线| 欧美激情99| 欧美性极品xxxx做受| 国产精品网曝门| 欧美在线亚洲综合一区| 神马久久一区二区三区| 欧美视频一区| 国产精品午夜在线| 日韩免费看网站| 久久手机免费视频| 精品国产一区二区三区四区vr | 欧美xingq一区二区| 久久综合九色欧美综合狠狠| 国产一区二区三区精品视频 | 国产成人aaaa| 在线看片一区| 亚洲精品合集| 波多野一区二区| 国产成人精品一区二三区在线观看 | www.亚洲国产| 99视频+国产日韩欧美| 国产综合色在线观看|