-
-
Notifications
You must be signed in to change notification settings - Fork 196
Home
You may find these in the error output:
npm ERR! prebuild-install warn install No prebuilt binaries found
This means that your nodejs version is either too high or too low that frida does not provide prebuilt binaries for it. You can always compile from the source by cloning frida-node.
However, the easiest way is to change your nodejs runtime version. Usually LTS will be supported.
On macOS and linux, You can use nvm to easily deploy and switch different versions of nodejs. For example, on macOS with brew:
brew install nvm
nvm install --lts
nvm use --lts
On Windows, use the LTS installer from nodejs.
This error happens to Extension process. It's very likely that your iOS version is lower than the app actually requires.
It's possible that the app developer declared wrong MinimumOSVersion
so the app could be installed, but could not run.
You can check iOS crash logs (by using Xcode or open source tool idevicecrashreport
).
For example, here is a typical crash context that the app requires a framework (Charts.framework) that is only available on iOS 16+.
OS Version: iPhone OS 14.2.1 (18B121)
Release Type: User
Baseband Version: 1.14.06
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Description: DYLD, dyld: Using shared cache: [UUID] | Library not loaded: /System/Library/Frameworks/Charts.framework/Charts | Referenced from: /private/var/containers/Bundle/Application/[UUID]/Facebook.app/PlugIns/FBLockscreenWidgetExtension.appex/FBLockscreenWidgetExtension | Reason: image not found
Triggered by Thread: 0
Thread 0 Crashed:
0 dyld 0x0000000103383440 __abort_with_payload + 8
1 dyld 0x000000010338b6e0 abort_with_payload_wrapper_internal + 104
2 dyld 0x000000010338b714 __unw_set_reg.cold.1 + 0
3 dyld 0x000000010333105c dyld::fastBindLazySymbol(ImageLoader**, unsigned long) + 0
4 dyld 0x00000001033340b8 dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) + 6316
5 dyld 0x000000010332d258 dyldbootstrap::start(dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) + 476
6 dyld 0x000000010332d038 _dyld_start + 56
Sometimes you wanna decrypt the app and resign it to run on an unjailbroken device. This scenario hasn't been heavily tested.
Some of the apps consider this as a security threat, so their RASP (Runtime application self-protection) detect repacking by checking bundle id or code signature, etc. This may cause the app unable to run. The only way to handle this is to reverse engineer the RASP implementation case by case.
If you see such issues, I would suggest you to enable get-task-allow
in the entitlement and debug the repacked app directly with lldb. Or, at least check idevicecrashreport
to see if it's RASP that terminated the app itself.
And yeah, it's possible that bagbak rebuilt the decrypted binary with errors. In this case, I will try to fix them. But please debug first or at least give me some logs to check if it's the binary issue (not RASP).
推荐使用镜像网站 https://npmmirror.com/