Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Nostale > Nostale Hacks, Bots, Cheats & Exploits
You last visited: Today at 02:35

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Release] Packetlogger - By Doktor.

Discussion on [Release] Packetlogger - By Doktor. within the Nostale Hacks, Bots, Cheats & Exploits forum part of the Nostale category.

Closed Thread
 
Old 06/19/2014, 21:57   #31



 
IceTrailer's Avatar
 
elite*gold: 150
Join Date: Sep 2010
Posts: 2,070
Received Thanks: 821
Quote:
Originally Posted by hivg View Post
wie soll ich das denn starten bei mir kommt nur winra und da steht ich kanns nicht öfnnen o,o
mit einem DLL Injector starten.
IceTrailer is offline  
Old 07/05/2014, 17:58   #32
 
elite*gold: 0
Join Date: Jun 2014
Posts: 65
Received Thanks: 3
Wo geb ich denn eig zb c_mode 00000 1 15 7 0 ein verstehe es nicht so genau bitte help ( skype addy lucas.inga aus dresden kann bildschirmübertragung machen falls nötig
Xqlusiv is offline  
Old 10/11/2014, 21:12   #33
 
elite*gold: 0
Join Date: Jan 2012
Posts: 5
Received Thanks: 5
I create .dll using Doktor packet logger source code, but when i inject it to NosTale and move my character i get an error, on NosTale i have black screen:



Can someone help me?
lemon250 is offline  
Old 11/06/2014, 21:07   #34
 
elite*gold: 0
Join Date: Jul 2012
Posts: 37
Received Thanks: 5
wie lade ich mir den packetlogger runter wie aufm bild?
erh4n is offline  
Old 11/06/2014, 22:31   #35
 
SX-Trader's Avatar
 
elite*gold: 0
Join Date: Jul 2013
Posts: 175
Received Thanks: 19
Quote:
Originally Posted by erh4n View Post
wie lade ich mir den packetlogger runter wie aufm bild?
Du musst wenn du das Bild am Anfang des Threads siehst, Alt + F4 drücken, der download startet dann automatisch.
SX-Trader is offline  
Old 11/06/2014, 23:19   #36
 
elite*gold: 0
Join Date: Jul 2012
Posts: 37
Received Thanks: 5
Dann schließt sich nur mein internet-.-
erh4n is offline  
Old 12/02/2014, 16:45   #37

 
elite*gold: 29
The Black Market: 114/0/0
Join Date: Nov 2014
Posts: 113
Received Thanks: 21
Mal so eine Frage wie fange ich genau die Packete ab und verwandle in meine? kann mir das einer genauer erklären???
Maiong1 is offline  
Old 12/10/2014, 07:32   #38


 
aiimsh0ckz's Avatar
 
elite*gold: 158
Join Date: Apr 2012
Posts: 606
Received Thanks: 76
Quote:
Originally Posted by erh4n
Dann schließt sich nur mein internet-.-
Dann versuchs mal mit Windows+M, Alt+F4, Enter.

Manche Menschen sind echt keine Leuchten.

@Doktor.:


Wad meint der damit?

Ahja, Strukturierung ist dir auch ein Fremdwort? Ebenso wie DEKLARATION der Funktionen? Soll jetzt kein Werturteil sein Mich hat's nur gewundert.

Btw - irgendwie so - C++?

Code:
/* 
 * Coded by: Doktor.
 * Language: C / ASM
 * -----------------
 * Reworked by: aiimsh0ckz
 * Language: C++ / ASM
 * Added declarations,
 * attached some {}'s to have a clean text
 */

/* Shut compilers mouth .. */
#define _CRT_SECURE_NO_WARNINGS 

#include <Windows.h>
#include <iostream>

bool DetourFunc(BYTE *, BYTE *, DWORD);
bool DetourFunc(BYTE *oldFunc, BYTE *newFunc, DWORD len)
{
	BYTE *newMem4base = NULL;
	DWORD dwOld;

	newMem4base = (BYTE *)malloc(5 + len);

	if (newMem4base == NULL) {
		return (false);
	}

	for (DWORD i = 0; i < (len + 5); ++i) {
		newMem4base[i] = 0x90;
	}

	VirtualProtect(oldFunc, len, PAGE_READWRITE, &dwOld);

	memcpy(newMem4base, oldFunc, len);
	oldFunc[0] = 0xE8;
	* (DWORD *)(oldFunc + 0x01) = DWORD(newFunc - oldFunc - 5);
	oldFunc[5] = 0xE9;
	* (DWORD *)(oldFunc + 0x06) = DWORD(newMem4base - (oldFunc + 0x5) - 5);
	newMem4base += len;
	newMem4base[0] = 0xE9;
	* (DWORD *)(newMem4base + 0x01) = DWORD((oldFunc + 10) - newMem4base - 5);

	for (DWORD i = 10; i < len; ++i) {
		oldFunc[i] = 0x90;
	}

	return (true);
}

bool bDataCompare(const unsigned char *, const unsigned char *, const char *);
bool bDataCompare(const unsigned char *pData, const unsigned char *bMask, const char *szMask)
{
	for (; *szMask; ++szMask, ++pData, ++bMask) {
		if (*szMask == 'x' && *pData != *bMask) {
			return (false);
		}

		return ((*szMask) == 0);
	}
}

DWORD dwFindPattern(BYTE *, char *);
DWORD dwFindPattern(BYTE *bMask, char *szMask)
{
	DWORD dw_Address = 0x00400000;
	DWORD dw_Len = 0x00436000;

	for (DWORD i = 0; i < dw_Len; ++i) {
		if (bDataCompare((unsigned char *)(dw_Address + i), bMask, szMask)) {
			return ((DWORD)(dw_Address + i));
		}
	}
	return (0);
}

void hkSend(void);
void hkSend(void)
{
	char *packet;

	_asm
	{
		pushad
		pushfd
		MOV packet, EDX
	}

	std::cout << "Send: " << packet << std::endl;

	_asm
	{
		popfd
		popad
	}
}

void hkRecv(void);
void hkRecv(void)
{
	char *packet;

	_asm
	{
		pushad
		pushfd
		MOV packet, EDX
	}

	std::cout << "Recv: " << packet << std::endl;

	_asm
	{
		popfd
		popad
	}
}

DWORD WINAPI tThread(LPVOID);
DWORD WINAPI tThread(LPVOID param)
{
	AllocConsole();
	freopen("CONIN$", "r", stdin);
	freopen("CONOUT$", "w", stdout);
	freopen("CONOUT$", "w", stderr);

	/* Send */
	BYTE s_bPatter[] = { 0x53, 0x56, 0x8B, 0xF2, 0x8B, 0xD8, 0xEB, 0x04 };
	char *s_cPatter = "xxxxxxxx";
	DWORD dSend = dwFindPattern(s_bPatter, s_cPatter);

	/* Recv */
	BYTE r_bPatter[] = { 0x55, 0x8B, 0xEC, 0x83, 0xC4, 0xF4, 0x53, 0x56, 
						 0x57, 0x33, 0xC9, 0x89, 0x4D, 0xF4, 0x89, 0x55, 
						 0xFC, 0x8B, 0xD8, 0x8B, 0x45, 0xFC };
	char *r_cPatter = "xxxxxxxxxxxxxxxxxxxxxx";
	DWORD dRecv = dwFindPattern(r_bPatter, r_cPatter);

	DetourFunc((BYTE *)dSend, (BYTE *)&hkSend, 14);
	DetourFunc((BYTE *)dRecv, (BYTE *)&hkRecv, 11);
	return (0x0);
}

BOOL APIENTRY DllMain(HMODULE, DWORD, LPVOID);
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
		CreateThread(nullptr, 0, tThread, nullptr, 0, nullptr);
		DisableThreadLibraryCalls(hModule);
		break;
	}
	return (TRUE);
}
aiimsh0ckz is offline  
Old 12/10/2014, 12:19   #39

 
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
Quote:
Originally Posted by aiimsh0ckz
Ahja, Strukturierung ist dir auch ein Fremdwort? Ebenso wie DEKLARATION der Funktionen? Soll jetzt kein Werturteil sein Mich hat's nur gewundert.

