Jump to content

BadCase

Modding Team
  • Posts

    687
  • Joined

  • Last visited

  • Days Won

    36

Posts posted by BadCase

  1. BadCase's Unreal/IDA Toolbox


    You must have IDA in order to load the games .so file and get it's function list to use this script.

    Load the lib, goto the menu to search by name and press Ctrl + a, select all and then copy (WAIT for IDA to start responding again) and paste them into notepad++, save and copy the text filetoyour device.

    Untitled(2).thumb.png.171150792683705e68594c21124f0d37.png

    This script is similar to my Il2CppDumper Toolbox, here is a video of it's use.

     


     

  2. On 3/31/2023 at 7:37 AM, DOOM1212 said:

    Need help guys, GG script does not working anymore after I changed my ROM to custom EvolutionX (Android 13), just several script work, but most of it doesn't work, previously I used MIUI and work everything.

    Does this ROM not support GG?

    Btw my phone is rooted.

    Thanks. 

    Nearly every person I speak to that has issues running GG is on Android 12 or 13, my recommendation is that if you want to continue using GG stop updating your android and possibly roll it back

  3. BadCase's Discord API


    Has Most GET, POST, PUT and DELETE Methods from the Discord API

    I will try to add PATCH methods later

    PUT and DELETE Methods use a PHP curl script on my server, the code is included at the bottom of the script if you want to run it on your own server.


     

  4. BadCase's PasteBin API


    Set these values at top of pasteBin table

        api_dev_key = "YOUR_API_DEV_KEY",
        api_user_name = "YOUR_USERNAME",
        api_user_password = "YOUR_PASSWORD",

     

    Usage:

    -- Upload with username
    -- print(pasteBin.publishPaste(api_paste_code, api_paste_name, true))

    -- Upload without username
    --print(pasteBin.publishPaste(api_paste_code, api_paste_name, false))

    -- List users pastes
    --print(pasteBin.listPastes())

    -- Delete a paste
    -- print(pasteBin.deletePaste("Jef8vQcX")) -- replace "Jef8vQcX" with valid paste key from users paste

    -- Get users info
    -- print(pasteBin.getUser())

    -- Get users private or public paste
    -- print(pasteBin.getUserPasteRaw("zbEbNh2n")) -- replace "zbEbNh2n" with valid paste key from users paste

    -- Get public or unlisted paste
    -- print(pasteBin.getPasteRaw("zbEbNh2n")) -- replace "zbEbNh2n" with valid paste key
     


     

  5. 10 hours ago, _insidious said:

    i was wondering how to make gg.makeRequest posts a message in a paste site like pastebin as example.

    function publishToPastebin(api_dev_key, api_paste_code, api_paste_name, api_user_name, api_user_password)
      local char_to_hex = function(c)
        return string.format("%%%02X", string.byte(c))
      end
    
      local function urlencode(url)
        if url == nil then
          return
        end
        url = url:gsub("\n", "\r\n")
        url = url:gsub("([^%w ])", char_to_hex)
        url = url:gsub(" ", "+")
        return url
      end
    
      local api_user_key = ""
      if api_user_name then
        local url = "https://pastebin.com/api/api_login.php"
        local headers = {
          ["Content-Type"] = "application/x-www-form-urlencoded"
        }
        local data = "api_dev_key=" ..
            api_dev_key .. "&api_user_name=" .. api_user_name .. "&api_user_password=" .. api_user_password
        local result = gg.makeRequest(url, headers, data)
    
        api_user_key = result.content
      end
    
      local url = "https://pastebin.com/api/api_post.php"
      local api_paste_private = "0"
      local api_paste_expire_date = "N"
      local api_paste_format = "lua"
    
    
      api_paste_name = urlencode(api_paste_name)
      api_paste_code = urlencode(api_paste_code)
    
      local headers = {
        ["Content-Type"] = "application/x-www-form-urlencoded"
      }
    
      local data = "api_option=paste" ..
          "&api_dev_key=" .. api_dev_key ..
          "&api_user_key=" .. api_user_key ..
          "&api_paste_private=" .. api_paste_private ..
          "&api_paste_name=" .. api_paste_name ..
          "&api_paste_expire_date=" .. api_paste_expire_date ..
          "&api_paste_format=" .. api_paste_format ..
          "&api_paste_code=" .. api_paste_code
    
      local response = gg.makeRequest(url, headers, data)
    
      if response.code == 200 then
        return response.content
      else
        return "Error: " .. response.message
      end
    end
    
    local api_dev_key = "YOUR_DEV_KEY"
    local api_user_name = "YOUR_USERNAME" -- Only needed if you want paste uploaded with username otherwise paste will be uploaded as Guest
    local api_user_password = "YOUR_PASSWORD" -- Only needed if you want paste uploaded with username otherwise paste will be uploaded as Guest
    local api_paste_code = [[local testText = "Some Text"
    gg.alert(testText)]]
    local api_paste_name = "file name.lua"
    
    --Upload with username 
    print(publishToPastebin(api_dev_key, api_paste_code, api_paste_name, api_user_name, api_user_password))
    
    --Upload without username 
    print(publishToPastebin(api_dev_key, api_paste_code, api_paste_name))

     

  6. On 12/27/2022 at 1:19 PM, Marks01 said:

    I installed VirtualXposed, installed GG in it. The game started, but immediately found GG and closed. It turns out that even VirtualXposed does not help, what to do?

    Screenshot_20221227-231227.png

    After adding GG to virtual xposed you must uninstall the normal copy.

    Then press "Fix It" when you start GG and select the Root in virtual spaces option.

    There are copies of VPhoneGaGa rooted with magisk and exposed that have Hide My Applist which can also achieve this.

    Another option that I have not tested in VMOS or emulators is an app named Island from the play store.

    Install island, move the game to the new work profile, run GG normally and the game from the work profile.

     

  7. 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.


     


     

  8. On 11/27/2022 at 6:58 PM, zhangzheng320823 said:

    BadCase's_GGIl2cpp_Toolbox_v1.0.0 (1).lua:1281

    ` for i, v in pairs(Il2Cpp.simpleFloatsTable["ARM7"]) do`

    attempt to index ? (a nil value) with key 'simpleFloatsTable' (global 'Il2Cpp')

    level = 1, const = 16, proto = 0, upval = 1, vars = 10, code = 43

    GETTABLE v4 v4 "simpleFloatsTable"

     ; PC 4 CODE 02408107 OP 7 A 4 B 4 C 258 Bx 2306 sBx -128765

    stack traceback:

     /storage/emulated/0/-by帅小伙脚本/2022.10.11脚本/-重要/工具/BadCase's_GGIl2cpp_Toolbox_v1.0.0 (1).lua:1281 in function 'ggil2cppEdits.getSimpleFloatEdit'

     /storage/emulated/0/-by帅小伙脚本/2022.10.11脚本/-重要/工具/BadCase's_GGIl2cpp_Toolbox_v1.0.0 (1).lua:900 in function 'ggil2cppEdits.createEdit'

     /storage/emulated/0/-by帅小伙脚本/2022.10.11脚本/-重要/工具/BadCase's_GGIl2cpp_Toolbox_v1.0.0 (1).lua:267 in function 'ggil2cppFrontend.PatchesAddress'

     /storage/emulated/0/-by帅小伙脚本/2022.10.11脚本/-重要/工具/BadCase's_GGIl2cpp_Toolbox_v1.0.0 (1).lua:582 in function 'ggil2cppFrontend.methodMenu'

     /storage/emulated/0/-by帅小伙脚本/2022.10.11脚本/-重要/工具/BadCase's_GGIl2cpp_Toolbox_v1.0.0 (1).lua:363 in function 'ggil2cppFrontend.handleClick'

     /storage/emulated/0/-by帅小伙脚本/2022.10.11脚本/-重要/工具/BadCase's_GGIl2cpp_Toolbox_v1.0.0 (1).lua:60 in function 'ggil2cppFrontend.home'

     /storage/emulated/0/-by帅小伙脚本/2022.10.11脚本/-重要/工具/BadCase's_GGIl2cpp_Toolbox_v1.0.0 (1).lua:1861 in main chunk

     [Java]: in ?

     at luaj.LuaValue.f(src:989)

     at luaj.LuaValue.c(src:2864)

     at luaj.LuaValue.i(src:2767)

     at luaj.LuaValue.w(src:1094)

     at luaj.LuaClosure.a(src:363)

     at luaj.LuaClosure.l(src:160)

     at luaj.LuaClosure.a(src:537)

     at luaj.LuaClosure.l(src:160)

     at luaj.LuaClosure.a(src:537)

     at luaj.LuaClosure.a(src:176)

     at luaj.LuaClosure.a(src:535)

     at luaj.LuaClosure.a(src:167)

     at luaj.LuaClosure.a(src:534)

     at luaj.LuaClosure.l(src:160)

     at luaj.LuaClosure.a(src:533)

     at luaj.LuaClosure.l(src:160)

     at luaj.LuaClosure.a(src:533)

     at luaj.LuaClosure.l(src:160)

     at android.ext.Script.d(src:6056)

     at android.ext.Script$ScriptThread.run(src:5785)

    Oops, I will fix in next update but changing "Il2cpp." to "ggil2cppEdits." on line 1281 should fix it in the meantime

  9. 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.


     

  10. On 11/10/2022 at 3:52 AM, ronanfoster said:

    Also the virtual machine you recommended fails to load some games and the rest are too laggy

     

    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

  11. 1 hour ago, blocx said:

    i install 64 for hack 64 but no 64 process

    Screenshot_20221019-081537_F1 VM.jpg

    this if u use default

    Screenshot_20221019-081755_F1 VM.jpg

    If you install a 64 bit apk it should reboot with 64bit support

    What game are you trying to run?

  12. 2 minutes ago, blocx said:

    ho ok dump work only with unity ?

    what do u not understand the script of lover wont work with this game

    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

  13. 5 minutes ago, blocx said:

    i have allready say this game havent metada so i cant dump

    thanks so much bro

    This does not seem to be a Unity game

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.