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

    • Shadow Hunter: Premium v11.128.2 +9 Cheats
      Modded/Hacked App: Shadow Hunter: Premium By ENIGMA SOFTWARE JOINT STOCK COMPANY
      Bundle ID: com.enigma.shadowhunter.paid
      iTunes Store Link: https://apps.apple.com/us/app/shadow-hunter-premium/id1588843797?uo=4


      Mod Requirements:
      - Jailbroken iPhone/iPad/iPod Touch.
      - Filza / iMazing or any other file managers for iOS.
      - Cydia Substrate, Substitute or libhooker depending on your jailbreak.
      - PreferenceLoader (from Cydia or Sileo).


      Hack Features:
      - Free Equipment Level Up*
      - Free Merchant Shop*
      - Free Mystic Store*
      - Free Fragment Shop*
      - Free Video Shop*
      - No Awaken Dust Cost
      - No Ascend Requirements
      - No Evolve Requirements
      - 1 Item = 100 Items

      Notes:
      * under one switch. Do not purchase stuff that cost diamond, or your game becomes invalid. So, save from time to time to revert back if anything happens.
      • 670 replies
    • Shadow Hunter: Offline Games v10.128.2 +9 Cheats
      Modded/Hacked App: Shadow Hunter: Lost Worlds By ENIGMA SOFTWARE JOINT STOCK COMPANY
      Bundle ID: com.enigma.shadowhunter.free
      iTunes Store Link: https://apps.apple.com/us/app/shadow-hunter-lost-worlds/id1559150590?uo=4


      Mod Requirements:
      - Jailbroken iPhone/iPad/iPod Touch.
      - Filza / iMazing or any other file managers for iOS.
      - Cydia Substrate, Substitute or libhooker depending on your jailbreak.
      - PreferenceLoader (from Cydia or Sileo).


      Hack Features:
      - Free Equipment Level Up*
      - Free Merchant Shop*
      - Free Mystic Store*
      - Free Fragment Shop*
      - Free Video Shop*
      - No Awaken Dust Cost
      - No Ascend Requirements
      - No Evolve Requirements
      - 1 Item = 100 Items

      Notes:
      * under one switch. Do not purchase stuff that cost diamond, or your game becomes invalid. So, save from time to time to revert back if anything happens.
      • 820 replies
    • Fishing Hook2 v1.0.2 [ +3 Cheats ] Currency Max
      Modded/Hacked App: Fishing Hook2 By MOBIRIX
      Bundle ID: com.mobirix.fishinghook2
      App Store Link: https://apps.apple.com/ph/app/fishing-hook2/id6751476015?uo=4


      🤩 Hack Features

      - Unlimited Gold / Sell Fish
      - Unlimited EXP / Sell Fish / Tested Not
      - Easy Catch
      • 6 replies
    • Fishing Hook2 v1.0.2 [ +3 Jailed ] Currency Max
      Modded/Hacked App: Fishing Hook2 By MOBIRIX
      Bundle ID: com.mobirix.fishinghook2
      App Store Link: https://apps.apple.com/ph/app/fishing-hook2/id6751476015?uo=4
       

      🤩 Hack Features

      - Unlimited Gold / Sell Fish
      - Unlimited EXP / Sell Fish / Tested Not
      - Easy Catch
      • 5 replies
    • dropcult v1.3.4 +3 Jailed Cheats [ Damage & Defence ]
      Modded/Hacked App: dropcult By SMOKESPOT GAMES, LLC
      Bundle ID: com.SmokeSpotGames.SkreetFigherzGame
      App Store Link: https://apps.apple.com/us/app/dropcult/id1550684098?uo=4

       
       

      🤩 Hack Features

      - Damage Multiplier
      - Defence Multiplier
      - God Mode
      • 35 replies
    • dropcult v1.3.4 +3 Cheats [ Damage & Defence ]
      Modded/Hacked App: dropcult By SMOKESPOT GAMES, LLC
      Bundle ID: com.SmokeSpotGames.SkreetFigherzGame
      App Store Link: https://apps.apple.com/us/app/dropcult/id1550684098?uo=4

       


      🤩 Hack Features

      - Damage Multiplier
      - Defence Multiplier
      - God Mode
      • 21 replies
    • Night Slashers: Remake v1.0.6 +4 Jailed Cheats [ God Mode + More ]
      Modded/Hacked App: Night Slashers: Remake By Forever Entertainment S.A.
      Bundle ID: com.forever-entertainment.NightSlashersRemake
      App Store Link: https://apps.apple.com/us/app/night-slashers-remake/id6739348927?uo=4

       


      🤩 Hack Features

      - God Mode
      - One-Hit Kill
      - Point Multiplier
      - Free In-App Purchases
      • 0 replies
    • Night Slashers: Remake v1.0.6 +4 Cheats [ God Mode + More ]
      Modded/Hacked App: Night Slashers: Remake By Forever Entertainment S.A.
      Bundle ID: com.forever-entertainment.NightSlashersRemake
      App Store Link: https://apps.apple.com/us/app/night-slashers-remake/id6739348927?uo=4

       
       

      🤩 Hack Features

      - God Mode
      - One-Hit Kill
      - Point Multiplier
      - Free In-App Purchases
      • 1 reply
    • Dead Impact: Survival MMORPG v1.09 +11 Jailed Cheats [ Unlimited Everything ]
      Modded/Hacked App: Dead Impact: Survival MMORPG By SYNTHEZ GAMES LIMITED
      Bundle ID: games.synthez.zombie.survival.multiplayer
      App Store Link: https://apps.apple.com/us/app/dead-impact-survival-mmorpg/id6444281832?uo=4

       
       

      🤩 Hack Features

      - Freeze Currencies
      - Freeze Items
      - 1 Stat Point Requirement
      - Level Threshold Modifier -> Amount of XP required to advance to the next level.
      - No Craft Item Requirement
      - Unlimited Durability
      - No Consumable Cooldown

      VIP
      - Unlimited Currencies -> Will increase instead of decrease.
      - Unlimited Items -> Will increase instead of decrease.
      - Unlock All
      - Unlock All Classes
      • 180 replies
    • Dead Impact: Survival MMORPG v1.09 +11 Cheats [ Unlimited Everything ]
      Modded/Hacked App: Dead Impact: Survival MMORPG By SYNTHEZ GAMES LIMITED
      Bundle ID: games.synthez.zombie.survival.multiplayer
      App Store Link: https://apps.apple.com/us/app/dead-impact-survival-mmorpg/id6444281832?uo=4

       


      🤩 Hack Features

      - Freeze Currencies
      - Freeze Items
      - 1 Stat Point Requirement
      - Level Threshold Modifier -> Amount of XP required to advance to the next level.
      - No Craft Item Requirement
      - Unlimited Durability
      - No Consumable Cooldown

      VIP
      - Unlimited Currencies -> Will increase instead of decrease.
      - Unlimited Items -> Will increase instead of decrease.
      - Unlock All
      - Unlock All Classes
      • 72 replies
    • Space Outpost: Drone War v0.4.8 [+2 Jailed Cheats]
      Modded/Hacked App: Space Outpost: Drone War By CYBERJOY LIMITED
      Bundle ID: com.cyberjoy.spaceoutpost
      App Store Link: https://apps.apple.com/us/app/space-outpost-drone-war/id6747959347?uo=4



      🤩 Hack Features

      - High Damage
      - Activate SVip
      • 0 replies
    • Space Outpost: Drone War v0.4.8 [+2 Cheats]
      Modded/Hacked App: Space Outpost: Drone War By CYBERJOY LIMITED
      Bundle ID: com.cyberjoy.spaceoutpost
      App Store Link: https://apps.apple.com/us/app/space-outpost-drone-war/id6747959347?uo=4



      🤩 Hack Features

      - High Damage
      - Activate SVip
       
      • 9 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