Flyff Bug can anyone help me?

02/23/2019 21:01 daprise#1
Does anyone knows what this is at this youtube Video.

[Only registered and activated users can see links. Click Here To Register...]

The message that appears is permanent and you can do nothing anymore.
Does anyone knows about this bug/hack and maybe know how it possible to block it?

Sorry for my bad english. Its not the yellow of the egg xD

Deutsch:

Kennt irgendwer diesem Bug?

[Only registered and activated users can see links. Click Here To Register...]

Meiner Meinung nach wird es irgendwie von jemanden gespammt. Mir ist das gleiche wiederfahren wie diesem Spieler Logitechno. Man kann nichts mehr machen als nur permanent ok drücken, kurzzeitig hörte es auf bei mir und und fing wieder an. Und es ist halt sicher nicht ein normaler Bug sondern sicher von jmd ausgelöst, den am Anfang im Siege war nichts bei mir, erst im laufen des GWs als ich auf der Rangliste relativ weit oben war. Gibt es möglichkeiten dies zu umgehen? Mit Messi-,Freundes-,Handelsanfragen alles abstellen bringt nichts.

mfg daprise

peace
02/23/2019 23:11 Myzu#2
Also blocken kannst du das nicht, du und andere werden bewusst abgefuckt.
02/24/2019 00:12 Reluxos#3
Sieht nach einer Fehlermeldung aus. Denke nicht, dass man die Blocken kann.

LG
02/24/2019 01:29 xiltos#4
Blocken ist nicht möglich. Scheint als hättest du Probleme mit den falschen Leuten.
Kannst nur zu Gott beten, dass es aufhört lol
02/24/2019 12:29 emirabi#5
ehrenmann holt der einfach mein video XD
02/24/2019 13:58 Myzu#6
Quote:
Originally Posted by emirabi View Post
ehrenmann holt der einfach mein video XD
ähre
02/24/2019 20:18 daprise#7
danke an alle (Y)
02/25/2019 14:17 Flyff-Iblis#8
Code:
void CDPClient::OnReturnSay( OBJID objid, CAr & ar )
{
	int ReturnFlag;
	CHAR	lpString[260];
	
	ar >> ReturnFlag;
	ar.ReadString( lpString, 260 );
	CMover* pPlayer = prj.GetMover( objid );
	if( IsValidObj( (CObj*)pPlayer ) )
	{
		CString Str;
		if( ReturnFlag == 1 )				// º¸³½µ¥ÀÌÅÍ
		{
			Str.Format( "[%s] %s", pPlayer->GetName(), lpString );
		}
		else if( ReturnFlag == 2 )			// ÀÚ±âÀÚ½Å
		{
			//Str += "ÀÚ±âÀڽſ¡°Ô´Â º¸³¾¼ö°¡ ¾ø½À´Ï´Ù";
			Str += prj.GetText(TID_GAME_MSGNOTTRANSELF);
		}
		else								// ãÀ»¼ö°¡ ¾øÀ½
		{
			//Str.Format( "[%s]´ÔÀº Á¸ÀçÇÏÁö ¾Ê´Â IDÀÔ´Ï´Ù", lpString );
			Str.Format( prj.GetText(TID_GAME_MSGNOTEXIST), lpString );
		}
		//g_WndMng.PutString( Str, NULL, 0xffffff00 );
		g_WndMng.PutString( Str, NULL, prj.GetTextColor(TID_GAME_MSGNOTEXIST) );
	}
}
This is one of the functions that returns such a message.
maybe it helps you to find out how he did it.
i could imagine he manipulates char name / id in order to send a say message to a non existing char, which then gets returned to you as " XX does not exist"
02/25/2019 20:08 SEDU ✔#9
textClient.inc, search for TID_GAME_MSGNOTEXIST. try removing that, or defining the window to some other text that doesn't make a window pop up ^^
02/25/2019 21:17 netHoxInc#10
Quote:
Originally Posted by Flyff-Iblis View Post
Code:
void CDPClient::OnReturnSay( OBJID objid, CAr & ar )
{
	int ReturnFlag;
	CHAR	lpString[260];
	
	ar >> ReturnFlag;
	ar.ReadString( lpString, 260 );
	CMover* pPlayer = prj.GetMover( objid );
	if( IsValidObj( (CObj*)pPlayer ) )
	{
		CString Str;
		if( ReturnFlag == 1 )				// º¸³½µ¥ÀÌÅÍ
		{
			Str.Format( "[%s] %s", pPlayer->GetName(), lpString );
		}
		else if( ReturnFlag == 2 )			// ÀÚ±âÀÚ½Å
		{
			//Str += "ÀÚ±âÀڽſ¡°Ô´Â º¸³¾¼ö°¡ ¾ø½À´Ï´Ù";
			Str += prj.GetText(TID_GAME_MSGNOTTRANSELF);
		}
		else								// ãÀ»¼ö°¡ ¾øÀ½
		{
			//Str.Format( "[%s]´ÔÀº Á¸ÀçÇÏÁö ¾Ê´Â IDÀÔ´Ï´Ù", lpString );
			Str.Format( prj.GetText(TID_GAME_MSGNOTEXIST), lpString );
		}
		//g_WndMng.PutString( Str, NULL, 0xffffff00 );
		g_WndMng.PutString( Str, NULL, prj.GetTextColor(TID_GAME_MSGNOTEXIST) );
	}
}
This is one of the functions that returns such a message.
maybe it helps you to find out how he did it.
i could imagine he manipulates char name / id in order to send a say message to a non existing char, which then gets returned to you as " XX does not exist"
If ure pinpointing on explicit source codes, probably you should include all specific functions which are corresponding to this call. As this is a return call, you might like to add the Sending of the Say aswell, to see how it gets modified by the client and which aspects of it could possibly be altered to succeed sending errors to people.

