Binärdaten aus Registry manipulieren - PowerShell oder Visual Basic Skript umsetzen

  • Nach fast 3h probieren gebe ich es auf und suche nun euren Rat:

    Es geht um Code für die Symbole im Info-Bereich / Tray Items um eines dauerhaft sichtbar zu machen ohne das der Benutzer dies von Hand machen muss.

    Auf jedem Windows Rechner gibt es folgenden Registry-Wert:

    HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify

    und dort dann den REG_BINARY Wert IconStreams

    Gemäß den Beispielen für PowerShell und Visual Basic möchte ich die Binärwerte des Registry-Werts auswerten.

    In dem Schlüssel stehen verschiedene Sektionen die immer 1640 Bytes lang sind:

    • 528 bytes – Path to the executable
    • 4 bytes – Notification visibility setting
    • 512 bytes – Last visible tooltip
    • 592 bytes – Unknown (Seems to have a second tool-tip embeded in it but the starting position in the block changes)
    • 4 bytes – ID

    Mindestens der Pfad zur Exe in den 528 Bytes ist ROT13 "verschlüsselt" (und wohl in UTF8)

    Ziel ist es ein bestimmtes Programm anhand des Pfades zu finden um dann den 4 Bytes "Notification" zu manipulieren.

    Ich scheitere schon daran aus dem Registry-Wert etwas lesbares zu machen (ROT13 rückwärts) (was ja auch gar nicht sein muss)

    Auch einen Programmnamen (bzw. Teile davon) in ROT13 => UTF8 => Binary zu wandeln um diesen in der Bytefolge zu suchen scheitert.

    Zudem bin ich nicht einmal sicher ob ich das richtig auseinander geschnitten habe ...

    Verstehen - meine ich - tue ich die Beispielprogramme. Aber wie nach AutoIt umsetzen.

    Die beiden Skripte aus den Links habe ich angehängt:

    PowerShell: NotifyIcon.ps1.txt von dieser Quelle: PowerShell

    Visual Basic: NotifyIcon.bas.txt von dieser Quelle; Visual Basic

    Beim PowerShell Artikel stehen auch noch mal die Einzelheiten.

    Danke für jeden Tipp,

    BLinz

  • Reicht dir folgendes als Ansatz?:

    Einmal editiert, zuletzt von AspirinJunkie (19. September 2017 um 10:30)