2020.7.2日报:禁用IE的证书管理弹窗

2020-07-03 10:40:01 浏览数 (1)

IE有很多比较恶心的弹窗。一般是用put silient禁用。但ie的证书弹窗,禁用了的话,页面就不继续加载了。

目前发现有三种方法。一种是直接hook 掉InternetErrorDlg。直接不弹窗。注意hook 函数里不是直接返回0,

要:

        DWORD old_flags = 0;         DWORD return_bytes = sizeof(DWORD);         InternetQueryOption(hRequest, 99, &old_flags, &return_bytes);

        ignore_flags |= old_flags;         InternetSetOption(hRequest, 99, &ignore_flags, sizeof(ignore_flags));

这样设置一下。

第二种方法,翻了下windows源码,见:

privateineturlmoniappcnethttp.cxx

HRESULT CINetHttp::HttpSecurityProblem(HWND* phwnd, DWORD dwProblem)

里面有句_pHttSecurity->OnSecurityProblem(dwProblem);。

https://www.codesd.com/item/ignore-ssl-security-alerts-from-the-web-browser-in-the-console-application.html】

这文章写了怎么重载。不过我没看懂C 怎么实现。

三是逆向wininet的代码发现,会走CoInternetIsFeatureEnabled(0x14, 2). 这里也许可以设置一下。不过好像没成功。

参考:

https://chromium.googlesource.com/chromium/chromium/ /master/chrome_frame/urlmon_url_request.cc

G:mycodewxWidgets-3.1.3srcmswwebview_ie.cpp

     user32.dll!_DialogBox2@16()    未知    非用户代码。已加载符号。      user32.dll!_InternalDialogBox@24()    未知    非用户代码。已加载符号。      user32.dll!_DialogBoxIndirectParamAorW@24()    未知    非用户代码。已加载符号。      user32.dll!_DialogBoxParamW@20()    未知    非用户代码。已加载符号。      wininet.dll!_IsolationAwareDialogBoxParamW@20()    未知    非用户代码。已加载符号。      wininet.dll!LaunchDlg()    未知    非用户代码。已加载符号。      wininet.dll!LaunchInternetErrorDlg()    未知    非用户代码。已加载符号。      wininet.dll!InternetErrorDlg    未知    非用户代码。已加载符号。 >    fast_mb.exe!Hook_InternetErrorDlg 行 2391    C     已加载符号。      urlmon.dll!CINetHttp::HttpSecurity 行 4001    C     非用户代码。已加载符号。      urlmon.dll!CINetHttp::HandleHttpSecurityError 行 2214    C     非用户代码。已加载符号。      urlmon.dll!CINetHttp::QueryStatusOnResponse 行 2092    C     非用户代码。已加载符号。      urlmon.dll!CINet::QueryInfoOnResponse 行 6561    C     非用户代码。已加载符号。      urlmon.dll!CINet::INetQueryInfo 行 4306    C     非用户代码。已加载符号。      urlmon.dll!CINet::OnINetInternal 行 5793    C     非用户代码。已加载符号。      urlmon.dll!CINet::Continue 行 1447    C     非用户代码。已加载符号。      urlmon.dll!COInetProt::Continue 行 556    C     非用户代码。已加载符号。

>    user32.dll!_NtUserGetMessage@16()    未知    非用户代码。已加载符号。      user32.dll!_GetMessageW@16()    未知    非用户代码。已加载符号。      mshtml.dll!InternalShowModalDialog()    未知    非用户代码。已加载符号。      mshtml.dll!_ShowModalDialog@20()    未知    非用户代码。已加载符号。      ieframe.dll!CDocHostUIHandler::ShowErrorDialog()    未知    非用户代码。已加载符号。      ieframe.dll!CDocHostUIHandler::Exec    未知    非用户代码。已加载符号。      mshtml.dll!CWindow::ShowErrorDialog    未知    非用户代码。已加载符号。      mshtml.dll!COmWindowProxy::Fire_onerror    未知    非用户代码。已加载符号。      mshtml.dll!CMarkup::ReportScriptError    未知    非用户代码。已加载符号。      mshtml.dll!CActiveScriptHolder::OnScriptError    未知    非用户代码。已加载符号。      jscript9.dll!08638edd()    未知    非用户代码。无法查找或打开 PDB 文件。      jscript9.dll![下面的框架可能不正确和/或缺失,没有为 jscript9.dll 加载符号]    未知    未加载任何符号。      jscript9.dll!086395f0()    未知    非用户代码。无法查找或打开 PDB 文件。      jscript9.dll!0863958c()    未知    非用户代码。无法查找或打开 PDB 文件。      jscript9.dll!0863953b()    未知    非用户代码。无法查找或打开 PDB 文件。      msvcrt.dll!__CallSettingFrame@12()    未知    非用户代码。已加载符号。      msvcrt.dll!_CallCatchBlock2()    未知    非用户代码。已加载符号。      msvcrt.dll!std::bad_exception::_Doraise()    未知    非用户代码。已加载符号。      msvcrt.dll!___CxxExceptionFilter()    未知    非用户代码。已加载符号。      msvcrt.dll!___CxxExceptionFilter()    未知    非用户代码。已加载符号。      msvcrt.dll!___InternalCxxFrameHandler()    未知    非用户代码。已加载符号。      msvcrt.dll!___CxxFrameHandler()    未知    非用户代码。已加载符号。      ntdll.dll!ExecuteHandler2@20()    未知    非用户代码。已加载符号。      ntdll.dll!ExecuteHandler@20()    未知    非用户代码。已加载符号。      03ca0fc1()    未知    非用户代码      03ca0fc1()    未知    非用户代码      jscript9.dll!084c705b()    未知    非用户代码。无法查找或打开 PDB 文件。      jscript9.dll!084c4a62()    未知    非用户代码。无法查找或打开 PDB 文件。      jscript9.dll!08532b36()    未知    非用户代码。无法查找或打开 PDB 文件。      jscript9.dll!08553171()    未知    非用户代码。无法查找或打开 PDB 文件。

0 人点赞