Jump to content

Count_Nosferatu

Ascended
  • Posts

    97
  • Joined

  • Last visited

  • Days Won

    7

Posts posted by Count_Nosferatu

  1. I think that the problem has not yet been solved.
    It is not clear which range should be used.
    The script finds many ranges with ['type'] = 'rw-p'

    t = gg.getRangesList('com.ea.games.r3_row*base.apk')
    for i = 1, #t do
    	if t[i]['type'] == 'rw-p' then
    		print(t[i])
    	end
    end

     

    script-output.txt

  2. 12 minutes ago, nok1a said:

    Script

    Script ended:
    Script error: luaj.o: /storage/emulated/0/Pictures/Scripts/pointerTest.lua:67
    `    if ((a[1].address > v["start"]) and (a[1].address < v["end"])) then`
    attempt to index ? (a nil value) with key 'address' (field '1')

     

  3. 2 hours ago, nok1a said:

    It worked for Count_Nosferatu after executing the script as expected.

    Doesn't really work. It is not clear which of base apk to count from.

    gg.setRanges(gg.REGION_CODE_APP)
    t = gg.getRangesList('^/data/*com.ea.games.r3_row*base.apk*$')
    print('Found ' ..#t ..' results')
    a = 0
    for i = 1, #t do
    	if t[i]['type'] == 'rw-p' then
    		print(t[i])
    		a = a + 1
    	end
    end
    print('Found ' ..a ..' rw-p results')
    
    -- ->
    Script ended:
    Found 37 results
    { -- table(5d5648b)
    	['end'] = 133868052664320,
    	['internalName'] = '/data/app/com.ea.games.r3_row-etCOPHVNo-lYN2A8uKT50Q==/base.apk',
    	['name'] = '/data/app/com.ea.games.r3_row-etCOPHVNo-lYN2A8uKT50Q==/base.apk',
    	['start'] = 133868052647936,
    	['state'] = 'O',
    	['type'] = 'rw-p',
    }
    { -- table(f005968)
    	['end'] = 133868054269952,
    	['internalName'] = '/data/app/com.ea.games.r3_row-etCOPHVNo-lYN2A8uKT50Q==/base.apk',
    	['name'] = '/data/app/com.ea.games.r3_row-etCOPHVNo-lYN2A8uKT50Q==/base.apk',
    	['start'] = 133868054241280,
    	['state'] = 'O',
    	['type'] = 'rw-p',
    }
    { -- table(cd3f181)
    	['end'] = 133868055478272,
    	['internalName'] = '/data/app/com.ea.games.r3_row-etCOPHVNo-lYN2A8uKT50Q==/base.apk',
    	['name'] = '/data/app/com.ea.games.r3_row-etCOPHVNo-lYN2A8uKT50Q==/base.apk',
    	['start'] = 133868055474176,
    	['state'] = 'O',
    	['type'] = 'rw-p',
    }
    { -- table(4995226)
    	['end'] = 133868055621632,
    	['internalName'] = '/data/app/com.ea.games.r3_row-etCOPHVNo-lYN2A8uKT50Q==/base.apk',
    	['name'] = '/data/app/com.ea.games.r3_row-etCOPHVNo-lYN2A8uKT50Q==/base.apk',
    	['start'] = 133868055617536,
    	['state'] = 'O',
    	['type'] = 'rw-p',
    }
    { -- table(bb3be67)
    	['end'] = 133868057997312,
    	['internalName'] = '/data/app/com.ea.games.r3_row-etCOPHVNo-lYN2A8uKT50Q==/base.apk',
    	['name'] = '/data/app/com.ea.games.r3_row-etCOPHVNo-lYN2A8uKT50Q==/base.apk',
    	['start'] = 133868057923584,
    	['state'] = 'O',
    	['type'] = 'rw-p',
    }
    { -- table(a35a414)
    	['end'] = 133868058820608,
    	['internalName'] = '/data/app/com.ea.games.r3_row-etCOPHVNo-lYN2A8uKT50Q==/base.apk',
    	['name'] = '/data/app/com.ea.games.r3_row-etCOPHVNo-lYN2A8uKT50Q==/base.apk',
    	['start'] = 133868058816512,
    	['state'] = 'O',
    	['type'] = 'rw-p',
    }
    { -- table(c4d24bd)
    	['end'] = 133868059889664,
    	['internalName'] = '/data/app/com.ea.games.r3_row-etCOPHVNo-lYN2A8uKT50Q==/base.apk',
    	['name'] = '/data/app/com.ea.games.r3_row-etCOPHVNo-lYN2A8uKT50Q==/base.apk',
    	['start'] = 133868059885568,
    	['state'] = 'O',
    	['type'] = 'rw-p',
    }
    { -- table(5386ab2)
    	['end'] = 133868116672512,
    	['internalName'] = '/data/app/com.ea.games.r3_row-etCOPHVNo-lYN2A8uKT50Q==/base.apk',
    	['name'] = '/data/app/com.ea.games.r3_row-etCOPHVNo-lYN2A8uKT50Q==/base.apk',
    	['start'] = 133868116594688,
    	['state'] = 'O',
    	['type'] = 'rw-p',
    }
    Found 8 rw-p results

     

  4. Tablet Android 10 x64 with VirtualXposed, script returned this:

    Script ended:
    { -- table(8e7fafb)
    	[1] = { -- table(2608718)
    		['arch'] = 'AArch64',
    		['end'] = 522830204928,
    		['internalName'] = '/data/data/io.va.exposed/virtual/data/app/com.ea.games.r3_row/base.apk',
    		['name'] = '/data/data/io.va.exposed/virtual/data/app/com.ea.games.r3_row/base.apk',
    		['start'] = 522830127104,
    		['state'] = 'O',
    		['type'] = 'rw-p',
    	},
    } 

    It's normal ?

    print(gg.getTargetInfo()) -->
    ---
    ['nativeLibraryDir'] = '/data/user/0/io.va.exposed/virtual/data/app/com.ea.games.r3_row/lib',
    ---

     

  5. 5 hours ago, _yourram said:

    I just wanna know whether this is possible or not and if it is possible then "how"?

    Possible version of your script.
    Search is done once when script starts.
    Then it goes into invisible mode and waits for GG icon to be pressed.
    Until you select “Exit”, all found data in tables will be saved.

     
    gg.isVisible(false)
    gg.clearResults()
    gg.clearList()
    
    -------------Flying cost--------------------
    	gg.searchNumber( "-8.0004e10",gg.TYPE_FLOAT)
    -- Why do a refining if you don’t have a group search?
    	gg.refineNumber(' -8.0004e10',gg.TYPE_FLOAT)
    	Fly = gg.getResults(gg.getResultsCount())
    	gg.clearResults()
    
    -------------Energy cost--------------------
    	gg.searchNumber('55;53', gg.TYPE_FLOAT)
    -- Refining is needed here.
    	gg.refineNumber('53', gg.TYPE_FLOAT)
    	Energy = gg.getResults(gg.getResultsCount())
    	gg.clearResults()
    
    -------------Water cost--------------------
    	gg.searchNumber("7018090782024269824",gg.TTYPE_QWORD)
    -- Why do a refining if you don’t have a group search?
    	gg.refineNumber("7018090782024269824",gg.TTYPE_QWORD)
    	Water = gg.getResults(gg.getResultsCount())
    	gg.clearResults()
    
    ::retr1::
    choices = gg.choice({'Engery cost', 'Water cost', 'Exit'}, 0, '\tSelect item cost:\n⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯')
    if choices == 1 then 
    	for i = 1, #Water do
    		gg.setValues({{ address = Water[i].address, flags = gg.TTYPE_QWORD, value = 7018090361117474816 }})
    	end
    	for i = 1, #Energy do
    		gg.setValues({{ address = Energy[i].address, flags = gg.TYPE_FLOAT, value = 25 }})
    	end
    	for i = 1, #Fly do
    		gg.setValues({{ address = Fly[i].address, flags = gg.TYPE_FLOAT, value = 0 }})
    	end
    	gg.toast('Engery cost')
    end
    if choices == 2 then
    	for i = 1, #Fly do
    		gg.setValues({{ address = Fly[i].address, flags = gg.TYPE_FLOAT, value = -8.0004e10 }})
    	end
    	for i = 1, #Energy do
    		gg.setValues({{ address = Energy[i].address, flags = gg.TYPE_FLOAT, value = 53 }})
    	end
    	for i = 1, #Water do
    		gg.setValues({{ address = Water[i].address, flags = gg.TTYPE_QWORD, value = 7018090782024269824 }})
    	end
    	gg.toast('Water cost')
    end
    if choices == nil or choices == 3 then
    	gg.setVisible(true)
    	os.exit()
    end
    while not gg.isVisible() do gg.sleep(100) end
    gg.setVisible(false)
    goto retr1
    os.exit()

     

  6. 30 minutes ago, _yourram said:

    can you explain me in depth about this script function what is happening in this script

     

    local resultnumber = {1}
    print(resultnumber)
    
    --> { -- table(d2fd880)
    -->	[1] = 1,
    --> }

     

  7. 3 hours ago, _yourram said:

    I have found another way to do it but while doing it I'm facing a problem, gg.loadResults(gg.getListItems()) is giving me results but gg.loadResults(troll) is not giving me results.

    See the description of the gg.loadResults() command.
    https://gameguardian.net/help/classgg.html#ade5f40667e80938ba1678d0623fe7b82
    Existing search results will be cleared.
    After executing gg.loadResults(gg.getListItems()) - "list" table is empty.
    In the "troll" table, results of last search.gg.searchNumber()  and gg.refineNumber()
    You don't check the number of results found. Maybe it doesn't find anything.

    PS Script example is clearer if you highlight it as “code” 🙂

  8. gg.setVisible(false)
    --
    -- Put Your first process
    --
    while gg.isVisible() == false do
    	if gg.isVisible() == true then
    		break
    	end
    	gg.sleep(100)
    end
    
    gg.setVisible(false)
    --
    -- Put Your second process
    --

     

  9. 3 hours ago, _yourram said:

    is it useless to save values with different names? because when we use gg.loadResults(gg.getListItems(energy)) or gg.loadResults(gg.getListItems(health)) it gets all the values, well there is also an option for this we can use "refineNumber" but still it is useless for values which have same value.

    So you don't need to use gg.addListItems()

    Make three tables: control, health and energy. And process what you need in each table.

    Main use of gg.addListItems() is to freeze values.

  10. 1 hour ago, _yourram said:

    For example, what kind of script commands do I need↓

    gg.setVisible(false)
    
    gg.searchNumber('100;140', gg.TYPE_FLOAT) -- ???
    -- Do you really want to search for two 4 byte numbers in 512 byte range?
    gg.refineNumber('100', gg.TYPE_FLOAT)
    controlvalue = gg.getResults(999) -- ???
    -- If you need only first variable, why fill the table with 999 numbers?
    -- May be need controlvalue = gg.getResults(1)
    gg.clearResults()
    
    choice = gg.choice({'Edit it to 100','Edit it to -1','Edit it back'})
    	
    	if choice == 0 then
    -- insert cancel message in command gg.alert() or gg.toast()
    		gg.setVisible(true)
    		os.exit()
    	end
    		
    	if choice == 1 then
    		gg.setVlaues({{ address = controlvalue[1].address, flags = gg.TYPE_FLOAT, value = -100 }})
    	end
    
    	if choice == 2 then
    		gg.setVlaues({{ address = controlvalue[1].address, flags = gg.TYPE_FLOAT, value = -1 }})
    	end
    
    	if choice == 3 then
    		gg.setVlaues({{ address = controlvalue[1].address, flags = gg.TYPE_FLOAT, value = 100 }})
    	end
    
    gg.setVisible(true)
    os.exit()

     

  11. Which of these libraries do you mean?
    From the beginning or from end of the library?
    For what architecture? x32 or x64?

    print(gg.getRangesList('libRealRacing3.so*'))
    
    End of script:
    { -- table(acc9e80)
    	[1] = { -- table(86aacb9)
    		['end'] = 87629824,
    		['internalName'] = '/data/app/com.ea.games.r3_row-2/lib/arm/libRealRacing3.so',
    		['name'] = '/data/app/com.ea.games.r3_row-2/lib/arm/libRealRacing3.so',
    		['start'] = 67108864,
    		['state'] = 'Xa',
    		['type'] = 'r--p',
    	},
    	[2] = { -- table(62218fe)
    		['end'] = 88342528,
    		['internalName'] = '/data/app/com.ea.games.r3_row-2/lib/arm/libRealRacing3.so',
    		['name'] = '/data/app/com.ea.games.r3_row-2/lib/arm/libRealRacing3.so',
    		['start'] = 87629824,
    		['state'] = 'Cd',
    		['type'] = 'r--p',
    	},
    	[3] = { -- table(296385f)
    		['end'] = 88399872,
    		['internalName'] = '/data/app/com.ea.games.r3_row-2/lib/arm/libRealRacing3.so',
    		['name'] = '/data/app/com.ea.games.r3_row-2/lib/arm/libRealRacing3.so',
    		['start'] = 88342528,
    		['state'] = 'Cd',
    		['type'] = 'rw-p',
    	},
    	[4] = { -- table(79d22ac)
    		['end'] = 88563712,
    		['internalName'] = '/data/app/com.ea.games.r3_row-2/lib/arm/libRealRacing3.so:bss',
    		['name'] = '',
    		['start'] = 88399872,
    		['state'] = 'Cb',
    		['type'] = 'rw-p',
    	},
    }

     

  12. WORD, DWORD, QWORD is hexadecimal number representation format.
    WORD - 2 bytes long, (max 65 535)
    DWORD - 4 bytes, (max 4 294 967 295)
    QWORD - 8 bytes, (max 18 446 744 073 709 551 615)
    On your screenshot first address xx8C, second address xx8E
    From xx8C to xx8E - 2 bytes. It's format WORD
    If you use next two bytes, this will be format DWORD.
    Number 3198 looks same in WORD and DWORD formats.  (0x0C7E or 0x00000C7E)
    You can write in cell xx8C, number in format DWORD
    But if you write number in QWORD format, you will change the following data.
    This can lead to problems in 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.