Btw - irgendwie so - C++?
Das war ihm wohl ein Fremdwort zu dieser Zeit.


Was der Fehler bedeutet?
Das heißt du hast keine Funktion namens _main.
Was wieder rum vielleicht heißt, das du kein Dll-Projekt erstellt hast.

Probier einfach mal diesen Code einzufügen:

Code:
void _main();
void _main() {

}
BladeTiger12 is offline  
Thanks
1 User
Old 12/10/2014, 12:23   #40


 
aiimsh0ckz's Avatar
 
elite*gold: 158
Join Date: Apr 2012
Posts: 606
Received Thanks: 76
Quote:
Originally Posted by BladeTiger12
Was wieder rum vielleicht heißt, das du kein Dll-Projekt erstellt hast.
Ohh shit, danke für den Tipp! Is'ne Win32-Application.

---------------

EDIT:


Projekt is'ne DLL jetzt. Fehler gefunden. :

Code:
bool bDataCompare(const unsigned char *pData, const unsigned char *bMask, const char *szMask)
{
	for (; *szMask; ++szMask, ++pData, ++bMask) {
		if (*szMask == 'x' && *pData != *bMask) {
			return (false);
		}
	} // <-- Hier die Schleife zu machen
		return ((*szMask) == 0);
// } <-- ... und nicht hier
}
NUR WEGEN DIR DOK. NUR WEGEN DIIIR!
Direkt am Anfang schleifen setzen.