I havent checked the source for the command yet, but it sounds from your suspection, and my own imaginations like you could simply alter the result param and id. Possibly by client modifications but i more or less doubt that cuz it's a bit painful to reverse engineer this function. I morely suspect on using a Packet Editor (Goodjob to those who can use google. Yes there's atleast 3 working ones arround, and NO dont ask me for it, it takes a few seconds to type some words into google.).

Anyways to solve your Issue, you have (i think, so possibly its more) 2 ways to solve this Issue:

- Modify the client's assembly/disassembly and jump over this specific code part to avoid calling the message window. (Looks like a simple call, from the code posted above you can see how many params) Should be fairly easy to do if ure 'used' to work with asm.

Incase you're not so good on asm, or not even knowing what the heck im speaking of, the most chances might be contacting the Admin of the server, asking to give a look on these mentioned functions, describing the feel/reacting of those windows as good as possible, including spam-timings, date/time of these happenings (maybe they log such stuff and can see what was going on. I just doubt it abit...).
As more details you bring, as easier it gets for the developer to fix stuff. (Counts for the general of any issue.)

So, since my way would be the asm part, and if I should rate it for difficulty, i might rate it as a 4-5/10. It is not hard, but it might require time and understanding in regards of debugging to find the specific function in the game's memory.

Thats all I can admit for the moment of time as I got no time to check the source. Maybe Iblis is friendly enough to send the mentioned missing parts of it.

Hope you could learn something out of my words, or in ideal way, it gave you more creative ideas on how this could been caused.

Cheers, net


_______________

I forgot to respond to:

Quote:
Originally Posted by SEDU ✔ View Post
textClient.inc, search for TID_GAME_MSGNOTEXIST. try removing that, or defining the window to some other text that doesn't make a window pop up ^^
Not sure how the Client/Source is handling non-existant stuff but. In any case, it will be a Window Message, cuz thats defined in the source, you simply change the text with the TID's.

But if it is not even existant anymore, i got high guesses on a client crash occuring. Correct me if im wrong. But its flyff, i never rly expect they check anything agains NULL. Lol.
02/25/2019 21:55 Feellblis#11
That messagebox "existiert nicht im spiel" translates to "does not exist in the game". I am not sure but i think the string had something to do with an invalid player requesting a friend request. Someone got invalid toon, invalid name who spam add friend packets. Or maybe he memory edit his name or ID then sent requests to a non existing character.


Code:
void CDPClient::OnAddFriendNotConnect( CAr & ar )
{
	char szName[64] = {0,};
	ar.ReadString( szName, 64 );
	CString szMessage;
	szMessage.Format( prj.GetText(TID_DIAG_0061), szName );
//	szMessage += "´ÔÀº Á¢¼ÓµÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù";
	g_WndMng.OpenMessageBox( szMessage );
}
Code:
void CDPCoreSrvr::OnAddFriendNameReqest( CAr & ar, DPID, DPID, DPID, u_long )
{
	.........
	if( pLeader && pMember )
	{
		// ¹°¾îº½ Ä£±¸µî·ÏÀ» ÇÒ²«Áö
		g_DPCacheSrvr.SendAddFriend( uLeader, uMember, nLeaderJob, nLeaderSex, szLeaderName, pMember );
	}
	else
	{
		// Á¢¼ÓµÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù.
		if( pLeader )
			g_DPCacheSrvr.SendAddFriendNotFound( szMemberName, pLeader );
	}
}
Report it to Webzen by filing a support ticket. Include your video and they can easily remove the annoyance on their side. Also, you can unpack Flyff DE neuz and patch using olly by searching popup message.

EDIT:
Found out what causes it:
[Only registered and activated users can see links. Click Here To Register...]
02/25/2019 22:23 Synode#12
Quote:
Originally Posted by Feellblis View Post
That messagebox "existiert nicht im spiel" translates to "does not exist in the game". I am not sure but i think the string had something to do with an invalid player requesting a friend request. Someone got invalid toon, invalid name who spam add friend packets. Or maybe he memory edit his name or ID then sent requests to a non existing character.


Code:
void CDPClient::OnAddFriendNotConnect( CAr & ar )
{
	char szName[64] = {0,};
	ar.ReadString( szName, 64 );
	CString szMessage;
	szMessage.Format( prj.GetText(TID_DIAG_0061), szName );
//	szMessage += "´ÔÀº Á¢¼ÓµÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù";
	g_WndMng.OpenMessageBox( szMessage );
}
Code:
void CDPCoreSrvr::OnAddFriendNameReqest( CAr & ar, DPID, DPID, DPID, u_long )
{
	.........
	if( pLeader && pMember )
	{
		// ¹°¾îº½ Ä£±¸µî·ÏÀ» ÇÒ²«Áö
		g_DPCacheSrvr.SendAddFriend( uLeader, uMember, nLeaderJob, nLeaderSex, szLeaderName, pMember );
	}
	else
	{
		// Á¢¼ÓµÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù.
		if( pLeader )
			g_DPCacheSrvr.SendAddFriendNotFound( szMemberName, pLeader );
	}
}
Report it to Webzen by filing a support ticket. Include your video and they can easily remove the annoyance on their side. Also, you can unpack Flyff DE neuz and patch using olly by searching popup message.
You just forgot that it's Webzen. It'll take a few years till it's fixxed. :^)
02/25/2019 22:45 xiltos#13
Well I think if a person is possible to do shit like this then Im pretty sure that a fix wont stop him to use other methods to annoy you.
If he is already capable to spam things like this. Its safe to say that there is many more shit like this he knows.
Well you can try your luck but since I know how webzen handles stuff like this... well you need huge luck lol
02/25/2019 23:43 cookie69#14
Quote:
Originally Posted by xiltos View Post
Well I think if a person is possible to do shit like this then Im pretty sure that a fix wont stop him to use other methods to annoy you.
If he is already capable to spam things like this. Its safe to say that there is many more shit like this he knows.
Well you can try your luck but since I know how webzen handles stuff like this... well you need huge luck lol
Nop, what he is doing is not hard to do (a simple PE can do the stuff) and it is possible because of the shitty functions on the server that instead of checking the player id server side, it is trusting the client so he could put the id of the "victim" and the victim gets the error message...
The fix of this is 2 lines of code!
02/26/2019 16:10 Synode#15
Quote:
Originally Posted by xiltos View Post
Well I think if a person is possible to do shit like this then Im pretty sure that a fix wont stop him to use other methods to annoy you.
If he is already capable to spam things like this. Its safe to say that there is many more shit like this he knows.
Well you can try your luck but since I know how webzen handles stuff like this... well you need huge luck lol
Imagine people spend their time to find a method like this to annoy people

Change my mind :confused: