Laden...

Lesen von CustomDestinations-ms Dateien

Erstellt von rollerfreak2 vor 11 Jahren Letzter Beitrag vor 11 Jahren 6.703 Views
rollerfreak2 Themenstarter:in
916 Beiträge seit 2008
vor 11 Jahren
Lesen von CustomDestinations-ms Dateien

Hallo zusammen,

kennt einer von euch einen Weg mit Hilfe von C#/Win API eine *.customDestinations-ms Datei in ein lesbares Format zu Übersetzen? Der Jump List Parser übersetzt das in eine Textdatei die man sehr lesen kann hat aber keine offene API!

Again what learned...

309 Beiträge seit 2008
vor 11 Jahren

Es geht um die Jump Lists, richtig?

Schau mal hier und insbesondere das verlinke PDF an:

Forensics Wik: Jump Lists

using System;class H{static string z(char[]c){string r="";for(int x=0;x<(677%666);x++)r+=c[
x];return r;}static void Main(){int[]c={798,218,229,592,232,274,813,585,229,842,275};char[]
b=new char[11];for(int p=0;p<((59%12));p++)b[p]=(char)(c[p]%121);Console.WriteLine(z(b));}}

rollerfreak2 Themenstarter:in
916 Beiträge seit 2008
vor 11 Jahren

Es geht um die Jump Lists, richtig?

JA!

Auf den Wiki Eintrag bin ich auch schon gestoßen, dort hab ich auch das Tool gefunden. Aber ich finde dort kein verlinktes PDF! Kannst du bitte einen konkreten Link posten?

Edit: Jump List Analysis ist recht interessant. Dort heißt es:

The *.customDestinations-ms files are apparently just a series of LNK format streams appended to each other.

Heißt ich brächte nur einen Reader für MS-SHLLINK bzw. eine C# API. Bis jetzt hab ich aber nichts passendes gefunden!

Again what learned...

309 Beiträge seit 2008
vor 11 Jahren

Servus,

hoppla, sorry. X(

Das Dokument das dort verlinkt sein sollte findest du hier:

[MS-SHLLINK]: Shell Link (.LNK) Binary File Format

Im forensic Wiki heißt es ja auch:

Custdest files reportedly follow a structure of sequential MS-SHLLINK binary format segments.

Mit den Infos zum binären Format zu MS-SHLLINK solltest du problemlos einen eigenen Reader schreiben können, einen fertigen Reader/API gibt es glaube ich nicht.

using System;class H{static string z(char[]c){string r="";for(int x=0;x<(677%666);x++)r+=c[
x];return r;}static void Main(){int[]c={798,218,229,592,232,274,813,585,229,842,275};char[]
b=new char[11];for(int p=0;p<((59%12));p++)b[p]=(char)(c[p]%121);Console.WriteLine(z(b));}}

rollerfreak2 Themenstarter:in
916 Beiträge seit 2008
vor 11 Jahren

Mit der Spezifizierung sollte es schon gehen einen Reader zu implementieren, jedoch bin ich kein Fan von "Erfinde das Rad 2 mal"! Ich kann mir kaum vorstellen das ich der einzige bin der sowas braucht bzw. gebraucht hat....!

Again what learned...

F
10.010 Beiträge seit 2004
vor 11 Jahren

Naja, scheinbar schon.

Was meinst du denn mit den Files machen zu wollen, das du das brauchst?
Viele Wege führen nach Rom, es gibt da ja evtl einen besseren für dich.

rollerfreak2 Themenstarter:in
916 Beiträge seit 2008
vor 11 Jahren

Ich kann es ja mal versuchen zu erklären. Hat etwas mit JumpList CustomCategory Listenverwaltung zu tun. Ich habe eine JumpList (JL) (WindowsCodePackAPI) welche in der ich CustomCategories (CG) anzeige. Die verwalte ich selber in einer XML Datei. Das heißt ich checke ob ein Element neu hinzugekommen ist und trage es in die XML ein (mit IconPath,Argument, etc.). Das funktioniert auch wunderbar. Das Problem ist jetzt wenn ein User ein Element aus der JL via Rechtsklick entfernt. Wenn dann das Tool wieder gestartet wird dann habe ich zwar in der JL.RemovedDestinations ein Element drin aber der String ist null! Ich muss das Element nämlich aus meiner XML entfernen sonst spinnt die JL rum. Wenn ich einfach wieder alle Elemente der JL hinzufüge dann werden gar keine mehr angezeigt.

Meine 2te Idee war jetzt folgende. Nehmen wir mal an ich habe 2 CG mit jeweils einem Element also E1 und E2 in der XML. Jetzt entfernt der User E1 aus der JL. Nun startet er das Tool wieder mit E2. Zu beginn melde ich mich am ItemRemove Event an und füge einfach alle Element der JL hinzu die ich in der XML finde. Also E1 und E2. Dann rufe ich Refresh auf. Nun bekomme ich für ein Element (E1) ein Item Remove Event wo mir der Pfad des JumpListLink mitgegeben wird was der User entfernt hatte (E1). Problem nur ist das natürlich alle Element den selben Pfad haben nämlich dem zum Tool. Ich bräuchte die Argument mitgeliefert dann könnte ich das richtige Element bzw. Elemente aus der XML entfernen. Anschließend noch mal alle Element nach dem 1ten Refresh neu hinzufügen (E1 ist ja jetzt nicht mehr in der XML) und dann erneut Refresh aufrufen! So würde die JL immer UpToDate sein, habe ich manuell getestet. Ich hatte also die Idee das custom.destination file auszulesen weil dort steht drin welches Element welchen Status hat und auch die Argumente dazu. [SW_HIDE], [SW_SHOWNORMAL]!

Vielleicht hat einer noch eine Idee wie ich an die Entfernten JumpListLink's ran komme!?

Again what learned...