Jump to content

Recommended Posts

  • 2 weeks later...
  • 1 month later...
On 09/08/2019 at 3:59 AM, NoFear said:

Their is many ways to approach this...  None of which are a definite, especially if this drop rate is truly done server side.

1.  Find enemy HP.  Navigate nearby/pointer search. Start find nearby and other pointer data. Sometimes drops are related to enemy or linked to enemy.  Drop might already be determined and linked to enemy before he is even killed. Basically drop is generated on level load, no enemy kill.

2. Focus on finding weapon info. Like id numbers or utf and pointer search to find weapons. Then, before opening level. Unknown search. Start level and get weapon to drop. Then unknown changed and then search for that specific id/utf. Then you can pointer search your way back to see if anything nearby to pointers could be related to this drop. Which could be related to info done in method 1.

3. Game is il2cpp. Do a dump, search the dump for "rarity" "drop" "chance" or other keywords that may be related...  Forthis game, some things from the dump that MIGHT be of use....


    public Rarity get_Rarity(); // RVA: 0xBE8BA4 Offset: 0xBE8BA4
	[CompilerGeneratedAttribute] // RVA: 0x889DC4 Offset: 0x889DC4
	public void set_Rarity(Rarity value); // RVA: 0xBE8BAC Offset: 0xBE8BAC
	public string get_RarityString(); // RVA: 0xBE8BB4 Offset: 0xBE8BB4
	public void set_RarityString(string value); // RVA: 0xBE8C50 Offset: 0xBE8C50
	[CompilerGeneratedAttribute] // RVA: 0x889DD4 Offset: 0x889DD4
	public int get_Chance(); // RVA: 0xBE8DA0 Offset: 0xBE8DA0
	[CompilerGeneratedAttribute] // RVA: 0x889DE4 Offset: 0x889DE4
	public void set_Chance(int value); // RVA: 0xBE8DA8 Offset: 0xBE8DA8
	[CompilerGeneratedAttribute] // RVA: 0x889DF4 Offset: 0x889DF4

     private int <DropChance>k__BackingField; // 0x114
	[CompilerGeneratedAttribute] // RVA: 0x8720D0 Offset: 0x8720D0


    public int DropChance { get; set; }
	[XmlAttributeAttribute] // RVA: 0x8A0F90 Offset: 0x8A0F90

    public int get_DropChance(); // RVA: 0xCC4C08 Offset: 0xCC4C08
	[CompilerGeneratedAttribute] // RVA: 0x88AC64 Offset: 0x88AC64
	public void set_DropChance(int value); // RVA: 0xCC4C10 Offset: 0xCC4C10
	[CompilerGeneratedAttribute] // RVA: 0x88AC74 Offset: 0x88AC74

then you could edit the lib file. Or use GG to edit offsets (if on mobile device) typically XA memory range. You'll want to use ARM to HEX to modify the offsets correctly.

 

4. Could try search random float values and mass editing... Not ideal, but more of a last resort.  So start with .19~.21 float, edit all to like 1.0. One problem with this, you don't know if percentages are float, dword or double. 20% could be,  20.0 float/double/dword.  0.20 float/double.  Then you don't know if its an even .20... Might be 0.1975.  Again, this really isn't a good method.

 

 

Hope this helps.  Figured it is far less time to type this entire post than to attempt to do the methods mentioned above.

This is an awesome post with lots of great info 

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.