EDIT:
MH ka wie ichs lösen soll es funkt i.w. net :S
Hier der Functions-Aufruf:
Code:
#include "Header.h"
void main()
{
TMemory a;
a.Init( "0x0052600C+0x20", "Blabla"); //Fenstertitel ausgedacht.. adresse + offset nicht , das sind die daten womit ich die neue adr suche...
a.GetValue();
}
Windef.h:151 - typedef unsigned long DWORD;
Denk aber auch das Dword "richtiger" wäre Oo
Aber warum das ganze nicht klappt ist ne gute Frage, errechnest du die Base selbst ?
Was hast du in offset adress wenns läuft ?
Wenns läuft hab ich einfach nur die aktuelle Adresse (nicht die Basepoint adresse!) von z.B. X-Pos eines Charackters vom Programm was ich geöffnet habe.
void main()
{
TMemory a;
a.Init( "0x0052600C+0x20", "Blabla"); //Fenstertitel ausgedacht.. adresse + offset nicht , das sind die daten womit ich die neue adr suche...
a.GetValue();
}
Muss man nicht erst lesen mit ReadProcess memory ?
also die Adresse die hinter 0x0052600C+0x20 ist mit ReadProcessMemory auslesen?
Muss man nicht erst lesen mit ReadProcess memory ?
also die Adresse die hinter 0x0052600C+0x20 ist mit ReadProcessMemory auslesen?
und warum is des ein String ?
Wegen den 2 Funktionen: (String alles bis zum ersten + ergibt die hauptadresse wenns kein plus gibt dann ist es die einzigste, ansonsten wird jedes plus als initialisierung für ein neues offset angesehen welches den wert entweder bis zum nächsten + oder zur Nullterminierung annimmt... (strtoul() <- String to Unsigned Long)
Wegen den 2 Funktionen: (String alles bis zum ersten + ergibt die hauptadresse wenns kein plus gibt dann ist es die einzigste, ansonsten wird jedes plus als initialisierung für ein neues offset angesehen welches den wert entweder bis zum nächsten + oder zur Nullterminierung annimmt... (strtoul() <- String to Unsigned Long)
Also vorweg: Ich lerne garde selbst nur C++ und bin kein 1337 h4xxor.
Daher hab ich mal ein paar fragen:
Warum hast du bei OpenProcess die Flags "PROCESS_ALL_ACCESS | PROCESS_VM_READ | PROCESS_VM_WRITE" obwohl dir "PROCESS_ALL_ACCESS" eh schon alles erlaubt ?
Also vorweg: Ich lerne garde selbst nur C++ und bin kein 1337 h4xxor.
Daher hab ich mal ein paar fragen:
Warum hast du bei OpenProcess die Flags "PROCESS_ALL_ACCESS | PROCESS_VM_READ | PROCESS_VM_WRITE" obwohl dir "PROCESS_ALL_ACCESS" eh schon alles erlaubt ?
Vielleicht deswegen:
Quote:
Originally Posted by msdn
Windows Server 2003 and Windows XP: The size of the PROCESS_ALL_ACCESS flag increased on Windows Server 2008 and Windows Vista. If an application compiled for Windows Server 2008 and Windows Vista is run on Windows Server 2003 or Windows XP, the PROCESS_ALL_ACCESS flag is too large and the function specifying this flag fails with ERROR_ACCESS_DENIED. To avoid this problem, specify the minimum set of access rights required for the operation. If PROCESS_ALL_ACCESS must be used, set _WIN32_WINNT to the minimum operating system targeted by your application (for example,
#define _WIN32_WINNT _WIN32_WINNT_WINXP
). For more information, see Using the Windows Headers.
Wegen den 2 Funktionen: (String alles bis zum ersten + ergibt die hauptadresse wenns kein plus gibt dann ist es die einzigste, ansonsten wird jedes plus als initialisierung für ein neues offset angesehen welches den wert entweder bis zum nächsten + oder zur Nullterminierung annimmt... (strtoul() <- String to Unsigned Long)
Du musst erst eine Variable definieren z.B. vom Typ DWORD welche die Adresse in Hex Form beinhaltet z.N. DWORD addr = 0xFFA1;
Dann musst du mir der ReadProcessmemory Funktion die Adresse auslesen , das Offset hinzuaddieren , und am Ende wenn du die "Endadresse" errechnet hat liest du den Wert(die Adresse) nochmal mit Readprocessmemory aus.
Ich habe aus nem Tutorial mir auch ne selbstgeschriebene Funktion abgeschaut , um das mit dem ausrechnen der Endadresse sehr einfach zu handhaben wie ich finde. Vieleicht hilft sie dir ja auch.
Code:
DWORD FindDmaAddy(int PointerLevel, HANDLE hProcHandle, DWORD Offsets[], DWORD BaseAddress)
{
DWORD pointer = BaseAddress;
DWORD pTemp;
DWORD pointerAddr;
for(int i = 0; i < PointerLevel; i ++)
{
if(i == 0)
{
ReadProcessMemory(hProcHandle, (LPCVOID)pointer, &pTemp, 4, NULL);
}
pointerAddr = pTemp + Offsets[i]; // Set p1 to content of p + offset
ReadProcessMemory(hProcHandle, (LPCVOID)pointerAddr, &pTemp, 4, NULL);
}
return pointerAddr;
}
Ich denke du verstehst wofür diese Funktion gedacht ist /wie man sie Anwendet. Wenn nicht frag einfach nochmal nach dann erklär ichs dir ^^.
Du musst erst eine Variable definieren z.B. vom Typ DWORD welche die Adresse in Hex Form beinhaltet z.N. DWORD addr = 0xFFA1;
Dann musst du mir der ReadProcessmemory Funktion die Adresse auslesen , das Offset hinzuaddieren , und am Ende wenn du die "Endadresse" errechnet hat liest du den Wert(die Adresse) nochmal mit Readprocessmemory aus.
Ich habe aus nem Tutorial How To hack any Game with C++ on German mir auch ne selbstgeschriebene Funktion abgeschaut , um das mit dem ausrechnen der Endadresse sehr einfach zu handhaben wie ich finde. Vieleicht hilft sie dir ja auch.
Bitte lösche dein Projekt und diesen Thread, kauf dir ein Buch und melde dich erst in mindestens 3 Monaten wieder wenn doch irgendwas unklar sein sollte und du es immer noch nicht über eigenes Suchen gefunden haben solltest.
Bitte lösche dein Projekt und diesen Thread, kauf dir ein Buch und melde dich erst in mindestens 3 Monaten wieder wenn doch irgendwas unklar sein sollte und du es immer noch nicht über eigenes Suchen gefunden haben solltest.
Bitte Unterlass den Spam, jeder hat mal angefangen, und der Bereich ist dazu da um Leuten zu helfen.
Als ich angefangen habe zu programmieren, habe ich die selben Fehler gemacht, jeder hat mal dumme Fehler gemacht wo er sich dumm und dämlich gesucht hat!
Ja , nömlich das er die Adresse definiert ,und dann nicht beim allerersten mal ausliest ,sondern direkt damit rechnet und sie erst danach mit Readprocmemory ausliest.
Die Funktion die ich gepostet habe liest die definierte Adresse beim ersten durchlauf aus rechn et dann damit ,und liest sie am Ende wieder aus.So habe ich es auch aus den Tutorials gelernt (Ich weiß ,dass die oft schlecht geschrieben sind ja) , Er kann es ja mal ausprobieren ob es daran liegt ( oder mit der Funktion aufeinmal geht) kostet ihn doch nichts .....
Spalten addieren 02/12/2013 - .NET Languages - 8 Replies hi!
Ich habe folgendes Problem in Visual Basics
http://i.epvpimg.com/vVwCe.jpg
wie kann ich das umsetzen?
Teamspeak + Teamviewer wär das beste, wäre schön wenn sich wer findet :)
Pointer und offset addieren 02/26/2012 - .NET Languages - 5 Replies HI!
Kann mir bitt jemand diesen Pointer: &H290330
mit dieser Offset addieren: &H6F8
(Ich brauche das für VB08)
Danke!
++ Addieren 10/30/2010 - General Coding - 13 Replies Hallo
wie kann ich in einer while mehr als 1 addieren ?
Also wenn z.B.:
int a ;
in der while dann
while(bla)
a++
Variabeln addieren 08/08/2009 - AutoIt - 13 Replies hai leuts
hab hier ein kleines prog in arbeit. ist zwar kein bot aber es soll eine überraschung für mein grossvater werden.
er liebt es ein schweizer kartenspiel names "jasse" zu spielen
und dieses programm soll für ihn rechnen und schreiben.
nun zu meinem problem:
ich mächte auf der linken seite bei punkte eine zahl ein geben können welche es danach zur gesammtpunktzahl addiert, komishcer weise stimmen die zahlen jedoch nicht
wenn ich 10 eingebe und auf den button schreiben drücke...