Jump to content
  • 1

Game lib


MarioRossi93i
 Share

Question

i have a problem (ok more than one 😁). i can t find game lib in /data/game/lib nor in process/range list when i run gg, but it is present in apk. so i can t use chainer anymore because cd and cb are empty. any suggestion?

sorry for my bad english

Link to comment
Share on other sites

Recommended Posts

  • 0

Hi, The libs library usually is protected ( encrypted)

So just download ApktoolM and follow the instructions

- install

- Give permissions to access date etc..

- select application menu

- select your game, app

- one press on it and the menu will appear

- select Decompile-Decompile resources
If the app have a red  writing below it says "Split" the menu will say Decompile resources

Or if it not, It will say Decompile

- wait tell the process complete

- Open MT or whatever files manager go ahead to Apktool_M Folder

- You will find the lib files

instructions

 

And the decode is another story :⁠-⁠)

 

Edit: maybe the game don't use unreal engine..

Edited by OREW
I misunderstood the question...
Link to comment
Share on other sites

  • 0
5 hours ago, MarioRossi93i said:

i have a problem (ok more than one 😁). i can t find game lib in /data/game/lib nor in process/range list when i run gg, but it is present in apk. so i can t use chainer anymore because cd and cb are empty. any suggestion?

sorry for my bad english

If you referring to split apk that is showing in the process/range list. You have to place the executables from the apk in to the /data/game/lib/ folder. Then GG will find the right executable.

Link to comment
Share on other sites

  • 0

in the previous version of the game the library was located in

/data/app/com.game/.../lib.so

and of course it was in the list of ranges in gg. now it seems that the game no longer installs it and the game works without this library as this library does not exist in the game directories or in memory. However, the libraries are present in the installation apk file. both 32 and 64 bit. I can only find the apk file in memory in the gg list. I hope I was more clear

Link to comment
Share on other sites

  • 0
6 minutes ago, MarioRossi93i said:

in the previous version of the game the library was located in

/data/app/com.game/.../lib.so

and of course it was in the list of ranges in gg. now it seems that the game no longer installs it and the game works without this library as this library does not exist in the game directories or in memory. However, the libraries are present in the installation apk file. both 32 and 64 bit. I can only find the apk file in memory in the gg list. I hope I was more clear

Oke, try moving all the files that you find in the lib of installation apk to /data/app/com.game/.../ and see if works.

Link to comment
Share on other sites

  • 0

f***, it works!!!

the problem however is that not many will be able to copy the library into the /data/app directory on Android, so I can't use the chainer for scripts.
half a victory for now, thank you very much👍

Link to comment
Share on other sites

  • 0
4 hours ago, MarioRossi93i said:

f***, it works!!!

the problem however is that not many will be able to copy the library into the /data/app directory on Android, so I can't use the chainer for scripts.
half a victory for now, thank you very much👍

Yeah, i had this issue as well and had to tackle it somehow using strings and pointers so that script works for all. 

Also, i downloaded your game and it's not a issue of split apk. But it uses the executables that are located at base.apk. So the issue is the same. No executable name

What's the name of the executable you working with?

Screenshot_2024-01-17-04-12-31-246_com.f1player.jpg

Edited by nok1a
Link to comment
Share on other sites

  • 0

Actually...i am not sure if you even need strings a pointers. The size of the executable is the same for everyone that has exact same game version. So what you could do is use gg.getRangeList() and check if the END address minus START address is equal to the size of your executable(only the Xa part of the executable) because the chance that there are 2 executables of the same size is really low. If size is same then that's your correct executable.

Edit: This doesn't work

Edited by nok1a
Link to comment
Share on other sites

  • 0
On 1/17/2024 at 1:06 AM, MarioRossi93i said:

i have a problem (ok more than one 😁). i can t find game lib in /data/game/lib nor in process/range list when i run gg, but it is present in apk. so i can t use chainer anymore because cd and cb are empty. any suggestion?

sorry for my bad english

Just copy lib

Link to comment
Share on other sites

  • 0
On 1/16/2024 at 11:45 PM, MarioRossi93i said:

f***, it works!!!

the problem however is that not many will be able to copy the library into the /data/app directory on Android, so I can't use the chainer for scripts.
half a victory for now, thank you very much👍

Not sure which part of the chainer script that has been included in the script, but i modified the getRanges() function little bit.

function getLib()
  gg.setRanges(gg.REGION_CODE_APP)
  gg.searchNumber(":libRealRacing3.so", gg.TYPE_BYTE)
  local a = gg.getResults(1)
  gg.clearResults()
  local t = gg.getRangesList()
  local startAddress = {}
  for i, v in ipairs(t) do
    if ((a[1].address > v["start"]) and (a[1].address < v["end"])) then
      startAddress = {t[i], t[i+1], t[i+2]}
    end
  end
  return startAddress
end

function getRanges()
	local archs = {[0x3] = 'x86', [0x28] = 'ARM', [0x3E] = 'x86-64', [0xB7] = 'AArch64'}
	local ranges = {}
	local t = getLib()
	local arch = 'unknown'
	for i, v in ipairs(t) do
		if v.type:sub(2, 2) == '-' then
			local t = gg.getValues({{address = v.start, flags = gg.TYPE_DWORD}, {address = v.start + 0x12, flags = gg.TYPE_WORD}})
			if t[1].value == 0x464C457F then
				arch = archs[t[2].value]
				if arch == nil then arch = 'unknown' end
			end
		end	
		if v.type:sub(2, 2) == 'w' then
			v.arch = arch
			table.insert(ranges, v)
		end
	end
	return ranges
end

local ranges = getRanges()

print(ranges)

Hope it works.

Edited by nok1a
Changed <= to <. And >= to >
Link to comment
Share on other sites

  • 0

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',
---

 

Edited by Count_Nosferatu
Link to comment
Share on other sites

  • 0
4 hours ago, Count_Nosferatu said:

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',
---

 

Yes, for the chainer it is.

Link to comment
Share on other sites

  • 0
12 hours ago, Count_Nosferatu said:

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',
---

 

I only edited part of the chainer script since i dunno which part are used in the script. But i guess the issue is with the getRanges() function since you have to input the path name to get right executable.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

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