Jump to content

[ARM64] IDA + LLDB Tutorial [Noob Friendly]


140 posts in this topic

Recommended Posts

Updated (edited)

Hello Everyone! :D

 

In this topic, I'll be teaching you how to hack with lldb watchpoints & IDA step by step.

Quick note: Watchpoints doesn't seem to work on iOS 11 :( so you need a phone below that iOS.

 

Requirements:

- IDA Program -> get it HERE
- Jailbroken Phone

- iGameGod - iMemEditor or whatever alternatives.
- LLDB -> Follow THIS  topic
- * Theos _> Follow this: Setup Tutorial

* = You can also edit the game's binary manually with a Hex Editor, but this is a pain in the ass to keep replacing each time.

 

Setup a theos project

If you already know how to setup a theos project & how to use it correctly, skip this part.

For the sake of this tutorial, use this sdk
and use this .nic template

This video will show you how to setup a theos project:

- https://youtu.be/eplJ2118cv0

NOTE: I am using Putty because I'm on windows. If you're on a Mac, you can just use terminal. Type this command to SSH into your device: ssh [email protected] & then type the default password "alpine"

 

LLDB

The game we are going to hack is called "Bloody Harry", you can get it HERE:

We will be hacking our ammo.

I hope you installed lldb as I said with the linked topic from my Requirements list, if not, do it now.

You can basically just type "lldb" in your SSH window & it will look like this:

Spoiler

ZNsPGwi.png

Now you have lldb started, you have to attach to the game by this command:

attach "PID" / attach "Binary Name"

I always use PID, cause I'm too lazy to search for the binary name.
You can find the PID by attaching the game to GamePlayer & then the number next to the Game's name is the PID.

It will now connect & it should look something like this:

Spoiler

V7Cza3Q.png

 

ASLR

We need to do ONE more VERY IMPORTANT thing before we start setting watchpoints. Since we are hacking arm64, we have to deal with a ASLR slide.

You can find this ASLR slide by typing this command in your SSH window:

image list

or 

image list "binary name"

However, it somehow doesn't support binaries with a space in them. So type the first one & scroll up to where [ 0] starts:

Spoiler

r1ss5ha.png

As you may see, in my case [ 1] is the line I need. Cause that points to Bloody Harry:

[  1] A0825C08-EAE4-3748-ADB5-042D675A380A 0x000000010007c000 /var/containers/Bundle/Application/4D84AA61-4639-402A-96F0-11CAC3A3F8C8/Bloody Harry.app/Bloody Harry

0x000000010007c000 is what I need. However, I only need to remember 7c000

Your slide is likely diffrent. For example if you had this:
0x0000000100080000

80000 is the only thing you need to remember.

 

Watchpoints

We are ready to set watchpoints now!

In order to set a watchpoint, we need to find the memory address with, in my case GamePlayer.

I assume everyone knows how to work with a memory searcher such as GamePlayer, if not:

 - Search for your current ammo value in Gameplayer
- Shoot one time
- Search for the new value
- Shoot againt
- Search for the new value
- Do this till you get 1 / 2 matches.

IT's VERY IMPORTANT YOU DO NOT CLOSE THE APP FROM NOW, BECAUSE Gameplayer ADDRESSES ALWAYS CHANGE AFRER REOPENING APP. 

 

How to set a watchpoint:

w s e -- 0xGamePlayerAddress

Example: w s e -- 0x109098E10

So get your GamePlayerAddress & then set a watchpoint.

I keep getting 2 matches in Game Player, so I will set 2 watchpoints:

Spoiler

LNx2kpD.png

NOTE: Sometimes the "new value" isn't correct, just in my case. Please remember the ammo in the next step.

So our watchpoint has been set, in order to get the IDA address, we'll have to make a change in our ammo.

This is the step where you HAVE to remember your ammo value it's going to change to.

My current ammo is: 65 & I'm going to shoot one bullet, which will leave me with 64 bullets.

Watchpoint 1 Hit:

Spoiler

QQIMBWb.png

frame #0 = our IDA offset according to lldb (ignore the 000... before the first "1".

Type "register read" in lldb & paste the output in a note somewhere, we are going to need this later.

I like to organize it like this:

Spoiler

Ya3NRrn.png

 

Now let's see if our watchpoint 2 will also hit, type "c" or "continue" in lldb & see what happens:

