Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. Los Santos Drug Wars
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

      1. Blood Money
      2. Frontier Pursuits
      3. Find Lobbies & Outlaws
      4. Help & Support
    3. Crews

    1. Grand Theft Auto Series

      1. Bugs*
      2. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

      1. Guides & Strategies
      2. Help & Support
    4. GTA IV

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA San Andreas

      1. Classic GTA SA
      2. Guides & Strategies
      3. Help & Support
    6. GTA Vice City

      1. Classic GTA VC
      2. Guides & Strategies
      3. Help & Support
    7. GTA III

      1. Classic GTA III
      2. Guides & Strategies
      3. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    4. Featured Mods

      1. Design Your Own Mission
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Movies & TV
      5. Music
      6. Sports
      7. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Announcements

    2. Support

    3. Suggestions

Natives hashing algorithm


mockba.the.borg
 Share

Recommended Posts

mockba.the.borg

Hi everyone,

 

So, we all know that the algorithm used to create the 32 bits hashes from vehicle names, weapon names and other items in the game is the Jenkins "One at a time" hashing.

 

Now, what about the 64 bits hashes from native names. Does anyone have any idea what is used there?

Looks like it is not related to the game's version, as we changed from 757.2 to 757.4 and the hashes didn't change.

So, either it is related to the online version (1.34 didn't change between 757.2 and 757.4), or generated from something else.

I wonder if anyone have even done some research on this.

 

Thanks,

Mockba.

Link to comment
Share on other sites

unknown modder

No one has any idea as the hash isnt stored anywhere in the game files

Link to comment
Share on other sites

mockba.the.borg

Yup, I did some (CE) research on 757.4 and found out that the natives are kept in dynamic memory on what seems to be a lookup tree, based on their last octets (so all natives ending in 0x39, for example, are kept together).

This is obviously done to speed up the search for a corresponding entry point in the executable.

The index for this tree is kept in static memory. These are pointers to the first block of each of the tree's branches (one for each possible last octet), and from there you can traverse the entire structure.

The structure (tree leafs) then contains the pointers to the corresponding entry points in the code for each native.

A quick look at this list shows that the game has natives that are not yet listed on the current 757.4 natives list.

If we could find out which part of the code is building this tree, then we would be one step closer to how the natives are really generated.

  • Like 2
Link to comment
Share on other sites

I think they're randomly generated. There's a native hash of "0xDEADC0DE" -- I doubt that's possible from a hashing algorithm.

Edited by Fireboyd78
Link to comment
Share on other sites

mockba.the.borg

Hmmm ... I am not completely convinced it is random.

I have scanned the native hashes in memory again and noticed that:

 

1 - The DEADC0DE one doesn't exist anymore

2 - Some of the natives in my list are not on the published (757.4) natives list

3 - All natives in my list do have valid entry points in the code

4 - My list has 5565 entries

5 - Not all of the published natives (like DEADC0DE) are on my list

 

I am quite certain that my list covers the real sum of available native hashes in its entirety, so it looks to me that some of the natives are being "lost in translation" as stuff has been adapted to the native.db list over these past years.

 

Cheers,

Mockba.

Link to comment
Share on other sites

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

  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.