Arbeitspeicher-Manipulation von Spotify mit C++



  • Ich weiß nicht genau in welcher Form dir Spotify vorliegt. Ist es eine Binary könntest du es Stück für Stück mit Ghidra reverse-engineeren. Das macht allerdings sehr viel Aufwand. Unter Windows kannst du Tools wie z. B. CheatEngine oder x64dbg zusätzlich nutzen um zumindest erstmal zu lokalisieren an welcher Stelle überhaupt eine Funktion kommt welche dein Lied abspielt. Schon der Weg dahin wird aber ewig dauern. Wenn es das tatsächlich schaffen solltest das zu finden, kannst du evtl das Lied im RAM finden. (Evtl reicht auch nur Cheat Engine). Daraufhin kannst du untersuchen über welche Offsets du dort hinkommst. (also Pointer -> Pointer -> Pointer -> Lied). Wenn du das auch noch geschafft hast, kannst du das Ganze in C++ niederschreiben. Unter Windows gibt's dafür die ReadProcessMemory() Funktion. Am Ende könntest du es dann konvertieren lassen. Das Problem ist aber erstmal zu wissen wonach du suchst und wo du es findest, sowie die Frage ob es verschlüsselt ist oder nicht. So etwas auseinander zu nehmen kostet ewig viel Zeit, besonders ohne Erfahrung.
    Da kann ich mich nur @DocShoe anschließen. Schneide es einfach mit und konvertiere es. Das erspart dir viel Zeit und Ärger.



  • @fluppei2 Kauf dir einfach die Tracks.

    Ich bin mir der Schwierigkeit der Umsetzung bewusst

    Nein, bist du nicht.

    möchte darum bitten mir keine Antworten zu senden, welche mich abhalten sollen dieses Projekt zu realisieren

    Sorry, no can do.



  • @Zhavok Endlich mal ein nützlicher Kommentar. Dankeschön 😃



  • @fluppei2
    Na dann berichte mal von deinen Fortschritten, ich bin gespannt. So alle ein- bis zwei Wochen eine kurze Wasserstandsmeldung fänd´ ich gut.



  • @DocShoe Jo ich meld mich dann. Aber erwartet nicht zu viel ;D. Finde fordernde Projekte trotzdem immer sehr spannend.



  • @Finnegan Aber das braucht man ja eigentlich nicht, die Ausgabe könnte man z.B. mit Audacity abgreifen. Oder hat dein Ansatz das selber zu schreiben einen Vorteil, den ich grad nicht verstanden habe?



  • @Mechanics sagte in Arbeitspeicher-Manipulation von Spotify mit C++:

    @Finnegan Aber das braucht man ja eigentlich nicht, die Ausgabe könnte man z.B. mit Audacity abgreifen. Oder hat dein Ansatz das selber zu schreiben einen Vorteil, den ich grad nicht verstanden habe?

    Nur dann, wenn man darüber direkter an die Daten kommt. z.B. einen fetten Block mit dem ganzen Audiofile oder wenn man sich in die Audio-API einhakt und dem Programm vorzeitig weismachen kann, dass der Buffer bereits abgespielt wurde und man bitte gerne den nächsten hätte. Dieses Timing macht soweit ich weiss eigentlich die Sound-Hardware, letztendlich über Interrupts auf Treiber-Ebene, das könnte also durchaus funktionieren. Dann könnte das Wartezeit einsparen. Audacity und dergleichen ist aber erstmal eine deutlich simplere Lösung. Mein Ansatz ist also wohl eher nicht der Mühe wert, höchstens zum Lernen 😉



  • Hat Spotify nicht 'ne Developer Web API, mit der man Spotify in eigene Web Anwendungen einbauen kann? Ich hätte erst mal versucht High Lever darüber an den Stream im Browser zu kommen, bevor ich anfange irgendwo im RAM nach möglichen Audiodaten zu suchen.



  • Das einfachste dürfte sein librespot zu nehmen und das Speichern einzubauen: https://github.com/librespot-org/librespot/issues/152



  • @Schlangenmensch Auch eine sehr gute Idee. Danke.


Log in to reply