在安裝驅動過程中發生的問題

2021-06-19 20:01:11 字數 2465 閱讀 3766

在安裝驅動的過程中彈出如下的提示

使用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(

_in_  dword value

);

value [in]

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...