-
Posts
687 -
Joined
-
Last visited
-
Days Won
33
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by BadCase
-
View File Obfuscated Class Finder by BadCase A tool to find new class names after updates in unity games that use obfuscated class, field and method names. You must have an old dump that you know the Namespace and Class name in and the current dump in order to find the new Class name. Submitter BadCase Submitted 12/22/2022 Category Tools
-
-
View File Unity Script Templates by BadCase These are a few templates to allow you to easily create scripts for Unity based games. Fields.Class.Name.Offset.Template.by.BadCase Add edits to the "fieldEdits" table in the following format [1] = { editName = "Free Clothes", emoji = "", edits = { { className = "ClothesOriData", armEdits = {0X18, 0X28}, editTo = 0, editType = gg.TYPE_DWORD, editIfEqual = nil }, { className = "ClothesOriData", armEdits = {0X1C, 0X28}, editTo = 0, editType = gg.TYPE_DWORD, editIfEqual = nil }} }, className: is the name of the Class the Field belongs to armEdits: is a table in this format {arm7_field_offset,arm8_field_offset} editTo: is the value to edit the Field instances to editType: is the type of value to edit the Field instance as editIfEqual: use if you only want to edit fields of a certain value and or get user input for this value can bet set to nil: if editing all Field instance integer: for editing all Field instances of a single value integer range: in this format 0~100 for editing all Field instance with a value in that range text: for providing instructions to the user in a prompt asking them to specify the value to be edited Methods.Class.Method.Name.Template.by.BadCase Add edits to the "methodEdits" table in the following format [1] = { editName = "Unlimited Ammo", emoji = "", edits = { { className = "Player", methodName = "HasBulletsClip", armEdits = {{"~A MOV R0, #1", "~A BX LR"}, {"~A8 MOV W0, #1", "~A8 RET"}} }} }, className: is the name of the Class the Method belongs to methodName: is the name of the Method to edit armEdits: is a table in this format {(arm7_lib_edits},{arm8_lib_edits}} edits can be GG assembler opcodes (~A BX LR), hex (00000000h) or reverse hex (00000000r) Combined.Field.Method.Template.by.BadCase This is the above 2 templates combined, make sure you have the same items in both the "methodEdits" and "fieldEdits" If a function only has one type of edits for example "fieldEdits" and no "methodEdits" then the "methodEdits" edit table for that function should be an empty table {} Check the last function in the script for an example. Submitter BadCase Submitted 12/21/2022 Category Tools
-
Version 1.0.0
1,491 downloads
These are a few templates to allow you to easily create scripts for Unity based games. Fields.Class.Name.Offset.Template.by.BadCase Add edits to the "fieldEdits" table in the following format [1] = { editName = "Free Clothes", emoji = "", edits = { { className = "ClothesOriData", armEdits = {0X18, 0X28}, editTo = 0, editType = gg.TYPE_DWORD, editIfEqual = nil }, { className = "ClothesOriData", armEdits = {0X1C, 0X28}, editTo = 0, editType = gg.TYPE_DWORD, editIfEqual = nil }} }, className: is the name of the Class the Field belongs to armEdits: is a table in this format {arm7_field_offset,arm8_field_offset} editTo: is the value to edit the Field instances to editType: is the type of value to edit the Field instance as editIfEqual: use if you only want to edit fields of a certain value and or get user input for this value can bet set to nil: if editing all Field instance integer: for editing all Field instances of a single value integer range: in this format 0~100 for editing all Field instance with a value in that range text: for providing instructions to the user in a prompt asking them to specify the value to be edited Methods.Class.Method.Name.Template.by.BadCase Add edits to the "methodEdits" table in the following format [1] = { editName = "Unlimited Ammo", emoji = "", edits = { { className = "Player", methodName = "HasBulletsClip", armEdits = {{"~A MOV R0, #1", "~A BX LR"}, {"~A8 MOV W0, #1", "~A8 RET"}} }} }, className: is the name of the Class the Method belongs to methodName: is the name of the Method to edit armEdits: is a table in this format {(arm7_lib_edits},{arm8_lib_edits}} edits can be GG assembler opcodes (~A BX LR), hex (00000000h) or reverse hex (00000000r) Combined.Field.Method.Template.by.BadCase This is the above 2 templates combined, make sure you have the same items in both the "methodEdits" and "fieldEdits" If a function only has one type of edits for example "fieldEdits" and no "methodEdits" then the "methodEdits" edit table for that function should be an empty table {} Check the last function in the script for an example. -
Oops, I will fix in next update but changing "Il2cpp." to "ggil2cppEdits." on line 1281 should fix it in the meantime
-
View File BadCase's GGIl2cpp Toolbox This script provides a frontend for all of the core functions of @Kruvcraft's GGIl2cpp (#1zbicc50) as well as some additional functions. FindClass: Calls GGIl2cpp's Il2cpp.FindClass() function and loads results to the Save List. Selecting results in the Save List opens a menu to copy data, load Field instances, make Method edits and create Field and Method edits for exported scripts. FindFields: Calls GGIl2cpp's Il2cpp.FindFields() function and loads results to the Save List. Selecting results in the Save List opens a menu to copy data, load instances of the Field and create Field edits for exported scripts. FindMethods: Calls GGIl2cpp's Il2cpp.FindMethods() function and loads results to the Save List. Selecting results in the Save List opens a menu to copy data, edit Methods and create Method edits for exported scripts. FindObject: Calls GGIl2cpp's Il2cpp.FindObject() function and loads results to the Save List. Selecting results in the Save List opens a menu to load Field instances. PatchesAddress: Calls GGIl2cpp's Il2cpp.PatchesAddress() function which edits a Method in Xa with a hex byte edit. The script can create the hex byte edits for you or you can enter them manually. Keyword Search: Allows you to search for Classes, Methods and Fields by keyword instead of exact name. Classes will be added to the Save List for Class and Field results, Methods will be added for Method results. Script Creator: Allows you to edit created function names, modify menu order and export scripts. Submitter BadCase Submitted 11/25/2022 Category Tools
-
Version 1.0.4
2,382 downloads
This script provides a frontend for all of the core functions of @Kruvcraft's GGIl2cpp (#1zbicc50) as well as some additional functions. FindClass: Calls GGIl2cpp's Il2cpp.FindClass() function and loads results to the Save List. Selecting results in the Save List opens a menu to copy data, load Field instances, make Method edits and create Field and Method edits for exported scripts. FindFields: Calls GGIl2cpp's Il2cpp.FindFields() function and loads results to the Save List. Selecting results in the Save List opens a menu to copy data, load instances of the Field and create Field edits for exported scripts. FindMethods: Calls GGIl2cpp's Il2cpp.FindMethods() function and loads results to the Save List. Selecting results in the Save List opens a menu to copy data, edit Methods and create Method edits for exported scripts. FindObject: Calls GGIl2cpp's Il2cpp.FindObject() function and loads results to the Save List. Selecting results in the Save List opens a menu to load Field instances. PatchesAddress: Calls GGIl2cpp's Il2cpp.PatchesAddress() function which edits a Method in Xa with a hex byte edit. The script can create the hex byte edits for you or you can enter them manually. Keyword Search: Allows you to search for Classes, Methods and Fields by keyword instead of exact name. Classes will be added to the Save List for Class and Field results, Methods will be added for Method results. Script Creator: Allows you to edit created function names, modify menu order and export scripts. -
Easy to use virtual space that works for running GG?
BadCase replied to ronanfoster's question in Help
Unfortunately for unrooted android 11+ users, virtual machines are the only working option for most. I reccomend VMOS Pro, some games will run better with different roms. I had one running too slow in the 64bit rom so I installed the 32bit one instead and it played smoother. Installing one with a different android version can make a difference as well. None of the other virtual machines have this type of flexibility. But there will still be some games that won't work in it -
Then you are using it wrong...
-
If you install a 64 bit apk it should reboot with 64bit support What game are you trying to run?
-
It is asking you to select a folder to save data to...
-
Yes, only with unity engine games. Also he only said it once, I think his comment was moved down from the downvote so it appeared to be new lol
-
This does not seem to be a Unity game
-
This game is ARM8 only and my rooted device is ARM7 but I can create riru and zygisk modules to dump and hopefully someone else here will run them for you and give you the dump they create
-
You can try Riru or Zygisk Il2CppDumper depending on if you have old magisk or zygisk magisk. If you do not have a PC to build it on let me know which magisk you are using and send a link to the game
-
Headshot is a Boolean meaning it returns true or false, setting R0 to 1 makes it return true, setting it to 0 makes it return false, BX LR ends the function and returns to the code that called it.
-
Anyone know if you can still change items to pets with swapping pointers? It is still working for everything else
-
What method are you using to dump it?
- 14 replies
-
- @dyno @badcase
- @Enyby
-
(and 2 more)
Tagged with:
-
-
Oops, CmP just let me know for X0 ~A8 MOV X0, XZR or ~A8 MOV W0, WZR depends on the type of register X or W
-
~A8 MOV X0, WZR
-
-
-
Looks like you only changed the code in KE18() and not in KE17()
-
The code I posted will revert the values when KE18() is called