青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Error

C++博客 首頁 新隨筆 聯系 聚合 管理
  217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks

// 本質上來說就是自己設置了UnhandleExceptionFilter后,C運行庫或者其他什么別的函數也調用了,所以自己設置的就無效了,解決方案就是HOOK SET函數,讓別人無法取代自己

很多 C/C++ 程序會設置自己的 Unhandled Exception Filter 用于捕獲 Unhandled exceptions 并輸出一些信息(例如,創建 mini-dump 或者輸出調用棧到日志文件中)。

從 VC++2005 開始出于安全因素微軟改變了 CRT 的行為。在以下情況下 CRT 不會通知被注冊的 Unhandled Exception Filter:

  1. 調用了 abort() 并且設置 abort 的行為為 _CALL_REPORTFAULT(Release 版本默認使用此設置)
  2. Security Checks 失敗時,具體來說就是檢查到一些會引發安全問題的堆棧溢出時不會通知被注冊的 Unhandled Exception Filter,會引發安全問題的堆棧溢出包括:覆蓋了函數的返回值,覆蓋了 Exception handler 的地址,覆蓋了某些類型的參數。關于編譯器的 Security Checks 的內容,詳細參考:http://msdn.microsoft.com/en-us/library/Aa290051(注意,此文章談到的是 Visual Studio .NET 2003,其中 _set_security_error_handler 函數在 VC++2005 以及以上版本已經無法使用)
  3. 如果沒有調用 _set_invalid_parameter_handler 設置 Invalid parameter handler 時,檢查到了非法的參數

CRT 是通過何種方式使得我們注冊的 Unhandled Exception Filter 不被調用的?答案在 CRT 的代碼中:

  1. /* 代碼來源于 gs_report.c */
  2. /* Make sure any filter already in place is deleted. */
  3. SetUnhandledExceptionFilter(NULL);
  4. UnhandledExceptionFilter(&ExceptionPointers);

CRT 通過調用 SetUnhandledExceptionFilter 并傳遞參數 NULL 來清除用戶注冊的 Unhandled Exception Filter。如果期望用戶注冊的 Unhandled Exception Filter 總是被調用那么應該避免 CRT 中相關的清理代碼。做法之一就是修改 CRT 代碼并且編譯為靜態庫(微軟的 VC++ Libraries 開發 Lead Martyn Lovell 在 https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=101337&SiteID=210 談到過有關的問題),這里并不建議使用此做法。另外一種做法則是改變 SetUnhandledExceptionFilter 的行為,使得 CRT 對 SetUnhandledExceptionFilter 的調用不起任何作用(更加詳細的論述可以參考《Windows 核心編程》相關章節)。

  1. // 無法得知此代碼來源于
  2. #ifndef _M_IX86
  3. #error "The following code only works for x86!"
  4. #endif
  5.  
  6. // 此函數一旦成功調用,之后對 SetUnhandledExceptionFilter 的調用將無效
  7. void DisableSetUnhandledExceptionFilter()
  8. {
  9. void* addr = (void*)GetProcAddress(LoadLibrary("kernel32.dll"),
  10. "SetUnhandledExceptionFilter");
  11.  
  12. if (addr)
  13. {
  14. unsigned char code[16];
  15. int size = 0;
  16.  
  17. code[size++] = 0x33;
  18. code[size++] = 0xC0;
  19. code[size++] = 0xC2;
  20. code[size++] = 0x04;
  21. code[size++] = 0x00;
  22.  
  23. DWORD dwOldFlag, dwTempFlag;
  24. VirtualProtect(addr, size, PAGE_READWRITE, &dwOldFlag);
  25. WriteProcessMemory(GetCurrentProcess(), addr, code, size, NULL);
  26. VirtualProtect(addr, size, dwOldFlag, &dwTempFlag);
  27. }
  28. }

只需要在注冊 Unhandled Exception Filter 之后調用 DisableSetUnhandledExceptionFilter() 函數,那么之后所有對 SetUnhandledExceptionFilter 的調用都將無效,自然 CRT 也無法通過調用 SetUnhandledExceptionFilter 來清除用戶注冊的 Unhandled Exception Filter。