Spoiler

KscZtA1.png

It's not saying anything about watchpoint 2, but it does stop so it might be usefull.

Do the same steps you did for watchpoint one: make a note, paste the "read register" output & organize it like mine if you like.

 

We know our IDA Offset according to lldb, however we need to remove the aslr slide from it.

Go to this website: https://www.calculator.net/hex-calculator.html

In the first box, type your offset lldb gave you & in the second box put your ASLR & you subtract it!

Let's do this for watchpoint one first, the one with the red circle around it is the REAL offset in IDA:

Write it in your note, something like: Real Offset: "your offset"

Spoiler

naKR7Qe.png

Now you do the same for the second watchpoint.

 

Register Read Output

The register output will show you which register holds what value when the watchpoint was hit (when the game froze)

This is really usefull for us. We can read which register holds our ammo & then hack that in IDA later.

However, the values are in hexDecimal & we only know our decimal value of our ammo.

Mine is 62, so go to some "Decimal To Hex" converter online such as this one:

https://www.binaryhexconverter.com/decimal-to-hex-converter

Convert your number & search it in your "register read" output.

Mine is: 3E & I found a match:

x8 = 0x000000000000003e

NOTE: the X could be a W in IDA.

Do the same for your second watchpoint

 

IDA

Alright, first let's go to the offset of watchpoint 1 first in IDA

You can do this by pressing the "G" button in IDA View:

Spoiler

uvVcYP2.png

The yellow colored line is where it brings us:

Spoiler

fvVKslY.png

 

So you might think, this must be the line we have to change.

But this is wrong, you know which register holds our ammo (X8 ) so you will be looking for that.

This is our matches with X8:

W8 = Our ammo, X & W is basically the same

