|
You last visited: Today at 02:48
Advertisement
[C++]Memory problem
Discussion on [C++]Memory problem within the C/C++ forum part of the Coders Den category.
12/16/2010, 13:59
|
#1
|
elite*gold: 0
Join Date: Jan 2010
Posts: 1,385
Received Thanks: 1,006
|
[C++]Memory problem
Moin Com,
ich hab mir jetzt mal für simples memory editing in c++ ein Opferprogramm und ein Taeter programm erstellt.
Jeodch hab ich ein fehler beim Compilieren des Taeter programms
PHP Code:
// Taeter.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung. // #include "stdafx.h" #include <iostream> #include <windows.h> int main() { HWND hWnd = FindWindow(0, "Opfer"); if(hWnd == 0) { MessageBox(0, "Fenster 'Opfer' konnte nicht gefunden werden.", "Error", MB_OK|MB_ICONERROR); } else { DWORD proccess_ID; GetWindowThreadProcessId(hWnd, &proccess_ID); HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proccess_ID); if(!hProcess) { MessageBox(0, "Konnte den Prozess nicht öffnen", "Error!", MB_OK|MB_ICONERROR); } else { int newdata = 100; DWORD newdatasize = sizeof(newdata); if(WriteProcessMemory(hProcess, (LPVOID)0x02AF88, &newdata, newdatasize, NULL)) { MessageBox(NULL, "Memory wurde bearbeitet", "Erfolg", MB_OK + MB_ICONINFORMATION); } else { MessageBox(NULL, "Konnte Memory nicht bearbeiten!", "Error", MB_OK + MB_ICONERROR); } CloseHandle(hProcess); } } return 0; }
und jz opfer source (der funzt)
PHP Code:
#include<iostream> #include<windows.h> #include<conio.h> using namespace std; int main() { SetConsoleTitle (TEXT("Opfer")); char key; int var = 1; while (key != 'e') { key = getch(); switch(key) { case 'w': cout <<"Unser leben ist "<< var << endl; cout <<"Unsere Lebensadresse ist "<< &var << endl; break; } } return 0; }
|
|
|
12/16/2010, 14:24
|
#2
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
|
Kompiliert einwandfrei unter Visual Studio 2008.
|
|
|
12/16/2010, 16:38
|
#3
|
elite*gold: 0
Join Date: Jan 2010
Posts: 1,385
Received Thanks: 1,006
|
Ich hab auch VS 2008.
Hier meine Fehlermeldungen seitens Compile
1>Taeter.cpp
1>c:\users\tothepub\documents\visual studio 2008\projects\taeter\taeter\taeter.cpp(11) : error C2664: 'FindWindowW': Konvertierung des Parameters 2 von 'const char [6]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\tothepub\documents\visual studio 2008\projects\taeter\taeter\taeter.cpp(14) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [46]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\tothepub\documents\visual studio 2008\projects\taeter\taeter\taeter.cpp(23) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [32]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\tothepub\documents\visual studio 2008\projects\taeter\taeter\taeter.cpp(31) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [24]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\tothepub\documents\visual studio 2008\projects\taeter\taeter\taeter.cpp(35) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [32]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
|
|
|
12/16/2010, 16:42
|
#4
|
elite*gold: 0
Join Date: Mar 2009
Posts: 404
Received Thanks: 120
|
const char = 1 Byte / Character
LPCWSTR = 2 Byte / Character
Unter VS2008 ist wohl standartmäßig Unicode aktive, und das macht jede menge Probleme.
Schreib um deine Strings mal sowas:
_T("Hallo Welt ")
|
|
|
12/16/2010, 16:57
|
#5
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
|
hm evtl. mal fehlermeldung lesen?
nimm entweder FindWindowA usw. oder schreib vor die "" ein L, also L"bla"
|
|
|
12/16/2010, 17:04
|
#6
|
elite*gold: 0
Join Date: Jan 2010
Posts: 1,385
Received Thanks: 1,006
|
edit:
klappt, hab vor jeden String ein L gemacht.
Wieso ist das denn jetzt so mit dem L?
|
|
|
12/16/2010, 18:07
|
#7
|
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
|
Was hält dich eigentlich davon ab den Sticky Thread bezüglich Kompilerfehlern zu lesen?
Mal im ernst, wir hatten diesen Thread bestimmt schon tausendmal, jedes einzelne mal hat waren das Problem Stringliterale mit falschem Encoding.
Sind hier eigentlich alle zu blöde um ersteinmal zu lesen was sie tun?
Jedes verdammte tutorial zu VisualStudio erklärt was es mit Unicode aufsich hat und dennoch kommt dieser Thread immer und immer wieder.
Unter 100 Threads ist vielleicht einer mit einer vernünftigen Frage, der noch dazu halbwegs lesbar ist, der rest der Threads ist entweder nicht zu entziffern oder die Antwort erübrigt sich ohnehin.
Und für dich .BritainAndy der L Prefix vor einem Stringliteral sagt VisualStudio dass es sich um einen Unicodestring handelt und somit um ein const wchar*, wenn ein Stringliteral, also eine Zeichenkette inerhalb von "", ohne den L Prefix geschrieben wird, dann wird dieser IMMER als const char* interpretiert.
Es gibt auch noch das TEXT Macro welches automatisch den L Prefix setzt, wenn das Projekt auf UNICODE eingestellt ist.
Wenn du also ein Projekt hast dass du mit und ohne Unicode übersetzten willst empfiehlt es sich das TEXT Macro zu verwenden (_T ist eine Kurzform für TEXT in VisualStudio).
|
|
|
12/16/2010, 18:15
|
#8
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
|
und mehr gibts nicht mehr zu sagen
#zu
|
|
|
|
Similar Threads
|
[PROBLEM] Memory
10/10/2010 - AutoIt - 8 Replies
Hey User,
ich habe mich mal in AutoIT an Memory versucht.
Leider fehlgeschlagen...
Ich habs mal mit SpiderSolitaire versucht:
#include <NomadMemory.au3>
While ProcessExists(SpiderSolitaire.exe) = False
|
Memory Problem
05/30/2010 - AutoIt - 2 Replies
Hi ,
ich möchte mit meinem Tool Memorys bearbeiten , was auch eigentlich ganz gut klappt , jedoch verändert sich die Memory bei 2 Eigenschaften immer , obwohl ich nichts umstelle...
$ReadSleep = GuiCtrlRead($Input10)
ToolTip("Made by Fuyo . Have fun Leech0rs",0,0)
$wait = ProcessWait("S4Client.exe")
Sleep($ReadSleep)
$PID = ProcessExists("S4Client.exe")
$Open = _MemoryOpen($PID)
$WallAdd = 0x00C4DCE4
|
Memory Reading Problem
05/09/2010 - AutoIt - 1 Replies
Hi
Habe momentan Probleme, die HP eines gegnerischen Mobs auszulesen.
Gehe ich richtig in der Annahme, dass ich als CurObject die GUID vom Target brauche?
Habe lange gegooglet aber nichts hilfreiches gefunden, was mir weiterhelfen könnte.
Habe zwar NinjaSkid Source, aber das ganze zu durchwühlen, umzuschreiben und dann doch irgendwelche Fehler drin zu haben kackt mich an.
Könnte jemand kurz einen Beispiels-Code posten, wäre sehr hilfreich.
Und wenn sich diese Person noch mit Namen...
|
Memory problem
11/30/2009 - GW Bots - 1 Replies
Hallo,
ich versuche mich gerade dadran, Speicheradressen zu verwenden:
#include <NomadMemory.au3>
Global $PID
Global $hprocess
$PID = WinGetProcess("Guild Wars")
$hprocess = _MemoryOpen($PID)
|
Accessdriver problem (out of memory)
05/07/2006 - Off Topic - 4 Replies
wenn ich Accessdiverstarte und eine password liste einfügen will sagt er beimeiner ca 4gb großen liste immer "aout of memory" und bricht ab .. gibt es eine möglichkeit was dagegenzu tun ? oder ein ähnliches programm das so große listen benutzen kann?
Villeicht sagt euch das etwas also am ram und festplattenspeicher sollte es nicht liegen^^
2gb ddr ram
2x200gb festplatte
|
All times are GMT +2. The time now is 02:48.
|
|