Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > 12Sky2
You last visited: Today at 16:17

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

Advertisement



How to find 005 img struct ??

Discussion on How to find 005 img struct ?? within the 12Sky2 forum part of the MMORPGs category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2020
Posts: 15
Received Thanks: 3
How to find 005 img struct ??

How to find 005 img struct ?? @
sLowNight2 is offline  
Old 02/08/2024, 02:19   #2
 
elite*gold: 0
Join Date: Sep 2019
Posts: 140
Received Thanks: 63
005_00001, 005_00002, 005_00004
other struct/updated struct, you have to find it by decompiling and analyzing based on this struct

also check this out
rafi441 is offline  
Thanks
1 User
Old 02/08/2024, 15:03   #3
 
elite*gold: 0
Join Date: Apr 2020
Posts: 15
Received Thanks: 3
am using stargate client and dont working this item struct how to analyzing exe @
@ @
sLowNight2 is offline  
Old 02/09/2024, 07:09   #4
 
migisenpai's Avatar
 
elite*gold: 0
Join Date: Jan 2019
Posts: 60
Received Thanks: 22
Quote:
Originally Posted by sLowNight2 View Post
am using stargate client and dont working this item struct how to analyzing exe @
@ @

005_0000x.IMG (Example: 005_00002.IMG)(Uncompressed)

IMG_HEADER (X Bytes, Depends on version) + Total Item Num + (ITEM_INFO * Total Item Num)
migisenpai is offline  
Old 02/09/2024, 07:56   #5
 
sdefref's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 199
Received Thanks: 85
Quote:
Originally Posted by sLowNight2 View Post
am using stargate client and dont working this item struct how to analyzing exe @
@ @
Well, sure the structure what rafi shared doesn't work since its 2.0
structure but its a place for you to start.
Its where we started after all...

Client you use, I don't know what it is since there been hundreds of servers open and closed and I care less,
but that client is 2.5 most likely.

So 2.0 and 2.5 item structure isn't really that different,
just small part of the structure is missing in 2.0, if compared to 2.5

rafi441, migisenpai, I and many others could give you the structure
you seek in a blink of an eye, but they know its not worth it.
This community here knows no appreciation.

We all learnt this in a hard way and not willing to share it like that.
By hard way I mean we had none to teach us, we used tools what was available
and many of the tools are still here available.
And now fresh blood comes here asking years old research and tools
and or releases is becoming a big joke.

Use the tools you can find here, do research, read old posts, all of it is here.

And you know why you don't see many useful releases here or anywhere else,
because Turkish people know how to ruin it all, they after all ruined this 12sky
by they're series of open/close servers, for years every month was new server
and closed server...

Don't get me wrong here, I have nothing against Turkish people,
I have many good Turkish friends, just not a fan of Turkish people here.
sdefref is offline  
Thanks
1 User
Old 02/09/2024, 08:36   #6
 
elite*gold: 0
Join Date: Apr 2020
Posts: 199
Received Thanks: 31
Quote:
Originally Posted by sdefref View Post
Well, sure the structure what rafi shared doesn't work since its 2.0
structure but its a place for you to start.
Its where we started after all...

Client you use, I don't know what it is since there been hundreds of servers open and closed and I care less,
but that client is 2.5 most likely.

So 2.0 and 2.5 item structure isn't really that different,
just small part of the structure is missing in 2.0, if compared to 2.5

rafi441, migisenpai, I and many others could give you the structure
you seek in a blink of an eye, but they know its not worth it.
This community here knows no appreciation.

We all learnt this in a hard way and not willing to share it like that.
By hard way I mean we had none to teach us, we used tools what was available
and many of the tools are still here available.
And now fresh blood comes here asking years old research and tools
and or releases is becoming a big joke.

Use the tools you can find here, do research, read old posts, all of it is here.

And you know why you don't see many useful releases here or anywhere else,
because Turkish people know how to ruin it all, they after all ruined this 12sky
by they're series of open/close servers, for years every month was new server
and closed server...