posted on 2015-05-15 02:17 Enic 閱讀(2683) 評論(0)  編輯 收藏 引用 所屬分類: 從零開始寫棋牌游戲平臺
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久www成人免费精品| 亚洲图片欧美日产| 国产精品九九久久久久久久| 国产精品国产三级国产专区53| 国产精品mv在线观看| 亚洲欧洲精品天堂一级| 久久亚洲春色中文字幕久久久| 亚洲日本成人网| 国内自拍一区| 欧美日韩亚洲国产精品| 欧美日韩一区二区在线播放| 在线精品视频在线观看高清 | 欧美三级欧美一级| 亚洲精品国产精品国自产观看浪潮 | 久久国产精品久久精品国产| 久久狠狠久久综合桃花| 亚洲精品国产精品乱码不99| 亚洲欧美日韩精品久久久久| 欧美精品免费观看二区| 精品51国产黑色丝袜高跟鞋| 欧美亚洲一区三区| 亚洲久久成人| 欧美v日韩v国产v| 亚洲欧美中文字幕| 欧美视频1区| 欧美在线三区| 这里只有精品电影| 欧美人妖在线观看| 亚洲国产精品久久久久久女王| 欧美一区二视频| 欧美一区二区三区免费看| 麻豆精品一区二区综合av| 尤物99国产成人精品视频| 亚洲精品123区| 另类图片国产| 亚洲婷婷在线| 一本色道久久99精品综合| 欧美日韩国产高清视频| 亚洲资源在线观看| 欧美一二区视频| 一区二区三区亚洲| 久久高清国产| 久久久久国产精品人| 亚洲视频第一页| 艳女tv在线观看国产一区| 91久久精品国产91久久性色| 精品成人免费| 久久精品亚洲一区二区| 国产精品一区久久久| 一区二区三区国产在线观看| 欧美影片第一页| 裸体女人亚洲精品一区| 亚洲黄色影片| 黄色成人免费观看| 亚洲午夜日本在线观看| 久久一二三区| 一卡二卡3卡四卡高清精品视频| 性欧美1819sex性高清| 欧美成人在线免费视频| 欧美日韩中文字幕在线| 亚洲国产91精品在线观看| 在线欧美日韩精品| 欧美日韩在线视频首页| 在线免费观看视频一区| 欧美极品一区| 欧美在线一二三四区| 99这里有精品| 亚洲激情国产| 一本色道久久综合| 国产精品五月天| 亚洲日本中文字幕| 狠狠干综合网| 欧美大片va欧美在线播放| 亚洲欧美中文日韩v在线观看| 欧美一区二区三区免费观看| 精品动漫3d一区二区三区免费版| 亚洲综合视频网| 亚洲精品中文字幕在线观看| 亚洲综合欧美| 久久久久久久97| 国产色爱av资源综合区| 欧美中文字幕在线播放| 99国产精品久久久久久久成人热| 欧美日韩一二区| 老鸭窝毛片一区二区三区| 午夜久久黄色| 亚洲欧美日韩精品在线| av成人毛片| 中文亚洲视频在线| 午夜国产精品影院在线观看| 欧美视频日韩| 欧美日韩国产成人| 国产精品日韩电影| 国产视频一区二区在线观看| 黄色精品网站| 99国内精品| 亚洲一级在线观看| 久久一区二区三区四区| 欧美女同在线视频| 欧美69wwwcom| 亚洲国产日韩欧美一区二区三区| 欧美成人综合一区| 亚洲高清视频的网址| 亚洲六月丁香色婷婷综合久久| 久久久www成人免费无遮挡大片| 99国产精品国产精品久久| 欧美日韩精品三区| 久久久夜精品| 一本色道久久88综合日韩精品| 亚洲自拍另类| 欧美一区二区三区久久精品| 亚洲欧美日韩在线一区| 国产综合av| 国产婷婷色综合av蜜臀av | 国产精品无码专区在线观看| 亚洲欧美日韩在线观看a三区 | 久久野战av| 国产精品日韩在线| 亚洲欧洲在线一区| 香港久久久电影| 久久亚洲国产精品日日av夜夜| 亚洲视频欧美在线| 亚洲综合色视频| 欧美一区二区观看视频| 久久香蕉国产线看观看网| 在线亚洲+欧美+日本专区| 亚洲福利一区| 日韩视频亚洲视频| 亚洲人成毛片在线播放| 性色av一区二区怡红| 亚洲小少妇裸体bbw| 国产欧美一区二区三区在线老狼 | 欧美专区在线播放| 亚洲欧美日韩第一区| 欧美国产日本韩| 国产精品qvod| 国产精品国产三级国产aⅴ浪潮 | 亚洲国产综合在线看不卡| 免费久久精品视频| 亚洲日本中文字幕免费在线不卡| 久久久久国色av免费观看性色| 老司机免费视频久久| 久久只精品国产| 亚洲精品国产视频| 久久精品国产清高在天天线| 亚洲精品国偷自产在线99热| 亚洲天堂久久| 国产精品久久久久毛片大屁完整版| 毛片基地黄久久久久久天堂| 男人天堂欧美日韩| 亚洲精品一区二区三区婷婷月| 亚洲国产精品ⅴa在线观看 | 亚洲激情偷拍| 亚洲免费视频观看| 91久久亚洲| 久久久精品国产99久久精品芒果| 欧美日韩色综合| 1000部精品久久久久久久久| 亚洲一区视频| 日韩视频一区| 国产精品国产a级| 亚洲在线视频免费观看| 欧美另类视频| 日韩视频一区二区| 亚洲人成网在线播放| 嫩模写真一区二区三区三州| 国产农村妇女毛片精品久久莱园子 | 久久丁香综合五月国产三级网站| 国产精品免费看片| 午夜一区不卡| 亚洲欧美视频| 狠狠入ady亚洲精品| 亚洲国产精品综合| 国产精品激情电影| 久久露脸国产精品| 欧美精品在线一区二区三区| 日韩一区二区精品视频| 亚洲综合激情| 亚洲精华国产欧美| 一本色道久久综合一区| 国产日本欧洲亚洲| 91久久精品国产91久久性色| 国产精品ⅴa在线观看h| 欧美在线一级va免费观看| 亚洲永久视频| 亚洲国产高潮在线观看| 亚洲视屏一区| 亚洲日本视频| 亚洲欧美视频一区| 99精品99| 欧美黄色免费| 欧美日韩精品免费看| 亚洲欧美日韩在线高清直播| 亚洲精品永久免费精品| 久久久久国产精品www| 性色av一区二区三区在线观看| 欧美久久久久久蜜桃| 亚洲精品乱码| 亚洲综合99| 伊人伊人伊人久久|