internet explorer - Why DWebBrowserEvents2::NewProcess() receives pWB2==NULL in second parameter -
this dispatch known dispid_newprocess
.
if start new iwebbrowser2
cocreateinstance(clsid_internetexplorer)
, default start in protected mode (you can see in internet options | security | internet | enable protected mode). however, if navigate()
url in "trusted sites" list, need open without protected mode. ie silently create new process, invalidate old iwebbrowser2
, create new iwebbrowser2
. iwebbrowser2
becomes useless, problem.
however, ie supposed fire dispid_newprocess
event, should have idispatch*
new process in second parameter.
the problem pwb2
parameter contain null
.
i have debugged ie, , found out parameter have null
if protectedmode (low integrity) iwebbrowser2
becoming non-protectedmode (medium integrity) iwebbrowser2
.
details:
the interesting code located in ieframe!cieframeauto::_handleprotectedmoderedirect()
. call ieframe!isprotectedmodeprocess()
, based on results call either fireevent_newprocess()
pwb2
parameter explicitly set null, or fireevent_newprocess()
pwb2
parameter containing value.
i believe reason security. otherwise start low integrity iwebbrowser2
low integrity application, navigate trusted url, , hold on medium-integrity iwebbrowser2
, privilege escalation.
Comments
Post a Comment