Don't get me wrong here, I have nothing against Turkish people,
I have many good Turkish friends, just not a fan of Turkish people here.
I m the one who learned this by hard way.. When u figure it out u can solve any structure or class in any version although it is encrypted. But they dont like to learn. I m also Turkish. But this is not only about us. PHs, Thais.. All runining the section. I gave the hint. But they are still looking for more. If u want to understand this shit u must use a decompiler and understand coding. If u dont, please fu.ck offfff and leave this community.
To understand an exe's 005 imgs, there is just a function to solve out. Find it, read it, reverse it and shut up.
zahter55 is offline  
Thanks
1 User
Old 02/10/2024, 06:43   #7
 
elite*gold: 0
Join Date: Nov 2011
Posts: 129
Received Thanks: 173














Code:
BOOL __thiscall sub_477CD0(_DWORD *this, int a2)
{
  int k; // [esp+4Ch] [ebp-Ch]
  int i; // [esp+50h] [ebp-8h]
  int j; // [esp+50h] [ebp-8h]
  int l; // [esp+50h] [ebp-8h]


//int unknowA;
  if ( !*(996 * a2 + this[1]) )
    return 1;
  if ( *(996 * a2 + this[1]) < 1 || *(996 * a2 + this[1]) > 99999 )
    return 0;	
  if ( *(996 * a2 + this[1]) != a2 + 1 )
    return 0;
	
//char unknowB[25];
  for ( i = 0; i < 25 && *(996 * a2 + this[1] + i + 4); ++i )
    ;
  if ( i == 25 )
    return 0;
	
//char unknowC[3][100];
  for ( j = 0; j < 3; ++j )
  {
    for ( k = 0; k < 100 && *(100 * j + k + 996 * a2 + this[1] + 29); ++k )
      ;
    if ( k == 100 )
      return 0;
  }
  
//int unknowD;
  if ( *(this[1] + 996 * a2 + 632) < 1 || *(this[1] + 996 * a2 + 632) > 5 )
    return 0;
	
//int unknowE;
  if ( *(this[1] + 996 * a2 + 636) < 1 || *(this[1] + 996 * a2 + 636) > 99 )
    return 0;
	
//int unknowF;
  if ( *(this[1] + 996 * a2 + 640) < 1 || *(this[1] + 996 * a2 + 640) > 10000 )
    return 0;
	
//int unknowG;
  if ( *(this[1] + 996 * a2 + 644) < 0 || *(this[1] + 996 * a2 + 644) > 10000 )
    return 0;
	
//int unknowH;
  if ( *(this[1] + 996 * a2 + 648) < 0 || *(this[1] + 996 * a2 + 648) > 10000 )
    return 0;
	
//int unknowI;
  if ( *(this[1] + 996 * a2 + 652) < 1 || *(this[1] + 996 * a2 + 652) > 145 )
    return 0;
	
//int unknowJ;
  if ( *(this[1] + 996 * a2 + 656) < 0 || *(this[1] + 996 * a2 + 656) > 25 )
    return 0;
	
//int unknowK;
  if ( *(this[1] + 996 * a2 + 660) < 1 || *(this[1] + 996 * a2 + 660) > 4 )
    return 0;
	
//int unknowL;
  if ( *(this[1] + 996 * a2 + 664) < 1 || *(this[1] + 996 * a2 + 664) > 14 )
    return 0;
	
//int unknowM;
  if ( *(this[1] + 996 * a2 + 668) < 1 || *(this[1] + 996 * a2 + 668) > 2000000000 )
    return 0;
	
//int unknowN;
  if ( *(this[1] + 996 * a2 + 672) < 0 || *(this[1] + 996 * a2 + 672) > 2000000000 )
    return 0;
	
//int unknowO;
  if ( *(this[1] + 996 * a2 + 676) < 0 || *(this[1] + 996 * a2 + 676) > 2000000000 )
    return 0;
	
//int unknowP;
  if ( *(this[1] + 996 * a2 + 680) < 1 || *(this[1] + 996 * a2 + 680) > 145 )
    return 0;
	
//int unknowQ;
  if ( *(this[1] + 996 * a2 + 684) < 0 || *(this[1] + 996 * a2 + 684) > 25 )
    return 0;
	
//int unknowR;
  if ( *(this[1] + 996 * a2 + 688) < 1 || *(this[1] + 996 * a2 + 688) > 2 )
    return 0;
	
//int unknowS;
  if ( *(this[1] + 996 * a2 + 692) < 1 || *(this[1] + 996 * a2 + 692) > 2 )
    return 0;
	
//int unknowT;
  if ( *(this[1] + 996 * a2 + 696) < 1 || *(this[1] + 996 * a2 + 696) > 2 )
    return 0;
	
//int unknowU;
  if ( *(this[1] + 996 * a2 + 700) < 1 || *(this[1] + 996 * a2 + 700) > 2 )
    return 0;
	
//int unknowV;
  if ( *(this[1] + 996 * a2 + 704) < 1 || *(this[1] + 996 * a2 + 704) > 2 )
    return 0;
	
//int unknowW;
  if ( *(this[1] + 996 * a2 + 708) < 1 || *(this[1] + 996 * a2 + 708) > 2 )
    return 0;
	
//int unknowX;
  if ( *(this[1] + 996 * a2 + 712) < 1 || *(this[1] + 996 * a2 + 712) > 2 )
    return 0;
	
//int unknowY;
  if ( *(this[1] + 996 * a2 + 716) < 1 || *(this[1] + 996 * a2 + 716) > 2 )
    return 0;
	
//int unknowZ;
  if ( *(this[1] + 996 * a2 + 720) < 1 || *(this[1] + 996 * a2 + 720) > 2 )
    return 0;
	
//int unknowAA;
  if ( *(this[1] + 996 * a2 + 724) < 1 || *(this[1] + 996 * a2 + 724) > 2 )
    return 0;
	
//int unknowAB;
  if ( *(this[1] + 996 * a2 + 728) < 1 || *(this[1] + 996 * a2 + 728) > 2 )
    return 0;
	
//int unknowAC;
  if ( *(this[1] + 996 * a2 + 732) < 1 || *(this[1] + 996 * a2 + 732) > 2 )
    return 0;
	
//int unknowAD;
  if ( *(this[1] + 996 * a2 + 736) < 0 || *(this[1] + 996 * a2 + 736) > 365 )
    return 0;
	
//int unknowAE;
  if ( *(this[1] + 996 * a2 + 740) < 0 || *(this[1] + 996 * a2 + 740) > 10000 )
    return 0;
	
//int unknowAF;
  if ( *(this[1] + 996 * a2 + 744) < 0 || *(this[1] + 996 * a2 + 744) > 10000 )
    return 0;
	
//int unknowAG;
  if ( *(this[1] + 996 * a2 + 748) < 0 || *(this[1] + 996 * a2 + 748) > 10000 )
    return 0;
	
//int unknowAH;
  if ( *(this[1] + 996 * a2 + 752) < 0 || *(this[1] + 996 * a2 + 752) > 10000 )
    return 0;
	
//int unknowAI;
  if ( *(this[1] + 996 * a2 + 756) < 0 || *(this[1] + 996 * a2 + 756) > 10000 )
    return 0;
	
//int unknowAJ;
  if ( *(this[1] + 996 * a2 + 760) < 0 || *(this[1] + 996 * a2 + 760) > 100000 )
    return 0;
	
//int unknowAK;
  if ( *(this[1] + 996 * a2 + 764) < 0 || *(this[1] + 996 * a2 + 764) > 100000 )
    return 0;
	
//int unknowAL;
  if ( *(this[1] + 996 * a2 + 768) < 0 || *(this[1] + 996 * a2 + 768) > 100000 )
    return 0;
	
//int unknowAM;
  if ( *(this[1] + 996 * a2 + 772) < 0 || *(this[1] + 996 * a2 + 772) > 100000 )
    return 0;
	
//int unknowAN;
  if ( *(this[1] + 996 * a2 + 776) < 0 || *(this[1] + 996 * a2 + 776) > 100000 )
    return 0;
	
//int unknowAO;
  if ( *(this[1] + 996 * a2 + 780) < 0 || *(this[1] + 996 * a2 + 780) > 100000 )
    return 0;
	
//int unknowAP;
  if ( *(this[1] + 996 * a2 + 784) < 0 || *(this[1] + 996 * a2 + 784) > 100 )
    return 0;
	
//int unknowAQ;
  if ( *(this[1] + 996 * a2 + 788) < 0 || *(this[1] + 996 * a2 + 788) > 18 )
    return 0;
	
//int unknowAR;
  if ( *(this[1] + 996 * a2 + 792) < 0 || *(this[1] + 996 * a2 + 792) > 150000 )
    return 0;
	
//unknowAQ-unknowAR;
  if ( *(this[1] + 996 * a2 + 788) == 9 && (*(this[1] + 996 * a2 + 792) < 1 || *(this[1] + 996 * a2 + 792) > 3) )
    return 0;
			
//int unknowAS;
  if ( *(this[1] + 996 * a2 + 796) < 0 || *(this[1] + 996 * a2 + 796) > 300 )
    return 0;
	
//int unknowAT;
  if ( *(this[1] + 996 * a2 + 800) < 0 || *(this[1] + 996 * a2 + 800) > 100 )
    return 0;
	
//int unknowAU;
  if ( *(this[1] + 996 * a2 + 804) < 0 || *(this[1] + 996 * a2 + 804) > 1000 )
    return 0;
	
//int unknowAV;
  if ( *(this[1] + 996 * a2 + 808) < 0 || *(this[1] + 996 * a2 + 808) > 100 )
    return 0;
	
//int unknowAW;
  if ( *(this[1] + 996 * a2 + 812) < 0 || *(this[1] + 996 * a2 + 812) > 100 )
    return 0;
	
//int unknowAX;
  if ( *(this[1] + 996 * a2 + 816) < 0 || *(this[1] + 996 * a2 + 816) > 100 )
    return 0;
	
//int unknowAY[8][2];
  for ( l = 0; l < 8; ++l )
  {
    if ( *(this[1] + 996 * a2 + 8 * l + 820) < 0 || *(this[1] + 996 * a2 + 8 * l + 820) > 300 )
      return 0;
    if ( *(this[1] + 996 * a2 + 8 * l + 824) < 0 || *(this[1] + 996 * a2 + 8 * l + 824) > 100 )
      return 0;
  }
  
  //int unknowAZ;
  if( *(this[1] + 996 * a2 + 928) >= 0 && *(this[1] + 996 * a2 + 928) <= 10000 )
	return 1;

  return 0;
}



//result
	struct ITEM_INFO
	{
		int unknowA;
		char unknowB[25];
		char unknowC[3][100];
		int unknowD;
		int unknowE;
		int unknowF;
		int unknowG;
		int unknowH;
		int unknowI;
		int unknowJ;
		int unknowK;
		int unknowL;
		int unknowM;
		int unknowN;
		int unknowO;
		int unknowP;
		int unknowQ;
		int unknowR;
		int unknowS;
		int unknowT;
		int unknowU;
		int unknowV;
		int unknowW;
		int unknowX;
		int unknowY;
		int unknowZ;
		int unknowAA;
		int unknowAB;
		int unknowAC;
		int unknowAD;
		int unknowAE;
		int unknowAF;
		int unknowAG;
		int unknowAH;
		int unknowAI;
		int unknowAJ;
		int unknowAK;
		int unknowAL;
		int unknowAM;
		int unknowAN;
		int unknowAO;
		int unknowAP;
		int unknowAQ;
		int unknowAR;
		int unknowAS;
		int unknowAT;
		int unknowAU;
		int unknowAV;
		int unknowAW;
		int unknowAX;
		int unknowAY[8][2];
		int unknowAZ;

		//?
		int unknowCheck[102];
	};
	//sizeof(ITEM_INFO) = 996;
lnwnuyhodd is offline  
Thanks
2 Users
Old 02/10/2024, 07:13   #8
 
elite*gold: 0
Join Date: Apr 2020
Posts: 199
Received Thanks: 31
@ well done.......
zahter55 is offline  
Reply


Similar Threads Similar Threads
Struct/MAP in struct speichern?
09/19/2013 - C/C++ - 26 Replies
Ich versuche momentan in einer Struct den datentyp map zu speichern, aber sobald ich es in der struct in der headerdatei mit reinpacke stirbt das Programm beim start. sieht ca so aus struct EventGift { DWORD dwID; int nCount; int nPercentage; };



All times are GMT +2. The time now is 16:17.


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