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

    • Matching Story v1.58.01 [ +6 Cheats ] Auto Win
      Modded/Hacked App: Matching Story By VERTEX GAMES PTE. LTD.
      Bundle ID: matching.story
      iTunes Store Link: https://apps.apple.com/ph/app/matching-story/id1558803930?uo=4


      🤩 Hack Features

      - Auto Win

      - Coins

      - Diamonds [ Win Match Linked With Moves ]

      - Lives

      - Booster

      - Moves
        • Thanks
      • 92 replies
    • Matching Story v1.58.01 [ +6 Jailed ] Auto Win
      Modded/Hacked App: Matching Story By VERTEX GAMES PTE. LTD.
      Bundle ID: matching.story
      iTunes Store Link: https://apps.apple.com/ph/app/matching-story/id1558803930?uo=4

       
      🤩 Hack Features

      - Auto Win

      - Coins

      - Diamonds [ Win Match Linked With Moves ]

      - Lives

      - Booster

      - Moves
      • 89 replies
    • Element War : Merge Games v0.2 [ +1 Jailed ] Currency Max
      Modded/Hacked App: Element War : Merge Games By Gamify Studio FZ-LLC
      Bundle ID: com.gamifystudio.elementalbattle
      App Store Link: https://apps.apple.com/nz/app/element-war-merge-games/id6753741421?uo=4

      🤩 Hack Features

      - Unlimited Coins
      • 0 replies
    • Element War : Merge Games v0.2 [ +1 Cheats ] Currency Max
      Modded/Hacked App: Element War : Merge Games By Gamify Studio FZ-LLC
      Bundle ID: com.gamifystudio.elementalbattle
      App Store Link: https://apps.apple.com/nz/app/element-war-merge-games/id6753741421?uo=4

      🤩 Hack Features

      - Unlimited Coins
      • 1 reply
    • Last Legion: Tower Defense TD v1.1.2 [ +13 APK MOD ] Currency Max
      Mod APK Game Name: Last Legion: Tower Defense TD
      Rooted Device: Not Required.
      Google Play Store Link: https://play.google.com/store/apps/details?id=last.legion.tower.defense.survival.war.fortress.idle.td&hl=en
      🤩 Hack Features

      - Unlimited Gems
      - Unlimited Coins
      - Unlimited Energy
      - Unlimited Dice
      - Unlimited Blueprint
      - Unlimited Silver Core
      - Unlimited Gold Core
      - Unlimited Silver Module
      - Unlimited Card / For Weapon UP
      - Unlimited EXP / Battle Rewards
      - Unlimited Battle Rewards / Coins Blueprint EXP
      - Equip Status / ATK
      - Weapon Status / ATK / Area DMG Linked Weapon
      • 0 replies
    • SimCity BuildIt Cheats v1.74.1 +1 [ Freeze Currencies ]
      Modded/Hacked App: SimCity BuildIt By EA Swiss Sarl
      Bundle ID: com.ea.simcitymobile.bv
      iTunes Store Link: https://apps.apple.com/us/app/simcity-buildit/id913292932?uo=4


      Hack Features:
      - Infinite Currencies


      Non-Jailbroken & No Jailbreak required hack(s): https://iosgods.com/topic/124792-arm64-simcity-buildit-v1412-jailed-cheats-1/


      iOS Hack Download Link: https://iosgods.com/topic/157687-simcity-buildit-cheats-v1415-1/
        • Informative
        • Agree
        • Thanks
        • Winner
        • Like
      • 727 replies
    • Last Legion: Tower Defense TD v1.1.3 [ +13 Cheats ] Currency Max
      Modded/Hacked App: Last Legion: Tower Defense TD By Antares Games s.r.o.
      Bundle ID: last.legion.tower.defense.survival.war.fortress.idle.td
      App Store Link: https://apps.apple.com/us/app/last-legion-tower-defense-td/id6753672104?uo=4

      🤩 Hack Features

      - Unlimited Gems
      - Unlimited Coins
      - Unlimited Energy
      - Unlimited Dice
      - Unlimited Blueprint
      - Unlimited Silver Core
      - Unlimited Gold Core
      - Unlimited Silver Module
      - Unlimited Card / For Weapon UP
      - Unlimited EXP / Battle Rewards
      - Unlimited Battle Rewards / Coins Blueprint EXP
      - Equip Status / ATK
      - Weapon Status / ATK / Area DMG Linked Weapon
      • 9 replies
    • Last Legion: Tower Defense TD v1.1.3 [ +13 Jailed ] Currency Max
      Modded/Hacked App: Last Legion: Tower Defense TD By Antares Games s.r.o.
      Bundle ID: last.legion.tower.defense.survival.war.fortress.idle.td
      App Store Link: https://apps.apple.com/us/app/last-legion-tower-defense-td/id6753672104?uo=4

      🤩 Hack Features

      - Unlimited Gems
      - Unlimited Coins
      - Unlimited Energy
      - Unlimited Dice
      - Unlimited Blueprint
      - Unlimited Silver Core
      - Unlimited Gold Core
      - Unlimited Silver Module
      - Unlimited Card / For Weapon UP
      - Unlimited EXP / Battle Rewards
      - Unlimited Battle Rewards / Coins Blueprint EXP
      - Equip Status / ATK
      - Weapon Status / ATK / Area DMG Linked Weapon
      • 11 replies
    • Miner Fighters ! v3.1.1 [ +10 Cheats ] Currency Max
      Modded/Hacked App: Miner Fighters ! By UNICO STUDIO LLC
      Bundle ID: com.unicostudio.minerfighters
      App Store Link: https://apps.apple.com/us/app/miner-fighters/id6752961543?uo=4

      🤩 Hack Features

      - Auto ADS OFF
      - Unlimited Red Gems
      - Unlimited Green Gems
      - Hero Cost Up / Earn Green Gems
      - Gold / No Need IN Battle For Trop
      - Trop Unlocked / IN Battle Only 
      - Trower HP
      - HP
      - ATK
      - DEF
      - Luck
      - Miner Gold
      • 8 replies
    • Miner Fighters ! v3.1.1 [ +10 Jailed ] Currency Max
      Modded/Hacked App: Miner Fighters ! By UNICO STUDIO LLC
      Bundle ID: com.unicostudio.minerfighters
      App Store Link: https://apps.apple.com/us/app/miner-fighters/id6752961543?uo=4

      🤩 Hack Features

      - Auto ADS OFF
      - Unlimited Red Gems
      - Unlimited Green Gems
      - Hero Cost Up / Earn Green Gems
      - Gold / No Need IN Battle For Trop
      - Trop Unlocked / IN Battle Only 
      - Trower HP
      - HP
      - ATK
      - DEF
      - Luck
      - Miner Gold
      • 10 replies
    • Tower Defense Rumble v7424 [ +10 Cheats ] Easy Win
      Modded/Hacked App: Tower Defense Rumble By DU-EON YOO
      Bundle ID: com.i.dfr
      App Store Link: https://apps.apple.com/ph/app/tower-defense-rumble/id6738600584?uo=4

      🤩 Hack Features

      - Always Last Wave / Easy Win
      Tower Status
      - ATK Max
      - HP Max
      - Range Max
      - ATK CD
      Base Tower Status
      - ATK Max
      - HP Max
      - Range Max
      - ATK CD
      - ATK Speed
      • 5 replies
    • Dice Lords v1.4 [ +5 Cheats ] Currency Max
      Modded/Hacked App: Dice Lords By Voodoo
      Bundle ID: com.oxvgames.dicelords
      App Store Link: https://apps.apple.com/us/app/dice-lords/id6743435206?uo=4

      🤩 Hack Features

      - ADS NO / Rewards Free
      - Unlimited Gems Green
      - Unlimited Gems Red
      - Unlimited Coins
      - DMG / Roll Dice
      • 17 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