Jump to content

Dealing with ASLR in Palera1n Jailbreak


5 posts in this topic

Recommended Posts

Updated (edited)

I have been getting the virtual memory address slide amount of the application by

#include <mach-o/dyld.h>
_dyld_get_image_vmaddr_slide(0);

_dyld_get_image_vmaddr_slide: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/dyld.3.html

However, on Palera1n (v1.4.1), "/usr/lib/substitute-loader.dylib" seems to be the 0th image index.
Therefore, the argument to _dyld_get_image_vmaddr_slide must be 1.

uint64_t getRealOffset(uint64_t offset) {
    return _dyld_get_image_vmaddr_slide(1) + offset;
    // return _dyld_get_image_vmaddr_slide(0) + offset;
}

 

With Framework

If the image index is not fixed as in Unity, it can be done as follows

#include <string.h>
#include <stdlib.h>

uint64_t getRealOffset$Palera1n(const char *image_name, uint64_t offset) {
    if (image_name == NULL) {
        const char *progname = getprogname();
        if (progname) {
            return getRealOffset$Palera1n(progname, offset);
        }
        return _dyld_get_image_vmaddr_slide(1) + offset;
    }

    const uint32_t image_count = _dyld_image_count();
    for (int i = 0; i < image_count; ++i) {
        if (strstr(_dyld_get_image_name(i), image_name)) {
            return _dyld_get_image_vmaddr_slide(i) + offset;
        }
    }
    // error...
    return offset;
}

getprogname: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/getprogname.3.html

Example argument for image_name:

// PUBG
getRealOffset$Palera1n("ShadowTrackerExtra", 0x100345678);
// or
getRealOffset$Palera1n(NULL, 0x100345678);

// YouTube
getRealOffset$Palera1n("YouTube", 0x100345678);
// or
getRealOffset$Palera1n(NULL, 0x100345678);

// Unity - (e.g. Survivor!.io)
getRealOffset$Palera1n("UnityFramework", 0x345678);

 

Conclusion

The following may only work with Palera1n or only with the current version of Palera1n.

const uint64_t slide = _dyld_get_image_vmaddr_slide(1);
MSHookFunction((void *)(0x100345678 + slide), ...);
MSHookFunction((void *)(0x100789ABC + slide), ...);

It might be better to specify by image name so that it works without worrying about the argument to _dyld_get_image_vmaddr_slide.

const uint64_t slide = getRealOffset$Palera1n("ImageName", 0x0);
if (slide) {
    MSHookFunction((void *)(0x100345678 + slide), ...);
    MSHookFunction((void *)(0x100789ABC + slide), ...);
}

 

Updated by tat5
Conclusion was not good.
Posted (edited)

Could you try this?
 

uint64_t getRealOffset(uint64_t offset) {

    if (strstr(_dyld_get_image_name(0), "substitute")) { 
        return _dyld_get_image_vmaddr_slide(1) + offset;
    }

    const uint32_t image_count = _dyld_image_count();
    for (int i = 0; i < image_count; ++i) {
        if (strstr(_dyld_get_image_name(i), "UnityFramework")) { 
            return _dyld_get_image_vmaddr_slide(i) + offset;
        }
    }

    return _dyld_get_image_vmaddr_slide(0) + offset; // if not our base executable is the traditional?
}



 

Updated by quatorze
Posted
46 minutes ago, quatorze said:

Could you try this?
 

