sensepost / sensepost/objection
`objection explore --startup-command "ios sslpinning disable"` race condition
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 9.4k
- Forks
- 1k
- Avg merge
- 14d 5h
- Merged PRs (30d)
- 1
Description
Is your feature request related to a problem? Please describe.
Currently, as soon as objection connects to the Frida server, lldb/gdb will cause the app to continue with the execution. Apparently, there is no way to prevent this behavior.
Describe the solution you'd like
The app should not run until the hooks are installed properly. Preferably objection could also have a flag --pause that doesn't tell Frida to run the app, to give it some time to initialize... it will continue its execution after entering the command run or proceed-launch. I feel like this might be impossible to fix as some requests are threaded, maybe. On the other hand, it could be possible because threads are launched after the initialization of the main thread.
Describe alternatives you've considered
Using breakpoints in gdb/lldb but of course they will pause Frida.Framework's execution too.
Additional context
Some apps do a web request very quickly, which will cause severe issues if SSL pinning is not disabled using hooks. In some cases the app will not continue with the launch. That race condition is nasty, as it sometimes takes 10-20 runs until the hooks are added before the HTTP request being executed.
I have good knowledge in Typescript and Python. Maybe someone can point me to the connect procedure or is at least ready to discuss this feature with me.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the connect procedure and handling of the objection explore --startup-command path, focusing on when the app is allowed to continue relative to hook installation. Clarify the design for a --pause option and its run or proceed-launch commands; done means startup requests cannot race ahead of the hooks and the intended resume behavior is documented and verified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, python
- Domain
- cli, mobile, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100