Jump to content

YeetMeister

Contributor
  • Posts

    346
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by YeetMeister

  1. 13 minutes ago, n3kitOzz said:

    2 ways to do it:
      1. Share only with only trusted people
      2. Write webserver, get hardware id, send to server, do server checks, and return a result.
    If you want to do 2nd thing - you will learn any programming language, for example - im using python + flask.

    Forgot to say - you need good obfuscation for script, becouse anyone can just see theese logins in source

    hardware id is not obtainable with vanilla GameGuardian i believe

  2. 10 hours ago, CmP said:

    Yes, you have everything that is needed to find the value and to modify it to any other (in allowed range).

    To search for 3000 try search string "11;184::2" with type "Byte". If there will be more than 2 results, you will need to do refine search by changing the value in the game and searching the new value the same way. For example, if the new value is 2500, you will need to use the following search string "9;196::2".

    3000 money = 11 -72 bytes, how would i be able to calculate other wished values from now on / how the ***** did you do it lmao

  3. 1 hour ago, CmP said:

    you need to find out the values of first and seconds bytes that together correspond to the value you need

    Can i calculate from those values then? Because the starting amount of Money is 3000

    I will Edit this response once i found that out again, i had the values before but i didnt had in mind saving them unfortunately

    But that wont be hard since 3003 has already been found, so i only meed to modify the second byte, is all i know atm

  4. 1 hour ago, CmP said:

    More like you need to find out the values of first and seconds bytes that together correspond to the value you need. The following code may work for values in range [0;32767]: 

    
    local value = 3000
    local firstByte = value % 256
    local secondByte = (value >> 8) % 256
    local searchString = string.format("%d;%d::2", secondByte, firstByte)
    print(searchString) -- 11;184::2

    As you see, this is slightly incorrect. That would be correct for value 3003. Also you may want ordered group search like in my example in which case you need to search for bytes in the correct order. 

    That is true, ive come up with that result aswell, but i cant just Bruteforce every value you know

    This is honestly driving me insane, one possible thing is to modify the word value since its 2 byte values, but there is the same thing here again.

    I've yet to be questioning a method that fully will work though.

    I can send you the game and link to the Emulator if you want, so you can have a look yourself if you're interested 🙂

    Im thankful though that you still trying to help me, and once the method has been found, i will give a huge shout-out because its so an annoying process

    https://play.google.com/store/apps/details?id=com.fastemulator.gbcfree

     

    PokemonGold(Extracted from Cartrige).gbc

  5. 8 hours ago, CmP said:

    The values for bytes that I provided are hexadecimal. So with 10 I meant 0x10 (16) and with 27 I meant 0x27 (39). Try them.

    Also from your video it seems that bytes do not need to be swapped so ignore that step.

    My Biggest problem right now is that 65535/16 = 4095 = FFFh. But in GameGuardian its FFh since Bytes only work up to 255, if i /16 from the 65535 again the first value is right, but the second value is just Fh now, how do i fix this. After i read the Email that you commented i immediately went to work and tried several things.

     

    The problem is i need a Function that defines how often a number needs to be Modified (/16) so the result ends up in 2 Bytes. I figure because 3000 money doesnt need to be devided 2 times.

    3000 money = 187;11 = BBh;0Bh

    But the current script i used to get there spits out BBh;Bh

     

    If you know how please share ❤️ and thanks for your Previous help, this burnt my Braincells since im not that Good at math :3

  6. 8 hours ago, CmP said:

    The values for bytes that I provided are hexadecimal. So with 10 I meant 0x10 (16) and with 27 I meant 0x27 (39). Try them.

    Also from your video it seems that bytes do not need to be swapped so ignore that step.

    You are an absolute madman, thank you.

  7. 12 hours ago, CmP said:

    Convert the value to hexadecimal and swap first byte with the second one.

    Example for 10000:
    1. 10000 is 0x2710.
    2. "27 10" after swap is "10 27".

    so what ive found out is, that not actually 2 values modify the money, its actually 4

    when i add in value format the hex notation i see the hex string and in memory editor i can see the values that correspond to it

    so i better not use word to modify the value, instead using dword

    okay, never mind its not 4 values, but also the 10 27 isnt 10000

     

  8. 1 hour ago, CmP said:

    Possibly that the bytes are simply reversed. 0x64 is 100. Try "00 01" to see the result. 256 to be expected.

    Yes it is, I already figured that out by editing the second byte value

    [added 3 minutes later]
    1 hour ago, CmP said:

    Possibly that the bytes are simply reversed. 0x64 is 100. Try "00 01" to see the result. 256 to be expected.

    But I also figured out with NoFear that Word is the way to Modify both values at the same time

     

    But now the question is how to mathematically put the values so I can have the exact value I want as Money

  9. I'm Modifying a game and the value I'm trying to modify is split up into two Bytes, so generally I should modify the word, but I want to have an exact value like 10000

    what I have found out is that 64 00 = 100 Currency. and the word for it is 25600

    now I need an math equation to exactly find out what word value I should put so I can have 10000 Currency. any Help?

    im not very good at math, but if someone could help me get this right I would very much appreciate that

  10. On 7/3/2020 at 3:32 AM, star360 said:

    Create on/off button in lua script

     No need to searching values for every time

     Simple script but better ideas

    Read this simple script carefully

    You will be understand 

     

     Specially thanks to @MuhammadRizwan87

    Credit @TDOhex

     

    
    function search()
      gg.clearResults()
      gg.setRanges(gg.REGION_C_DATA)
      gg.searchNumber("1;2;3", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
      gg.refineNumber("1", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
      local t = gg.getResults(3)
      for i, v in ipairs(t) do
        t[i].name = 'testoff'
      end
      gg.addListItems(t)
      gg.clearResults(t)
    end
    search()

     

    
    on = "[OFF]"
    off = "[ON]"
    test = off

     

    
    function main()
      menu = gg.choice({
        test.."  Test",
        "Exit"}, nil, "Example by @TDOhex")

     

    
      if menu == 1 then
        if test == off then
          test = on
          local t = gg.getListItems(testoff)
          for i, v in ipairs(t) do
            if v.name == "testoff" then
              t[i].value = 0
              t[i].name = 'teston'
            end
            gg.setValues(t)
            gg.addListItems(t)
          end
        else
          test = off
          local t = gg.getListItems(teston)
          for i, v in ipairs(t) do
            if v.name == "teston" then
              t[i].value = 1
              t[i].name = 'testoff'
            end
            gg.setValues(t)
            gg.addListItems(t)
          end
        end

     

    
      elseif menu == 2 then
        print("Thanks to visiting @TDOhex")
        gg.copyText('https://t.me/TDOhex')
        intro = "Join to @TDOhex"
        for i = 1, #intro do
          gg.toast(intro:sub(1, i) .. "_✍")
          gg.sleep(140)
        end
        local t = gg.getListItems()
        gg.removeListItems(t)
        os.exit()
      end
    end

     

    
    while true do
      if gg.isVisible() then
        gg.setVisible(false)
        main()
      end
    end

     

    I just shared it... 

    On-Off_Example.lua 1.64 kB · 32 downloads

    Made by RCPolski

  11. 11 hours ago, CmP said:

    To fix what? You forgot to describe the problem.

    From the screenshot you attached it is in no way obvious what the problem is. If you wonder why second and third elements of "vPool" table are references to the same table, that's because your code calls "addItem" function with the same arguments twice.

    wait, it calls additem twice?, idk lol

    this weird looking table can be called using vPool[1][1]

    but how can i make it that it only needs vPool[1] for example

     

  12. 8 minutes ago, CmP said:

    In case of modifying value by freezing it to a new value "addListItems" can be used, but in case of just changing value without freezing it "setValues" function is the one to use.

    Generally, you shouldn't use "addListItems" on values that you don't want to be added to saved list. Values that are needed to be frozen is exception, because in GG a value can't be frozen without it being added to saved list.

    Thanks for the info, i still got a problem with something,

    I have a weird lookin table right here and i dont know how to fix it or call the stuff in the table

    Here a pic:

     

    And the script: 

    --[[
    0xApi by 0x14C
    
    Explaination:
    
    searchMem(
      value,
      Type(gg.TYPE_FLOAT) for example
      )
    
    refineMem(
      value,
      gg.TYPE_FLOAT
      )
    
    refineAddress(
      address, 
      Type, 
      removeResults(
        only important if the value is not the first one
        )
      )
      
    if your value is the third value then input
    
    refineAddress(address, Type, 3)
    
    it will automatically remove the 2 useless values
    
    offset(
      0ffset(0x14C), 
      Type, 
      autoSave or not save, 
      value of the offset for example(77),
    )
    
    addItem(
      target Table, 
      table that you want to insert
    )
    
    displayTable(
      table
    )
    
    displays the content of the table
    
    Leave a Suggestion for more functions, DM me Here:
    
    Discord: 0x14C#3100
    ]]
    
    
    
    
    
    
    
    
    vPool = {}
    tmp = {
      
    }
    function searchMem(v, t)
      gg.searchNumber(v, t)
    end
    
    function refineMem(v, t, r)
      gg.refineNumber(v, t)
      rem = gg.getResults(r - 1)
      gg.removeResults(rem)
      tmp = gg.getResults(1)
      rem = nil
    end
    
    function refineAddress(v, t, r)
      gg.refineAddress(v, -1, t, gg.SIGN_EQUAL, 0, -1, 0)
      rem = gg.getResults(r - 1)
      gg.removeResults(rem)
      tmp = gg.getResults(1)
      rem = nil
      --gg.alert(tostring(tmp))
    end
    
    function offset(o, t, s, a)
      if s == true
        then
          v = gg.getResults(1)
          off = o
          r = {}
          r[1] = {
            address = v[1].address + tonumber(off),
            flags = t,
            value = a,
          }
          print(r)
          addItem(vPool, r)
        else
          v = gg.getResults(1)
          off = o
          r = {}
          r[1] = {
            address = v[1].address + tonumber(off),
            flags = t,
          }
        end
    end
    
    function addItem(t, p)
      table.insert(t, p)
    end
    
    function displayTable(t)
      gg.alert("Table Display:\n"..tostring(t))
    end
    
    function clear()
      gg.clearResults()
    end
    
    searchMem(.5, 16)
    refineAddress(530, 16, 2)
    addItem(vPool, tmp)
    offset(0x530, 16, true, 0.27799999714)
    addItem(vPool, r)
    displayTable(vPool)
    clear()

     

    Screenshot_20200820-030459_Acode.png

  13. 55 minutes ago, CmP said:

    You don't need a loop here. Extract the code from loop body and change all references to "v" to "vPool" and it might work as you expect.

    Yo Thanks man, but the vPool[7] value doesnt get freezed

  14. 13 minutes ago, Enyby said:

    "v" is a number on this line.

    So "v[1].value" doesnot make sense.

    if gg.isVisible(true)
        then
            gg.setVisible(false)
        end
    
        toggle = {
            menu = false,
            preloadValues = true,
            finishPreload = false,
            skipTimer = true,
            showChannelAd = true,
            errorToast = true, --no errors catched toast / useless atm
        }
        
        function main()
            vPool = gg.getListItems()
            if toggle.menu == true
                then
                    SDM()
                else
                    if toggle.preloadValues == true
                        then
                            toggle.preloadValues = false
                            if toggle.finishPreload == false
                                then
                                    if toggle.skipTimer == true
                                        then
                                            preload()
                                        else
                                            gg.alert([[
                                                you have 10 seconds to figure out what your current Money and Highscore is.
                                                ]])
                                            gg.sleep(10000)
                                            preload()
                                        end
                                else
                                    mainMenu()
                                end
                        else
                            mainMenu()
                        end
                end
        end
    
    function SDM()
        menu = gg.choice({
            "Debug Menu",
            "Preload Values",
            "Skip Timer",
            "mainMenu()"
        }, nil, "Secret Debug Menu")
        if menu == 1
            then
                if toggle.menu == true
                    then
                        toggle.menu = false
                        gg.alert("Debug Menu = false")
                        main()
                    else
                        toggle.menu = true
                        gg.alert("Debug Menu = true")
                        main()
                    end
            end
        if menu == 2
            then
                if toggle.preloadValues == true
                    then
                        toggle.preloadValues = false
                        gg.alert("Preload Values = false")
                        main()
                    else
                        toggle.preloadValues = true
                        gg.alert("Preload Values = true")
                        main()
                    end
            end
        if menu == 3
            then
                if toggle.skipTimer == true
                    then
                        toggle.skipTimer = false
                        gg.alert("Skip Timer = false")
                        main()
                    else
                        toggle.skipTimer = true
                        gg.alert("Skip Timer = true")
                        main()
                    end
            end
        if menu == 4
            then
                mainMenu()
            end
        
    end
    
    function mainMenu()
        menu = gg.prompt({
            "Modify Money",
            "Modify Current Kills",
            "Modify Highscore",
            "Modify Multiplier"
        }, {
            vPool[1].value,
            vPool[3].value, 
            vPool[6].value, 
            vPool[7].value
        },{
            "number",
            "number",
            "number",
            "number"
        })
        for v, k in pairs(vPool)
            do
                v[1].value = menu[1]
                v[3].value = menu[2]
                v[6].value = menu[3]
                v[7].value = menu[4]
                v[7].freeze = true
                v[7].freezeType = gg.FREEZE_NORMAL
            end
        gg.setValues(v)
    end
    
    function preload()
        --1243657
        menu = gg.prompt({
            "Enter Current money",
        }, nil, {"number"})
        gg.searchNumber(menu[1], gg.TYPE_DWORD)
        gg.refineAddress("CD4", -1, gg.TYPE_DWORD, gg.SIGN_EQUAL, 0, -1, 0)
        base = gg.getResults(1)
        base[1].name = "[1] Money"
        vPool[1] = base[1]
        gg.addListItems(base)
        _G.totalGain = {}
        totalGain[1] = {
            address = base[1].address + tonumber(0x4),
            flags = gg.TYPE_FLOAT,
            name = "[2] Total Money Gained",
        }
        vPool[2] = totalGain
        gg.addListItems(totalGain)
        --gg.alert("Preload Done, Preloaded Following Hacks:\n- Money\n- Total Money Gained")
        gg.clearResults()
        base = nil
        gg.searchNumber("1500", gg.TYPE_DWORD)
        gg.refineAddress("D68", -1, gg.TYPE_DWORD, gg.SIGN_EQUAL, 0, -1, 0)
        base = gg.getResults(1)
        base[1].name = "[4] Target Limit"
        vPool[3] = base[1]
        gg.addListItems(base)
        _G.currentKills = {}
        currentKills[1] = {
        address = base[1].address - tonumber(0x4),
        flags = gg.TYPE_DWORD,
        name = "[3] currentKills",
    }
        vPool[4] = currentKills
        gg.addListItems(currentKills)
        --gg.alert("Preload Done, Preloaded Following Hacks:\n- Target Limit\n- currentKills")
        gg.clearResults()
        base = nil
    
        menu = gg.prompt({
            "Enter Current Highscore",
        }, nil, {"number"})
        gg.searchNumber(menu[1], gg.TYPE_FLOAT)
        gg.refineAddress("E5C", -1, gg.TYPE_FLOAT, gg.SIGN_EQUAL, 0, -1, 0)
        base = gg.getResults(1)
        base[1].name = "[6] Highscore"
        vPool[5] = base[1]
        gg.addListItems(base)
        _G.currentScore = {}
            currentScore[1] = {
            address = base[1].address - tonumber(0x4),
            flags = gg.TYPE_FLOAT,
            name = "[5] Current Score",
        }
        vPool[6] = currentScore
        gg.addListItems(currentScore)
        _G.multiplier = {}
        multiplier[1] = {
            address = base[1].address + tonumber(0x4),
            flags = gg.TYPE_DWORD,
            name = "[7] Multiplier",
        }
        vPool[7] = multiplier
        gg.addListItems(multiplier)
        --gg.alert("Preload Done, Preloaded Following Hacks:\n- Highscore\n- Current Score\n- Multiplier")
        gg.clearResults()
        base = nil
        --print(vPool)
        --breakpoint()
        finishPreload = true
    end
    
    function breakpoint()
        gg.alert("Breakpoint")
        os.exit()
    end
    
    main()
    
    while true  
        do
            while gg.isVisible(true)
                do
                    gg.setVisible(true)
                    main()
                end
        end

    @ function mainMenu()

  15. Ive done a script thats preloading all the values i need, fair enough, but i get this error when it comes to modifying the values

     

    Here's the error:

    Script error: luaj.o: /storage/emulated/0/Download/PreloadValues(19).lua:117
    `            v[1].value = menu[1]`
    attempt to index ? (a number value) with key '1' (local 'v')

    Can someone fix this for me, this is demotivating at the moment, thanks in advance!

     

    Cant upload to file using the filepicker error -200

     

    Dm me on Discord for script or i upload it to gdrive in 20 min

    Discord: 0x14C#3100

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