Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No surefire way to bypass linker namespaces on Android 7.0 Nougat #2

Open
Chainfire opened this issue Dec 18, 2018 · 4 comments
Open

Comments

@Chainfire
Copy link
Owner

Linker namespace were introduced in Android 7.0 Nougat. The linker prevents libraries from outside of the namespace-permitted paths to be loaded into a binary.

There are a couple of ways to bypass linker namespaces, one is setting LD_LIBRARY_PATH before executing the binary that is being injected. That is not always a workable solution, though.

From Android 8.0 onwards, linker namespaces are relaxed for libraries loaded from tmpfs, so on 8.0+ we can simply move the library to be injected to /dev, but this still does not always leave us with an option for 7.0.

@Chainfire Chainfire changed the title No known way to bypass linker namespaces on Android 7.0 Nougat No surefire to bypass linker namespaces on Android 7.0 Nougat Dec 18, 2018
@Chainfire Chainfire changed the title No surefire to bypass linker namespaces on Android 7.0 Nougat No surefire way to bypass linker namespaces on Android 7.0 Nougat Dec 18, 2018
@Chainfire
Copy link
Owner Author

From other projects, it seems like moving to /dev and using /system/lib/libandroid_runtime.so's context (it varies between Android versions) may work.

@allcs21
Copy link

allcs21 commented Sep 26, 2019

Nice

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

No branches or pull requests

3 participants
@Chainfire @allcs21 and others