schwarz, die farben sind
schwarz L1
blau L2
schwarz L3
Grau N
Rot PE
ist eine alte norm und auf einem von den schwarzen ist kein strom drauf und es sind alle automaten im sicherkasten an
schwarz, die farben sind
schwarz L1
blau L2
schwarz L3
Grau N
Rot PE
ist eine alte norm und auf einem von den schwarzen ist kein strom drauf und es sind alle automaten im sicherkasten an
Hab ein problem will ein Herd anschließen doch habe von der Wand aus nur 2 phasen mit Strom an der dritten ist nichts. Kann man eine Phase ohne weitere brücken?
Es existiert eine selbstgemachte Funktion von gamedeception(Twice ?!?).
LPVOID DetourCreate(LPVOID lpOldFunc, LPVOID lpNewFunc, int nSize)
{
// First, check the params.
if(nSize < 5 || lpOldFunc == NULL || lpNewFunc == NULL)
return NULL;
// This is the codecave, which contains the saved opcodes and the jumpingback.
LPBYTE lpOpcodes = new BYTE[nSize + 5];
// The patch, which contains a jump to lpNewFunc and maybe some NOPs.
LPBYTE lpPatch = new BYTE[nSize];
// Calculate the distance of both functions, because the JMP-Command needs it.
DWORD dwFuncDist = PtrToUlong(lpNewFunc) - PtrToUlong(lpOldFunc) - 5;
// Calculate the distance between the Codecave and the To-Hook-Function.
DWORD dwOpDist = PtrToUlong(lpOldFunc) - PtrToUlong(lpOpcodes) - 5;
// Used by VirtualProtect.
DWORD dwBack = 0;
// Give access to write the patch.
VirtualProtect(lpOldFunc, 5, PAGE_READWRITE, &dwBack);
// Save the opcodes.
memcpy(lpOpcodes, lpOldFunc, nSize);
// Write JMP-Command for the jumpingback.
lpOpcodes[nSize] = 0xE9;
// Write the needed parameter (distance) for the jumpingback.
memcpy(&lpOpcodes[nSize + 1], &dwOpDist, 4);
// Write the JMP-Command for calling the new function in the patch.
lpPatch[0] = 0xE9;
// Write address of the new function in the patch.
memcpy(&lpPatch[1], &dwFuncDist, 4);
// Fill the remaining Opcodes with NOPs.
for(int i = 5; i < nSize; i++)
lpPatch[i] = 0x90;
// Write the patch!
memcpy(lpOldFunc, lpPatch, nSize);
// Restore old protection.
VirtualProtect(lpOldFunc, 5, dwBack, &dwBack);
// Free non-needed space.
delete[] lpPatch;
// Return the CodeCave
return lpOpcodes;
}
Alles anzeigen
Die dann so eingesetzt wird:
HMODULE hWS32 = LoadLibraryA( "ws2_32.dll" );
FARPROC pConnect = GetProcAddress(hWS32,"connect");
DetourCreate((LPVOID)pConnect,my_connect,5);
__asm mov [ o_connect ], eax;
So wie ich das sehe wird nicht im MainModul sprich z.b. Game.exe die funktion umschrieben, sondern in der ws2_32.dll. Durch VirtualProtect wird das schreiben möglich. Nun ist hier die Sache du kannst nicht direkt eine funktion schreiben und sie einfach für dich arbeiten lassen. Du musst deine funktion selber also schritt für schritt und byte für byte schreiben. Was viel umständlicher ist und man für sowas zu faul ist vorallem braucht man erfahrung in ASM und bei großen Codes ist das schon ne große sache ![]()
Da ich mich in letzter Zeit mit Detours beschäftige und in C++ anwende(was gar nicht mein fachgebiet ist). Wollte ich es mal in C# versuchen was ja genauso eigentlich gar nicht möglich ist. Habe dann ein wenig gegoogelt und bin auf Easyhook und Whitemagic gestoßen. Wollte mal Fragen ob jemand erfahrung in dem Bereich Detours mit C# hat und wie sehr begrenzt ich bin und ob es sich jetzt nur z.b. für das hooken der connect funktion lohnt.
poste mal den socket teil das sagt gar nix aus ![]()
Habs bereits mit CreateThread versucht klappt nicht so ganz, oder habe es falsch genutzt, grml ![]()
Hey leute war ja paar mal wegen injectet dll hier in C++, sofern ich die DLL so injecte wie in der funktion hier ist der prozess freezed. Vermute mal das NUR die schleife läuft sonst gar nichts, krieg das aber nicht hin, habt ihr einen Vorschlag?
// dllmain.cpp : Definiert den Einstiegspunkt für die DLL-Anwendung.
#include "stdafx.h"
//#include <iostream>
//#include <fstream>
//#include <string>
//#include <windows.h>
//#include <winsock2.h>
//#pragma comment(lib,"ws2_32.lib")
using namespace std;
typedef int (WINAPI* realConnect )(SOCKET s, const struct sockaddr* name, int namelen );
typedef int (WINAPI* realRecv)(SOCKET socket, const char* buffer, int length, int flags);
typedef int (WINAPI* realSend)(SOCKET socket, const char* buffer, int length, int flags);
realSend o_send;
realRecv o_recv;
realConnect o_connect;
SOCKET Bot;
SOCKET Server;
SOCKET Client;
WORD port;
//int WINAPI my_connect( SOCKET s, const struct sockaddr* name, int namelen)
//{
// WORD port = ntohs((*(WORD*)name->sa_data));
// sockaddr_in *sockaddr = (sockaddr_in*)name;
// sockaddr->sin_port = htons(16000);
// if ( port != 80 )
// {
// sockaddr->sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
// }
// return o_connect(s,name,namelen);
//}
int WINAPI my_connect( SOCKET s, const struct sockaddr* name, int namelen)
{
port = ntohs((*(WORD*)name->sa_data));
/*sockaddr_in *sockaddr = (sockaddr_in*)name;*/
//sockaddr->sin_port = htons(16000);
//if ( port != 80 )
//{
//sockaddr->sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
//}
return o_connect(s,name,namelen);
}
int WINAPI my_send(SOCKET socket, char* buffer, int length, int flags)
{
if ( port != 80 )
{
int PacketLenght = *(WORD*)buffer;
buffer[-1] = 2;
o_send(Bot, buffer-1, PacketLenght+1, 0);
}
Server = socket;
return o_send(Server, buffer, length, flags);
}
int WINAPI my_recv(SOCKET socket, char* buffer, int length, int flags)
{
if ( port != 80 )
{
int PacketLenght = *(WORD*)buffer;
buffer[-1] = 1;
o_send(Bot, buffer-1, PacketLenght+1, 0);
}
Client = socket;
return o_recv(Client, buffer, length, flags);
}
void Receiving()
{
//Socketpart
WSADATA wsa;
WSAStartup(MAKEWORD(2,2), &wsa);
Bot=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
SOCKADDR_IN addr;
memset(&addr,0,sizeof(SOCKADDR_IN));
addr.sin_family=AF_INET;
addr.sin_port=htons(16000);
addr.sin_addr.s_addr=inet_addr("127.0.0.1");
long status;
status=connect(Bot,(SOCKADDR*)(&addr),sizeof(addr));
if (status==SOCKET_ERROR)
{
MessageBox(NULL, TEXT("Bot dont exists"), TEXT("Error"), MB_OK);
exit(0);
}
char* buffer = 0;
int lenght = 9999;
int bytes = -1;
while (bytes = -1)
{
bytes = recv (Bot, buffer, lenght, 0);
}
}
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved )
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
/////////////////////////////////////////////////////
HMODULE hWS32 = LoadLibraryA( "ws2_32.dll" );
FARPROC pConnect = GetProcAddress(hWS32,"connect");
FARPROC pSend = GetProcAddress(hWS32,"send");
FARPROC pRecv = GetProcAddress(hWS32,"recv");
DetourCreate((LPVOID)pConnect,my_connect,5);
__asm mov [ o_connect ], eax;
DetourCreate((LPVOID)pSend,my_send,5);
__asm mov [ o_send ], eax;
DetourCreate((LPVOID)pRecv,my_recv,5);
__asm mov [ o_recv ], eax;
Receiving();
break;
}
return true;
}
Alles anzeigen
Edit: sorry klappt ![]()
Hey ich habe hier den "char* buffer" von einer hooked send funktion und möchte davon das erste Word lesen welche mir die Packetlänge ausgibt.
Mache ich das mit fstream? Hat jemand evt. ein beispiel?
Ich habe mich letzte Zeit ein wenig mit Detour beschäftigt und zugleich mit C++ da ich darin keine erfahrung habe. Habe jetzt vor WSAsend und WSArecv zu hooken und bin soweit gekommen wie jetzt in dem Source nur leider kriege ich keine MessageBox, wo liegt der fehler:
// dllmain.cpp : Definiert den Einstiegspunkt für die DLL-Anwendung.
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
typedef int (WINAPI* t_WSARecv)(SOCKET,LPWSABUF,DWORD,LPDWORD,LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE);
typedef int (WINAPI* t_WSASend)(SOCKET,LPWSABUF,DWORD,LPDWORD,DWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE );
t_WSASend o_WSASend;
t_WSARecv o_WSARecv;
int WINAPI hook_WSARecv(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesRecvd,LPDWORD lpFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)
{
MessageBox(NULL, NULL, NULL, MB_OK);
return o_WSARecv(s,lpBuffers,dwBufferCount,lpNumberOfBytesRecvd,lpFlags,lpOverlapped,lpCompletionRoutine);
}
int WINAPI hook_WSASend(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesSent,DWORD dwFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)
{
MessageBox(NULL, NULL, NULL, MB_OK);
return o_WSASend(s,lpBuffers,dwBufferCount,lpNumberOfBytesSent,dwFlags,lpOverlapped,lpCompletionRoutine);
}
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved )
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
HMODULE hWS32 = LoadLibraryA( "ws2_32.dll" );
FARPROC pwsasend = GetProcAddress(hWS32,"wsasend");
FARPROC pwsarecv = GetProcAddress(hWS32,"wsarecv");
DetourCreate((LPVOID)pwsasend,hook_WSASend,5);
DetourCreate((LPVOID)pwsarecv,hook_WSARecv,5);
break;
}
return true;
}
Alles anzeigen
Seit gestern etwa funktioniert mein Debug nicht richtig um das projekt aktuell zu debuggen muss ich es immer bereinigen und neu erstelen. Sofern ich es debugge wird es immer vom letzten erstellten Projekt gedebuggt.
Wo ist das problem ich kann nichts finden?
Ich habe einen HexString z.b. den hier:
"02 60 F4 BE 07 07 4C 75 63 65 6D 6F 6E 00 00 00 02 58 CE B9 07 08 4C 65 76 69 61 6D 6F 6E 00 00 00 00 09 62 72 61 74 61 6E 39 39 30 00 0F 1A"
Möchte jedes EINZELNE Byte im Hexstring in einen AsciiString wandeln, bissher habe ich nur den gesamten Hexstring umwandeln können. Irgendwie klappt das nicht so ganz hat jemand einen Tip für mich?
Gleiches problem, wenn ich in ein CHatt gehe der mit java betrieben ist stürzt der mir ab und cookies hat gehlfen jedoch nur für 10 minuten
Fürn anfang das issen Röhrenbildschirm etwa 5 jahre alt , daneben ist ne wii dadrunter receiver und dvd player ich schau mal bisschen nach
Mein Fernseher ist seit ein paar Tagen ein wenig kaputt, das Bild hat seine Farbe drumherum sich verändert erst rot und dieses rot mischt sich mit den Farben und seit eben grün, woran könnte das liegen kennt sich jemand aus?
hast du die source noch? da sind wohl mehr dateien versteckt ![]()
Ich vermute mal du brauchst ein Gewerbeschein, google mal danach, kostet einmalig je nach Bundesland in etwa 50 euro - + ein paar euro
Wie ihr vielleicht durch ein paar Threads gemerkt habe interessiere ich mich dafür Hacks/Bots etc. für andere Spiele ausser Silkroad zu schreiben. Da bei Digimon Masters Online ein Hackshield ist wollte ich erst ein anderes Game finden, fand aber zur Zeit keins was für mich Persönlich so interessant ist wie DMO von Joymax.
Einige sachen habe ich schon mit denen man etwas anfangen könnte z.b.:
-RedirectIP über ASM
-Networkcode sowohl Client als auch Server Connection
Für den anfang ein bisschen wenig war bissher noch net so motiviert.
Informationen sind z.b.:
-Das Game verfügt über Login und World Server wie bei Silkroad Online
-Die Packete sind alle unverschlüsselt also kann man sofort damit arbeiten
-Das Packet ist so aufgebaut: Size vom gesamten Packet als Word + Opcode als Word + Packetdata als rest
-Jemand hat bei Ragezone versucht einen Emulator in C# geschrieben also zumindest einiges
Hier link zur SVN = https://github.com/Comfy-Mittens/Digital-World
Probleme:
-Hackshield ist das größte problem, zum Bypassen(wie ich das jetzt schon gemacht habe damit ich 20 minuten Ingame testen kann) gehört noch das Emulieren dazu
-Packet Parsen, da muss man ein wenig Zeit investieren
Wer interessiert ist bitte melden
Mal ne Frage nebenbei, weiß vllt jemand. Hat man Recht auf Wohngeld zu zweit in einer 58 m² Wohnung die 430 Euro warm ist, wenn man 1100+180 Euro Geld zu verfügung hat, dazu muss ich sagen Auto+ 30km zur Arbeit von mir kommt auch noch dazu.
Hallo leute, da ich von SRO durch die Private Server und jetzt zuletzt durch SRO-R total enttäuscht bin habe auf Digimon Masters gewechselt, das spiel hat mir sehr gefallen und ich dachte mir das ich paar Hacks (Range Patch, Zoomhack, Multiclient) schreibe, leider ist mir das Hackshield im weg und kriege das nicht hin, kriegt keiner hin. Das Hackshield NOPEN geht, aber nach 5 mins gibts nen disconnect.
Nun da ich jetzt lust habe paar Hacks zu machen würde ich gerne auf ein anderes Spiel umsteigen. Hat jemand nen Vorschlag welches spiel, sollte ohne Hackshield, Xtrap oder sonst was sein...