Skip to content

Conversation

@WorksButNotTested
Copy link
Contributor

No description provided.

@vanhauser-thc
Copy link
Member

why is that only for arm64? and what if a user wants to use a map size of 128kb - does this still work then?

@WorksButNotTested
Copy link
Contributor Author

I’m not certain if the other architectures are affected, but leave the issue open for me and I’ll check.

arm64 has two different ways of encoding the instrumentation at the top of each block. One uses relative offsets (which can only cope with the map offset being 64k) and the other uses absolute offsets stored alongside the code which can cope with any size. It selects which encoding to use on a block by block basis.

@vanhauser-thc
Copy link
Member

I will leave this open for now until someone can do proper testing

@WorksButNotTested
Copy link
Contributor Author

WorksButNotTested commented Aug 30, 2023

I've confirmed that things work ok with large map sizes on x86, x64, arm and aarch64 now. I have also added a fix to util/frida_get_symbol_addr.sh as PIEs on aarch64 are identified as shared object rather than pie by the file utility. So this should be ready to merge now.

@vanhauser-thc
Copy link
Member

Great, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants