![]() |
systeem opruimen
ik heb het idee dat er nogal eens wat dll's ed. achter blijven in mijn windows map nadat ik een programma verwijder. nu zit ik me af te vragen: zijn er programma's die kunnen zoeken of dll's ed gebruikt worden, of dat ze overbodig zijn? ik heb geen idee hoe zo'n programma moet heten :confused: :s
|
Ik denk niet dat er zoiets echt bestaat; omdat je gewoon niet 100% zeker kunt zeggen of een DLL overbodig is: als bv. MSN Messenger a.dll nodig heeft en je programma scant met MSN uit, dan zou a.dll niet gebruikt worden en dus overbodig zijn. Stel dat scenario nu eens voor met tientallen programma's; dan hou je enkel maar een soep over.
Misschien wel dat sommige regcleaners kunnen zien welke programma's niet meer geïnstalleerd zijn en dus ook wel dll's die daaraan vasthangen geen functie meer hebben, maar ik betwijfel het. Zelf doe ik mijn opschoonwerk met Crap Cleaner en dat werkt tot nu toe zeer goed. |
Ik kan me nog een optie herinneren uit een oude versie van norton systemworks, dat alles registreerde wanneer er een programma geinstalleerd werd.
Bestaat er nu ook zo'n programma?? |
Citaat:
|
ik heb geen idee waarom je dit zou doen.
|
Citaat:
Via de uninstall optie van je programma's of handmatig. Uninstall verwijderd (zolang het goed geconfigureert is) ook de .dll bestanden. |
Citaat:
scan alle schijven op exe's en dll's kijk welke dll's er in d eimport tables staan en evt met de loadlibrary aangroepen worden degene die neit gberuikt worden, kun je weggooien |
Mag je ons vertellen hoe je dit allemaal doet, warsocket.
|
Citaat:
Dan moet je nog steeds elk programma laten lopen, want zo uit zichzelf gebeurt er geen LoadLibrary. Bijkomend probleem bij jouw 'oplossing' is dat dll's niet (altijd) statisch ingeladen worden maar dat het evengoed dynamisch kan gebeuren (en dat is zowat het voordeel van een DLL): bijvoorbeeld CDex, daarmee kun je cd's omzetten naar muziek voor op je pc maar je kan zowel MP3 (lame.dll) als OGG (oggenc.dll / vobenc.dll ,geen idee eerlijk gezegd) laten uitspuwen. Maar het heeft weinig zin om telkens zowel lame.dll als oggenc.dll te laten openen. Je zou dus van elk programma alle functies moeten gebruiken en die kun je niet altijd gewoon maar simuleren (cd rippen kost harde-schijfruimte bijvoorbeeld) voordat je kunt zeggen of een bepaalde DLL nodig is of niet. Wat eventueel wel mogelijk zou kùnnen zijn, is elke EXE reverse-engineeren en alle LoadLibrary-calls analyseren. Het vervelende probleem waar je dan op botst is dat veel EXE's hiertegen beschermd zijn en in veel landen is het ook gewoon illegaal om zoiets uit te halen. Er is gewoon geen centrale databank in Windows waar staat of een DLL al dan niet gebruikt wordt. Volgens mij moet je je geen zorgen maken als je veel DLL's ziet staan, het is erger als je er mis (en van nature zitten er al veel DLL-bestanden bij Windows, tel daar nog Office en wat andere programma's bij en je hebt er duizenden). |
Citaat:
en zo ja dan kan dat.exe dynamisch library's laden en als dat kan kijk je in het .exe file welke dat zijn dat zie je aan dat het een call is naar Loadlibrary met een offset naar een string en als die string bijv kernel32.dll is dan weet je dat je die niet moet verwijderen staat een dll in de include van een .exe file dan niet weggooien staat loadlibrary in de include van een exe file dan niet weggooien kijk welke library's dynamisch geladen worden wordt bijvoorbeeld kernel32.dll dynamisch geladen dan niet weggooien in alle andere gevallen weggooien dus je maakt eerst een lijst van alle dll bestanden en dan streppe je ze weg als je in 1 .exe file (van alle exe files) aan 1 van bovenstaande eisen voldoet doet ie dat nadat alles bekenen is niet dan gooi je die dll weg het analyseren etc kan dan wel even duren maa raan het eind ben je alle dll's kwijt die je niet gebruikt tis natuurlijk wel een tijdje prograsmmeren maar dan heb je ook wat :) edit: en kijken of er een loadlibrary in ene bestand zit is neit illegaal tis gewoon scannen op een reeks bytes in je programma en dat doen zoveel programmas die ook niet illegaal zijn (denk aan virusscanners) |
Citaat:
Praktisch gezien kun je amper nagaan of een DLL níet gebruikt wordt, dus kun je er ook geen verwijderen (het is volgens mij irritanter om te zien dat een programma niet werkt omdat je eens honderd DLL's weggesmeten hebt dan dat je programma's wel werken). Traagheid van een computer wordt ook niet hoofdzakelijk veroorzaakt door veel DLL-bestanden (ze hebben wel een invloed in de zin dat als je er slechts 10 nodig zou hebben (wat niet het geval is) en je hebt er 15000 staan, dan duurt het wel lang). Het enige waar je misschien heil mee haalt is met de Access-tijden te vergelijken ;stel je hebt in 2004 een installatie verwijderd waarvan DLL's zijn overgebleven, die access-tijden staan dus ergens in het jaar 2004. Enige tricky part is dat je door het raadplegen van die tijden eigenlijk de tijd verzet naar vandaag. Er bestaan in de Windows API wel calls die dat niet doen, als ik me niet vergis). Maar dat is slechts uitzoeken of een bepaalde DLL al lange tijd niet gebruikt meer is, echt zeker ben je er nooit mee én bovendien werkt het enkel als die tijd echt lang genoeg geleden is (want 'al een week niet meer gebruikt' kan gewoon zijn dat je al die tijd een bepaald spel niet meer gespeeld hebt ofzo). |
Nja idd je moet in DLl's ook scannen of ze dll's aanroepen
en automatisch alles kunnen unpacken is ook wel een flinke klus maar nogsteeds niet onmogelijk, wel een grote uitdaging natuurlijk |
|
Citaat:
|
Alle tijden zijn GMT +1. Het is nu 03:27. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.