Skip to content
codecolorist edited this page Sep 28, 2024 · 4 revisions

FAQ

No prebuilt binaries found

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.

Executable is not within any extension

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.

#115 #120

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

Repacked app doesn't run or has black screen

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).

中国大陆用户使用 npm

推荐使用镜像网站 https://npmmirror.com/