Oprettet søn. d. 21. februar 2010 kl. 17:18:32

azerty
azerty (6.985 point. Point ude: 0)

Udskiftning af kernefiler

Dette er et total-nørdet spørgsmål. Jeg kan godt forstå, hvis du - kære læser - ikke orker at læse det :-)

Anyway, here goes:

I en frisk Windows 2000-installation ligger flg. fire kernefiler...

ntkrnlmp.exe
ntkrnlpa.exe
ntkrpamp.exe
ntoskrnl.exe

i hhv.:

%SystemRoot%\Driver Cache\i386
%SystemRoot\System32\dllcache:

To af disse kernefiler er til stede i %SystemRoot%\System32:

ntkrnlpa.exe
ntoskrnl.exe

Ingen af filerne er system, skjulte eller skrivebeskyttede, og i registreringsdatabasen har jeg tilføjet værdien:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

0xffffff9d (4294967197)

... som efter sigende skulle slå Windows' automatiske genskabelse af systemfiler fra.


Jeg har for sjov prøvet at ombytte disse kernefiler med fire lettere modificerede kopier fra CMD med et lille trick. De modificerede kernefiler hedder nt*.ex_:

----------

@echo off

copy /y ntkrnlmp.ex_ "%SystemRoot%\Driver Cache\i386"
copy /y ntkrnlpa.ex_ "%SystemRoot%\Driver Cache\i386"
copy /y ntkrpamp.ex_ "%SystemRoot%\Driver Cache\i386"
copy /y ntoskrnl.ex_ "%SystemRoot%\Driver Cache\i386"

copy /y ntkrnlmp.ex_ %SystemRoot%\System32\dllcache
copy /y ntkrnlpa.ex_ %SystemRoot%\System32\dllcache
copy /y ntkrpamp.ex_ %SystemRoot%\System32\dllcache
copy /y ntoskrnl.ex_ %SystemRoot%\System32\dllcache

copy /y ntkrnlpa.ex_ %SystemRoot%\System32
copy /y ntoskrnl.ex_ %SystemRoot%\System32

rem original

ren "%SystemRoot%\Driver Cache\i386\ntkrnlmp.exe" ntkrnlmp.exe_old
ren "%SystemRoot%\Driver Cache\i386\ntkrnlpa.exe" ntkrnlpa.exe_old
ren "%SystemRoot%\Driver Cache\i386\ntkrpamp.exe" ntkrpamp.exe_old
ren "%SystemRoot%\Driver Cache\i386\ntoskrnl.exe" ntoskrnl.exe_old

ren System32\dllcache\ntkrnlmp.exe ntkrnlmp.exe_old
ren System32\dllcache\ntkrnlpa.exe ntkrnlpa.exe_old
ren System32\dllcache\ntkrpamp.exe ntkrpamp.exe_old
ren System32\dllcache\ntoskrnl.exe ntoskrnl.exe_old

ren System32\ntkrnlpa.exe ntkrnlpa.exe_old
ren System32\ntoskrnl.exe ntoskrnl.exe_old

rem newcopy

ren "%SystemRoot%\Driver Cache\i386\ntkrnlmp.ex_" ntkrnlmp.exe
ren "%SystemRoot%\Driver Cache\i386\ntkrnlpa.ex_" ntkrnlpa.exe
ren "%SystemRoot%\Driver Cache\i386\ntkrpamp.ex_" ntkrpamp.exe
ren "%SystemRoot%\Driver Cache\i386\ntoskrnl.ex_" ntoskrnl.exe

ren System32\dllcache\ntkrnlmp.ex_ ntkrnlmp.exe
ren System32\dllcache\ntkrnlpa.ex_ ntkrnlpa.exe
ren System32\dllcache\ntkrpamp.ex_ ntkrpamp.exe
ren System32\dllcache\ntoskrnl.ex_ ntoskrnl.exe

ren System32\ntkrnlpa.ex_ ntkrnlpa.exe
ren System32\ntoskrnl.ex_ ntoskrnl.exe

----------

