|
You last visited: Today at 17:25
Advertisement
C++ Pages
Discussion on C++ Pages within the C/C++ forum part of the Coders Den category.
12/18/2013, 19:22
|
#16
|
elite*gold: 0
Join Date: Jan 2010
Posts: 140
Received Thanks: 6
|
Quote:
Originally Posted by Dr. Coxxy
soweit ich das sehe wurden entsprechende stichwörter und auch schon ein lösungsweg beschrieben, trzd. scheint der TE nicht weiterzukommen - was wiederum zweifel an der sinnhaftigkeit seiner "lernmethode" aufkommen lässt.
|
warum ? O.o
Wenn ich es halt nicht verstehe und nicht weiß wie ich es in Code umsetzen kann?
|
|
|
12/21/2013, 18:49
|
#17
|
elite*gold: 0
Join Date: Jan 2010
Posts: 140
Received Thanks: 6
|
kann mir jemand weiterhelfen?
|
|
|
12/23/2013, 22:01
|
#18
|
elite*gold: 0
Join Date: Jan 2010
Posts: 140
Received Thanks: 6
|
also leute ich bin jetzt ordentlich weiter gekommen.
Functions:
Code:
#include <iostream>
#include <Windows.h>
#include <tlhelp32.h>
#include <Psapi.h>
void MsgBoxAddy(DWORD addy)
{
char szBuffer[1024];
sprintf(szBuffer, "Addy:", addy);
MessageBox(NULL, szBuffer, "Title", MB_OK);
}
void WriteToMemory(uintptr_t addressToWrite, char* valueToWrite, int byteNum)
{
unsigned long OldProtection;
VirtualProtect((LPVOID)(addressToWrite), byteNum, PAGE_EXECUTE_READWRITE, &OldProtection);
memcpy( (LPVOID)addressToWrite, valueToWrite, byteNum);
VirtualProtect((LPVOID)(addressToWrite), byteNum, OldProtection, NULL);
}
DWORD FindPattern(PVOID base, SIZE_T regionssize, char *pattern, char *mask)
{
DWORD base1 = (DWORD)base;
DWORD size1 = (DWORD)regionssize;
DWORD patternLength = (DWORD)strlen(mask);
for(DWORD i = 0; i < size1 - patternLength; i++)
{
bool found = true;
for(DWORD j = 0; j < patternLength; j++)
{
found &= mask[j] == '?' || pattern[j] == *(char*)(base1 + i + j);
}
if(found)
{
return base1 + i;
}
}
return NULL;
}
Source:
#include <Windows.h>
#include <iostream>
#include "Functions.h"
using namespace std;
char AmmoOpCode[] = "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90";
void InitiateHooks()
{
MEMORY_BASIC_INFORMATION memInfo;
for (DWORD queryAddress = 0; queryAddress < 0x80000000;
queryAddress += memInfo.RegionSize)
{
if (!VirtualQuery(reinterpret_cast<LPCVOID>(queryAddress), &memInfo, sizeof(memInfo)))
break;
if (memInfo.Protect != 0x01)
{
DWORD ammoAddy = FindPattern(memInfo.BaseAddress,memInfo.RegionSize,
"\x89\x82\x00\x00\x00\x00\x8B\x4D\xF8\x8B\x01\x8B\x80\x00\x00\x00\x00\xFF\x50\x00\x89\x45\xF4\x8B\x45\xF8\x8B\x88\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x89\x45\xF0\x8B\x4D\xF4\x8B\x55\xF0\x8B\x01\x8B\x40\x50\xFF\x10\x90\x90\x90\x8B\xE5\x5D\xC2\x04\x00\x00\x00\x00\x00\x00\xD0\x23\x32", "xx????xxxxxxx????xx?xxxxxxxx????x????xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
if (ammoAddy != 00)
{
MsgBoxAddy(ammoAddy);
WriteToMemory(ammoAddy, AmmoOpCode, 70);
break;
}
}
}
}
#pragma endregion
BOOL WINAPI DllMain(
HINSTANCE hinstDLL,
DWORD fdwReason,
LPVOID lpReserved)
{
switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
//MessageBoxA(NULL, "Erfolgreich!", "", 0);
InitiateHooks();
break;
}
return TRUE;
}
jetzt dachte ich: Yeah wird funktionieren.
Habe auch nochmal alles nach Fehler durchgeschaut und keine gefunden. leider wird keine Messagebox angezeigt ,was soviel heißt wie: Das Pattern wurde nicht gefunden.
Kann mir da jemand weiterhelfen? ich hab alles versucht, aber weiter komme ich nicht.
Danke
|
|
|
12/25/2013, 12:36
|
#19
|
elite*gold: 0
Join Date: Jan 2009
Posts: 1,160
Received Thanks: 232
|
Ist das obere die Functions.h?
|
|
|
12/27/2013, 20:22
|
#20
|
elite*gold: 0
Join Date: Jan 2010
Posts: 140
Received Thanks: 6
|
Quote:
Originally Posted by Delinquenz
Ist das obere die Functions.h?
|
ja  sorry aber mr.smith musste es ja unbedingt editieren.. davor war der quellcode unterteilt. Der obere Teil ist die Functions.h schau mal im Quellcode irgendwo kommt dann:
Source
aber da komtm dann die Source
|
|
|
12/27/2013, 21:09
|
#21
|
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
|
Code:
for (DWORD queryAddress = 0; queryAddress < 0x80000000;
queryAddress += memInfo.RegionSize)
{
if (!VirtualQuery(reinterpret_cast<LPCVOID>(queryAddress), &memInfo, sizeof(memInfo)))
break;
Sicher, dass VirtualQuery bei NULL als Adresse einen positiven Wert zurückgibt? Hast du schonmal überprüft, welche Memory Pages durchsucht werden?
Wenn du deinen Code in Zukunft mit dem [CODE] Tag postest, muss MrSm!th deinen Code übrigens auch nicht mehr editieren..
|
|
|
12/28/2013, 00:50
|
#22
|
elite*gold: 0
Join Date: Jan 2010
Posts: 140
Received Thanks: 6
|
hab jetzt:
#include <Windows.h>
#include <iostream>
#include "Functions.h"
#include <fstream>
#include <iomanip>
using namespace std;
char AmmoOpCode[] = "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\ x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90";
void InitiateHooks()
{
DWORD lastError = GetLastError();
ofstream log("virtual_query_log.log");
MEMORY_BASIC_INFORMATION memInfo;
ZeroMemory(&memInfo, sizeof(memInfo));
for (DWORD queryAddress = 0; queryAddress < 0x80000000; queryAddress += memInfo.RegionSize)
{
if (!VirtualQuery(reinterpret_cast<LPCVOID>(queryAddr ess), &memInfo, sizeof(memInfo)))
break;
else
{
log << hex << setw(8) <<setfill('0') << queryAddress << endl;
}
if (memInfo.Protect != 0x01)
{
DWORD ammoAddy = FindPattern(memInfo.BaseAddress,memInfo.RegionSize , "\x89\x82\x00\x00\x00\x00\x8B\x4D\xF8\x8B\x01\x8B\ x80\x00\x00\x00\x00\xFF\x50\x00\x89\x45\xF4", "xx????xxxxxxx????xx?xxx");
if (ammoAddy != 00)
{
MsgBoxAddy(ammoAddy);
WriteToMemory(ammoAddy, AmmoOpCode, 23);
break;
}
}
}
}
#pragma endregion
BOOL WINAPI DllMain(
HINSTANCE hinstDLL,
DWORD fdwReason,
LPVOID lpReserved)
{
switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
//MessageBoxA(NULL, "Erfolgreich!", "", 0);
InitiateHooks();
break;
}
return TRUE;
}
in der txt file steht:
00000000
00010000
00020000
00021000
00030000
00031000
00040000
00041000
00050000
00054000
00060000
00061000
00070000
00071000
00080000
000e7000
000f0000
000f1000
00100000
00101000
das ist zuwenig denke ich. also bricht es irgendwo ab. Wo muss ich die funktion getlasterror hinsetzen oder gibt es noch eine andere Möglichkeit?
Danke
|
|
|
12/28/2013, 12:23
|
#23
|
elite*gold: 0
Join Date: Oct 2008
Posts: 1,637
Received Thanks: 1,119
|
Sollte recht genau beschreiben wann die Funktion anzuwenden ist.
Wir sind zwar hier um zu helfen, aber nicht für jedes winzige Problem das sich mit 2 Sekunden googlen selbst lösen lässt.
|
|
|
12/28/2013, 13:40
|
#24
|
elite*gold: 0
Join Date: Jan 2010
Posts: 140
Received Thanks: 6
|
Ja das weiß ich ja, aber ich war mir unsicher an welcher Stelle ich es genau hinsetzen soll.
|
|
|
12/28/2013, 13:43
|
#25
|
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
|
Sagma.. dein Ernst?
Es steht genau dieser Satz drin: "You should call the GetLastError function immediately when a function's return value indicates that such a call will return useful data. That is because some functions call SetLastError with a zero when they succeed, wiping out the error code set by the most recently failed function."
Heißt: hinter der Funktion, die failed.
Wenn du es wirklich nicht weißt, dann halt einfach hinter alle WinAPI-Aufrufe die failen könnten
Padmak
|
|
|
12/28/2013, 15:33
|
#26
|
elite*gold: 0
Join Date: Jan 2010
Posts: 140
Received Thanks: 6
|
so?:
|
|
|
12/28/2013, 15:58
|
#27
|
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
|
Quote:
Originally Posted by Moritz99
so?:

|
hör auf zu copypasten, lern die sprache, werd älter, lies ein paar bücher, aber bitte, bitte, lass uns mit deiner blödheit in ruhe.
|
|
|
12/28/2013, 16:01
|
#28
|
elite*gold: 0
Join Date: Jan 2010
Posts: 140
Received Thanks: 6
|
Quote:
Originally Posted by Dr. Coxxy
deiner blödheit
|
danke  netter geht es nicht oder?
Nur weil du das schon lange machst und auch gut bist in Hacks musst du nicht gleich andere fertig machen
|
|
|
12/29/2013, 05:58
|
#29
|
elite*gold: 1329
Join Date: Jun 2009
Posts: 1,873
Received Thanks: 960
|
Das hat nichts mit Hacks zu tun. Du kannst die Sprache nicht. So lange du kein C++ kannst, kannst du absolut überhaupt nichts machen, egal was du vor hast.
Sag mal bitte in eigenen Worten, wo du überall die Funktion in deinem Code deiner Meinung nach aufrufst und was sie an jeder einzelnen Stelle für einen Rückgabewert haben kann. Wenn du das schaffst sollte dir Coxxy's Reaktion klar sein und du darfst dich in Grund und Boden schämen.
|
|
|
Similar Threads
|
Still one of the best pages
09/24/2012 - Say Hello - 5 Replies
Just want to say hello and thank you for the good work here :)
|
[B]3 FB Fan Pages [S]?
03/10/2012 - elite*gold Trading - 19 Replies
hey,
ich biete folgende drei Facebook Fan pages:
=> | Facebook 5.977Likes
Wir sind gegen Acta! Bist du es auch? | Facebook 2.278Likes
Wie viel % Charlie steckt in dir? | Facebook 3.693Likes
Alles bleibt so wie es jetz ist, dh alle apps bleiben drauf:).
Regards me.
|
Bag Pages
03/11/2010 - EO PServer Hosting - 0 Replies
Is there a way to make more space in your bag. Ex- instead of only holding 12 demons you can make it hold 16 or whatever number you want.
|
IPs,Pages
03/13/2008 - SRO Private Server - 2 Replies
can some1 let me kno more pages for ips...other than this one Anonymous proxy test,socks5 list,anonymous proxy,Free proxy for game,- IP free of china
and there is not ip working right?
|
All times are GMT +1. The time now is 17:25.
|
|