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 option to inject Frida without app reloading #105

Open
iamEvara opened this issue Aug 5, 2024 · 2 comments
Open

No option to inject Frida without app reloading #105

iamEvara opened this issue Aug 5, 2024 · 2 comments

Comments

@iamEvara
Copy link

iamEvara commented Aug 5, 2024

Hello,

In a lot of cases that we encountered, it was crucial to the Frida injection to be hot reloaded and not being a full restart.

This could be solved by replacing the -f flag with -p flag:

frida -U \
frida -U \
    -l ./config.js \
    -l ./ios/ios-connect-hook.js \
    -l ./native-tls-hook.js \
    -l ./native-connect-hook.js \
    -f $APP_ID

Could we have an update to the application that includes this change? It is really inconvenient to restart the app every time, losing a lot of progress and in our current use-case actually failing the whole process.

@pimterry
Copy link
Member

pimterry commented Aug 5, 2024

Hmm, interesting. You're talking about HTTP Toolkit's built-in integration presumably, not these scripts themselves?

Unfortunately intercepting a running app like this is not 100% reliable in many cases, since there may already be connections open that this won't catch (and can't catch, without resetting all the app's connections which is complicated and might cause problems in itself). That's the main reason why it currently restarts the app. There's also various more specific hooks (particularly for Android cert unpinning) that must be run before the app starts because they hook class constructors etc, so that wouldn't work there for those cases too.

If you need a more specific setup like this, I think the easiest option is to run Frida manually for your case with the options you need, instead of using the fully automated setup (by the nature of automated setups, they have to support the most common general case). Todo that, you'll just need to copy HTTP Toolkit's settings into config.js (see the instructions in the README in this repo) and then run your command above, and then all traffic will go to HTTP Toolkit and you can use all the tools there like normal. Does that work for you?

@iamEvara
Copy link
Author

iamEvara commented Aug 5, 2024 via email

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

2 participants