Jammert halt noch rum.. Aber sonst passts jetzt c:

.. was natürlich klar ist, weil .dll's ja keine .exe'n sind..

Kanns ma jmd. testen, ob sich vonner Funktionsweise was geändert hat? Kann hier in der Arbeit (also eig. Schule) schlecht Nos anschmeißen.



Natürlich VT-Link:

Gruß, aiimsh0ckz. / Topschii

Der Thanksbutton funzt bei mir. Und bei Doktor. auch!
Attached Files
File Type: rar Paketlogger - By Doktor. (aiimsh0ckz' C++ Rework).rar (6.3 KB, 84 views)
aiimsh0ckz is offline  
Old 12/10/2014, 17:36   #41
 
Doktor.'s Avatar
 
elite*gold: 0
Join Date: Aug 2011
Posts: 1,190
Received Thanks: 549
Funktionen so zu deklarieren hat auch wenig Sinn, da kann man die gleich definieren.
Oder man macht es halt so und deklariert sie ganz oben:
Hoffe ich bringe deklarieren und definieren mal wieder nicht durcheinander...

Code:
#define _CRT_SECURE_NO_WARNINGS 

#include <Windows.h>
#include <iostream>

bool DetourFunc(BYTE *, BYTE *, DWORD);
bool bDataCompare(const unsigned char *, const unsigned char *, const char *);
DWORD dwFindPattern(BYTE *, char *);
void hkSend(void);
void hkRecv(void);
DWORD WINAPI tThread(LPVOID);
BOOL APIENTRY DllMain(HMODULE, DWORD, LPVOID);

bool DetourFunc(BYTE *oldFunc, BYTE *newFunc, DWORD len)
{
	BYTE *newMem4base = NULL;
	DWORD dwOld;

	newMem4base = (BYTE *)malloc(5 + len);

	if (newMem4base == NULL) {
		return (false);
	}

	for (DWORD i = 0; i < (len + 5); ++i) {
		newMem4base[i] = 0x90;
	}

	VirtualProtect(oldFunc, len, PAGE_READWRITE, &dwOld);

	memcpy(newMem4base, oldFunc, len);
	oldFunc[0] = 0xE8;
	* (DWORD *)(oldFunc + 0x01) = DWORD(newFunc - oldFunc - 5);
	oldFunc[5] = 0xE9;
	* (DWORD *)(oldFunc + 0x06) = DWORD(newMem4base - (oldFunc + 0x5) - 5);
	newMem4base += len;
	newMem4base[0] = 0xE9;
	* (DWORD *)(newMem4base + 0x01) = DWORD((oldFunc + 10) - newMem4base - 5);

	for (DWORD i = 10; i < len; ++i) {
		oldFunc[i] = 0x90;
	}

	return (true);
}

bool bDataCompare(const unsigned char *pData, const unsigned char *bMask, const char *szMask)
{
	for (; *szMask; ++szMask, ++pData, ++bMask) {
		if (*szMask == 'x' && *pData != *bMask) {
			return (false);
		}

		return ((*szMask) == 0);
	}
}

DWORD dwFindPattern(BYTE *bMask, char *szMask)
{
	DWORD dw_Address = 0x00400000;
	DWORD dw_Len = 0x00436000;

	for (DWORD i = 0; i < dw_Len; ++i) {
		if (bDataCompare((unsigned char *)(dw_Address + i), bMask, szMask)) {
			return ((DWORD)(dw_Address + i));
		}
	}
	return (0);
}

void hkSend(void)
{
	char *packet;

	_asm
	{
		pushad
		pushfd
		MOV packet, EDX
	}

	std::cout << "Send: " << packet << std::endl;

	_asm
	{
		popfd
		popad
	}
}

void hkRecv(void)
{
	char *packet;

	_asm
	{
		pushad
		pushfd
		MOV packet, EDX
	}

	std::cout << "Recv: " << packet << std::endl;

	_asm
	{
		popfd
		popad
	}
}

DWORD WINAPI tThread(LPVOID param)
{
	AllocConsole();
	freopen("CONIN$", "r", stdin);
	freopen("CONOUT$", "w", stdout);
	freopen("CONOUT$", "w", stderr);

	/* Send */
	BYTE s_bPatter[] = { 0x53, 0x56, 0x8B, 0xF2, 0x8B, 0xD8, 0xEB, 0x04 };
	char *s_cPatter = "xxxxxxxx";
	DWORD dSend = dwFindPattern(s_bPatter, s_cPatter);

	/* Recv */
	BYTE r_bPatter[] = { 0x55, 0x8B, 0xEC, 0x83, 0xC4, 0xF4, 0x53, 0x56, 
						 0x57, 0x33, 0xC9, 0x89, 0x4D, 0xF4, 0x89, 0x55, 
						 0xFC, 0x8B, 0xD8, 0x8B, 0x45, 0xFC };
	char *r_cPatter = "xxxxxxxxxxxxxxxxxxxxxx";
	DWORD dRecv = dwFindPattern(r_bPatter, r_cPatter);

	DetourFunc((BYTE *)dSend, (BYTE *)&hkSend, 14);
	DetourFunc((BYTE *)dRecv, (BYTE *)&hkRecv, 11);
	return (0x0);
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
		CreateThread(nullptr, 0, tThread, nullptr, 0, nullptr);
		DisableThreadLibraryCalls(hModule);
		break;
	}
	return (TRUE);
}
Soweit ich weis ist der Pattern für Recv outdated, also möglich das er nicht funktioniert, außer du hast die in deinem Code geupdated.

