Jump to content

Platonic

Contributor
  • Posts

    934
  • Joined

  • Last visited

  • Days Won

    39

Posts posted by Platonic

  1. 1 hour ago, Kimastar said:

    BUT at 55 second of your video when u execute a scritp whats that "stringformatting.lua" that i dont have it???

    Download and execute the script. I uploaded it in my previous comment.聽Its just removes any value that has more then 1 digit behind the dot as they are irrelevant.

    27 minutes ago, Kimastar said:

    so all this effort for nothing? seems like u choose the hardest way to hack when instead mine was moooore fast.

    Your making it complicated for your self. There is a limit on leveling up stats. If they are max upgraded you can't add more PS anymore by normal means i dont see what PS still has to do with anything.

    I gave you the PS value because you can change PS value whenever you want regardless of it being negative, than next time you dont need to try guessing how to search your PS points in negative. I simply searched a method that works for all stats on all pokemons without needing to do one by one or guessing the negative PS value. So no, my method is more efficient.

    Sadly if you find sercent cheat methods boring it can't be of me or others their concern. You wanted to not get the points negative but still edit stats. I gave you one by editing stats directly. For me thats a solution. There was no were mentioned in your question that you would find that method "boring" 馃檮 and wanted to avoid it, eitherway...time is valuable..i don't want mine to be wasted like this because someone finds something boring.

  2. Then don't touch the points, just ignore them...then no issues with negative. Let me know if this works for you:聽

    MENACING: -472273170
    specialDefense: -1001418754
    defense: -1263051503
    attack: 1591370207
    hp: 5734
    specialAttack: 1224542453
    sp: 5741
    speed: 280450252

    stringformatting.lua

    You can also just use the attack value. Then when fighting a pokemon you get more XP resulting in max leveling your pokemon.

  3. What you need to figure out is how the potentional points are added, there you apply the modification. Thats why i ask how you get potentional points. For example you play some battle, in return you get 3 potentional points. If you know that you will get 3 points you have to change that 3 to 9999 or something. Then you get 9999 points assigned to a pokemon without effecting the stats of that pokemon

  4. 12 hours ago, Kimastar said:

    Hi!

    聽Im worry about because like you can see in the screenshot this its just a DEMO before the final release that will come out soon with all progress you made.

    Also there is a full release of Coromon on STEAM so i think they just "testing" on android version before release it full version.

    Did you know how i can put back -380 to 0+??? ty so much!

    Screenshot_2022-10-17-23-32-48-845_com.tragsoft.coromon.jpg

    Its indeed just a demo. There is no official release date yet for when the full mobile version comes out. And its very likely gone be payed. Very unlikely for the devs to update the demo when they working hard on full version. Last demo update was longer then a year ago.

    Beside that, i dont understand how to play this game well. The potential stats point and stat points are linked. Looks like there is already a max value so editing them directly is pointless for what you want. First thing i would try is to see how you even get potentional stats point, if you know how to get it you could try to edit at that point before x value is assigned to your pokemon looking char.

    How you get the points assigned and how i can make more in the game?

    IMG_20221018_174614.jpg

  5. 6 hours ago, peshawa said:

    when he enter 148,547,708 and tap search on of the result is 7B446AD4FC but when i do it there isn't single one that start with 7

    I cant show the full step because the file is larger than 14MB

    You have to look at the end of the address instead of the start.

    Screenshot_2022-10-14-05-01-54-156_com_miui_home.thumb.jpg.af462e98a49ccd11924e300ab246436a.jpg

    See here more explenation on how to use the address mask search.

  6. The script is fine when you remove that double point, if not removed you start address will be at Cb. So use print() to see what is happening. Then we also can stop guessing and wasting your time.

    Try:

    print(gg.getRangesList("libil2cpp.so"))

    See which libil2cpp.so is at the top. And if its "state" is "Xa". If its "state" is in a other memory region you will have to apply a filter to your script so that it only takes the libil2cpp address from region Xa.

    If not sure you can post the print result here.

  7. 2 hours ago, blocx said:

    hi some one if something is wrong or missing when i do manualy with gg it load good adress (start lib & 10BBCdC ) but script no go good adress thx

    pi = 
    gg.getRangesList("libil2cpp.so:")[1].start
    local addr = pi + 0x10BBCDC
    gg.setValues({ {address = addr, flags = 4, value = 1384440288} })

    You will get the wrong path name. Remove the double point in that string. You have:

    "libil2cpp.so:"

    Do:

    "libil2cpp.so"

    Should solve the issue.

  8. 20 hours ago, peshawa said:

    so I watched some YouTube videos and when they search for some thing they always start with聽 number but when I do it I only get words聽

    for example聽 聽a guy聽 typed 148,547,708 then tap search and found聽 聽7B446AD4FC in shao kahns tower聽

    but in my case when I tap search it doesn't give any number at the start only words聽 so it impossible to do anything聽 and I watched every new video and all of then are the same聽聽

    Share video.

  9. 17 minutes ago, qwer098 said:

    No, it worked perfectly. I just wondered how to find the hex value. Thank you.

    Well, i search the weaponSound class manually. Then i search the desired gun. The i pointer search the start address of the field address of that gun and see if there is a pointer that is always pointing to that gun or some weapon of it. Then i check which class that value that is pointing to the start of that field address of that gun belongs to. In this case it belongs to claas weaponManager.

    2 minutes ago, Platonic said:

    Well, i search the weaponSound class manually. Then i search the desired gun. The i pointer search the start address of the field address of that gun and see if there is a pointer that is always pointing to that gun or some weapon of it. Then i check which class that value that is pointing to the start of that field address of that gun belongs to. In this case it belongs to claas weaponManager.

    Then when you find the class struct there will be a address having the value which point to the metadata. In this case its named weaponManager. But if your search weaponManager you get to much results so you copy some extra bytes to refine the results amount.

  10. 12 hours ago, qwer098 said:

    @Platonic

    I have a question. It may sound like a lazy question, but please excuse me.
    How did you find the hex value starting with h 57 65~ at the very beginning of the video? I think it was just hex-ed聽:WeaponManager so I started searching with :WeaponManager, and I succeeded in getting the Byte values, but I didn't get any results on the way to the next qword value. What is the difference between the two?

    I succeeded when I copied the video as it was, but I failed when I changed the value to start the search.

    This value doesnt work?:聽h 57 65 61 70 6F 6E 4D 61 6E 61 67 65 72 00 E4 B8 9E E4 B8 94 E4 B8 89 E4

    Found it by pointer searching the first field offsets address.

  11. It doesn't matter if its obfuscated or not. The objective would be to find a pointer that always point to your desired weapon. Here is a video example聽(you want to disable the sound, i recorded sound by accident). Where it shows it always finds your gun. Without needing to do everything all over again. Regardless of leaving a match.聽

    So can you kind of picture how you would have to script it?

    Manually the value is not efficient ti use for edit, but when you script it, it is better then the other option of pointer searching again and again because you actually don't need to search anything.聽

  12. 1 hour ago, qwer098 said:

    @PlatonicThank you for your reply. It doesn't seem easy, but I'll try.
    The reason I had to refine the value was that if we changed all of those values, the game would crash every time I went into the next match. So we needed to find one exact value, and it was a problem that occurred in the process.

    I'm glad you like it. I was just lucky.

    Did you check the class: WeaponManager聽

    ?

  13. 41 minutes ago, qwer098 said:

    If possible, I'm thinking of creating a script, but I'm holding it for now. It takes a lot of effort to find the exact value, so I don't think I can afford to think about the script.
    I'm not sure the value is static, but I can show you the video
    Please check the link below...

    Script I used in the video is this :聽

    Field Offset Finder (#yyzay1k)

    Scripting this should be doable. The only issue usually is refining till you get only one result. There are two methods you could try.

    One is copying the data of that specific gun and allocating that data at a read and write page with your own modified values and then setting the pointer that point to the start of your gun class equal to the start of the gun class which you have allocated. Its not a guarantee it works but it could prevent you from having to search the value all over again. But it could as well be that your game is crashing. See here for an example.聽

    Eitherway you need to script it.

    Second method you can take from nok1a's script. We use the start of a char in the metadata.dat and pointer search it till the region Anonymous and set or required parameters. Then you also need to find a value that indicates when the match is finished or not. I need to do that as well for the game Tower of Fantasy.聽

    I believe the class your editing has a field as weapon ID's. Each weapon should be different. You can filter based on that. So that eventually all that would be left is the desired value that you would like to modify.

    Actually i don't even think you need to refine to one result. Its possible that all the results you got was for different weapon ID's

    42 minutes ago, qwer098 said:

    If possible, I'm thinking of creating a script, but I'm holding it for now. It takes a lot of effort to find the exact value, so I don't think I can afford to think about the script.
    I'm not sure the value is static, but I can show you the video
    Please check the link below...

    Script I used in the video is this :聽

    Field Offset Finder (#yyzay1k)

    Nice cheat btw.

  14. 19 hours ago, qwer098 said:

    Here's the problem:
    I succeeded in finding the address of the value I wanted to change through the field offset finder, changing it, and confirming that it applies to the game.

    Field Offset Finder (#yyzay1k)

    (thanks to @Rxhacker聽for cool script)

    However, if I end the matching and back into the another match, the address changes and the value I changed becomes useless, so I have to find it again.
    Instead of shutting down the game completely and turning it back on, the problem arises just by leaving and rejoin the match in the game. Whether it's online or offline.
    This is not a matter of freezing or incorrect offset. Literally, the address for that method has been changed and is not applied.

    For example, if the address of the range of weapons was ABCDEF before, the address changed to ABFFFEF when it went out of the matching and came in, and it became useless to modify ABCDEF.
    I don't know if I explained it well, please let me know if you don't understand.

    So, why does this happen? Is there any way to solve the problem?

    Is this for a script your making?

    Is the value static during the match?

    4 hours ago, under_score said:

    Offsets.聽 聽 聽

    It's not the issue though.

  15. 23 hours ago, Enfusia said:

    A new major update of the game 'Night of the Full Moon' is coming out soon, which kinda caught my attention.

    I was able to mod an older version of the game (1.5.1.37), but that approach doesn't work for the newest version anymore (1.5.1.50).

    Here's my analysis:
    聽 -The developers use their own anti-tamper solution called 'HProtect'. It (was?) responsible for decrypting the metadata, and it also force closed the game if any changes were detected.
    聽 -They updated HProtect, and I wasn't able to figure out what it does now.
    聽 -The metadata in the old version of the game was obviously obfuscated, but the one in the new version is not, since the 4 magic bytes are valid (I uploaded some screenshots).
    聽 -The il2cpp.so binary seems to be valid and not encrypted at all.

    Things that I tried so far:
    聽 -Using the zygisk il2cppdumper didn't work (dump.cs hasn't been created), but it did work with the old version of the game though.
    聽 -Dumping via GameGuardian worked, but the output was identical to the file you get from the apk.
    聽 -il2cppdumper gives me the "System.IO.EndOfStreamException: Unable to read beyond the end of the stream" error when trying to dump.
    聽 -il2cppInspector says "could not verify the integrity of the metadata file or accurately identify the metadata sub-version" when selecting the metadata file.
    聽 -Libdumper didn't work (also produced the identical output).

    I'm kinda lost at this point, it would be great if someone could help me out with this. Also, please let me know if I forgot to include something.

    Thanks in advance

    Hex-View new metadata.png

    Hex-View of old metadata.png

    Metadata from the newest version.rar 2.77 MB聽路聽0 downloads Metadata from the older version.rar 2.97 MB聽路聽0 downloads Newest version of HProtect.rar 18.05 kB聽路聽1 download Older version of HProtect.rar 10.96 kB聽路聽0 downloads

    Did some quick checking and its a first for me to, to see the names are scattered around in different locations in memory. I can't give you a solution.

    Schermafbeelding_2022-09-06_201626-1.thumb.png.d5db0fdfb34e681566d989bd54a5b080.png

    There are also two global metadata headers i believe.

    unknown-17.thumb.png.c70c034c15bc2294ab831267bb616ac7.png

    Can't spectate it because lost access to 010 Editor but you can search the magical bytes in Ca and copy. I believe header size is 272 bytes. But this could be 264 bytes as well i believe.

    If you would replace the header from the meta in Others with that of Ca il2cppdumper would recognize it as a valid metadata. But then the values in the header don't correspond with the rest of the metadata. So if the metadata is encrypted the meta in Ca is the one that has no encryption. But im just assuming here. You would need to look deeper in to it.

    Both meta headers point to different code/meta registration.聽

    I'm not sure if its realistic to say that you could try to fix the values in the Others metadata so that it corresponds to the data of the Ca聽 meta header? This was just some idea. Further then that i can't help you. But perhaps people more suitable for the issue can help you.

  16. 9 hours ago, HorridModz said:

    You should also try to make your code as clean and understandable as possible. For example, look at this code:

    variable = false
    if not variable then
    alert("Variable is nil!")
    else
    alert("Variable is not nill!")
    end

    I believe the script is understandable if you understand the game a bit. I just try to avoid group searches and repeating behaviour which slows down the script or increases its size or makes me spend more time writhing. For load all cheats with group search it takes one minute. By making this script with offsets it only takes 10 sec. Then checks are also there to alert if values changed or things like that. Everything has purpose. Its also more easy for me to update as i don't need to change much things.

  17. 5 hours ago, HorridModz said:

    Glad this was fixed, but I just want to say that while@MAARS's solution works, it is not very clean. This is because if not will also be true if the value is false, not just if it is nil. if not works, but it is not clean code because it is not clear whether a boolean value is expected or not. You should also try to make your code as clean and understandable as possible. For example, look at this code:

    variable = false
    if not variable then
    alert("Variable is nil!")
    else
    alert("Variable is not nill!")
    end

    Based on my objective Maars solution is great because what i needed was for the script to execute a specific action when the condition was met. That condition was, using a feature of the prompt, if feature has been used for the first time then condition is met. Which was resolved using boolean values true/false. He gave me the idea with the expectation i implemented it. Which i did. I placed the bool at each feature. You can see it here.

    Its named "menuHasBeenUsed", and its set true only when a feature from the prompt is used. For example here:

    function boolCheck()
      menuHasBeenUsed = false
      loopMenu = 0
    end
    boolCheck()

    And then in the prompt:

    if speed == nil then
        noselect()
      else
        
        if speed[1] then
          menuHasBeenUsed = true
          charLoop = charLoop + 1
          if charLoop <= 1 then
            characterAnim()
          end
          for i = 1, #characterAnimation do
            characterAnimation[i]["value"] = speed[1]
          end
          gg.setValues(characterAnimation)
        end

    I do not use it for nill because i dont want that "menuHasBeenUsed" becomes true if nill. So i don't see a issue.

×
×
  • 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.