Jump to content

Ted2

Senior Member
  • Posts

    4,939
  • Joined

  • Last visited

Everything posted by Ted2

  1. Don't get your question. I don't understand you either
  2. Hey there A new tutorial for you guys. Today I'll show you how to hack unity games. The file you will hack of a unity game is here: apk-assets-bin-Data-Managed-Assembly-CSharp.dll What do we need? - Java SE v8 - .Net Reflector --> http://bit.ly/28YD3WW (Cracked version) - Reflexil to edit the functions easier --> http://reflexil.net/ OR http://bit.ly/28WgqC6 - The apk you want to hack, I use subway surfer for this version (I'll use a old version because Bluestacks can't handle a new version) - 7zip,winrar etc to unzip the .apk. - ZipSigner: https://play.google.com/store/apps/details?id=kellinwood.zipsigner2&hl=en Apk I use: http://bit.ly/292NcGK NOTE: Not any game is a unity game. Let's start! Okey, so.. Open the program .Net Reflector after you installed it. Load the Assembly-CSharp.dll in it. You find this file after you did unzip the apk in: assets-bin-Data-Managed-HERE I always remove all the other files on the left side using the "Delete/Del" button on your keyboard because they're anoying as f*ck. Once they're gone, open the file from the game in the program. Let's set up reflixil now. You've downloaded the reflexil file, you should've unzipped it. In reflector you see a option called "Tools", go to it, go to "Add-Ins" and now click on the "+" icon. Locate to your unzipped folder, and select "Reflexil.Reflector.AIO". Now go again to "Tools" and select Reflexil v2.0 It will look like this now: Now click the search button or "f3" button & now you have to turn on "Search Member" CTL + M OR: Okey, Let's search for some functions. There are multiply options of coure, but I'll call some here: Coins Gems Gold Diamonts Money Cash Currency get_'gold,coins etc' get_amountof'coins,keys,etc' isUnlocked isLocked isFree etc etc etc So, Subway Surfers does have allot features which can be hacked. Let's hack the coins, keys, boards & characters in this tutorial coins & keys are int value's & board & characters are boolean value's Let's search for 'coins'. I got ALLOT matches so do you, I will not show you a screenshot. Let's search for 'get_coins'. You got only a few matches, normaly when you find this match in a game you will hack it. I did it too, but it didn't had any effect so I won't waste your time by doing it. Let's search for 'get_amountof'. We got this: It seems very intresting to me, why? Well we got matches with keys & coins + the declaring type is 'PlayerInfo' in my opinion that's intresting. Let's double click 'get_amountOfCoins' we got this: So what now? Well, ALWAYS delete this OpCode 'Idfld'. You don't want that one loaded. Now, change Idarg.0 to 'idc.i4' by clicking right mouse button on Idarg.0 and click edit. It will look like this: NOTE: Change Operand type to Int32!!!! Click 'Update' and do the same for 'get_amountOfKeys' Now let's unlock the hoverboards. Search for: isUnlocked, no match you'll see. Search for isHoverboardUnlocked You got 2 matches, which one will you take? Well the one with declaring type 'HoverboardStickerManager' says this: See this: 'It says: return PlayerInfo.Instance.isHoverboardUnlocked(type);' Double click isHoverboardUnlocked because it says that's what it returns. WOW! You got ALLOT bullsh*t around there What do we want to do with the function? Return it to TRUE ofcourse! What do we do now? In this menu (see picture) we have to keep only 2 instructions, it doesn't matter which one. Just delete everything until you keep 2 instructions After deleting until there are 2 instructions, it will look like this (you may have other instructions): I got this, you can get totally something else. I'll explain you what this means anyways because we both need those instructions to hack it See the OpCode of both Idc.i4,0 --> FALSE ret ---> RETURN --> Offset of ret is '1' this means "TRUE" So it says: HoverboardUnlocked = FALSE = TRUE... hmmmm bleghhhh What to do now? Change the first instructions (Idc.i4.0) to Idc.i4.1 this means TRUE IF your second instruction is NOT 'ret' then change it to 'ret'. What it says now: HoverboardUnlocked = TRUE = TRUE Let's do the same for the Characters.. Search for 'isCharacterUnlocked' you may get more matches.I do only get one... It tells me it does return 'PlayerInfo.Instance.IsCollectionCompelete(type); Double Click isCollectionComplete. Delete all instructions until you keep 2 over Change the first instruction to 'Idc.i4.1' and change the second to 'ret' (RETURN) TIP: The Subway Surfers Tutorial is very anoying in my opinion. Search for: get_IsTutorialCompleted and return it to true like you did with the Hoverboards & Characters! Okey.. we're done. Save the Assembly-CSharp.dll How? Click 'Save as...' --> locate to the unzipped .apk-assets-bin-Data-Managed, it will tell you to save it as: Assembly-CSharp.Patched.dll but we want it as: Assembly-CSharp.dll It will ask if you want to overwrite, click yes. Locate to your unzipped .apk - select ALL files - make a .zip archive but rename the .zip to apk: Copy your .apk to your phone or to bluestacks, sign in it with zipsigner Zipsigner: https://play.google.com/store/apps/details?id=kellinwood.zipsigner2&hl=en Open ZipSigner find your .apk by clicking here: When you found it, click 'Sign The File' and wait. After it's done signing, locate it in your file manager & install it. Open it when it's done NOTE: If you don't like non serious people, skip the upcomming screenshot and go to one after it lol.. Moment of truth....... Silence please..... IS IT HACKED???! Kidding me, Bluestacks hates me: Let's open again -___- Ah I got it working. Coins & Keys: Characters: Hoverboards: Functions WE hacked: get_amountOfCoins get_amountOfKeys isHoverboardUnlocked isCharacterUnlocked some of you may did: get_isTutorialCompleted because I mentioned that one too. EXTRA isThemeUnlockedForCharacter isThemeSeen isThemeOwned isThemeActive get_DoubleScore get_ScoreMultiplier Declaring Type ´PlayerInfo´ are the most functions in to be hacked. Hope you learned something from this tutorial! Credits: xShadowGhostx
  3. I see this: bool __cdecl -[CurrencyWallet spendValue:](struct CurrencyWallet *self, SEL, unsigned int) __text:00071F40 __CurrencyWallet_spendValue__ __text:00071F40 PUSH {R4,R7,LR} __text:00071F42 ADD R7, SP, #4 __text:00071F44 MOV R4, R0 __text:00071F46 MOV R0, #(_OBJC_IVAR_$_CurrencyWallet._quantity - 0x71F52) ; unsigned int _quantity; __text:00071F4E ADD R0, PC ; unsigned int _quantity; __text:00071F50 LDR R0, [R0] ; unsigned int _quantity; __text:00071F52 LDR R1, [R4,R0] __text:00071F54 CMP R1, R2 __text:00071F56 ITT CC __text:00071F58 MOVCC R0, #0 __text:00071F5A POPCC {R4,R7,PC} __text:00071F5C MOVW R3, #(:lower16:(selRef_notifyChanges - 0x71F6C)) __text:00071F60 SUBS R1, R1, R2 __text:00071F62 MOVT.W R3, #(:upper16:(selRef_notifyChanges - 0x71F6C)) __text:00071F66 STR R1, [R4,R0] __text:00071F68 ADD R3, PC ; selRef_notifyChanges __text:00071F6A MOV R0, R4 __text:00071F6C LDR R1, [R3] ; "notifyChanges" __text:00071F6E BLX.W _objc_msgSend __text:00071F72 MOV R0, #(selRef_persistQuantity - 0x71F7E) __text:00071F7A ADD R0, PC ; selRef_persistQuantity __text:00071F7C LDR R1, [R0] ; "persistQuantity" __text:00071F7E MOV R0, R4 __text:00071F80 BLX.W _objc_msgSend __text:00071F84 MOVS R0, #1 __text:00071F86 POP {R4,R7,PC} I assumed that after "__text:00071F56 ITT CC" something else started.. not sure tho...
  4. Will check in a few minutes. Pc randomly turned off so have to load it again.
  5. Hey there, I am trying to understand IDA Game Hacking, but I am not really getting it. Did read all tutorials like 947845874 times... I think this function is hackable: bool __cdecl -[CurrencyWallet spendValue:](struct CurrencyWallet *self, SEL, unsigned int) __text:00071F40 __CurrencyWallet_spendValue__ ; DATA XREF: __objc_const:00DAA128o __text:00071F40 PUSH {R4,R7,LR} __text:00071F42 ADD R7, SP, #4 __text:00071F44 MOV R4, R0 __text:00071F46 MOV R0, #(_OBJC_IVAR_$_CurrencyWallet._quantity - 0x71F52) ; unsigned int _quantity; __text:00071F4E ADD R0, PC ; unsigned int _quantity; __text:00071F50 LDR R0, [R0] ; unsigned int _quantity; __text:00071F52 LDR R1, [R4,R0] __text:00071F54 CMP R1, R2 I though the 'MOV R4, R0' could be hacked or 'PUSH {R4,R7,LR}' I have this problem with like any game, I've no idea what to do... any help? Thanks in advance,
  6. Ace Yose iOS 9. Use it all the time )
  7. Try this: after done that, open freedom, launch app & try... EDIT: Have you tried all these? https://iosgods.com/topic/30776-4-apps-to-hack-in-app-purchase-in-android/#entry1064139
  8. What version of Freedom do you have? What version of Lollipop? Latest Play Store (6.0) apparently breaks Freedom functionality, causing both Play Store and the respective app to force close upon trying to make a purchase. The only workaround is to uninstall Play Store updates and force stop Play Store from settings, and manage to start freedom, start the app, and make the purchase before Play Store auto-updates itself.
  9. For the ones who want a challenge File: ar.smali code: if-nez v3, :cond_0 sget-object v3, Lcom/topfreegames/bikerace/e;->"BIKENAME":Lcom/topfreegames/bikerace/e; invoke-virtual {p1, v3}, Lcom/topfreegames/bikerace/e;->equals(Ljava/lang/Object;)Z move-result v3NOTE: This the a code for only one bike. Goodluck & have fun
      • 1
      • Like
  10. trying... sorry i suck lel
  11. I thought this was the code I needed to hack but I was wrong.. Well there are possibly two codes which can be hacked, sadly I can't do this one
  12. I saw it here the error, so just copied what they said http://iphonedevwiki.net/index.php/Theos/Troubleshooting
  13. It probably means you are using a platform unsupported by Theos. If you are using iOS as a platform and on a 64bit device, you are probably getting this error. To fix this, you can do the following: sudo ln -s $THEOS/makefiles/platform/Darwin-arm{,64}.mk sudo ln -s $THEOS/makefiles/targets/Darwin-arm{,64}
  14. Hi there I'm trying to add more sget-object v3 of a item. This is the whole code: What I want is have more function which I marked as ---> 'text' <---, dunno how. I tried this: .method public declared-synchronized a(Lcom/topfreegames/bikerace/e;)Z .locals 4 .prologue const/4 v0, 0x0 .line 896 monitor-enter p0 const/4 v1, 0x1 :try_start_0 invoke-static {v1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; move-result-object v2 .line 897 const/4 v1, 0x0 .line 899 if-eqz p1, :cond_0 ---> sget-object v3, Lcom/topfreegames/bikerace/e;->REGULAR:Lcom/topfreegames/bikerace/e; <--- invoke-virtual {p1, v3}, Lcom/topfreegames/bikerace/e;->equals(Ljava/lang/Object;)Z :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 move-result v3 if-eqz v3, :cond_1 .line 942 :cond_0 :goto_0 monitor-exit p0 return v0 .line 903 :cond_1 :try_start_1 invoke-static {}, Lcom/topfreegames/bikerace/bl;->t()Z move-result v0 if-eqz v0, :cond_2 .line 904 const/4 v0, 0x0 invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 move-result-object v0 move-object v2, v1 move-object v1, v0 .line 910 :goto_1 if-eqz v2, :cond_5 .line 913 :try_start_2 iget-object v0, v2, Lcom/topfreegames/bikerace/as;->b:Lcom/topfreegames/engine/data/DataNode; sget v3, Lcom/topfreegames/bikerace/ar;->p:I invoke-static {v3}, Lcom/topfreegames/bikerace/ar;->n(I)Ljava/lang/String; move-result-object v3 invoke-virtual {v0, v3}, Lcom/topfreegames/engine/data/DataNode;->getChild(Ljava/lang/String;)Lcom/topfreegames/engine/data/DataNode; :try_end_2 .catch Ljava/lang/NullPointerException; {:try_start_2 .. :try_end_2} :catch_0 .catchall {:try_start_2 .. :try_end_2} :catchall_0 move-result-object v0 .line 925 :goto_2 :try_start_3 invoke-static {}, Lcom/topfreegames/bikerace/ar;->V()Z move-result v3 if-nez v3, :cond_5 .line 926 iget v1, v2, Lcom/topfreegames/bikerace/as;->a:I sget-object v3, Lcom/topfreegames/bikerace/e;->SUPER:Lcom/topfreegames/bikerace/e; invoke-virtual {v3}, Lcom/topfreegames/bikerace/e;->ordinal()I move-result v3 if-ne v1, v3, :cond_4 .line 927 const/4 v1, 0x0 invoke-static {v1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; :try_end_3 .catch Ljava/lang/NullPointerException; {:try_start_3 .. :try_end_3} :catch_1 .catchall {:try_start_3 .. :try_end_3} :catchall_0 move-result-object v0 .line 942 :goto_3 :try_start_4 invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z move-result v0 goto :goto_0 .line 907 :cond_2 invoke-direct {p0, p1}, Lcom/topfreegames/bikerace/ar;->e(Lcom/topfreegames/bikerace/e;)Lcom/topfreegames/bikerace/as; move-result-object v0 move-object v1, v2 move-object v2, v0 goto :goto_1 .line 915 :catch_0 move-exception v0 .line 916 iget-boolean v0, v2, Lcom/topfreegames/bikerace/as;->c:Z invoke-virtual {p0, v0}, Lcom/topfreegames/bikerace/ar;->a(Z)V .line 917 iget-object v0, v2, Lcom/topfreegames/bikerace/as;->b:Lcom/topfreegames/engine/data/DataNode; if-nez v0, :cond_3 .line 918 iget-boolean v0, v2, Lcom/topfreegames/bikerace/as;->c:Z invoke-direct {p0, v0}, Lcom/topfreegames/bikerace/ar;->k(Z)Lcom/topfreegames/engine/data/DataNode; move-result-object v0 iput-object v0, v2, Lcom/topfreegames/bikerace/as;->b:Lcom/topfreegames/engine/data/DataNode; .line 920 :cond_3 iget-object v0, v2, Lcom/topfreegames/bikerace/as;->b:Lcom/topfreegames/engine/data/DataNode; sget v3, Lcom/topfreegames/bikerace/ar;->p:I invoke-static {v3}, Lcom/topfreegames/bikerace/ar;->n(I)Ljava/lang/String; move-result-object v3 invoke-virtual {v0, v3}, Lcom/topfreegames/engine/data/DataNode;->getChild(Ljava/lang/String;)Lcom/topfreegames/engine/data/DataNode; :try_end_4 .catchall {:try_start_4 .. :try_end_4} :catchall_0 move-result-object v0 goto :goto_2 .line 930 :cond_4 :try_start_5 iget v1, v2, Lcom/topfreegames/bikerace/as;->a:I invoke-static {v1}, Lcom/topfreegames/bikerace/ar;->n(I)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Lcom/topfreegames/engine/data/DataNode;->getChild(Ljava/lang/String;)Lcom/topfreegames/engine/data/DataNode; move-result-object v1 .line 931 sget v3, Lcom/topfreegames/bikerace/ar;->r:I invoke-static {v3}, Lcom/topfreegames/bikerace/ar;->n(I)Ljava/lang/String; move-result-object v3 invoke-virtual {v1, v3}, Lcom/topfreegames/engine/data/DataNode;->getBoolean(Ljava/lang/String;)Ljava/lang/Boolean; :try_end_5 .catch Ljava/lang/NullPointerException; {:try_start_5 .. :try_end_5} :catch_1 .catchall {:try_start_5 .. :try_end_5} :catchall_0 move-result-object v0 goto :goto_3 .line 935 :catch_1 move-exception v1 .line 936 :try_start_6 iget v1, v2, Lcom/topfreegames/bikerace/as;->a:I invoke-static {v1}, Lcom/topfreegames/bikerace/ar;->o(I)Lcom/topfreegames/engine/data/DataNode; move-result-object v1 .line 937 invoke-virtual {v0, v1}, Lcom/topfreegames/engine/data/DataNode;->addChild(Lcom/topfreegames/engine/data/DataNode;)V .line 938 const/4 v0, 0x1 invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; :try_end_6 .catchall {:try_start_6 .. :try_end_6} :catchall_0 move-result-object v0 goto :goto_3 .line 896 :catchall_0 move-exception v0 monitor-exit p0 throw v0 :cond_5 move-object v0, v1 goto :goto_3 .end method What I want is have more function which I marked in red, dunno how. I tried this: sget-object v3, Lcom/topfreegames/bikerace/e;->REGULAR:Lcom/topfreegames/bikerace/e; sget-object v3, Lcom/topfreegames/bikerace/e;->ULTRA:Lcom/topfreegames/bikerace/e; This doesn't work, it only loads the REGULAR one. Then I changed REGULAR to ULTRA, this worked but I want them BOTH not only ONE. Anyone have a suggestion?
  15. Thankyou! Great to here that from someone like you.. more are comming )
  16. Heyyyy Pretty cool this android topic, I've been hacking android games pretty long now. Today I'll teach you how to start with smali hacking. What do you need? 1. the .apk 2. Tools to decompile & recompile the .apk (I use apkstudio but there are other tools too) 3. A editor which can read & edit .smali files (Notepad++, sublime text etc) 4. Pc to edit the smali files, it's possible to do it with phone but you can't search in folders then & smali does have soooo much files. 4. Phone to test it out. What game will I use for this tutorial? As I said it's a 'simple' tutorial. I am gonne write down a tutorial for the game "Moto Race" & I'll link my video tutorial of the game "Pou" I do assume you know how to decompile & recompile a apk, if you don't know how: Google is your bestfriend. Pou Hack Tutorial: Moto Race Tutorial App download link: https://play.google.com/store/apps/details?id=com.gw.moto.racing.stunt Direct download link: https://drive.google.com/file/d/0B_qzxquukQ6RZG1SeE84QVQzZ0U/view Step 1: Always open a app to see what possibily can be hacked, if the game is connected with a server it's most of the time much harder. Step 2: Once you see something what can be hacked, go find it in the smali files. Example: See the price? We can try hacking this. Step 3: Let's find this amount in the decompiled smali files by 'searching in files' (locate to your decompiled .apk). REMEMBER: game value's are decimal, smali value's is Hexdecimal! Step 4: You got a hit! The first hit is useless, it give you a line which is not important here. Let's look at the second one. Step 5: We found or function, this function is the price of the bike. Let's change it to "0" in Hexdecimal is this: 0x0. You can do this on every bike in the smali. So you have any bike for free. It will look like this: Step 6: Save the file, recompile it to .apk, delete the original app from playstore, install the recompiled apk, test it & if it works: ENJOY & GOODJOB! NOTE: This doesn't work for any app of course, much better and famous apps are much better protected. Hope it helped! Goodluck Credit: ME
  17. I prefer android hacking for myself. Much better at it. but the whole idea "iOS"Gods is gone then. This is my guess. If it will be added, I'll be much more active around here tho. For tutorials for sure.
  18. No? :9
×
  • 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