Jump to content

bR34Kr

ViP Pro
  • Posts

    1,323
  • Joined

  • Last visited

Posts posted by bR34Kr

  1. The address will always change because it's allocated randomly in memory. The only way to save it is to have a static route to your value, so to do that use LLDB to search the base of your value, then finding an pointer to that base, then repeating this process until you end up with a static address. Once you do that just add, dereference, again and again and you'll be able to change your value :)

  2. 4 hours ago, D red said:

    i answer here because i’m trying to do the same thing. :)

    so i have a few questions :

    -by « debuging » the game you mean remove ASLR from it ?

    -and how to search the cooldown ? by using GameGem/iGameGod ? or (example : Ak-47 = 2 sec reload) so i search into IDA a string with

    2seconds/2sec/*similar words* ? 

     

    Thanks a lot for theses answer ! 

    Debugging is the process of adding breakpoints / watchpoints and see how the game actually goes and does stuff.

     

    For the reload I'd search for the Gun class (with ammo for example), and search closeby memory for constant floats or ints representing the cooldown time. Then you're in business :)

    • Like 1
  3. Right now you are looking for a string and finding a function which references that string, after you search all the binary for the first FMOV instruction so you're deemed to fall on something completely random. What you should do is debug the game and find the value for the cooldown while searching by difference (cooldown increased / decreased etc.) and then finding which instruction actually edits the value and then patching it. Hope this helped

    • Like 1
  4. Here's a brief rundown of integer types:

    Signature represents if a number has sign bit. If it's unsigned then all the bits of the bytes are used to represent your integer and the value will be positive. If the value is signed then the first bit will be used to check wheter an integer is positive or negative.
    
    So the 'S' or 'U' in front of the type represents if you want to search for unsigned or signed values
    
    1 byte - char
    	Represented by 1 byte in memory
        Goes from 0 to 255 (unsigned)
        Goes from -128 to 127 (signed)
    
    2 bytes - short
    	Represented by 2 bytes in memory
        Goes from 0 to 65535 (unsigned)
        Goes from -32768 to 32767 (signed)
    
    4 bytes - int
    	Represented by 4 bytes in memory
        Goes from 0 to 42949672955 (unsigned)
        Goes from -2147483648 to 2147483647 (signed)
    
    8 bytes - int
    	Represented by 8 bytes in memory
        Goes from 0 to 18446744073709551615 (unsigned)
        Goes from -9223372036854775808 to 9223372036854775807 (signed)
        

     

    So to answer your question more clearly: UInt is an unsigned 4 byte integer and SInt is a signed 4 byte integer

     

    More detailed explanation here: https://en.cppreference.com/w/c/language/type

    • Like 1
    • Winner 1
  5. 1 hour ago, Rook said:

    If your binary is thinned, the IDA file offset may be off. You can just use the hex bytes and search them on the file to find the offset.

    Also make sure the binary is the cracked version. I just tried with an iOS binary and the offset pointed to by IDA is correct if you jump to it in a hex editor (I used HxD). Maybe IDA changes the endianness? But just make sure you bin is cracked. That's about it.

    • Like 1
  6. 21 minutes ago, bussn said:

    Nope im a very social human being i need to be or ill feel alone and meeting new ppl is a hobby like i still go out and hang with the homies but like school is different.

    And also i can’t learn online i just can’t especially at home like i have other things to do but i gotta tough it out ill just ask my mom to help me and what i mean by that is like she answers all the question and i just watch yk

    Use Discord to chat with your friends during class :smart:

     

    Edit: I’m not responsible if you fail or anything of the sort if you do this method

  7. That offset is based on the class. So it's not literally 0x2ECF56 in memory, it's PlayerOffset+0x2ECF56. So yes, you need to find a way to get your player instance and then to read it you read the float stored 0x2ECF56 after that base address.

    • Like 1
×
  • Create New...

Important Information

We would like to place cookies on your device to help make this website better. The website cannot give you the best user experience without cookies. You can accept or decline our cookies. You may also adjust your cookie settings. Privacy Policy - Guidelines