[WinXP] Info: Was ist der ARPCache?

B

Brummelchen

Gast
Info: Was ist der ARPCache?

Aus bestimmten Anlässen muss ich mich hin und wieder mit Windows 'indeep'
beschäftigen und dann kommen solche Dinge zu Tage.

ARPCache - oder:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache

Da stehen auf den ersten Blick ein paar Unterordner mit Nummern ({FF77941A-...}
und evtl Ordner, die auf "_is" enden, drin.

Die Nummern kommen von InstallShield und "_is" bzw "_is1" ist InnoSetup.
In den Ordnern selber steht als Eintrag "Changed" und "SlowInfoCache",
was auch immer das ist, entweder viele Nullen (weil DWORD) oder ein
Link zu einer Datei (in UniCode).

Interessanterweise finden sich dieselben Ordner auch hier wieder:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Aber es müssen nicht alle Ordner aus "Uninstall" unter "ARPCache" stehen.

Ich habe dazu gesucht und auch etwas gefunden:
http://www.wilderssecurity.com/showthread.php?t=47155&page=3

It appears that Windows goes out of it's way to break itself. The information for each entry in the Add/Remove panel is found in the registry under HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\AppName.
Additional information is in the registry under HKLM...\CurrentVersion\App Management\ARPcache\AppName, in a subkey call SlowInfoCache.

The AppName entry under ARPcache is created when Add/Remove Programs is started, if it does not already exist. I've not determined what all the bytes in the subkey mean, but there is a filename field and a "has icon" flag in it.
When the AppName/SlowInfoCache is created, the filename to place in the entry appears to be determined as follows: The value of HKLM...Uninstall\AppName\DisplayName is used to search for a directory of that name under C:\Program Files. If the directory exists, and it contains a file with a .exe extension, then that filename is placed in the SlowInfoCache subkey. It also turns on a flag indicating that the found file contains the icon to be displayed in the Add/Remove Programs entry. This flag is always turned on, regardless as to whether any icons exist in the file or not. The flag is only turned of if SlowInfoCache is created at the same time as the ARPcache\AppName key. If SlowInfoCache is deleted (but ARPcache\AppName is not), it is recreated when Add/Remove Programs is started, and the "has icon" flag will not be turned on (nor will the filename be populated).

If the found file format is such that it contains something that looks enough like an icon, Add/Remove Programs will attempt to use it. Hence, the "gap" appears in the filename list for this application entry. Depending on what is actually in the file, I suspect that the "gap" may appear in different forms.

The "has icon" flag appears to be the fifth byte in the SlowInfoCache byte string. The first few bytes will probably appear as 28 02 00 00 01 00 00 00.
If the 01 is edited to a 00, the Add/Remove Programs applet will then display the application entry correctly (with a default icon).

Dazu gibt es auch ein Blog, was das noch genauer erklärt:
http://blogs.msdn.com/oldnewthing/archive/2005/05/26/422076.aspx

Um aber bei dem obigen Text zu bleiben.

Wenn unter "Uninstall\<applikation>" kein Schlüssel "DisplayIcon" steht,
versucht Windows im entsprechenden Installationsordner die nächstbeste
EXE-Datei mit Icon zu finden und verewigt diese im ARPCache.
Wird ein Icon gefunden, ist das 5. Byte 01 und dahinter der Name in Unicode,
falls nicht, 00 und kein Name. Falls "DisplayIcon" fehlt, wird das gefundene
Icon angezeigt in der "Systemsteuerung > Software"

Das besagte Thema bei Wilders ging um eine Lücke (gap) in der Entfernen-Liste.
Tatsache ist aber, dass Windows den ARPCache neu erstellt, sobald man
den Punkt in der Systemsteuerung aufruft. Von daher ist es unerheblich,
ob er versehentlich gelöscht wird oder nicht. Blöd ist nur, dass dort auch
hin und wieder Einträge stehen, die schon lange weg sind.
Da ist dann der Programmierer der Installationsroutine gefragt, nachzubessern ;)
 

Fireball

treuer Stammgast
Address Resolution Protocol

Hi!

Das ist der Cache für ein Protokoll, das für die Zuordnung "IP-Adresse zu Mac-Adresse" sorgt.
mehr unter

http://www.tcpipguide.com/free/t_ARPCaching.htm

oder für die, die die für die Netzwerktechnik unumgängiche Englische Sprache scheuen...

http://www.schoenbuchsoft.de/Grundlagen/jon2/chapter4/jon4.06.html

;)

P.S. Wenn man von der Netzwerktechnik nur oberflächliche Grundlagenkenntnisse hat würd ich die Finger davonlassen, sonst ists schnell aus mit DSL :eek: :sleep
 
Zuletzt bearbeitet:
Oben