Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: WinAPI ::  Speicher von anderem Programm lesen     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
dudeldu
Unregistrierter




Beitrag dudeldu Unregistrierter 23:11:42 24.05.2012   Titel:   Speicher von anderem Programm lesen            Zitieren

Hallo! Ich möchte zu Analysezwecken den Speicher eines Programms auslesen.

Ich verwende dafür die Funktion
C++:
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);

bekomme auch den gewünschten Prozess raus.

Danach versuche ich den Heap zu lesen mit
C++:
hHeapSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPHEAPLIST, entry.th32ProcessID);


Und hier ist das Problem. Ich bekomme ein als rückgabe INVALID_HANDLE_VALUE.
Und mit GetLastError() hab ich rausbekommen das es sich um ERROR_ACCESS_DENIED handelt.
Frage: Wie kann ich trotzdem (lese-)Zugriff auf den Speicher bekommen?
Bzw. woran liegt es das ich keinen zugriff habe? Bei firefox z.B. bekomm ich kein ERROR_ACCESS_DENIED.
dudeldu
Unregistrierter




Beitrag dudeldu Unregistrierter 12:07:37 25.05.2012   Titel:              Zitieren

Habs selber gelöst, bin aber nicht zufrieden mit der Lösung.
Man muss Visual Studio mit Adminrechten starten.
Muss aber auch anders gehen oder?
Keiner 'ne Idee?
Andreas XXL
Mitglied

Benutzerprofil
Anmeldungsdatum: 12.01.2004
Beiträge: 1011
Beitrag Andreas XXL Mitglied 12:31:35 25.05.2012   Titel:              Zitieren

Versuch mal, ob es auch mit dem Release außerhalb der Visual Studio Umgebung mit Admin Rechten geht. Dort wird es noch komplizierter es hinzubekommen.
Martin Richter
Moderator

Benutzerprofil
Anmeldungsdatum: 18.04.2006
Beiträge: 14172
Beitrag Martin Richter Moderator 13:47:24 25.05.2012   Titel:              Zitieren

Und warum attached Du Dichnicht einfach mit dem Debugger?

_________________
Martin Richter (MVP für C++) WWJD http://blog.m-ri.de
"A well-written program is its own heaven; a poorly written program is its own hell!" The Tao of Programming
dudeldu
Unregistrierter




Beitrag dudeldu Unregistrierter 20:12:08 25.05.2012   Titel:              Zitieren

Martin Richter schrieb:
Und warum attached Du Dichnicht einfach mit dem Debugger?


Noch nie gemacht. Interessiert mich aber sehr.
Wie würde ich den z.B. für den Windows Taschenrechner(calc.exe) den Speicher auslesen? Nehmen wir an ich hätte 12345679 eingetippt, bekomm ich das irgendwie damit raus?
Habe jetzt Visual Studio gestartet dann Debuggen->Attach to Process, dann die calc.exe ausgewählt.

Danach läd er kurz und ich sehe nix im VS.
Drücke ich Pause sehe ich assembler code, und nu?
Sorry habe noch nie damit gearbeitet.
Bassmaster
Mitglied

Benutzerprofil
Anmeldungsdatum: 19.09.2007
Beiträge: 621
Beitrag Bassmaster Mitglied 11:04:05 30.05.2012   Titel:              Zitieren

dudeldu schrieb:

Wie würde ich den z.B. für den Windows Taschenrechner(calc.exe) den Speicher auslesen? Nehmen wir an ich hätte 12345679 eingetippt, bekomm ich das irgendwie damit raus?


Ich vermute mal du willst wissen an welcher Stelle im Speicher 12345679 steht, da solltest du dich mal mit Reverse Code Engineering beschäftigen.

Schau dir mal das hier an:
http://tuts4you.com/download.php?view.122

Da gibts eine ganze Tutorial Serie.
c++.de :: WinAPI ::  Speicher von anderem Programm lesen   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.