10092DED8                 LDR             W8, [X19,#0x40] //Load X19+0x40 into W8
10092DEE4                 ADD             W8, W8, W20	  //Add W20 to W8 into W8	
10092DEE8                 STR             W8, [X19,#0x40] //STR W8 into X19+0x40
10092DEF0                 LDR             X8, [X1,#0x10] //Load X1+0x10 into X8
10092DEF4                 LDR             X8, [X8,#0x50] //Load X8+0x50 into X8
10092DEF8                 BLR             X8			//Not important to really know, but it's some sort of branch
10092DF00                 LDR             X8, [X19,#0x10] //Load X19+0x10 into X8
10092DF0C                 LDR             X2, [X8,#0x188] //Load X8+0x188 into X2
10092DF10                 LDR             X8, [X2,#0x10] //Load X2+0x10 into X8
10092DF14                 LDR             X8, [X8,#0x50] //Load X8+0x50 into X8
10092DF18                 BLR             X8			//Not important to really know, but it's some sort of branch

Thing such as: X19+0x40 = 
X19 = a memory address, 0x40 is a variable that holds something. 
Together it will point to a address where the memory is at

 

That's allot of matches, however the matches with #0x40 in them seems interesting to me.

First: whatever X19+0x40 holds is getting loaded into W8 (our ammo register)

Then: W8 is getting stored into X19+0x40, it looks like it's updating it.

But we can't be sure until we try something.

 

So how I would try to hack this is this:

LDR             W8, [X19,#0x40]
- Change to: MOV W8, #0xfffff --> this will move the hex value 0xfffff into W8
- Change to: LDR W8, [X23] ---> X23 is a register that has it's own high value. In this way this get's loaded into our ammo.

STR             W8, [X19,#0x40]
- Change W8 to W23 --> This will store a high value into X19+0x40 (which what we think is where our ammo memory is at)
- Change it to a NOP, this will skip the instruction & in this way the ammo can't be stored.

 

I'm going with the last option.

 

Compiling a hack with theos

Open your tweak.xm from your theos project & find this:

    if(GetPrefBool(@"key1")) {
      vm_writeData(0x123456, 0x123456); //The first value should be the offset & the second value the hackedHex
    }

If I wanted to change it to NOP I would change it to this:

    if(GetPrefBool(@"key1")) {
      vm_writeData(0x10092DEE8, 0x1F2003D5); // 
    }

 

How do I know it would be "0x1F2003D5"?

Well iOSGods has this awesome website: http://armconverter.com/

I typed "NOP" & in the  " ARM64 HEX" box I got the Hex of it.

You can convert any valid arm instruction here, so if you wanted to hack the LDR, you could have written this in the box:

LDR W8, [X23] & it would give you this value: 0xE80240B9

 

Save your tweak.xm & go back to your SSH window.

Type in: cd /your/directory/of/your/project, for me that would be: cd /var/root/bloodyharry

Hit enter & now type: "mpi" & if that gives you a error, type "make package install"

This will compile it into a .deb & automaticly install it for you.

 

Open your settings & enable the first toggle.

NOTE: @"key1" is used to recognize the toggle key of your Root.plist inside /"yourproject"/"projectName"Settings/Resources/Root.plist

See this topic for more info about patchers: https://iosgods.com/topic/444-tutorial-how-to-make-a-preference-bundle/

NOTE: You can skip step 1 & 2 in that topic, you already did that by creating a project.

 

Open the game & voila since I NOP'ed the STR, my ammo won't substract!

Ammo succesfully hacked :D:

 

 

So after all we didn't need the second watchpoint.

But if the first watchpoint's location just didn't work out, you could move to watchpoint 2

When you're hacking ammo in ALLOT of cases you'll see something like this:

SUB W8, W8, #1 //SUBstract 1 from w8 into w8

If you see this from a watchpoint, you're basically sure that it's the right thing to hack.

You could NOP it or change the #1 with a #0 (use armconverter)

 

Try to hack the gold yourself :)

If you're confused about some parts, leave a comment.

 

Other useful topic for this tutorial:

- https://iosgods.com/topic/852-tutorial-how-to-hack-using-ida/

 

NOTE: This tutorial is old & the registers are armv7 registers. But this may help you understand how instruction works (instructions = STR, LDR, MOV, CMP etc etc)

- https://iosgods.com/topic/19378-how-to-defeatremove-aslr-on-ios-9-armv7-and-arm64-devices/

 

Good luck on your journey!

Updated by Rook
Weird yellow font fix
  • Like 47
  • Winner 7
  • Thanks 6
  • Informative 3

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

    • Candy Crush Jelly Saga Cheats v4.4.0.0 +2
      Modded/Hacked App: Candy Crush Jelly Saga By King.com Limited
      Bundle ID: com.midasplayer.apps.candycrushjellysaga1
      App Store Link: https://apps.apple.com/us/app/candy-crush-jelly-saga/id1047246341?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

      - Freeze Booster
      - Freeze Hammer

      *Both included in 1 switch

       

      Non-Jailbroken Hack: https://iosgods.com/topic/78896-candy-crush-jelly-saga-v4400-jailed-cheats-1/

       

      ⬇️ iOS Hack Download Link: https://iosgods.com/topic/72402-candy-crush-jelly-saga-cheats-v4400-2/
      • 207 replies
    • Unknown Knights: Pixel RPG Cheats v1.1.38 +7
      Modded/Hacked App: Unknown Knights: Pixel RPG By cookapps
      Bundle ID: com.cookapps.bm.unknownknight
      App Store Link: https://apps.apple.com/us/app/unknown-knights-pixel-rpg/id6443811741?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

      - Multiply Attack
      - Multiply Defense
      - Instant Skills
      - Fast Combat Speed
      - Fast Train + Fast Build
      - Unlimited Ads Watch
      - Freeze Currencies* (Read NOTE Below)

      NOTE: May not work in some circumstances, and will not work for all kind. I have tested with normal weapon summon + normal character summon, you can use gems to buy ticket to summon and it will freeze. Also tested with wall building reward so you can claim unlimited. Directly purchase with gems will not work in some store, always buy with small gems first to see if the cheat is supported

       

      DO NOT BUY VIP FOR JUST THIS CHEAT

       

      Non-Jailbroken Hack: https://iosgods.com/topic/186637-unknown-knights-pixel-rpg-v1137-jailed-cheats-7/

       

      ⬇️ iOS Hack Download Link: https://iosgods.com/topic/178281-unknown-knights-pixel-rpg-cheats-v1137-7/
      • 323 replies
    • Music Wars Rockstar: Rap Life v1.4.0 Cheats +4
      Modded/Hacked App: Music Wars Rockstar: Rap Life By Music Wars LLC
      Bundle ID: com.mwcompany.MusicWarsRockstar
      iTunes Store Link: https://apps.apple.com/us/app/music-wars-rockstar-rap-life/id1623455289?uo=4

      Mod Requirements:
      - Non-Jailbroken/Jailed or Jailbroken iPhone/iPad/iPod Touch.
      - Sideloadly / Cydia Impactor or alternatives.
      - A Computer Running Windows/macOS/Linux with iTunes installed.


      Hack Features:
      - Unlimited money
      - Unlimited creativity
      - Unlimited health
      - Unlimited happiness
      • 355 replies
    • We Are Warriors! Cheats v1.57.0 +3
      Modded/Hacked App: We Are Warriors! By Lessmore UG haftungsbeschraenkt
      Bundle ID: com.vjsjlqvlmp.wearewarriors
      iTunes Store Link: https://apps.apple.com/us/app/we-are-warriors/id6466648550?uo=4


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


      Hack Features:
      - Unlimited everything
      - Auto complete task
      • 94 replies
    • MARVEL Strike Force: Squad RPG v9.4.0 +1 Cheats
      Modded/Hacked App: MARVEL Strike Force: Squad RPG By Scopely, Inc.
      Bundle ID: com.foxnextgames.m3
      iTunes Store Link: https://apps.apple.com/us/app/marvel-strike-force-squad-rpg/id1292952049?uo=4


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


      Hack Features:
      - 1 Hit Kill [ Enable before stage ]
      - No Skill Cooldown
      - Auto Win¹
      - Only One Wave¹
      - Always Your Turn¹


      Notes:
      ¹ = Enable after game starts


      iOS Hack Download Link:

      Hidden Content
      Download Hack







      Installation Instructions:
      STEP 1: Download the .deb Cydia hack file from the link above. Use Safari/Google Chrome or other iOS browsers to download.
      STEP 2: Once the file is downloaded, tap on it and then you will be prompted on whether you want to open the deb with iGameGod or copy to Filza.
      STEP 3: If necessary, tap on the downloaded file and then, you will need to press on 'Install' from the options on your screen.
      STEP 4: Let iGameGod/Filza finish the cheat installation. Make sure it successfully installs, otherwise see the note below.
      STEP 5: If the hack is a Mod Menu — which is usually the case nowadays — the cheat features can be toggled in-game. Some cheats have options that can be enabled from your iDevice settings.
      STEP 6: Turn on the features you want and play the game. You may need to follow further instructions inside the hack's popup in-game.

       

      NOTE: If you have any questions or problems, read our Troubleshooting topic & Frequently Asked Questions & Answers topic. If you still haven't found a solution, post your issue down 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:
      - Zahir


      Cheat Video/Screenshots:

      N/A
      • 462 replies
    • Modded/Hacked App: Transformers: Earth Wars By Space Ape Ltd
      Bundle ID: com.backflipstudios.transformersearthwars
      iTunes Store Link: https://apps.apple.com/us/app/transformers-earth-wars/id1058526204?uo=4


      Hack Features:
      - Infinite Mana

      I update hacks based on how popular their topic on iOSGods is.
      Jailbreak required hack(s): https://iosgods.com/topic/51838-iosgods-exclusive-transformers-earth-wars-v167-4-cheats/
      Modded Android APK(s): https://iosgods.com/forum/68-android-section/
      For more fun, check out the Club(s): https://iosgods.com/clubs/
        • Winner
      • 241 replies
    • Hempire - Weed Growing Game v2.42.7 Jailed Cheats +5
      Modded/Hacked App: Hempire - Weed Growing Game By LBC Studios Inc.
      Bundle ID: ca.lbcstudios.hempire
      iTunes Store Link: https://itunes.apple.com/us/app/hempire-weed-growing-game/id1139379843


      Hack Features:
      - Cash (increase not decrease)
      - Diamonds (increase not decrease )
      - Fertilizer (increase not decrease)
      - VIP 
      -Items (increase not decrease )
      • 334 replies
    • Mighty Party: Heroes Clash v47.0.8 +4 Jailed Cheats [Unlimited Currencies]
      Modded/Hacked App: Mighty Party: Heroes Clash By Satege s.r.o.
      Bundle ID: com.panoramik.forgeofgodsblitz
      iTunes Store Link: https://itunes.apple.com/us/app/mighty-party-heroes-clash/id1163805393


      Mod Requirements:
      - Jailbroken or Non-Jailbroken iPhone/iPad/iPod Touch.
      - Cydia Impactor.
      - A Computer Running Windows/Mac/Linux.


      Hack Features:
      - Unlimited Currencies - Will not decrease.
      - Free Summoning
      - Complete All Quests
      • 823 replies
    • Mighty Party: Battle Heroes v47.0.8 +4 Cheats [Unlimited Currencies]
      Modded/Hacked App: Mighty Party: Heroes Clash By Satege s.r.o.
      Bundle ID: com.panoramik.forgeofgodsblitz
      iTunes Store Link: https://itunes.apple.com/us/app/mighty-party-heroes-clash/id1163805393


      Mod Requirements:
      - Jailbroken iPhone/iPad/iPod Touch.
      - iFile / Filza / iFunBox / iTools or any other file managers for iOS.
      - Cydia Substrate (from Cydia).
      - PreferenceLoader (from Cydia).


      Hack Features:
      - Unlimited Currencies - Will not decrease. Reason why I only added this was because there's always a ban wave on this game. I can hack currencies, yes but instant ban.
      - Free Summoning
      - Kill All / Auto Win - Linked. Wait till it's the enemies turn and before they spawn in a troop, enable this feature.
      - Complete All Quests
        • Like
      • 1,846 replies
    • [iOSGods Exclusive] Transformers: Earth Wars v27.1 +4 Cheats!
      Modded/Hacked App: Transformers: Earth Wars By Backflip Studios
      Bundle ID: com.backflipstudios.transformersearthwars
      iTunes Link: https://itunes.apple.com/us/app/transformers-earth-wars/id1058526204


      Hack Features:
      - Infinite Mana / Can always use Skill (This allows you to always use your transformers skill, even if you don't have enough mana)
      - Auto Win! Press Retreat Button ingame to instantly destroy the enemies base. Works in offline and pvp/online!
      - Can deploy units anywhere on the battlefield!
      - No Cooldown for Bots
      • 1,199 replies
    • MADFUT 26 v1.0 +12 Jailed Cheats [ Unlimited Coins & More ]
      Modded/Hacked App: MADFUT 26 By Trivela Games Technologies L.L.C S.O.C
      Bundle ID: com.trivela.madfut
      App Store Link: https://apps.apple.com/us/app/madfut-26/id6752884808?uo=4

       


      🤩 Hack Features

      - Unlimited Coins -> Earn or spend some.
      - Unlimited LTM Points -> Earn or spend some.
      - Freeze Higher/Lower Timer
      - Higher/Lower x10 Winstreak -> For every 1 win, you'll earn 10 wins.
      - Higher/Lower x100 Winstreak -> For every 1 win, you'll earn 10 wins.
      -- No Level for Trading Requirement -> Can trade with others randomly, but unable with friends. Thanks to @0xS14T3R for the bypass! 

      VIP
      - Unlimited Packs -> Buy/use one.
      - Unlimited Tokens -> Use one.
      - Unlimited Draft Puzzle Market Items -> Buy an item.
      - Unlimited Free Pack Reward Points
      - Unlimited Dupes -> Quick sell any card then re-launch the game.
      • 11 replies
    • MADFUT 26 v1.0 +12 Cheats [ Unlimited Coins & More ]
      Modded/Hacked App: MADFUT 26 By Trivela Games Technologies L.L.C S.O.C
      Bundle ID: com.trivela.madfut
      App Store Link: https://apps.apple.com/us/app/madfut-26/id6752884808?uo=4

       
       

      🤩 Hack Features

      - Unlimited Coins -> Earn or spend some.
      - Unlimited LTM Points -> Earn or spend some.
      - Freeze Higher/Lower Timer
      - Higher/Lower x10 Winstreak -> For every 1 win, you'll earn 10 wins.
      - Higher/Lower x100 Winstreak -> For every 1 win, you'll earn 10 wins.
      -- No Level for Trading Requirement -> Can trade with others randomly, but unable with friends. Thanks to @0xS14T3R for the bypass!

      VIP
      - Unlimited Packs -> Buy/use one.
      - Unlimited Tokens -> Use one.
      - Unlimited Draft Puzzle Market Items -> Buy an item.
      - Unlimited Free Pack Reward Points
      - Unlimited Dupes -> Quick sell any card then re-launch the game.
      • 3 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