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

Popular posts from this blog

c++ - Difference between pre and post decrement in recursive function argument -

php - Nothing but 'run(); ' when browsing to my local project, how do I fix this? -

php - How can I echo out this array? -