ChiChou / grapefruit

(WIP) Runtime Application Instruments for iOS. Previously Passionfruit
MIT License
818 stars 75 forks source link

iOS 14.2 Problem? #19

Closed idb- closed 3 years ago

idb- commented 4 years ago

Updated my iDevice to 14.2 and now GF is not operating as expected. Just received this;

Uncaught RPC error TypeError: cannot read property 'enumerateImports' of null
    at imps (src/modules/symbol.ts:57)
    at apply (native)
    at invoke (src/rpc.ts:19)
    at apply (native)
    at <anonymous> (frida/runtime/message-dispatcher.js:13)
    at c (frida/runtime/message-dispatcher.js:23)
method: symbol/imps args: [ 'CryptoKitPrivate' ]
Uncaught RPC error Error: 0x104e83158 is not executable
    at disasm (src/modules/disasm.ts:55)
    at apply (native)
    at invoke (src/rpc.ts:19)
    at apply (native)
    at <anonymous> (frida/runtime/message-dispatcher.js:13)
    at c (frida/runtime/message-dispatcher.js:23)
method: disasm args: [ '0x104e83158' ]
Uncaught RPC error Error: 0x104e836ec is not executable
    at disasm (src/modules/disasm.ts:55)
    at apply (native)
    at invoke (src/rpc.ts:19)
    at apply (native)
    at <anonymous> (frida/runtime/message-dispatcher.js:13)
    at c (frida/runtime/message-dispatcher.js:23)
method: disasm args: [ '0x104e836ec' ]

May be an issue with frida itself, but figured I would report here just in case.

Also saw this in the GF log;

Welcome to Grapefruit!
[11/19/2020, 4:28:28 PM] unexpected error: Error: TypeError: cannot read property 'enumerateImports' of null
[11/19/2020, 4:28:29 PM] unexpected error: Error: Error: 0x104e83158 is not executable
[11/19/2020, 4:28:29 PM] unexpected error: Error: Error: 0x104e836ec is not executable
ChiChou commented 4 years ago

This is a bug for restoring previous sessions. It happens when

  1. You've opened disassembler for AppA
  2. You detached the session
  3. Open another session for AppB
  4. Grapefruit tries to disassemble 0x104e83158, which is in the address space of AppA

Basically you can just ignore it and close the previous disassembler tab

idb- commented 4 years ago

This is a bug for restoring previous sessions. It happens when

1. You've opened disassembler for AppA

2. You detached the session

3. Open another session for AppB

4. Grapefruit tries to disassemble `0x104e83158`, which is in the address space of AppA

Basically you can just ignore it and close the previous disassembler tab

I'm also getting a ton of timeouts. I think this is more of a frida issue than a GF issue.

ChiChou commented 4 years ago

When?

idb- commented 3 years ago

When?

I believe it's due to a version discrepancy between the version installed on my device and the one GF uses.

ChiChou commented 3 years ago

is it solved now?

idb- commented 3 years ago

is it solved now?

Yes. Everything is working as expected now that I have upped the value for the timeout as per your suggestion on discord and also updating the frida dependency in GF to match the same version as on my device.