Mfg.
Doktor.
Doktor. is offline  
Old 12/10/2014, 20:16   #42


 
aiimsh0ckz's Avatar
 
elite*gold: 158
Join Date: Apr 2012
Posts: 606
Received Thanks: 76
Quote:
Originally Posted by Doktor.
Funktionen so zu deklarieren hat auch wenig Sinn, da kann man die gleich definieren.
Oder man macht es halt so und deklariert sie ganz oben:
Hoffe ich bringe deklarieren und definieren mal wieder nicht durcheinander...

/* CODE */

Soweit ich weis ist der Pattern für Recv outdated, also möglich das er nicht funktioniert, außer du hast die in deinem Code geupdated.

Mfg.
Doktor.
Ich mach's öfters so ...vor der Funktion die Deklaration.

Also ich hab da zwei einfache Wörter für - da kannste nix durcheinander bringen.

Code:
unsigned int myFunkt(unsigned int); // Deklaration

/* Implementation */
unsigned int myFunkt(unsigned int para) { 
...
return(rgw_watever);
}
Irgendwie so xDD

---

Und nee, hab die Patterns noch ned geupdated. Teach me, Master!
aiimsh0ckz is offline  
Old 12/10/2014, 20:33   #43
 
Doktor.'s Avatar
 
elite*gold: 0
Join Date: Aug 2011
Posts: 1,190
Received Thanks: 549
Dadurch hast du aber halt keine weiteren Vorteile, außer wenn du die Funktion weiter oben deklarierst und dann eine andere Funktion schreibst kann du dort die vorher deklarierte Funktion schon nutzen.

z.B.:

Code:
void dieFunk(int,int);

void dieAndereFunk(int x, int y) {
       
       dieFunk(x,y); // <--- Funktion kann hier schon aufgerufen werden
}

void dieFunk(int x, int y) {
    // Do something....
}
Was bei deiner Variante nicht möglich wäre:

Code:
void dieAndereFunk(int x, int y);
void dieAndereFunk(int x, int y) {
       
       dieFunk(x,y); // <--- Funktion kann hier NICHT aufgerufen werden
}

void dieFunk(int x,int y);
void dieFunk(int x, int y) {
    // Do something....
}
Doktor. is offline  
Thanks
1 User
Old 12/10/2014, 23:21   #44


 
aiimsh0ckz's Avatar
 
elite*gold: 158
Join Date: Apr 2012
Posts: 606
Received Thanks: 76
Quote:
Originally Posted by Doktor. View Post
Dadurch hast du aber halt keine weiteren Vorteile, außer wenn du die Funktion weiter oben deklarierst und dann eine andere Funktion schreibst kann du dort die vorher deklarierte Funktion schon nutzen.

z.B.:

Code:
void dieFunk(int,int);

void dieAndereFunk(int x, int y) {
       
       dieFunk(x,y); // <--- Funktion kann hier schon aufgerufen werden
}

void dieFunk(int x, int y) {
    // Do something....
}
Was bei deiner Variante nicht möglich wäre:

Code:
void dieAndereFunk(int x, int y);
void dieAndereFunk(int x, int y) {
       
       dieFunk(x,y); // <--- Funktion kann hier NICHT aufgerufen werden
}

void dieFunk(int x,int y);
void dieFunk(int x, int y) {
    // Do something....
}
Jaa is ja klar. C-Basics.
Auch "deutsches Schulsystem" genannt.
Vom Programm verlangen etwas auszuführen,
was dem Programm noch nicht nahegelegt wurde.
aiimsh0ckz is offline  
Old 12/19/2014, 16:24   #45
 
spark100's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 92
Received Thanks: 7
Darf ich fragen wozu so ein Packetlogger dient?
spark100 is offline  
Closed Thread

Tags
hack, logger, nostale, packet, packetlogger


Similar Threads Similar Threads
[Release] EasyBot | By Doktor.
04/25/2014 - Nostale Hacks, Bots, Cheats & Exploits - 52 Replies
#Removed
[Release] AutoIt-Recieve-Packetlogger mit Sourcecode
08/07/2013 - Nostale Hacks, Bots, Cheats & Exploits - 20 Replies
Ich habe mich der Herausforderung gestellt in AutoIt einen Packetlogger zu schreiben, bisher werden nur die Packets geloggt, die der Client vom Server erhält, andersrum geht es noch nicht. Diese kleine Spielerei fing ich eigentlich an um meine neue CCInject.au3 zu testen, dann dachte ich aber, dass es sicherlich für viele interessant sein könnte einmal zu sehen wie einfach es doch ist an die Packets ranzukommen. Deshalb poste ich hier einmal einen relativ einfachen Packetlogger. Das...
[Release] PacketLogger Starter
08/10/2012 - Nostale Hacks, Bots, Cheats & Exploits - 41 Replies
Hier mein erster Release :) Es ist zwar nur ein kleines tool, wird jedoch vielen helfen denke ich :) Infos Es startet den Multiclient und ändert anschließend die VersionsNr. Zudem Injizieret er die dll automatisch. Somit muss man dies nicht mehr mit CE machen. http://www.abload.de/img/unbenanntogxfy.png



All times are GMT +1. The time now is 02:35.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.