在安裝驅動的過程中彈出如下的提示
使用spy++發現是odbcconf.exe
用procexp 發現
原來是安裝包在呼叫
rundll32 setupapi,installhinfsection defaultinstall 132 c:\programfiles\estsandbox\estboxdrv.inf
時候呼叫了runonce.exe 然後runonce 呼叫了odbcconf.exe
baidu 一下發現
hkey_local_machine\software\microsoft\windows\currentversion\runonce\setup\
configuring dataaccess components
指向了
c:\windows\system32\odbcconf.exe/e /f "c:\windows\system32\odbcconf.tmp
為什麼setupapi 的 installhinfsection 會執行runonce 呢
使用windbg 執行 rundll32 setupapi,installhinfsection defaultinstall 132 c:\programfiles\estsandbox\estboxdrv.inf
在 createprocessa 和 createprocessw下斷點
發現斷在了
反彙編如下:
lstatus __userpurgepsetupinstallstopex(char a1, int a2, char a3, int a4)
else
else
v9 = (const byte *)(a3 & 1 ?l"grpconv -u" : l"grpconv -o");
v5 = regsetvalueexw(hkey,l"grpconv", 0, 1u, v9, 0x16u);
if ( v5 )
v17 = v5;
}if ( !a2 || globalsetupflags & 1 )
else}}
while ( v7 == 192 );
if ( v7 == 258 )
psetupwritelogentry(v15, 16,0xeed1u, 0, a1);
closehandle(processinformation.hthread);
closehandle(processinformation.hprocess);
}else
}result = v17;
}} return result;
}
在 globalsetupflags& 4 不成立的時候就執行它,那麼如何讓 globalsetupflags = 4 呢?
查詢 globalsetupflags 引用 在函式
psetupmodifyglobalflags
中有其改動
int __stdcall psetupmodifyglobalflags(int a1, int a2)
而事實上
void psetupsetglobalflags(value [in]_in_ dword value
);
the flags used to disable user inte***ce or automatic backup.
value
meaning
pspgf_noninteractive0x004
set to disable user inte***ce.
pspgf_no_backup0x002
set to disable automatic backup.
引數可以設定為
pspgf_noninteractive,在nsis 中使用 system::call 呼叫
psetupsetglobalflags 先設定global flags 然後再安裝inf:
system::call "setupapi::psetupsetglobalflags(4)"
system::call 'setupapi::installhinfsection(0,0,t "defaultuninstall 132 $instdir\estboxdrv.inf",0)'
就不彈出框了。
重啟動後那個框又出現了,最後安裝後將登錄檔中那項清除就ok了。
預設實參在函式體呼叫過程中發生改變的情況
預設實參初始值 某些函式的形參在很多次呼叫的過程中被賦予乙個相同的值,此時我們把這個反覆出現的值稱為函式的預設實參。區域性 變數不能作為預設實參,而且當預設實參的求值過程發生在函式呼叫的過程中,會出現相應變化。sz wd 80 char def sz ht 在函式體外對wd,def,ht宣告 str...
女友公升級到老婆的過程中發生的bug
親愛的技術支援 我急需您的幫助。我最近將 女朋友7.0 公升級到 妻子1.0 發現這個新程式意外地啟動了孩子生產程式,而且占用了大量的空間和珍貴的資源。這在產品的使用手冊中沒有提到。此外 妻子1.0 自動將自己安裝到其他的所有的程式中,它隨系統同時啟動,監控整個系統的狀態。男人夜出2.5 和 高爾夫...
開機過程中發生宕機故障的診斷與排除
開機過程中發生宕機故障的診斷與排除 在啟動計算機時,只聽到硬碟自檢聲而看不到螢幕顯示或開機自檢時發出報警聲,且計算機 不工作或在開機自檢時出現錯誤提示等。1,開機過程中出現宕機的原因 bios設定不當。膝上型電腦移動時裝置遭受震動。灰塵腐蝕電路及介面。記憶體條故障。硬體裝置質量問題。硬體相容問題。b...