|
You last visited: Today at 12:38
Advertisement
Dll c++ hack
Discussion on Dll c++ hack within the C/C++ forum part of the Coders Den category.
10/18/2010, 20:53
|
#1
|
elite*gold: 0
Join Date: May 2009
Posts: 634
Received Thanks: 794
|
Dll c++ hack
Hey Leutz habm "Hack" für Solitär gemacht....Er funtzt nur net
Source :
#include <windows.h>
int main()
{
HWND hwnd;
hwnd = FindWindow(0,L"Solitär");
DWORD Id;
HANDLE ProcessHandle;
int value = 100 ;
unsigned adress = 0x00AA840;
if(!hwnd)
{
MessageBoxA(0,"Info","Process nicht gefunden", MB_OK);
}
else
{
MessageBoxA(0,"Info","Process gefunden", MB_OK);
GetWindowThreadProcessId(hwnd,&Id);
ProcessHandle = OpenProcess(PROCESS_VM_WRITE |PROCESS_VM_OPERATION ,false,Id);
WriteProcessMemory(ProcessHandle,(LPVOID)adress,&v alue,sizeof(int),NULL);
MessageBoxA(0,"Info","Hacked", MB_OK);
}
}
Wasn da falsch? ?.?
ty e*pvp
|
|
|
10/19/2010, 12:54
|
#2
|
elite*gold: 0
Join Date: Apr 2008
Posts: 495
Received Thanks: 817
|
Quote:
Originally Posted by kauknochen
Hey Leutz habm "Hack" für Solitär gemacht....Er funtzt nur net
Source :
#include <windows.h>
#include <stdio.h>
int main()
{
HWND hwnd;
hwnd = FindWindow(0,L"Solitär");
DWORD Id;
HANDLE ProcessHandle;
int value = 100 ;
unsigned adress = 0x00AA840;
if(!hwnd)
{
MessageBoxA(0,"Info","Process nicht gefunden", MB_OK);
}
else
{
MessageBoxA(0,"Info","Process gefunden", MB_OK);
GetWindowThreadProcessId(hwnd,&Id);
ProcessHandle = OpenProcess(PROCESS_VM_WRITE |PROCESS_VM_OPERATION ,false,Id);
WriteProcessMemory(ProcessHandle,(LPVOID)adress,&v alue,sizeof(int),NULL);
MessageBoxA(0,"Info","Hacked", MB_OK);
}
}
Wasn da falsch? ?.?
ty e*pvp
|
Dll? Du hast überhaupt keine .dll gemacht. Da fehlt noch die DLLMAIN. Was du gemacht hast, ist ein Konsolenprogramm, welches die Adresse 0x00AA840 beschreibt mit dem Wert 100. Aber wie wäre es, wenn du Pointer benutzen würdest ? Dann kann man Solitär neu starten, ohne neue Adressen zu suchen.
Dein 'Hack' könnte so aussehen:
PHP Code:
#include <Windows.h> #include <stdio.h> void Hack() { //Hier deine Hackfunktionen reinschreiben. //Natürlich kannst du auch mit GetAsyncKeyState arbeiten. DWORD dwPlayerPtr = *(DWORD*)0x00AA840; DWORD Punkte = *(DWORD*)((dwPlayerPtr) + 0xDEINOFFSET); *(int*)Punkte = (int)999999; }
int WINAPI DllMain(HINSTANCE hInst,DWORD reason,LPVOID reserved) { if(reason==DLL_PROCESS_ATTACH)//Falls injection erfolgreich, dann das.. { MessageBoxA(NULL, "Erfolgreich!", "Injection by ....", MB_OK); CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Hack, NULL, NULL, NULL); } return true; }
zu beachten ist auch, dass wenn man eine .dll in einem Prozess reininjectet, dass man nicht mehr mit dem Fenstertitel arbeiten muss, sondern mit der PID (Praktisch wenn man doppel Leveln will mit einem LevelBot z.B.).
Aber an deiner stelle würde ich mir überhaupt erstmal richtig durchlesen, was überhaupt eine .dll ist und wie eine injection funktioniert.
MFG
|
|
|
10/19/2010, 14:18
|
#3
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
|
Wann lernt ihr endlich, euch einfach die Fehlercodes ausgeben zu lassen? <.<
|
|
|
10/19/2010, 14:36
|
#4
|
elite*gold: 0
Join Date: Apr 2008
Posts: 495
Received Thanks: 817
|
Quote:
Originally Posted by MoepMeep
Wann lernt ihr endlich, euch einfach die Fehlercodes ausgeben zu lassen? <.<
|
mh... Meintest du meinen oder von TE den Code ? Weil meinen habe ich aus'm Kopf ausgeschrieben und nicht in einer IDE getestet. :'D Aber danke das du mich drauf hingewiesen hast, ich habe '()' nach 'void Hack' vergessen.
Aber so sollte es gehen. :O
MFG
|
|
|
10/19/2010, 19:42
|
#5
|
elite*gold: 0
Join Date: Nov 2009
Posts: 1,258
Received Thanks: 396
|
du willst was verändern.
das geht zu 20% gut, wenn du dein Spiel startest und die Dll reinpackst weit am anfang wird nichts passieren.
Weil wenn später alles geladen wird, kann es nicht nochmal überschrieben werden weil es ja schon beim Injecten überschrieben wurde.
Kann nur gehen wenn du DLL in das laufende Spiel reinpackst wenn du auf einer Map bist oder sonstiges.
in einer Void das ganze laufen zulassen ist allgemein unmöglich.
Vllt ist es bei deinen Punkten unwichtig aber sobald du sagen wir mal dein Life auf voller HP-Zahl halten willst.
Und du würdest die DLL reinpacken würdest du 9999 Life haben bis dich i-was trifft dann biste wieder auf dem alten Wert weil keine Schleife und kein Rückgabewert was in void allgemein nicht geht
daher nehme lieber HRESULT WINAPI oder DWORD als void
könnstest es so aufbauen
void blabla()
{
dein ganzes zeug zum memory bearbeiten
}
DWORD WINAPI uSchleife(LPVOID)
{
hier deine aufruf zum ModulHandle etc was du so willst
dann
while(1)
{
blabla(); <-- der void aufruf
Sleep(1);
}
return 0;
}
BOOL APIENTRY DllMain(HINSTANCE hInst,DWORD reason,LPVOID reserved)
{
if(reason==DLL_PROCESS_ATTACH)..
{
MessageBoxA(NULL, "Erfolgreich!", "Injection by ....", MB_OK);
CreateThread(NULL, NULL, uSchleife, NULL, NULL, NULL);
}
return true;
}
Prinzip verstanden ?
es muss ja mehrmals nachgetragen werden wenn man es nicht Freezt
|
|
|
10/19/2010, 23:09
|
#6
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
|
Quote:
Originally Posted by P-a-i-n
du willst was verändern.
das geht zu 20% gut, wenn du dein Spiel startest und die Dll reinpackst weit am anfang wird nichts passieren.
Weil wenn später alles geladen wird, kann es nicht nochmal überschrieben werden weil es ja schon beim Injecten überschrieben wurde.
Kann nur gehen wenn du DLL in das laufende Spiel reinpackst wenn du auf einer Map bist oder sonstiges.
in einer Void das ganze laufen zulassen ist allgemein unmöglich.
Vllt ist es bei deinen Punkten unwichtig aber sobald du sagen wir mal dein Life auf voller HP-Zahl halten willst.
Und du würdest die DLL reinpacken würdest du 9999 Life haben bis dich i-was trifft dann biste wieder auf dem alten Wert weil keine Schleife und kein Rückgabewert was in void allgemein nicht geht
daher nehme lieber HRESULT WINAPI oder DWORD als void
könnstest es so aufbauen
|
wtf laberst du da für ne Scheiße? Behalt dein nicht vorhandenes Wissen bitte für dich, danke.
|
|
|
10/19/2010, 23:53
|
#7
|
elite*gold: 0
Join Date: Nov 2009
Posts: 1,258
Received Thanks: 396
|
Quote:
Originally Posted by MoepMeep
wtf laberst du da für ne Scheiße? Behalt dein nicht vorhandenes Wissen bitte für dich, danke.
|
oh der Smart Alert muss wieder was sagen
Du hast ugefährt soviel ahnung wie ein Spatz fleisch am Knie
Wie willste in einen Arbeitsspeicher was festes reinschreiben der jede Millisekunden mit neuen Daten gefüttert wird?
Nicht vergessen der Arbeitsspeicher ist ja nur ein Tempspeicher da ist nichts festes drin.
nur weil du ihn mit deinem Google-Sourcecodes nichts erklären konntest
zudem ist der angeschnittene Source das Grundgerüst.
Aber da du ja alles kannst kannste ihm das ja machen.
Du willst immer Fehlermeldungen, kann ich mir schon denken wenn man danach dann Googlen muss ich sehe was er falsch macht.
Da du ja eh das letzte Wort hast wie immer "Bitte"
Dann kann ich nochmal Lachen
|
|
|
10/20/2010, 00:27
|
#8
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
|
Es handelt sich um die Punkte bei Solitär, diese müssen nicht andauernd neu gesetzt werden. Übrigens Spreche ich hier von GetLastError ( ) und nicht von Fehlermeldungen.
Bis auf das fehlende Leerzeichen beim WriteProcessMemory aufruf scheint seine Source auf den 1.Blick richtig zu sein, ich vermute einfach mal, dass dieser Fehler, warum auch immer, beim kopieren aufgetreten ist. Daher vermute ich, dass ihm die nötigen Rechte fehlen :> Diese kann er allerdings durch das setzen der entsprechenden Token erlangen, wohl am einfachsten über die SetDebugPrivilegs-Funktion, welche überall im Internet zu finden ist.
Übrigens sehe ich in den Meisten fällen auch sofort die Fehler, notfalls hau ichs selber kurz durch den compiler. Ich möchte allerdings die Leute zum selber denken anregen
@schnewin TE
|
|
|
10/20/2010, 00:39
|
#9
|
elite*gold: 115
Join Date: Oct 2007
Posts: 9,390
Received Thanks: 12,344
|
Die Tatsache, dass der OP sein genaues Problem überhaupt nicht schildert lässt mich annehmen, dass sein Code vollständig auf Copy&Paste basiert und er mit C++ so viel zu tun hatte wie Til Schweiger mit Hollywood.
|
|
|
10/20/2010, 01:08
|
#10
|
elite*gold: 0
Join Date: Nov 2009
Posts: 1,258
Received Thanks: 396
|
Quote:
Originally Posted by MoepMeep
Es handelt sich um die Punkte bei Solitär, diese müssen nicht andauernd neu gesetzt werden. Übrigens Spreche ich hier von GetLastError ( ) und nicht von Fehlermeldungen.
Bis auf das fehlende Leerzeichen beim WriteProcessMemory aufruf scheint seine Source auf den 1.Blick richtig zu sein, ich vermute einfach mal, dass dieser Fehler, warum auch immer, beim kopieren aufgetreten ist. Daher vermute ich, dass ihm die nötigen Rechte fehlen :> Diese kann er allerdings durch das setzen der entsprechenden Token erlangen, wohl am einfachsten über die SetDebugPrivilegs-Funktion, welche überall im Internet zu finden ist.
Übrigens sehe ich in den Meisten fällen auch sofort die Fehler, notfalls hau ichs selber kurz durch den compiler. Ich möchte allerdings die Leute zum selber denken anregen
@schnewin TE
|
Wie gesagt ich zeig dir mal ein BSP
ich mach es so in der art, aber ich arbeite lieber mit extra Void wie oben im in den Gestell alleine zur übersicht einiges kann man nicht aus den Kopf und muss probieren grade bei Memory dingen
ohne Schleife bei Memory geht nichts sonst müßte man ja wenn man ein Hotkey hat pausenlos auf der Taste rumtrommeln das es bleibt.
außer man verändert Sprünge das ist wieder was anderes.
Die rechte zu DLL die brauch keine nur der Injector damit sie in den Prozess kann.
Jetzt kommt es noch drauf an ob er Win7 hat und alles Dynamisch ist dann muss er BaseAdresse + Offset rechnen
In olly kann man sich das ja so anschauen wie weit es bis dahin ist
Sonst rechnet man die Offset-Adresse - BaseAdresse = das offset was man zum berechnen brauch.
Bsp mal dazu
OffsetAdresse = 0x00AA840
BaseAdresse = 0x0020100
00AA840 - 0020100 = 8A740
BaseAdresse + 0x8A740 ist dann der ich nehme mal an das soll der PlayerPointer sein
Der Aufruf findet immer an der selben Stelle statt nur die Adresszahlen ändern sich davor
wie das geht sieht man ja im Link
@ Disco
Aber vllt hilft es ja mal anderen
am Anfang hatte jeder mal probleme
|
|
|
10/20/2010, 01:37
|
#11
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
|
Quote:
Originally Posted by P-a-i-n
ohne Schleife bei Memory geht nichts sonst müßte man ja wenn man ein Hotkey hat pausenlos auf der Taste rumtrommeln das es bleibt.
|
Danke, nun hast du entgültig bewiesen, dass du keine Ahnung hast.
Quote:
Die rechte zu DLL die brauch keine nur der Injector damit sie in den Prozess kann.
|
Hat auch niemand behauptet. Mein Beitrag zu diesem Thema bezog sich auf die Source vom TE.
|
|
|
10/20/2010, 01:55
|
#12
|
elite*gold: 0
Join Date: Nov 2009
Posts: 1,258
Received Thanks: 396
|
Quote:
Originally Posted by MoepMeep
Danke, nun hast du entgültig bewiesen, dass du keine Ahnung hast.
Hat auch niemand behauptet. Mein Beitrag zu diesem Thema bezog sich auf die Source vom TE.
|
Wenn du meinst, dann bin ich offen für neus anhand eines Beispiel.
Schaue mal in den UC link läuft auch in einer Schleife, achso sind ja auch alles Noobs stimmt ja.
|
|
|
10/20/2010, 02:02
|
#13
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
|
Quote:
Originally Posted by P-a-i-n
Wenn du meinst, dann bin ich offen für neus anhand eines Beispiel.
Schaue mal in den UC link läuft auch in einer Schleife, achso sind ja auch alles Noobs stimmt ja.
|
aua Mir tut schon der Bauch weh vor lauter lachen
Bei dem UC Beispiel läuft die Abfrage, welche Taste gedrückt wurde in einer Schleife, allerdings nicht der Teil, welcher für die veränderung des Speichers nötig ist.
Bist du nun endlich ruhig oder willst du dich weiter selfownen? :x
edit: Grad nochmal einen genaueren Blick auf die UC-Source geworfen und ja, zumindest der Threadersteller ist ein noob. Aber ich will deine kleine, bunte Traumwelt nicht weiter zerstören.
|
|
|
10/20/2010, 11:47
|
#14
|
elite*gold: 0
Join Date: Nov 2009
Posts: 1,258
Received Thanks: 396
|
Wie gesagt ich warte noch auf dein Beispiel, weil ich Himmel ist auch Jahrmarkt aber ich sag dir nicht wo die Leiter steht der einzigste der keine ahnung hier hat bist du.
Sieht man in vielen anderen Post du bist einfach nur hier um andere voll zu Texten mit deinem geistigen Dünnschiss.
Du Laberst und Laberst aber weißt nicht mal was.
Trotzdem warte ich noch auf dein Beispiel
Kannst ja Need for Speed World nehmen das Spiel ist Free und kein Punkbuster oder sonstiges Zeig es anhand dem Nitro.
Da du ja eh alles kannst dürfte es ja kein Problem für dich sein.
|
|
|
10/20/2010, 12:18
|
#15
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
|
Quote:
Originally Posted by P-a-i-n
Wie gesagt ich warte noch auf dein Beispiel, weil ich Himmel ist auch Jahrmarkt aber ich sag dir nicht wo die Leiter steht der einzigste der keine ahnung hier hat bist du.
Sieht man in vielen anderen Post du bist einfach nur hier um andere voll zu Texten mit deinem geistigen Dünnschiss.
Du Laberst und Laberst aber weißt nicht mal was.
Trotzdem warte ich noch auf dein Beispiel
Kannst ja Need for Speed World nehmen das Spiel ist Free und kein Punkbuster oder sonstiges Zeig es anhand dem Nitro.
Da du ja eh alles kannst dürfte es ja kein Problem für dich sein.
|
Du vergleichst Äpfel mit Birnen, nice! :>
Das man Werte wie Nitro 'freezen' muss ist glaub ich jedem hier klar. Trotzdem geht es hier im Thread immernoch um die Punkte bei Solitär, welche ein einziges mal gesetzt werden müssen. Auch bei deinem Beispiel von UC werden die Werte genau einmal verändert pro Tastendruck.
Und mal nur so als Info, nicht nur ich lach mich hier tot (:
|
|
|
All times are GMT +2. The time now is 12:38.
|
|