1. Errors posten.
2. Bist du sicher du hast MFC? Das ist nämlich nur in teuren kommerziellen Version dabei.
Ich glaub mal, dass es immernoch die gleichen Errors sind. Das FindWindow keine Memberfunktion von CWnd ist.
Ja MFC ist nur bei dem Vollen Packet dabei. Also nicht bei der Express Edition. Wobei ich glaub bei dem ganz neuen Visual Studio ist es auch dabei. Ist aber nur Beta.
Hm, aber wenn das kein MFC Projekt ist, sollte der CWnd gar nicht kennen. Dann würde da kommen CWnd keine Klasse oder Namespace... seltsam.
Also ich habe folgendes Problem:
Ich suche nach einem Pointer für den Jump und Walljump-hack bei S4. Das Problem ist, dass er nichts spezielles findet...
Ich habe den Wert gefunden, dann bin ich auf "Find outwhat accesses this address" gegangen und den Wert dann wieder manuell verändert (den Jump-value), da dieser nicht automatisch geändert wird. Jetzt zeigt er mir dann im Degugger "fld dword ptr [eax+1c]" an. Da dachte ich mir, such mal nach dem eax, der laut Extra info 02ABF544 ist. Also suche ich nach dem und finde: nichts.
Dann habe ich nach EDI gesucht ("00000A28"), worauf ich dann jedoch 143 values habe mit insgesamt ca 100 base pointern.
Screen ist im Anhang.
Was soll ich jetzt tun?
Achja, nice tut ^^ Ich denke man, das kann man auch mit Visual Basic so machen, oder? Und welches Bildbearbeitungsprogramm hast du benutzt?
Also ich habe folgendes Problem:
Ich suche nach einem Pointer für den Jump und Walljump-hack bei S4. Das Problem ist, dass er nichts spezielles findet...
Ich habe den Wert gefunden, dann bin ich auf "Find outwhat accesses this address" gegangen und den Wert dann wieder manuell verändert (den Jump-value), da dieser nicht automatisch geändert wird. Jetzt zeigt er mir dann im Degugger "fld dword ptr [eax+1c]" an. Da dachte ich mir, such mal nach dem eax, der laut Extra info 02ABF544 ist. Also suche ich nach dem und finde: nichts.
Dann habe ich nach EDI gesucht ("00000A28"), worauf ich dann jedoch 143 values habe mit insgesamt ca 100 base pointern.
Screen ist im Anhang.
Was soll ich jetzt tun?
Achja, nice tut ^^ Ich denke man, das kann man auch mit Visual Basic so machen, oder? Und welches Bildbearbeitungsprogramm hast du benutzt?
Nimm vielleicht mal die Pointer Suche von CheatEngine (rechtsklick und dann Pointer Scan for this adresse, dann alles so lassen und Scan drücken)
Einen Wallhack zu erstellen ist aber nicht ganz so leicht.
1. Möglichkeit: per Telepot Hack (sicher die einfachste) Du portest dich also immer ein kleines Stück weiter während du läufst. Du teleportierst dich dann quasi in eine Wand rein während du läufst und teleportierst dich immer weiter.
2. Ich kenn das Game zwar nicht, aber vielleicht kannst du ja einen Wallhack so erstellen, indem du dir einen Flug Hack bastelst und über die Wände drüber rennst.
3. Mit Ollydbg. Die ist schon etwas schwerer, ich weiß auch nicht wie das geht. (Kenne mich eigentlich nur mit Cheat Engine aus)
Mehr fällt mir grade auch ned ein, aber es gibt bestimmt noch viele andere Möglichkeiten.^^
Adroxxx kannst du mir mal das mit dem pointer finden nochmal erklären ich verstehe das irgendwie nicht so ganz wie soll man herausfinden was für welche adresse is
Adroxxx kannst du mir mal das mit dem pointer finden nochmal erklären ich verstehe das irgendwie nicht so ganz wie soll man herausfinden was für welche adresse is
Schau dir mal den Sammelthread mit Tutorials an. Da sind auch nochmal 2 Tutorials für DMA to Static.
btw. bisher ist niemanden mein super tolles elfenlied deckblatt aufgefallen
hey,
ich hab ebenfalls ein Problem mit dem "Solitär Hack", .... ich kann ihn nicht starten weil ich zahlreiche Error´s bekomme wie z.B.:
1) error C2039: 'FindWindowExW' : is not a member of 'CWnd'
2) error C2664: 'FindWindowExW' : cannot convert parameter 4 from 'const char [8]' to 'LPCWSTR'
...hoffe auf Hilfe, danke im Vorraus
Das Problem hab ich auch! Aber selbst ist der Mann, heulen bringt auch nix. Hab nur 2 Minuten rumgespielt und hatte für mich persönlich die Lösung: die Funktion muss FindWindowExA heißen. Ich hab bei mir Microsoft Visual Studio 2008 installiert, vielleicht liegts an der neueren Version.
Nicht schlecht für jemanden, der vor 2 Stunden erst vStudio installiert und vorher mit c++ nix am Hut hatte, was?
btw zurück, ich hab die ganze Zeit schon das Bild bewundert ;D is echt hübsch.
Hoffe, das hilft dir.
Dafür bring ich n anderes Problem rein^^
Quote:
Originally Posted by diesem dumme compiler
error C2664: '_wtoi' : cannot convert parameter 1 from 'CString' to 'const wchar_t *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
Hat da jemand ne Idee?
Gruß,
anonymuus
EDIT: Hab das mit a und w mal weitergetrieben: atoi() konvertiert auch einen String in einen Integer, erzeugt im Compiler keinen Fehler, aber das fertige Programm spackt. Es bleibt bei lesen immer auf dem Wert -858993460 und bei schreiben tut sich nix.
danke, dass du den Fehler mit FindWindow gefunden hast, den wohl mehrere hier haben.
Auch an dich die Frage: Ist deine Projekteinstellung auf Unicode? Oder Multibyte?
Dies kannst du sehen, wenn du unter Projekt -> Projekt Eigenschaften gehst und dann Konfigurationseigenschaften. Dort unter Zeichensatz.
Außerdem wäre es vielleicht auch Wichtig zu wissen, unter welchem System du Arbeitest. Windows Xp / Vista / 32bit / 64bit ...
Ich vermute mal, dass du unter Vista arbeitest. Ich habe gerade einen Interessanten Artikel in der MSDN gefunden:
Dort geht es um Ansi und Unicode. FindWindowEx ist die Grundfunktion die als Makro definiert ist. Ich benutzte in dem Tutorial direkt FindWindowExW. Was für Unicode ist.
Da FindWindowEx schon vordefiniert ist, könnte man auch das benutzten anstatt FindWindowExW(),
Zu dem _wtoi() problem:
Wenn du atoi benutzt kannst du folgende schreibweise benutzten:
PHP Code:
value = (int)atoi (m_Value);
Falls du noch Probleme hast, kannst du dich hier melden.
Auch an dich die Frage: Ist deine Projekteinstellung auf Unicode? Oder Multibyte?
(...)
Außerdem wäre es vielleicht auch Wichtig zu wissen, unter welchem System du Arbeitest. Windows Xp / Vista / 32bit / 64bit ...
Tag,
Ich hab einfach das Projekt so gelassen wie default, das wäre dann bei mir Multibyte. Ich arbeite mit WinXP Pro 32bit, nicht mit
Vielen Dank für die Hilfe, Compiler meckert wieder nich. Allerdings erscheint in der EditBox immernoch -858993460 wenn man liest, schreiben lässt sich auch nicht.
Wenn es von nutzen sein könnte, dann einfach mal mein ziehen.
Ich muss zugeben, das meiste is einfach aus der Zusammenfassung geklaut. Aber mit meinem bisherigen Wissensstand in C++ kann ich erst auf Kommandozeilenebene Zahlen addieren, subtrahieren, dividieren, multiplizieren und sortieren
Hast du mal versucht, das Projekt auf Unicode umzustellen? Eigentlich sollte es dann mit dem FindWindowExW und dem _wtoi() funktionieren.
Ansonsten sind immer Debug ausgaben recht hilfreich. Sprich abfrage, ob das Fenster gefunden wurde. (Das hab ich ja drin) und dann kannst du die zwischenschritte beim Pointer berechnen abfragen. Ob die richtige Adresse gelesen wurde.
Wenn dort so ein Wert raus kommt, liegt es meist daran, dass das falsche Window Handle genommen wurde, oder die falsche Adresse.
Ich schau mir mal dein Projekt an und editier es dann hier rein.
//edit: nächstes mal debug ordner löschen , dann wirds kleiner
Wenn du es auf Unicode stellst, kannst du _wtoi und FindWindowExW benutzten.
Dann sollte es eigentlich funktionieren. VS ist leider nicht abwärtskompatibel, deshalb kann ich dein Projekt nur in der Express starten aber net kompelieren. Ansonsten sah alles eigentlich richtig aus.
Das ist nun wirklich seltsam. Ich habe mir deinen Source mal angeschaut. Sieht zumindest richtig aus. Ich kann dort keinen Fehler finden. Was die Sache natürlich knifflig macht.
Gut, [...] da hilft aber alles nichts [...]
Debug Ausgabe:
Es ist immer gut die Zwischenschritte auszugeben.
Beispiel:
PHP Code:
if (pWnd = CWnd::FindWindowExW(NULL,NULL,NULL,_T("Solitär"))) {
hWnd = HWND(pWnd->GetSafeHwnd());
}else{
AfxMessageBox(_T("Fenster nicht gefunden!"));
}
Da ist eine Abfrage, wenn das Fenster gefunden wurde, speichert er den Handle , falls nicht kommt eine Messagebox mit einer Fehlermeldung. Ist auch gut mal das Programm zu starten ohne das Solitär läuft, damit man schaut, ob wirklich die Fehlermeldung kommt.
Dann lesen wir ja die erste Adresse aus, damit wir an unseren Pointer kommen.
Was wir hier nun machen, wir legen einen CString an mit namen strAdress2. Und mit Format packen wir (unsigned long) address2 da rein, und die ausgabe ist in Hex ( %x).
Dann kommt eine MessageBox wo die Adresse dann ausgegeben wird.
Am besten startest du Solitär und Cheat Engine.
Du wählst bei CheatEngine Solitär als Ziel aus, und fügst die Adresse Manuell hinzu. Also 0x01007170 und schaust, welche Adresse dort drin steht.
Bei mir ist das z.B. 0x000AB640
Dann startest du dein Solitär Hack und klickst auf Lesen. Dann sollte eine MessageBox kommen, mit dieser Adresse.
Dann kannst du nochmal beim zweiten ReadProcessMemory auch so eine Ausgabe machen. Da sollte dann 0x00AB470 raus kommen, weil ja 0x30 dazu addiert wird.
Und nicht vergessen, wenn du auf Unicode umgestellt hast:
FindWindowExW
_wtoi()
Benutzten.
Falls noch Probleme sind, kannst du wie immer diese hier im Thread posten.
void CSolitärHackDlg::m_lesen(void)
{
if (pWnd = CWnd::FindWindowExW(NULL,NULL,NULL,_T("Solitär"))) {
hWnd = HWND(pWnd->GetSafeHwnd());
}else{
AfxMessageBox(_T("Solitär wurde nicht gefunden!"));
}
UpdateData(true);
unsigned long address1 = 0x01007170;
unsigned long offset = 0x30;
unsigned long address2 ;
int value ;
DWORD numBytesRead;
HANDLE hProc;
Ich habs einfach mal so gemacht, bin mir nicht sicher obs korrekt ist. Die erste Meldung teilt mir die Adresse cccccccc mit, die zweite ccccccfc. Ich hoffe dir sagt das mehr als mir