Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: syssetup.dll
Показать сообщение отдельно

Extractor


Сообщения: 1422
Благодарности: 821

Профиль | Отправить PM | Цитировать


Цитата Jekson07:
В связи с этим хотелось бы знать, что конкретно было подправлено/изменено в патченном файле syssetup.dll: »
Ну только ж не syssetup.dll, а setupapi.dll был исправлен.

Исправления не в ресурсах, а исполняемом коде модуля в его внутренней функции GetModuleEntryPoint:

Код: Выделить весь код
.text:779562A4                 call    _pSetupGetFileTitle@4 ; pSetupGetFileTitle(x)
.text:779562A9                 push    eax
.text:779562AA                 push    ebx
.text:779562AB                 push    ebx
.text:779562AC                 push    ebx
.text:779562AD                 push    ebx
.text:779562AE                 push    [ebp+var_674]
.text:779562B4                 push    [ebp+var_63C]
.text:779562BA                 call    __VerifyFile@68 ; _VerifyFile(x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x)
.text:779562BF                 mov     [ebp+dwErrCode], eax
.text:779562C5                 cmp     eax, ebx
.text:779562C7                 jz      short loc_77956313
.text:779562C9                 mov     eax, [ebp+var_658]
.text:779562CF                 cmp     eax, ebx
.text:779562D1                 jnz     short loc_779562D9
.text:779562D3                 mov     eax, [ebp+lpMem]
.text:779562D9
.text:779562D9 loc_779562D9:                           ; CODE XREF: GetModuleEntryPoint(x,x,x,x,x,x,x,x,x,x,x,x,x,x,x)+225 j
.text:779562D9                 push    ebx             ; int
.text:779562DA                 push    ebx             ; int
.text:779562DB                 push    [ebp+var_63C]   ; int
.text:779562E1                 push    [ebp+dwErrCode] ; dwErrCode
.text:779562E7                 push    [ebp+arg_34]    ; int
.text:779562EA                 push    [ebp+arg_30]    ; int
.text:779562ED                 push    eax             ; int
.text:779562EE                 lea     eax, [ebp+szStart]
.text:779562F4                 push    eax             ; lpFileName
.text:779562F5                 push    [ebp+arg_28]    ; int
.text:779562F8                 push    [ebp+var_670]   ; int
.text:779562FE                 call    _pSetupHandleFailedVerification@40 ; pSetupHandleFailedVerification(x,x,x,x,x,x,x,x,x,x)
.text:77956303                 test    eax, eax
.text:77956305                 jnz     short loc_77956313
.text:77956307                 mov     eax, [ebp+var_648]
.text:7795630D                 mov     dword ptr [eax], 1
.text:77956313
.text:77956313 loc_77956313:                           ; CODE XREF: GetModuleEntryPoint(x,x,x,x,x,x,x,x,x,x,x,x,x,x,x)+21B j
.text:77956313                                         ; GetModuleEntryPoint(x,x,x,x,x,x,x,x,x,x,x,x,x,x,x)+259 j
.text:77956313                 cmp     [ebp+lpMem], ebx
.text:77956319                 jz      short loc_77956326
.text:7795631B                 push    [ebp+lpMem]     ; lpMem
.text:77956321                 call    _pSetupFree@4   ; pSetupFree(x)
.................
здесь по адресу .779562C7 команда условного перехода (условием является наличие/отсутствие цифровой подписи у модуля)
jz short loc_77956313
исправлена на команду безусловного перехода:
jmp short loc_77956313

С такой правкой в независимости от наличия/отсутствия подписи, переход осуществляется на ветку кода выполняемую при наличии цифровой подписи.

Подробней о механизме проблемы я писал в этом же топике, в посте #30.


По результатам просмотра реестра получился такой список установщиков классов устройств, подверженных сабжевой проблеме:

storprop.dll
SysSetup.dll
Desk.Cpl
MmSys.Cpl
mdminst.dll
NetCfgx.dll
printui.dll
nmwcdcls.dll
winscard.dll
sti_ci.dll
Batt.dll
btw_ci.dll
sdhcinst.dll
bthci.dll
wpd_ci.dll

Цитата Jekson07:
Я правда, в тестовый набор включил не только блокнот, но и все другие файлы, которые вызывают сообщение о батарее. »
А с этого места по подробней плиз! Какие еще файлы вызывают проблему батареи? Хотелось бы докопаться до сути...

-------
Мои проекты:
Системные: Fake-Setup Advanced | MSSTMake | UserMake
Оформление: WinstyleMonitor | Winstyle - Установка на "живую" систему | Windows 7 Universal Patcher | Панель персонализации для Windows 7 Starter & Home Basic
Уголок юного археолога: Внутренности Установщика WinXP

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:03, 29-01-2009 | #50

Название темы: syssetup.dll