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

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 閱讀(2682) 評論(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>
            在线精品视频在线观看高清 | 国产精品日韩欧美一区二区| 国产欧美日韩在线| 一区二区av在线| 欧美成人高清视频| 久久成人精品视频| 欧美深夜福利| 亚洲午夜精品久久| 夜夜嗨av一区二区三区网站四季av| 理论片一区二区在线| 伊人成人开心激情综合网| 欧美一区二区在线| 亚洲欧美日韩国产另类专区| 欧美视频一区二区在线观看| 一区二区三区高清在线| 亚洲三级色网| 美女视频一区免费观看| 在线观看av不卡| 免费人成精品欧美精品| 老司机午夜精品| 亚洲黄色一区| 亚洲福利视频二区| 欧美日韩爆操| 午夜精品一区二区三区四区 | 欧美日韩成人综合在线一区二区| 亚洲免费av网站| 99v久久综合狠狠综合久久| 欧美涩涩视频| 久久国内精品自在自线400部| 亚洲欧美日韩在线不卡| 伊人一区二区三区久久精品| 亚洲第一网站免费视频| 欧美大片免费观看| 亚洲一区在线看| 欧美专区中文字幕| 亚洲欧洲在线视频| 99re在线精品| 国产欧美一级| 欧美国产欧美综合 | 在线看不卡av| 亚洲电影自拍| 欧美视频一区在线| 久久精品亚洲一区二区| 麻豆亚洲精品| 亚洲一区二区视频| 久久不射中文字幕| 日韩性生活视频| 亚洲综合欧美日韩| 亚洲国产视频一区二区| 亚洲视频一二三| 欧美成人综合| 欧美日本高清| 免费人成网站在线观看欧美高清| 国产精品一区二区久激情瑜伽| 久久精品人人做人人综合| 亚洲国产精品va| 亚洲色图在线视频| 在线播放中文一区| 在线视频亚洲一区| 亚洲国产一区二区在线| 亚洲一区二区网站| 亚洲国产综合91精品麻豆| 中文在线一区| 亚洲精品一区二区三区99| 亚洲欧美日韩精品在线| 日韩亚洲精品电影| 久久蜜桃香蕉精品一区二区三区| 中日韩在线视频| 久久亚洲私人国产精品va| 亚洲制服少妇| 欧美国产视频在线观看| 久久久久久久久久码影片| 欧美日韩国产精品成人| 欧美成人国产| 韩国成人福利片在线播放| 性色av一区二区三区| 一区二区黄色| 国产美女精品在线| aa级大片欧美| 亚洲精品色婷婷福利天堂| 久久久精品一品道一区| 欧美综合第一页| 国产精品视频区| 亚洲视频高清| 亚洲欧美日韩在线播放| 欧美日韩午夜激情| 亚洲日本欧美| 亚洲精品视频在线观看免费| 久久久www成人免费无遮挡大片| 亚洲欧美日韩国产成人| 欧美日韩激情小视频| 亚洲黄色在线观看| 亚洲精品一区二区三区四区高清 | 亚洲一区www| 欧美日韩三级| av不卡在线观看| 亚洲一区二区精品视频| 欧美日韩精品福利| 日韩午夜三级在线| 亚洲图片在区色| 国产精品成人在线观看| 一区二区动漫| 香蕉亚洲视频| 国产日韩亚洲欧美| 久久国产视频网| 裸体素人女欧美日韩| 亚洲国产成人精品视频| 欧美福利网址| 日韩视频在线你懂得| 亚洲午夜影视影院在线观看| 国产精品热久久久久夜色精品三区 | 久久久久91| 亚洲一区精品电影| 小黄鸭精品密入口导航| 国产精品香蕉在线观看| 亚洲性感美女99在线| 久久成人这里只有精品| 韩国三级电影一区二区| 久久免费高清| 亚洲人人精品| 亚洲综合电影| 国外成人免费视频| 欧美超级免费视 在线| 亚洲乱码国产乱码精品精| 亚洲综合二区| 国内一区二区在线视频观看| 六十路精品视频| 99精品国产热久久91蜜凸| 午夜欧美理论片| 在线电影一区| 国产精品美女www爽爽爽视频| 欧美一区二区三区久久精品| 欧美成人精品| 午夜精品三级视频福利| 激情亚洲一区二区三区四区| 欧美剧在线免费观看网站| 亚洲欧美一区二区三区在线 | 亚洲无人区一区| 另类激情亚洲| 亚洲一区二区三区精品在线观看| 国产性做久久久久久| 欧美—级a级欧美特级ar全黄| 亚洲欧美综合网| 91久久精品美女高潮| 久久狠狠亚洲综合| 亚洲最黄网站| 尤物yw午夜国产精品视频明星| 欧美精品一区二区视频| 久久精品国产一区二区电影| 日韩亚洲欧美在线观看| 欧美 日韩 国产一区二区在线视频| 制服丝袜激情欧洲亚洲| 雨宫琴音一区二区在线| 国产精品亚洲视频| 欧美日韩视频一区二区| 美女主播一区| 欧美亚洲色图校园春色| 一区二区激情视频| 亚洲福利视频二区| 蘑菇福利视频一区播放| 欧美一区二区三区四区高清 | 亚洲国产一区二区三区在线播 | 欧美高清视频在线观看| 欧美影院视频| 亚洲在线成人精品| 一区二区三区www| 亚洲黑丝一区二区| 久久综合九色99| 欧美永久精品| 午夜精品久久久久久久99水蜜桃 | 一区二区三区不卡视频在线观看| 在线观看三级视频欧美| 国产亚洲精品久久飘花| 国产精品试看| 国产精品久久久久久影视| 91久久精品一区二区三区| 欧美美女视频| 欧美激情中文字幕乱码免费| 免费在线观看一区二区| 一本一本大道香蕉久在线精品| 欧美久久电影| 欧美激情精品久久久久久| 久久综合电影| 久久免费国产| 久久亚洲欧美| 美女久久一区| 欧美激情一区二区久久久| 模特精品在线| 欧美大片91| 欧美日韩亚洲另类| 欧美性开放视频| 国产精品成人播放| 国产精品久久久久一区| 国产日韩av一区二区| 国产日产欧产精品推荐色 | 亚洲欧美日韩国产综合在线| 欧美亚洲视频| 久久蜜桃精品| 亚洲高清免费视频| 99在线精品视频|