Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » brauch hilfe bei meiner konsolenanwendung bitte

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.11.2013, 21:44 Uhr
Servan



hallo

bin neu hier im forum hoffe mal das mir weiter geholfen wird und nicht gleich jeder das schlimste denkt danke.

Hab mir mal eine kleine konsolenanwendung geschrieben und es funktioniert auch nur wenn ich eine bestimmte memory adresse "01092024" ansprechen will finded er es nicht und alles andere kann er finden ist kein problem

die memory adresse 01092024 ist ein dateitype 4 bytes und ich verzweife schon weil wenn ich die adresse manuell suche ist es kein problem nur die konsolenanwendung will einfach diese bestimmte adresse nicht finden ka warum

kann mir jemand da weiter helfen bitte?
und nein ich schreibe keine malware usw.... weill ich weiss das gleich jeder in die luft springt wenn man von read and write memory spricht.

und danke schonmal für jede antwort.



C++:

#include <iostream>
#include <windows.h>


using namespace std;

int main()
{
    int newValue = 1;

    HWND hWnd = FindWindow(0, "Programm");
    
    if (hWnd == 0) {
        cerr << "Cannot find window" << endl;
    } else {
        DWORD pId;
        GetWindowThreadProcessId(hWnd, &pId);
        HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pId);
        
        if (!hProc) {
            cerr << "Cannot find window" << endl;
        } else {
          int isSuccessful =  WriteProcessMemory(hProc, (LPVOID)0x01092024, &newValue, (DWORD)sizeof(newValue), NULL);
          if (isSuccessful > 0) {
              clog << "Process Memory written" << endl;
          } else {
              cerr << "Cannot find Process Memory" << endl;
          }
          CloseHandle(hProc);
        }
    }
    
    return 0;
}


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.11.2013, 12:35 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo

naja das Problem ist: Man darf nun mal nicht "einfach so" in "fremden" Anwendungen "rumschreiben" (okay etwas viele Anführungszeichen...)

Du kannst dir mit FormatMessage + GetLastError (siehe beispiel in MSDN) den exakten Fehlerwert bzw. die textuelle Fehlermeldung ausgeben lassen. Evtl hilft dir das weiter.

Vermutlich liegt der von dir zu beschreibende Bereich in einem Read-Only Bereich
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.11.2013, 14:46 Uhr
Servan



kann ich ja verstehen das ist aber meine zweite anwendung in der ich reinschreiben will daher... is es egal.
und nein es ist kein read only bereich das weiss ich manuell kann ich es umschreiben ohne probleme.
mhhh werd mal "FormatMessage + GetLastError" ansehen danke
und kann es sein das der LPVOID der fehler ist ... ? aber kann es mir nicht denken weill die adressse 01092024 ist ein 4 byte dateitype,.... LPVOID sollte da kein problem haben mhhh
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.11.2013, 15:35 Uhr
Servan



gut jetzt bekomme ich durch "FormatMessage + GetLastError" die fehler meldung
"unzulässiger zugriff auf ein speicherbereich"
lol was ich aber nicht verstehe warum lol denn manuell kann ich ja drauf zugreifen aber mit dem programm nicht lol?????
hat jemand eine idee ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.11.2013, 22:49 Uhr
Hans
Library Walker
(Operator)


Hi,
das dürfte mit der Rechtevergabe zu tun haben. Offensichtlich scheint die Anwendung, mit der Du manuell im Speicher herum wuselst, die Schreibrechte zu bekommen, warum auch immer, während Dein eigenes Programm sie nicht bekommt. Du wirst Dich also mit der Rechteverwaltung auseinander setzen müssen, um die Lösung für das Problem zu finden.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
17.11.2013, 23:10 Uhr
Servan



ja scheint so muss mich woll mit SetPrivileg und SetDebugPriv() unter anderem mal herumschlagen danke schonmal ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: