Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Nostale
You last visited: Today at 22:25

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

Advertisement



[Problem] Simple sending packets

Discussion on [Problem] Simple sending packets within the Nostale forum part of the MMORPGs category.

Reply
 
Old 07/27/2015, 14:24   #16
 
WalrossGreat's Avatar
 
elite*gold: 0
Join Date: Mar 2015
Posts: 871
Received Thanks: 1,229
Ok, thanks for answer, it was just error in my class (i used another one from forum, i will check it later why my func failed)

Anyway i wanted try (for fun) try recv packet too, is it much harder?
I found it:

Code:
0052EA93   8B06             MOV EAX,DWORD PTR DS:[ESI]
0052EA95   50               PUSH EAX
0052EA96   68 A8796100      PUSH nostalex.006179A8
0052EA9B   BA 4CFE5200      MOV EDX,nostalex.0052FE4C                ; ASCII "info"
0052EAA0   8BC3             MOV EAX,EBX
0052EAA2   E8 6D71FFFF      CALL nostalex.00525C14
Code:
0052E4E7   A1 C0816700      MOV EAX,DWORD PTR DS:[6781C0]
0052E4EC   8B00             MOV EAX,DWORD PTR DS:[EAX]
0052E4EE   8B58 34          MOV EBX,DWORD PTR DS:[EAX+34]
But both code above looks valid. :/
WalrossGreat is offline  
Thanks
1 User
Old 07/27/2015, 14:55   #17
 
elite*gold: 0
Join Date: Aug 2013
Posts: 127
Received Thanks: 46
For recv:
Code:
VOID RecvPacket(CHAR* _i8_packet)
{
	DWORD _i32_RecvPacketFunc = 0x525D30;

	__asm
	{
		mov eax, dword ptr ds : [0x6781BC]
			mov eax, dword ptr ds : [eax]
			mov eax, [eax + 0x34]
			mov edx, _i8_packet
			call _i32_RecvPacketFunc
	}
}
btw. Address on my code (code from OMG thread) is invalid xD
iArtrix is offline  
Old 07/27/2015, 15:37   #18
 
WalrossGreat's Avatar
 
elite*gold: 0
Join Date: Mar 2015
Posts: 871
Received Thanks: 1,229
@iAtrix
I had this code too from the olly but still don't know that call adress (i thought that its' 00525C14 but not)
WalrossGreat is offline  
Thanks
1 User
Old 07/27/2015, 15:57   #19

 
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
For recv function you have to look deeper in the function.
It's harder to find as sendPacket.
BladeTiger12 is offline  
Old 07/27/2015, 21:18   #20
 
elite*gold: 0
Join Date: Nov 2014
Posts: 180
Received Thanks: 157
@WalrossGreat, you should study the memory before than try it..
Useless a C. & P. if you don't know how pointers are working! And you don't, sure 101%
*-OMG-* is offline  
Old 07/27/2015, 21:43   #21
 
WalrossGreat's Avatar
 
elite*gold: 0
Join Date: Mar 2015
Posts: 871
Received Thanks: 1,229
@*-OMG-* The one thing what i copied from this thread is the send packet call adress.
What you mean by don't know how pointers are working? Pointers strore information where the variable/element is stored in memory, don't they?
WalrossGreat is offline  
Thanks
1 User
Old 07/28/2015, 02:02   #22
 
elite*gold: 0
Join Date: Nov 2014
Posts: 180
Received Thanks: 157
@WalrossGreat, if you were are able to work on the memory then you was not asking for it cuz pretty simple..

MOV EAX, DWORD PTR DS : [0x6781C0] <-- Nothing more than a pointer read! [eax = *(DWORD*)(0x6781C0)]

-- 1:1 NOSTALE STRING

Code:
/*
 
NostaleString class written by SystemX64 - 07/06/2015
 
32bit | string weight
32bit | string length
8bit* | string buffer
 
*/
 
class NostaleString
{
private:
	CHAR* _i8_string;
	DWORD _i32_length;

public:
	NostaleString(CHAR* _i8_string)
	{
		this->_i32_length = strlen(_i8_string);

		this->_i8_string = (CHAR*)malloc(this->_i32_length + 8 + 1);

		*(DWORD*)(this->_i8_string + 0x00) = 1;
		*(DWORD*)(this->_i8_string + 0x04) = this->_i32_length;

		memcpy(this->_i8_string + 0x08, _i8_string, this->_i32_length);

		*(this->_i8_string + this->_i32_length + 8) = '\0';
	}

	CHAR* get()
	{
		return this->_i8_string + 0x08;
	}

	DWORD length()
	{
		return this->_i32_length;
	}
};
-- ARE YOU A LEECHER ? C & P --

Code:
#include <windows.h>

/*

NostaleString class written by SystemX64 - 07/06/2015

32bit | string weight
32bit | string length
8bit* | string buffer

*/

class NostaleString
{
private:
	CHAR* _i8_string;
	DWORD _i32_length;

public:
	NostaleString(CHAR* _i8_string)
	{
		this->_i32_length = strlen(_i8_string);

		this->_i8_string = (CHAR*)malloc(this->_i32_length + 8 + 1);

		*(DWORD*)(this->_i8_string + 0x00) = 1;
		*(DWORD*)(this->_i8_string + 0x04) = this->_i32_length;

		memcpy(this->_i8_string + 0x08, _i8_string, this->_i32_length);

		*(this->_i8_string + this->_i32_length + 8) = '\0';
	}

	CHAR* get()
	{
		return this->_i8_string + 0x08;
	}

	DWORD length()
	{
		return this->_i32_length;
	}
};

VOID SendPacket(CHAR* _i8_packet)
{
	DWORD _i32_SendPacketFunc = 0x52AC58;

	__asm
	{
		mov eax, dword ptr ds : [0x6771B8]
		mov eax, dword ptr ds : [eax]
		mov edx, _i8_packet
		call _i32_SendPacketFunc
	}
}

VOID pInjector()
{
	NostaleString _nt_nosbazar = "c_skill";
	NostaleString _nt_shopping = "shopping 0 0 2 1819";

	while (true)
	{
		if (GetAsyncKeyState(VK_F2) == -32767)
			SendPacket(_nt_nosbazar.get());
		if (GetAsyncKeyState(VK_F3) == -32767)
			SendPacket(_nt_shopping.get());

		Sleep(1);
	}
}

INT WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpvReserved)
{
	switch (dwReason)
	{
	case DLL_PROCESS_ATTACH:
		DisableThreadLibraryCalls(hInstance);
		CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)pInjector, NULL, NULL, NULL);
	}

	return TRUE;
}
*-OMG-* is offline  
Old 07/28/2015, 12:26   #23
 
WalrossGreat's Avatar
 
elite*gold: 0
Join Date: Mar 2015
Posts: 871
Received Thanks: 1,229
Man actually i did my own class and it's working fine, as i said at second page on this thread, i don't need copy paste your code, i thought that it was the problem with the __asm code, but no it was probably something bad with my class
WalrossGreat is offline  
Old 07/28/2015, 14:28   #24
 
elite*gold: 0
Join Date: Nov 2014
Posts: 180
Received Thanks: 157
Your class ?

Code:
class PacketString 
{
public:
	char char_t[256];
	PacketString(char* str)
	{
		char* str2 = str;
		int len = strlen(str2);
		memcpy(char_t, str2, len);
		char_t[len] = 0x0;
	}

	char* _return()
	{
		return char_t;
	}
};
Do you mean copy & paste from here ?
*-OMG-* is offline  
Old 07/28/2015, 14:34   #25
 
WalrossGreat's Avatar
 
elite*gold: 0
Join Date: Mar 2015
Posts: 871
Received Thanks: 1,229
No
Man the code (from link and my) do probably the same, so it realy ovbius that it looks similar, or no - i know all the pastebins subpage.

If you really want know i was modeling on it:
WalrossGreat is offline  
Old 07/28/2015, 15:36   #26
 
elite*gold: 0
Join Date: Nov 2014
Posts: 180
Received Thanks: 157
Quote:
Originally Posted by WalrossGreat View Post
No
Man the code (from link and my) do probably the same, so it realy ovbius that it looks similar, or no - i know all the pastebins subpage.

If you really want know i was modeling on it:
@WalrossGreat, You are so stupid to don't know that AnsiString have a weight (similiar ? are you sure ? ahah), back to study instead leech.

I did support you but today i understand that you're worth nothing.
*-OMG-* is offline  
Old 07/28/2015, 16:26   #27
 
WalrossGreat's Avatar
 
elite*gold: 0
Join Date: Mar 2015
Posts: 871
Received Thanks: 1,229
@*-OMG-*
I never saw a man so filled with venom like you. Yes you supported me a lot (nothing) unless you named your supporting flaming me (I don't talking only about this thread).

For moderators: Please close this thread. Thanks who every person who helped. Topic is solved and now there is only offtopic.
@UP
If you still want flame me please do it on PM but as i see:
Quote:
you're worth nothing.
PS. You think that i'm too stupid to know that AnsiString have a weight (lol), but i think that you are too stupid to talking with other peoples
WalrossGreat is offline  
Thanks
2 Users
Old 07/28/2015, 22:49   #28
 
elite*gold: 0
Join Date: Oct 2011
Posts: 814
Received Thanks: 675
NosTale uses AnsiString of delphi, lol.
Or i did unterstand something wrong.
Trollface- is offline  
Old 07/28/2015, 23:52   #29
 
elite*gold: 0
Join Date: Nov 2014
Posts: 180
Received Thanks: 157
Quote:
Originally Posted by Trollface- View Post
NosTale uses AnsiString of delphi, lol.
Or i did unterstand something wrong.
Yeah, you are right. Nostale is written in delphi and uses AnsiString.. Visual studio has not the support for it but.. You can write a suitable class ending the string by 0 and adding, at the start, the string weight (usually 1) and length.

32bit | string weight
32bit | string length
8bit* | string buffer
*-OMG-* is offline  
Old 07/29/2015, 00:33   #30
 
elite*gold: 0
Join Date: Oct 2011
Posts: 814
Received Thanks: 675
Why don't use the class directly in nos? so you dont need to write a class which already exists.
Trollface- is offline  
Thanks
2 Users
Reply


Similar Threads Similar Threads
sending packets problem
10/07/2014 - SRO Coding Corner - 0 Replies
#fixed done #request to remove thread or close it
Help sending packets
06/27/2012 - SRO Coding Corner - 2 Replies
well i knew that i need to put the packet in a byte array so i defined it BYTE pack = { 0x01, 0x00, 0x4F, 0x70, 0x20, 0x00, 0x04 }; and when i send it using the send through a socket like this
Sending Packets !!!
09/07/2008 - Kal Online - 14 Replies
now i know how to sniff / analyse packets ... but what then ? :) how can i send packets ?? to pimp or mix weapon for example i just need the way to send , and then i can depend on myself :D
Sending packets
10/12/2005 - Conquer Online 2 - 10 Replies
I've a question. Is it possible to send 1 packet multiple times at the exact same time?



All times are GMT +1. The time now is 22:26.


Powered by vBulletin®
Copyright ©2000 - 2026, 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 ©2026 elitepvpers All Rights Reserved.