Jump to content

 Something great is coming! 🚀

Stay tuned for the big reveal happening here on iOSGods on the 17th of December!

The countdown has finished!

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

    • Pal Go: Tower Defense TD v0.4.41 [+7 Cheats]
      Modded/Hacked App: Pal Go: Tower Defense TD By Playwind Ltd
      Bundle ID: com.playwindgames.freedefender
      iTunes Store Link: https://apps.apple.com/us/app/pal-go-tower-defense-td/id6479316663?uo=4


       

      🚀 Hack Features

      - [VIP] Freeze Currency (Currency will not decrease when used)

      - [VIP] Currency Always Enough (Buy even when you don't have enough currency)

      - [Free] Higher Recruit Energy (Gives 500 Recruit Energy Every Wave)

      - [Free] Always Can Drag Hero

      - [Free] Skip Ads

      - [Free] No Attack Cooldown

      - [Free] Global Speed Multiplier (Enable Inside Battle)

       

      Warning


      Do not use on main account. There is a chance of ban. Not responsible for any bans.

       


      🍏 For Non-Jailbroken & No Jailbreak required hacks: https://iosgods.com/forum/79-no-jailbreak-section/
      🤖 Modded Android APK(s): https://iosgods.com/forum/68-android-section/
      • 69 replies
    • Pal Go: Tower Defense TD v0.4.41 [+7 Jailed Cheats]
      Modded/Hacked App: Pal Go: Tower Defense TD By Playwind Ltd
      Bundle ID: com.playwindgames.freedefender
      iTunes Store Link: https://apps.apple.com/us/app/pal-go-tower-defense-td/id6479316663?uo=4


       

      Hack Features

      - [VIP] Freeze Currency (Currency will not decrease when used)

      - [VIP] Currency Always Enough (Buy even when you don't have enough currency)

      - [Free] Higher Recruit Energy (Gives 500 Recruit Energy Every Wave)

      - [Free] Always Can Drag Hero

      - [Free] Skip Ads

      - [Free] No Attack Cooldown

      - [Free] Global Speed Multiplier (Enable Inside Battle)

       

      Warning


      Do not use on main account. There is a chance of ban. Not responsible for any bans.

       

      Jailbreak required iOS hacks: https://iosgods.com/forum/5-game-cheats-hack-requests/
      Modded Android APKs: https://iosgods.com/forum/68-android-section/
      • 93 replies
    • Margonem Adventures v2.4.3 [+3 Jailed Cheats]
      Modded/Hacked App: Margonem Adventures By GARMORY sp. z o.o. sp. k.
      Bundle ID: pl.Garmory.MargonemAdventures
      iTunes Store Link: https://apps.apple.com/us/app/margonem-adventures/id6444410609?uo=4

       

      🤩 Hack Features

      - Enemy Can't Move
      - Enemy Can't Attack
      - Unlimited Mana
      • 23 replies
    • Margonem Adventures v2.4.3 [+3 Cheats]
      Modded/Hacked App: Margonem Adventures By GARMORY sp. z o.o. sp. k.
      Bundle ID: pl.Garmory.MargonemAdventures
      iTunes Store Link: https://apps.apple.com/us/app/margonem-adventures/id6444410609?uo=4



      🤩 Hack Features

      - Enemy Can't Move
      - Enemy Can't Attack
      - Unlimited Mana
      • 15 replies
    • Same Room Same Day: Pocket v0.0.38 [+3 Cheats]
      Modded/Hacked App: Same Room Same Day: Pocket By Eduard Malkhasyan
      Bundle ID: com.bugigamesIOS.SameRoomSameDay
      iTunes Store Link: https://apps.apple.com/us/app/same-room-same-day-pocket/id6742232597?uo=4

       

      🤩 Hack Features

      - Full Game Unlocked
      - Never Die
      - Unlimited Ammo
      • 11 replies
    • Same Room Same Day: Pocket v0.0.38 [+3 Jailed Cheats]
      Modded/Hacked App: Same Room Same Day: Pocket By Eduard Malkhasyan
      Bundle ID: com.bugigamesIOS.SameRoomSameDay
      iTunes Store Link: https://apps.apple.com/us/app/same-room-same-day-pocket/id6742232597?uo=4

       

      🤩 Hack Features

      - Full Game Unlocked
      - Never Die
      - Unlimited Ammo
      • 17 replies
    • Military Games - Border Wars v14.0 [+3 Cheats]
      Modded/Hacked App: Military Games - Border Wars By Faraz Khan
      Bundle ID: com.zalmayapps.borderwars
      App Store Link: https://apps.apple.com/us/app/military-games-border-wars/id1609310806?uo=4



      🤩 Hack Features

      - Unlimited Gold
      - Auto Win (Enable inside battle)
      - Unlimited Money (Enable inside battle)

       
      • 3 replies
    • Military Games - Border Wars v14.0 [+3 Jailed Cheats]
      Modded/Hacked App: Military Games - Border Wars By Faraz Khan
      Bundle ID: com.zalmayapps.borderwars
      App Store Link: https://apps.apple.com/us/app/military-games-border-wars/id1609310806?uo=4



      🤩 Hack Features

      - Unlimited Gold
      - Auto Win (Enable inside battle)
      - Unlimited Money (Enable inside battle)
      • 3 replies
    • Knights of Pen and Paper 3 v1.6.2 [+5 Cheats]
      Modded/Hacked App: Knights of Pen and Paper 3 By Northica Oy
      Bundle ID: com.northicagames.kopp3
      App Store Link: https://apps.apple.com/us/app/knights-of-pen-and-paper-3/id6462194230?uo=4



      🤩 Hack Features

      - High Gold Gain (Enable and Win Fight)
      - Always Can Claim Achievements
      - Auto Win (Enable inside battle)
      - Level Up Characters (Enable and your heroes levels up)
      - Max Level Equipments (Enable and all equipments will be max level)

      • 8 replies
    • Knights of Pen and Paper 3 v1.6.2 [+5 Jailed Cheats]
      Modded/Hacked App: Knights of Pen and Paper 3 By Northica Oy
      Bundle ID: com.northicagames.kopp3
      App Store Link: https://apps.apple.com/us/app/knights-of-pen-and-paper-3/id6462194230?uo=4



      🤩 Hack Features

      - High Gold Gain (Enable and Win Fight)
      - Always Can Claim Achievements
      - Auto Win (Enable inside battle)
      - Level Up Characters (Enable and your heroes levels up)
      - Max Level Equipments (Enable and all equipments will be max level)

      • 13 replies
    • Seaside Escape®: Merge & Story v1.86.0 [+2 Jailed Cheats]
      Modded/Hacked App: Seaside Escape®: Merge & Story By Microfun Limited
      Bundle ID: com.mf.cupcake
      App Store Link: https://apps.apple.com/us/app/seaside-escape-merge-story/id6443755785?uo=4

       

      🤩 Hack Features

      - Unlimited Energy
      - Freeze Currency
      • 24 replies
    • Seaside Escape®: Merge & Story v1.86.0 [+2 Cheats]
      Modded/Hacked App: Seaside Escape®: Merge & Story By Microfun Limited
      Bundle ID: com.mf.cupcake
      App Store Link: https://apps.apple.com/us/app/seaside-escape-merge-story/id6443755785?uo=4



      🤩 Hack Features

      - Unlimited Energy
      - Freeze Currency
       
      • 18 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