Just nu i M3-nätverket
Gå till innehåll

"DLL redirection"


Jojja

Rekommendera Poster

Skulle installera ett "äldre" program på window2k, och då ville detta program skriva över en skyddad dll fil. Eftersom Windows inte gillar detta, så återställde WFP det snabbt som attan….det visar sig som bekant i System event loggen

 

Men alldeles nyss, så fick jag reda på en grej som "tvingar" win2k/program att inte söka efter "sin" dll fil i \system32 mappen, utan i sin egen mapp…

 

Detta kanske är känt för alla som inte är lika ovetande som mig

 

Först är disabla WFP i registret, boota om och installera ditt "gamla" program. När det är installerat leta åt på den dll som är problemet, och sno den till ett bra ställe. Återställ funktionen WPF i registret, och starta om.

 

Ta dll filen och lägg den i mappen som du installerade programmet. Ex "c:\no_go".

Om du nu skulle sätta igång "no_go.exe" då skulle den söka efter sin dll fil i \system32\ och där finns den ju inte, för Windows har ju återställt den…..men det enda som man behöver göra då är att, va säker på att man har lagt dll filen i installations mappen "c:\no_go" och för att få Win2k att kolla i den mappen först och inte i \system32\ är att skapa en fil som heter (om nu exe filen heter no_go.exe) "no_go.exe.local" i c:\no_go

 

Som sagt detta "DLL redirection" är rätt tufft och ny grej för mig….

 

 

 

//Dreben

_____________________________________________

Länk till kommentar
Dela på andra webbplatser

Hmm.. jag har aldrig stött på ett program som inte letar efter sina dll-filer i PROGDIR först, innan det letar i windowsmapparna. Var inte medveten om att det gick att påtvinga detta :)

 

Minns att jag hade en krånglande Adobe-installation en gång i tiden (en jääävla massa dll'er som röste i i WINDIR) vars dll-filer jag flyttade till programmappen istället för att underlätta flytt och ominstallation av operativsystem.

 

[inlägget ändrat 2002-06-13 11:04:15 av Weyland]

Länk till kommentar
Dela på andra webbplatser

 

Mmm.. de borde leta i progdir först... men.. om en annan version av DLL-filen redan är laddad, så borde den inte ladda den alls, utan använda den som ligger i minnet. Är den laddade för gammal för programmet så kommer Windows att klaga.

 

Kan man "tvinga" den att ladda in en ny kopia m.h.a. .local? (Program i XP kan tydligen använda någon XML-fil för att fixa "isolerade" program - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sbscs/sxsstart_4i3p.asp)

 

Ciao,

Anders

 

Länk till kommentar
Dela på andra webbplatser

Det har du förstås rätt i.

 

Klart givande tråd oavsett, poäng till skaparen osv...

 

--

.Weyland

 

2. Everything around us can be represented and understood through numbers.

 

Länk till kommentar
Dela på andra webbplatser

Nä, det är rätt ovanligt, men under NT 4 så hände det att programet man installerade helt sonika deletade/bytte ut dll, exe, ocx sys filer mot sina egna mer anpassade för programet i fråga är NT´s org, så denna grej är bara egentligen till om man installerar NT progg på en WIn2k.

 

 

 

Dreben

_____________________________________________

 

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...