DET VIRKEDE IKKE - desværre :-(

Der kommer ingen fejlmeddelelser undervejs i batchfilen, men efter genstart vil Windows ikke indlæses - opstarten går i stå efter den hurtige hvide bjælke i bunden af skærmen ("Windows 2000 starter"). Windows vil åbenbart ikke kendes ved de nye kernefiler.


Herefter bootede jeg computeren på en USB stick med MS-DOS og Winternals "NTFS for DOS" inkluderet + de modificerede kernefiler. Dermed fik jeg read/write-adgang til NTFS-partitionen og kunne manuelt udføre operationerne skitseret i ovenstående batchfil.

DET VIRKEDE HELLER IKKE - øv :-(

Samme fejl som før.

--

Nu kommer spørgsmålet:

Hvordan kan Microsoft lave en KB-opdatering, som uden videre opdaterer kernefilerne - endda uden at brugeren skal genstarte computeren? Hvad er det, som sådan en opdatering gør mere end at bytte kernefilerne ud. Er det en registreringsbase-setting - eller er det noget helt andet.

Jeg er bare nysgerrig...

På forhånd tak!

Skrevet man. d. 22. februar 2010 kl. 19:56:49| #1

azerty
azerty (6.985 point)
Nå, det var vist for tosset et spørgsmål..... holder det et par dage, inden jeg lukker.

Skrevet tir. d. 23. februar 2010 kl. 22:58:10| #2

azerty
azerty (6.985 point)
Fejl i scriptet ovenfor - jeg glemte %SystemRoot% et par steder:

Nyt, korrigeret script:

@echo off

copy /y "ntkrnlmp.ex_" "%SystemRoot%\Driver Cache\i386"
copy /y "ntkrnlpa.ex_" "%SystemRoot%\Driver Cache\i386"
copy /y "ntkrpamp.ex_" "%SystemRoot%\Driver Cache\i386"
copy /y "ntoskrnl.ex_" "%SystemRoot%\Driver Cache\i386"

copy /y "ntkrnlmp.ex_" "%SystemRoot%\System32\dllcache"
copy /y "ntkrnlpa.ex_" "%SystemRoot%\System32\dllcache"
copy /y "ntkrpamp.ex_" "%SystemRoot%\System32\dllcache"
copy /y "ntoskrnl.ex_" "%SystemRoot%\System32\dllcache"

copy /y "ntkrnlpa.ex_" "%SystemRoot%\System32"
copy /y "ntoskrnl.ex_" "%SystemRoot%\System32"

rem original

ren "%SystemRoot%\Driver Cache\i386\ntkrnlmp.exe" "ntkrnlmp.exe_old"
ren "%SystemRoot%\Driver Cache\i386\ntkrnlpa.exe" "ntkrnlpa.exe_old"
ren "%SystemRoot%\Driver Cache\i386\ntkrpamp.exe" "ntkrpamp.exe_old"
ren "%SystemRoot%\Driver Cache\i386\ntoskrnl.exe" "ntoskrnl.exe_old"

ren "%SystemRoot%\System32\dllcache\ntkrnlmp.exe" "ntkrnlmp.exe_old"
ren "%SystemRoot%\System32\dllcache\ntkrnlpa.exe" "ntkrnlpa.exe_old"
ren "%SystemRoot%\System32\dllcache\ntkrpamp.exe" "ntkrpamp.exe_old"
ren "%SystemRoot%\System32\dllcache\ntoskrnl.exe" "ntoskrnl.exe_old"

ren "%SystemRoot%\System32\ntkrnlpa.exe" "ntkrnlpa.exe_old"
ren "%SystemRoot%\System32\ntoskrnl.exe" "ntoskrnl.exe_old"

rem newcopy

ren "%SystemRoot%\Driver Cache\i386\ntkrnlmp.ex_" "ntkrnlmp.exe"
ren "%SystemRoot%\Driver Cache\i386\ntkrnlpa.ex_" "ntkrnlpa.exe"
ren "%SystemRoot%\Driver Cache\i386\ntkrpamp.ex_" "ntkrpamp.exe"
ren "%SystemRoot%\Driver Cache\i386\ntoskrnl.ex_" "ntoskrnl.exe"

ren "%SystemRoot%\System32\dllcache\ntkrnlmp.ex_" "ntkrnlmp.exe"
ren "%SystemRoot%\System32\dllcache\ntkrnlpa.ex_" "ntkrnlpa.exe"
ren "%SystemRoot%\System32\dllcache\ntkrpamp.ex_" "ntkrpamp.exe"
ren "%SystemRoot%\System32\dllcache\ntoskrnl.ex_" "ntoskrnl.exe"

ren "%SystemRoot%\System32\ntkrnlpa.ex_" "ntkrnlpa.exe"
ren "%SystemRoot%\System32\ntoskrnl.ex_" "ntoskrnl.exe"

---
men desværre - det duer ikke alligevel...

Skrevet ons. d. 24. februar 2010 kl. 06:39:37| #3

karise_larry
karise_larry (263.204 point)
www.ballade.dk
Men gennemføres ovenstående uden brok ? Eller hyr ?
Sæt evt. en
PAUSE
i slutningen...

Skrevet ons. d. 24. februar 2010 kl. 07:05:10| #4

azerty
azerty (6.985 point)
Nej, det gennemføres ikke - heller ikke i fejlsikret tilstand.

Metoden med at omdøbe den eksisterende systemfil til ".*_old (i stedet for at slette den eller overskrive den), virker på andre vigtige systemfiler, fx. msgina.dll.

Jeg læste om det på nettet, men kan desværre ikke finde siden igen.

Fidusen skulle være at starte i dllcache for at sikre, at Windows ikke straks overskriver med en original kopi fra netop dllcache.

Men det virker altså ikke med ntoskrnl.exe og ntkrnlpa.exe.

Jeg bruger også "pause" og "echo on" for at se processen. Der kommer ingen fejlmeddelelser, men som nævnt: Efter genstart vil Windows ikke indlæses.

Skrevet søn. d. 28. februar 2010 kl. 12:47:39| #5

Vandreren
Vandreren (20.335 point)
Vandreren
Virker ombytningen heller ikke, hvis du bruger Replacer (kræver genstart)?
http://www3.telus.net/ (...)

Hvis det heller ikke virker med Replacer, så ligger problemet måske snarere i de modificerede filer end i ombytningsproceduren.

Skrevet lør. d. 06. marts 2010 kl. 01:29:16| #6

azerty
azerty (6.985 point)
Jeg har prøvet Replacer.

Måske er det bare mig, der bruger programmet forkert. Men når jeg trækker de nye filer ind i cmd, får jeg at vide, at de "ikke er win-32" eller noget i den retning.

De modificerede filer virker fint, hvis jeg på installationscdrommen bytter med ud med de originale (efter slipstreaming af sp4 og alle nye opdateringer).

Man skal bare huske at omdøbe dem til NTOSKRNL.EX_ osv.

Skrevet tor. d. 10. juni 2010 kl. 23:05:14| #7


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Deling af filer mellem WinXP / Win7 / Mac OSX Snow Leopard

Oprettet den 24. marts 2011 kl. 09.46
2pretty4u giver 200 point for svar | Giv et svar »

Medion Akoya mini-bærbar

Oprettet den 25. april 2010 kl. 17.24
azerty giver 200 point for svar | Giv et svar »

Fjernkontrol af W2K pc og server

Oprettet den 28. februar 2010 kl. 23.30
pixiball giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger