ХП? ну да, канешна! однако какой там 'джуст-фор-фан? ' ...никакого!
Мне вот win2k рулит.. Перейдя на нее с win9X, меня изрядно поразила стабильность и мощь этого рулёза...

Однако будучи избалован, вседозволеностью в глюкавых кланах Win9х, таким как например различные махинации с системными библиотеками (вплоть до почти-полного уничтожения содержимого каталога windows\system\), мне в корне не понравилась строгость 2000-ысячной энтяры, и вся её абсолютно не впавшая мне (еще как и программеру) безопаснось.. Как ассемблерщик в душе, но дельфист в основной практике, меня не устраивала невозможность удаления или изменения компонентов (не говоря уже про чтение-запись в порты!) этой враждебно-настроеной к моим действиям системы, корпорации Мракосакс, которая планировала держать меня в стойле в понятно какой позе...
итак.. основной главный враг 'джаст-фор-фановца' являлась служба SFC, расположеная в интуитивно понятных динамических либах sfc.dll/sfcfiles.dll что она делалет? ну разумееться защищает файлы от изменения, мало того, создает какой то кэш, от души набитым копиями этого 'добра' чутли не на 200метров! С этим безобразием я в первую очередь и решил бороться - ибо мне в этой системе всетаки жить и работать, захотелось.
Поэтому быстра установив FAR+Hiew+IDAPRO + всякие компилеры, я погрузился всиний экран консоли, и начал иследовать, внутрености windows2000 SP2 (время от времени рубаясь в гамы

)
По началу, тот факт, что в sfc.dll/sfcfiles.dll (довольно увесистые по обьёму) впилась хренова туча либ, собого энтузиазма не вызывал, однако я все же сделал несколько редакций заглушек ушлёпок, на эти левые диелелки, даже не смотря на то что экпорты функций в них были сделаны как ординалы (что то напоминает обфускацию).
Цитата
;SFCFILES.DLL
.386
.model flat
.code
public ord1
ord1 proc near;
xor eax, eax
retn 0Ch
ord1 endp
public SfcGetFiles
SfcGetFiles proc near
arg_0 = dword ptr 4
arg_4 = dword ptr 8
xor ecx, ecx
mov eax, [esp+arg_0]
mov [eax], ecx
mov eax, [esp+arg_4]
mov [eax], ecx
xor eax, eax
retn 8
SfcGetFiles endp
end
;;;;;;;;;;;DEF-файл;;;;;;;;;;;;;;;;;;;
EXPORTS
ord1 @1 NONAME;RESIDENTNAME
SfcGetFiles @2
;;;;;;;;;строка сборки;;;;;;;;;;;;;;;;
ml /c /coff sfcfiles.asm
LINK /ALIGN:0x20 /DLL /DEF:sfcfiles.def /NOENTRY sfcfiles.obj
Цитата
.386
.model flat
.code
public ord1
ord1 proc near;
ret 18h
ord1 endp
public ord2
ord2 proc near;
retn
ord2 endp
public ord3
ord3 proc near;
retn 4
ord3 endp
public ord4
ord4 proc near;
retn 4
ord4 endp
public ord5
ord5 proc near;
retn 0Ch
ord5 endp
public ord6
ord6 proc near;
retn 08h
ord6 endp
public ord7
ord7 proc near;
retn
ord7 endp
public ord8
ord8 proc near;
mov eax, 078h
retn 0Ch
ord8 endp
public ord9
ord9 proc near;
mov eax, 078h
retn 0Ch
ord9 endp
public SfcGetNextProtectedFile
SfcGetNextProtectedFile proc near
xor eax, eax
retn
SfcGetNextProtectedFile endp
dummy proc near
xor eax, eax
retn 4
dummy endp
end
;;;;;;;;;;;DEF-файл;;;;;;;;;;;;;;;;;;;
EXPORTS
ord1 @1 NONAME
ord2 @2 NONAME
ord3 @3 NONAME
ord4 @4 NONAME
ord5 @5 NONAME
ord6 @6 NONAME
ord7 @7 NONAME
ord8 @8 NONAME
ord9 @9 NONAME
SfcGetNextProtectedFile @10
dummy
;;;;;;;;;строка сборки;;;;;;;;;;;;;;;;
ml /c /coff sfc.asm
LINK /ALIGN:0x20 /DLL /DEF:sfc.def /NOENTRY sfc.obj
Итак, произведеный продукт, был крошечными (менее килобайта) dll -ушлепками-заглушками, практически не напрягающими мой процессор.. Перезагрузившись в DOS/Win98, защита системных файлов windows2000 была деактивирована, путем замены ее либ, более продвинутыми релизами, которые по сути ничего не делают

)) и это - правильно!