uint64_t getRealOffset(uint64_t offset) {
 
    const uint32_t image_count = _dyld_image_count();
     for (int i = 0; i < image_count; ++i) {
        if (strstr(_dyld_get_image_name(0), "substitute")) { // check if substitute loaded as 1st image
            return _dyld_get_image_vmaddr_slide(1) + offset;
        } else if (strstr(_dyld_get_image_name(i), "UnityFramework")) { // check for unityframework
                return _dyld_get_image_vmaddr_slide(i) + offset;
            } else {
                   return _dyld_get_image_vmaddr_slide(0) + offset; // if not our base executable is the traditional?  
            }

       NSLog(@"An error occured");
       return offset;
}

Wouldn't it terminate the for loop once?
I don't think it works well when UnityFramework is the target.

Is this what you mean?

uint64_t getRealOffset(uint64_t offset) {
    if (strstr(_dyld_get_image_name(0), "substitute")) { // check if substitute loaded as 1st image
        return _dyld_get_image_vmaddr_slide(1) + offset;
    }

    const uint32_t image_count = _dyld_image_count();
    for (int i = 0; i < image_count; ++i) {
        if (strstr(_dyld_get_image_name(i), "UnityFramework")) { // check for unityframework
            return _dyld_get_image_vmaddr_slide(i) + offset;
        }
    }

    return _dyld_get_image_vmaddr_slide(0) + offset; // if not our base executable is the traditional?
}

It may not be able to deal with the case where the next of substitute is not the correct answer. I don't know if such a case can happen...

if (strstr(_dyld_get_image_name(0), "substitute")) { // check if substitute loaded as 1st image
    return _dyld_get_image_vmaddr_slide(1) + offset;// Absolutely?
}

I just think your code is cleaner and better.🙆‍♂️

 

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
  • Our picks

    • Tiny Bookshop +2 Jailed Cheats [ Full Game Unlocked ]
      Modded/Hacked App: Tiny Bookshop By Skystone Games Inc.
      Bundle ID: com.neoludic.tbs
      App Store Link: https://apps.apple.com/us/app/tiny-bookshop/id6766267906?uo=4

       

      🤩 Hack Features

      - Unlimited Money & Books -> Earn or spend some.
      -- Full Game Unlocked
        • Like
      • 0 replies
    • ZakuzakuSlash +5 Mods [ Damage & Defence ]
      Mod APK Game Name: ZakuzakuSlash By nekosuko
      Rooted Device: Not Required.
      Google Play Store Link: https://play.google.com/store/apps/details?id=jp.nekosuko.zakuzakuslash

       

      🤩 Hack Features

      - Damage Multiplier
      - Defence Multiplier
      - God Mode
      - XP Multiplier
      - Unlimited Gold -> Will increase instead of decrease.
      • 0 replies
    • Gun and Girls : Gunner Maker +10 Jailed Cheats [ Damage & Defence ]
      Modded/Hacked App: Gun and Girls : Gunner Maker By MouseDuck Co., Ltd.
      Bundle ID: com.mouseduck.gungame
      App Store Link: https://apps.apple.com/us/app/gun-and-girls-gunner-maker/id1587842780?uo=4

       

      🤩 Hack Features

      - Damage Multiplier
      - Defence Multiploer
      - God Mode
      - Monster Count Modifier

      VIP
      - Add Gold
      - Add Diamonds
      - Add Shell Casings
      - Add Event Currency
      - Unlock All Skills
      - Unlock All Costumes
      • 1 reply
    • Undying Hero: Idle RPG +3 Jailed Cheats [ Damage + More ]
      Modded/Hacked App: Undying Hero: Idle RPG By SUPERBOX. Inc
      Bundle ID: com.superpixel.undyinghero
      App Store Link: https://apps.apple.com/us/app/undying-hero-idle-rpg/id6758293735?uo=4

       

      🤩 Hack Features

      - Damage Multiplier
      - One-Hit Kill
      - Freeze Currencies
        • Agree
        • Like
      • 3 replies
    • Real Survival: Not Fake v1.0.1 [ +5 APK MOD ] Currency Max
      Mod APK Game Name: Real Survival: Not Fake
      Rooted Device: Not Required.
      Google Play Store Link: https://play.google.com/store/apps/details?id=com.devdop.realsurvivalnotfake

      🤩 Hack Features

      - Auto ADS No
      - Unlimited Gems
      - Unlimited Coins
      - Unlimited Wood
      - Unlimited Meet
        • Informative
      • 1 reply
    • Real Survival: Not Fake v1.1.0 [ +5 Cheats ] Currency Max
      Modded/Hacked App: Real Survival: Not Fake By Dan Lespect
      Bundle ID: com.devdop.realsurvivalnotfake
      App Store Link: https://apps.apple.com/us/app/real-survival-not-fake/id6777072156?uo=4

       

       

      📌 Mod Requirements

      - Jailbroken iPhone or iPad.
      - iGameGod / Filza / iMazing.
      - Cydia Substrate, ElleKit, Substitute or libhooker depending on your jailbreak (from Sileo, Cydia or Zebra).

       

      🤩 Hack Features

      - Auto ADS No
      - Unlimited Gems
      - Unlimited Coins
      - Unlimited Wood
      - Unlimited Meet

       

      ⬇️ iOS Hack Download Link


      Hidden Content

      Download Hack







       

      📖 iOS Installation Instructions

      STEP 1: Download the .deb hack file from the link above. Use Safari, Google Chrome or other iOS browsers to download.
      STEP 2: Once the file has downloaded, tap on it and then you will be prompted on whether you want to open the deb with iGameGod or copy it to Filza.
      STEP 3: If needed, tap on the downloaded file again, then select ‘Normal Install’ from the options on your screen.
      STEP 4: Let iGameGod/Filza finish the cheat installation. If it doesn’t install successfully, see the note below.
      STEP 5: Open the game, log in to your iOSGods account when asked, then toggle on the features you want and enjoy!

       

      NOTE: If you have any questions or problems, read our Jailbreak iOS Hack Troubleshooting & Frequently Asked Questions & Answers topic. If you still haven't found a solution, post your issue below and we'll do our best to help! If the hack does work for you, please post your feedback below and help out other fellow members that are encountering issues.

       

      🙌 Credits

      - IK_IK

       

      📷 Cheat Video/Screenshots

      N/A

       

      More iOS App Hacks
      If you’re looking for Non-Jailbroken & No Jailbreak required iOS IPA hacks, visit the iOS Game Cheats & Hacks or the iOSGods App for a variety of modded games and apps for non-jailbroken iOS devices.

      Modded Android APKs
      Need modded apps or games for Android? Check out the latest custom APK mods, cheats & more in our Android Section.
        • Like
      • 3 replies
    • Real Survival: Not Fake v1.1.0 [ +5 Jailed ] Currency Max
      Modded/Hacked App: Real Survival: Not Fake By Dan Lespect
      Bundle ID: com.devdop.realsurvivalnotfake
      App Store Link: https://apps.apple.com/us/app/real-survival-not-fake/id6777072156?uo=4

      🤩 Hack Features

      - Auto ADS No
      - Unlimited Gems
      - Unlimited Coins
      - Unlimited Wood
      - Unlimited Meet
        • Like
      • 6 replies
    • 거너거너 Guner Guner v1.0.1 [ +2 APK MOD ] ATK MAX
      Mod APK Game Name: 거너거너 Guner Guner
      Rooted Device: Not Required.
      Google Play Store Link: https://play.google.com/store/apps/details?id=com.brightdawn.android.gngn

      🤩 Hack Features

      - HP MAX
      - ATK MAX
      • 0 replies
    • 거너거너 Guner Guner v1.0 [ +2 Cheats ] ATK MAX
      Modded/Hacked App: 거너거너 Guner Guner By Brightdawn Inc.
      Bundle ID: com.brightdawn.ios.gngn
      App Store Link: https://apps.apple.com/kr/app/%EA%B1%B0%EB%84%88%EA%B1%B0%EB%84%88/id6777852933?uo=4

      🤩 Hack Features

      - HP MAX
      - ATK MAX
      • 1 reply
    • 거너거너 Guner Guner v1.0 [ +2 Jailed ] ATK MAX
      Modded/Hacked App: 거너거너 Guner Guner By Brightdawn Inc.
      Bundle ID: com.brightdawn.ios.gngn
      App Store Link: https://apps.apple.com/kr/app/%EA%B1%B0%EB%84%88%EA%B1%B0%EB%84%88/id6777852933?uo=4
      🤩 Hack Features

      - HP MAX
      - ATK MAX
        • Like
      • 2 replies
    • Guildmaster v1.3.19 [ +3 APK MOD ] Currency Max
      Mod APK Game Name: Guildmaster Idle
      Rooted Device: Not Required.
      Google Play Store Link: https://play.google.com/store/apps/details?id=com.ElvenryStudios.Guildmaster&hl=en

      🤩 Hack Features

      - Runes Max
      - Gold Max
      - Inventory Items Max ++30
        • Agree
      • 0 replies
    • Guildmaster Idle v1.3.19 [ +3 Cheats ] Currency Max
      Modded/Hacked App: Guildmaster Idle By Elvenry Studios Limited
      Bundle ID: com.ElvenryStudios.Guildmaster
      App Store Link: https://apps.apple.com/us/app/guildmaster-idle/id1588390905?uo=4

      🤩 Hack Features

      - Runes Max
      - Gold Max
      - Inventory Items Max ++30
      • 0 replies
×
  • 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