johnno1962 / InjectionIII

Re-write of Injection for Xcode in (mostly) Swift
MIT License
3.99k stars 318 forks source link

dylib can't be opened #178

Closed nickgzzjr closed 4 years ago

nickgzzjr commented 4 years ago

When loading .dylib macOS throws an error

"eval101.dylib" can't be opened because Apple cannot check it for malicious software.

Then in the console I get:

šŸ’‰ *** dlopen() error: dlopen(/Users/nico/Library/Containers/com.johnholdsworth.InjectionIII/Data/eval109.dylib, 2): no suitable image found.  Did find:
    /Users/nico/Library/Containers/com.johnholdsworth.InjectionIII/Data/eval109.dylib: code signature in (/Users/nico/Library/Containers/com.johnholdsworth.InjectionIII/Data/eval109.dylib) not valid for use in process using Library Validation: library load disallowed by system policy ***

I am using Xcode 11, iOS 13.0 and I am on macOS 10.15 beta.

nickgzzjr commented 4 years ago

Actually I was able to bypass this issue by allowing apps from "Anywhere" to run.

https://techsviewer.com/allow-installation-of-apps-from-anywhere-in-macos-mojave/

johnno1962 commented 4 years ago

šŸ˜±, Thatā€™s a new one, the dylib should be self signing. Iā€™m assuming this is an iOS app as opposed to a mac one. Which version of the Catalina beta is this? Any ideas @zenangst?

nickgzzjr commented 4 years ago

That is correct, this was on an iOS app, I even tried the GettingStarted project, and I got the same issue. I am on Catalina Beta 9 (19A573a).

nickgzzjr commented 4 years ago

Also now I am getting this issue

šŸ’‰ *** dlopen() error: dlopen(/Users/nico/Library/Containers/com.johnholdsworth.InjectionIII/Data/eval101.dylib, 2): Symbol not found: ___llvm_profile_runtime
  Referenced from: /Users/nico/Library/Containers/com.johnholdsworth.InjectionIII/Data/eval101.dylib
  Expected in: flat namespace
 in /Users/nico/Library/Containers/com.johnholdsworth.InjectionIII/Data/eval101.dylib ***

From reading other issues, you have suggested disabling code coverage support in Build Settings, but it doesn't seem to be doing the trick.

johnno1962 commented 4 years ago

Is this an Xcode Beta, if so which one exactly?

johnno1962 commented 4 years ago

Try cleaning and rebuilding the project.

nickgzzjr commented 4 years ago

Not on Xcode Beta just Xcode Version 11.0 (11A420a).

Also I just verified and InjectionIII does work on GettingStarted project.

johnno1962 commented 4 years ago

Thatā€™s good news. I donā€™t know what exactly ā€œa process using Library Validationā€ is at this stage. Thanks for the workaround but I canā€™t say itā€™s recommended for you to hove to set gatekeeper to ā€œAnywhere which hasnā€™t been necessary up to now..

nickgzzjr commented 4 years ago

It seems to be rejecting the self signing certificate.

Also I tried cleaning and rebuilding the project but still getting Symbol not found: ___llvm_profile_runtime

nickgzzjr commented 4 years ago

Just for the record, I was able to get rid of the Symbol not found: ___llvm_profile_runtime by going into "Edit Scheme", "Test", "Options", and toggled "Gather coverage for" off.

At first I was going into the Build Settings, and setting "Enable Code Coverage Support" to "No" which doesn't fix this issue.

johnno1962 commented 4 years ago

One problem down. The README.md is incorrect the moment? Seems like you are building your own version of InjectionIII so perhaps you could try one thing for me. In signer/SignerService.m could you try changing the signing from ā€˜-ā€˜ to ā€˜Your signing identityā€™ and see if it resolves the dyload issue with ā€œAnywhereā€ off. If this works we can parse the project file and use this instead.

nickgzzjr commented 4 years ago

The README.md is slightly off, it says Edit Scheme -> Test -> Info -> Code Coverage should be Edit Scheme -> Test -> Options -> Code Coverage.

So I tried that and I also tried changing some codesign parameters but no luck. I did some searching on the web and I keep reading something about having to get it "notarized" by an Apple server.

johnno1962 commented 4 years ago

Iā€™ve updated the README https://github.com/johnno1962/InjectionIII/commit/379821b68d6fdbfe07bfe7e3ecfe5984669fe87e (was this an Xcode 11 thing?). Thanks for trying the code sign - looks like notarizing is going to cause us some problems with Catalina :( Dynamic loading is getting progressively more difficult with each release. I may file a radar but I wonder if it will be supported.

nickgzzjr commented 4 years ago

Not sure when that changed. I hadn't had to turn off Code Coverage lol

Yeah seems like they really want to protect against that. I saw some other projects have already filed a radar, so it might be worth a try.

johnno1962 commented 4 years ago

Iā€™ve created a simple macOS project that tests bundle loading you could uudecode to get the zip:

begin 644 LoadingTest.zip
M4$L#!`H``````)J%0D\````````````````,`!``3&]A9&EN9U1E<W0O55@,
M`)?(E%WSQ91=]0$4`%!+`P0*``````#7AD)/````````````````%P`0`$QO
M861I;F=497-T+U1E<W1"=6YD;&4O55@,`)?(E%U%R)1=]0$4`%!+`P04``@`
M"`#7AD)/````````````````(P`0`$QO861I;F=497-T+U1E<W1"=6YD;&4O
M5&5S=$)U;F1L92YM55@,`$K(E%U%R)1=]0$4`%V./0K"0!"%^SG%(S8&(1O3
MB8T_31"QT0M$=C"!S4[8K!$1#^0U/)EKTH1,-Q_?FWE*D5+`A5N_NUMM.*DG
M(*P]V3LN/&M<GSA(:9&+T>U#G"\A%FFFEJG*TN4J&6QIGJZZE1[?#_YX&DJP
M-0:]TL)QRZYC_<\2S:JZ"0JB4:LR(MH$;KAFZPM?A9^CCK3`O)-*QT8*C1<A
MS.E\E-M\$^5LC&`0HWA-[W")K:8?4$L'"+E)2%FM````^P```%!+`P0*````
M```$AT)/````````````````"0`0`%]?34%#3U-8+U58#`"7R)1=E\B47?4!
M%`!02P,$"@``````!(="3P```````````````!4`$`!?7TU!0T]36"],;V%D
M:6YG5&5S="]56`P`E\B479?(E%WU`10`4$L#!`H```````2'0D\`````````
M```````@`!``7U]-04-/4U@O3&]A9&EN9U1E<W0O5&5S=$)U;F1L92]56`P`
ME\B479?(E%WU`10`4$L#!!0`"``(`->&0D\````````````````N`!``7U]-
M04-/4U@O3&]A9&EN9U1E<W0O5&5S=$)U;F1L92\N7U1E<W1"=6YD;&4N;558
M#`!*R)1=1<B47?4!%`!C8!5C9V!B8/!-3%;P#U:(4(`"D!@#)Q`;,3`P2@-I
M()_1EX$HX!@2$@1A@74\`>),-"5,4'$!!@:IY/Q<O<2"@IQ4O9S$XI+2XM24
ME,225.6`8*C:+T`<R<!@CE"7FUJ2"%23:)7MZ^*3F)2:$Y]BDF%<6&:4DIIK
MG&^6G&:<EY^?EYM;DI66"M0L?&Q*+,B@-LV[0B#Z$^,D1^]%=SMJ)>L4?_::
M/)@ES^QF\7)+=[QJE8/7LX\<*B[^KNIK3@;.OK%.SRJEHO5LB\24<Y]=TT*T
M['LO/EHF<<;MV*]R=7;?M5O9>J/W>.[Y<W&BJ_J_9PE[`%!+!PB2D58;]0``
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
M;V%D:6YG5&5S="],;V%D:6YG5&5S="YX8V]D97!R;VHO>&-U<V5R9&%T82]J
M;VAN:&]L9'-W;W)T:"YX8W5S97)D871A9"]X8W-C:&5M97,O>&-S8VAE;65M
M86YA9V5M96YT+G!L:7-T55@,`//%E%WSQ91=]0$4`*V0P6^",!3&S_)7U'J&
MI[=EJ9@I+C,A&PGEL(N&T!<A`B5M-_2_7RM#8[+C3GU]_7[?]U[9ZMS4Y!N5
MKF2[I(M@3@FVA115>US2C+_Z3W05>FP:?6SX9[(E75UI0Y)L'>\VA/H`+UU7
M(T#$(Y+$NY03ZP&P?:>$EL9TSP!]WP>Y4P6%;)Q00Z)DA\I<8FOF6R`01E`;
M,[@_C&.[HBI,Z$W8"2]A6I388*91I28WR,`U[=NO9A#%,G<+<-0F.!?ZBASV
M,UWF"L5L?QBI.S9P4@E4;U5K;H()LS<\H@KG#,;2@?`0Z)+67ZVP._Y7WN+O
MO+&XG]<_"[T?4$L'"(MHHT[X````R@$``%!+`P0*``````"$A4)/````````
M````````-@`0`$QO861I;F=497-T+TQO861I;F=497-T+GAC;V1E<')O:B]P
M<F]J96-T+GAC=V]R:W-P86-E+U58#`"7R)1=R,647?4!%`!02P,$%``(``@`
MA(5"3P```````````````$X`$`!,;V%D:6YG5&5S="],;V%D:6YG5&5S="YX
M8V]D97!R;VHO<')O:F5C="YX8W=O<FMS<&%C92]C;VYT96YT<RYX8W=O<FMS
M<&%C961A=&%56`P`R,647<C%E%WU`10`L[&OR,U1*$LM*L[,S[-5,M0S4%)(
MS4O.3\G,2[=5"@UQT[50LK?CL@G/+\HN+DA,3N524(`I5[!5`&NP`XG9N&7F
MI`:EIH'80)"3GYQ8`E53G)J39N63GP@R,R2UN$2O`FA^:D%1?A94JSY4+]`>
M?;A%=EP`4$L'"&/#F]AU````G````%!+`P0*``````"$A4)/````````````
M````00`0`$QO861I;F=497-T+TQO861I;F=497-T+GAC;V1E<')O:B]P<F]J
M96-T+GAC=V]R:W-P86-E+WAC=7-E<F1A=&$O55@,`)?(E%W(Q91=]0$4`%!+
M`P0*``````#<AD)/````````````````7``0`$QO861I;F=497-T+TQO861I
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
M(<TIS37-#YH[FI\T/VO^T#S5_*WY1_,B1A#C'N.;M2QK1=:6K&U9.[-V9QW(
M.IQU-.NKK--99[.N9GV7=3/K5M:CK-^S'F?]F?4LZY]L?K8PVR7;+5N:[9,M
MRP[*CLZ.R6Z?'9^=F)V<W2F[2W9^=E&V(W*E[#7'1ZTCU^Q!_P=02P<(X?7E
MXSDT``!=4@``4$L#!`H``````(2%0D\```````````````!#`!``3&]A9&EN
M9U1E<W0O3&]A9&EN9U1E<W0N>&-O9&5P<F]J+W!R;VIE8W0N>&-W;W)K<W!A
M8V4O>&-S:&%R961D871A+U58#`"7R)1=R,647?4!%`!02P,$%``(``@`A(5"
M3P```````````````%L`$`!,;V%D:6YG5&5S="],;V%D:6YG5&5S="YX8V]D
M97!R;VHO<')O:F5C="YX8W=O<FMS<&%C92]X8W-H87)E9&1A=&$O241%5V]R
M:W-P86-E0VAE8VMS+G!L:7-T55@,`,C%E%W(Q91=]0$4`%6.S0Z",!`&S_(4
MM7=8?R[&5(Q23$A02808CX0VV@BT*:OHVUOTY'4S,_NQ]:NIR5/:3NEV1:?!
MA!+95EJH]KJB1;[S%W0=>FS,CU%^R6)B:M4AR8IMFD2$^@`;8VH)P'-.LC0Y
MY<0U`.(#)?2&:)8`?=\'Y4`%E6X&L(/,:B,MOE,7\YT0"!34O?G5_^:XJU`5
MAMZ(W>4[3'C,E8AT8QXH]V4UGVT5GDO;NL$,!L*!:!\2G`@_D\&W&WH?4$L'
M"'<5<KB\````[@```%!+`P0*```````$AT)/````````````````*P`0`%]?
M34%#3U-8+TQO861I;F=497-T+TQO861I;F=497-T+GAC;V1E<')O:B]56`P`
ME\B479?(E%WU`10`4$L#!!0`"``(`(2%0D\```````````````!``!``7U]-
M04-/4U@O3&]A9&EN9U1E<W0O3&]A9&EN9U1E<W0N>&-O9&5P<F]J+RY?<')O
M:F5C="YX8W=O<FMS<&%C9558#`"7R)1=R,647?4!%`!C8!5C9V!B8/!-3%;P
M#U:(4(`"D!@#)Q`;`7$1$(/X2QB(`HXA(4%0)DC'`B!F05/"B!"7"DDM+@G(
M2<PK]DDL+@DM2"]*3$EUSDA-S@8I-#34,P0`4$L'"&+L@L=5````I````%!+
M`P04``@`"`#+AD)/````````````````+``0`%]?34%#3U-8+TQO861I;F=4
M97-T+RY?3&]A9&EN9U1E<W0N>&-O9&5P<F]J55@,`)?(E%TMR)1=]0$4`&-@
M%6-G8&)@\$U,5O`/5HA0@`*0&`,G$!L!<1T0@_@;&(@"CB$A05`F2,<"(!9`
M4\*($)=*SL_52RPHR$G5RTDL+BDM3DU)22Q)50X(!BFT.3$E%D3??;:1%40#
M`%!+!PAUE_FP70```+````!02P,$"@``````AX9"3P```````````````!@`
M$`!,;V%D:6YG5&5S="],;V%D:6YG5&5S="]56`P`E\B47:['E%WU`10`4$L#
M!!0`"``(`("%0D\````````````````E`!``3&]A9&EN9U1E<W0O3&]A9&EN
M9U1E<W0O07!P1&5L96=A=&4N:%58#`!&R)1=O\647?4!%`!=CD$*PC`01?<Y
MQ8#[INU.$6G1A8C41;U`VHQ-)&9"&I0>R6MX,M.((&X&_O_OP7#..`>HG=NA
MP4$$S%1JCB2DML,9QQ!SJK8>XRZAF^!`RL*>C!P?Y(,"LI"7O,AYF1?+[$.3
MF[P>5(#7$^;Z7\J@-@82,H+'$?T=Y>PRMM`W%Q%8;ZDGP=/-U(:Q2MN`_B)Z
M_'T95M"TI^Z*?52:-BY&]R)HLE\BJJQ"*QE[`U!+!P@.(Q\#K0```/$```!0
M2P,$"@``````!(="3P```````````````"$`$`!?7TU!0T]36"],;V%D:6YG
M5&5S="],;V%D:6YG5&5S="]56`P`E\B479?(E%WU`10`4$L#!!0`"``(`("%
M0D\````````````````P`!``7U]-04-/4U@O3&]A9&EN9U1E<W0O3&]A9&EN
M9U1E<W0O+E]!<'!$96QE9V%T92YH55@,`$;(E%V_Q91=]0$4`&-@%6-G8&)@
M\$U,5O`/5HA0@`*0&`,G$!L!<240@_BK&8@"CB$A05`F2,<<(.9'4\*($!=/
MSL_52RPHR$G5"TFM*''-2\Y/R<Q+!TJ6EJ3I6E@;&IL8&9I;6I@``%!+!PAP
M&HW`70```*L```!02P,$"@``````A(5"3P```````````````"@`$`!,;V%D
M:6YG5&5S="],;V%D:6YG5&5S="]!<W-E=',N>&-A<W-E=',O55@,`)?(E%W'
MQ91=]0$4`%!+`P0*``````"$A4)/````````````````.P`0`$QO861I;F=4
M97-T+TQO861I;F=497-T+T%S<V5T<RYX8V%S<V5T<R]!<'!)8V]N+F%P<&EC
M;VYS970O55@,`)?(E%W'Q91=]0$4`%!+`P04``@`"`"$A4)/````````````
M````2``0`$QO861I;F=497-T+TQO861I;F=497-T+T%S<V5T<RYX8V%S<V5T
M<R]!<'!)8V]N+F%P<&EC;VYS970O0V]N=&5N=',N:G-O;E58#`"7R)1=Q\64
M7?4!%`"MD\$*PR`,AN]]"LG9BRF5L5<9.TCK-F%6J-L(+;[[U&YCE_8@'A+P
M#_GX"+@TC(&QZJH]L",[Q2=C2^YI,!AG4PY6]<"_L3>SSJF0).1?WJO[9T"0
MP\`K`;$0V"*U6--P$UAJ*/!`L:I><1M9:HF=I%@U+7>0I9:=0(I5TW('^;.,
M_<SS1QHO+HU6.KSTY(T;4R+6?5#/Q\U->9UZ-^A$"$UX`U!+!P@X#H$^I```
M`(<#``!02P,$%``(``@`@(5"3P```````````````#4`$`!,;V%D:6YG5&5S
M="],;V%D:6YG5&5S="]!<W-E=',N>&-A<W-E=',O0V]N=&5N=',N:G-O;E58
M#`"7R)1=O\647?4!%`"KYE)04,K,2\M74K!2J`9R@-RRU*+BS/P\D(BA#D0H
ML;0D([\()*)4D9R?DJH$%*[EJ@4`4$L'"`6LP_PT````/@```%!+`P0*````
M```$AT)/````````````````,0`0`%]?34%#3U-8+TQO861I;F=497-T+TQO
M861I;F=497-T+T%S<V5T<RYX8V%S<V5T<R]56`P`E\B479?(E%WU`10`4$L#
M!!0`"``(`("%0D\```````````````!``!``7U]-04-/4U@O3&]A9&EN9U1E
M<W0O3&]A9&EN9U1E<W0O07-S971S+GAC87-S971S+RY?0V]N=&5N=',N:G-O
M;E58#`"7R)1=O\647?4!%`!C8!5C9V!B8/!-3%;P#U:(4(`"D!@#)Q`;`7$E
M$(/XJQF(`HXA(4%0)DC''"#F1U/"B!`73\[/U4LL*,A)U0M)K2AQS4O.3\G,
M2P=*EI:DZ5I8&QJ;&!F:6UJ8``!02P<(<!J-P%T```"K````4$L#!!0`"``(
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
M```````B`!``3&]A9&EN9U1E<W0O3&]A9&EN9U1E<W0O26YF;RYP;&ES=%58
M#`".R)1=Q\647?4!%`!]E-%NFS`4AJ^7I_!0+]J+X&07TS;15`2<E`T("E"U
M5Y$+;F(5;&2;I#S27F-/5I-DDP8EE^#__\[Y#\=8=V]E`?9$2,K9K3$U)P8@
M+.,Y9=M;(TT6XV_&W6QD?7973O(4(5`55"H0I7/?<X`QAM"NJH)`Z"8NB'PO
M3H!F0(A"`Q@[I:H?$!X.!Q.W*C/C92N4,!*\(D(UOH:-M<',56[H,B?Z?^WH
MMSG-U&STR7HES<Q9S&N6%\0E>U+PJB1,K<E6JRW8'FN55$(W/[NZ=M$#\E=1
M@,)DX]OA,K67Z,:"Y_,.#[V1K%;XN2!]$'I$3IK8<Q]M0CL89G@99PO:)PSJ
M<]T]?:%$]&M&ZY6;.LEFGH:NKNNY.H6W\-!ZN#I[X:Z>E)X%%LW#:89=\%=S
M,N0/<?E!]K]]7`P>X>P5;TG25!<(YR21[?S2'V+3;M,@,-YQH<X1XJ.BRYT.
M!QF(/NWJ_3B@C)9U&3=2D7+`=G4=V,XJ?MRX*/)73\=M2NSU$B6][L/XOBXQ
M6Q.<MXOD\*H1=+M37>2_`_#G-_@RF7X'/_F.@7M>Y/*@@^],8!<%.$HD$$02
ML2>YV2\78,I"^OS1SK5'`6%UWQ3IQXQ6N'`*+&77%\;MA:895L=9=,UQ756Z
M0VG7BI=:DR5$E)2=U6>4$C6!?4]<YWKA+Q@L>+KI%CS^!V:C=U!+!P@#%FDM
M!@(``)X$``!02P$"%0,*``````":A4)/````````````````#``,````````
M``!`[4$`````3&]A9&EN9U1E<W0O55@(`)?(E%WSQ91=4$L!`A4#"@``````
MUX9"3P```````````````!<`#```````````0.U!.@```$QO861I;F=497-T
M+U1E<W1"=6YD;&4O55@(`)?(E%U%R)1=4$L!`A4#%``(``@`UX9"3[E)2%FM
M````^P```",`#```````````0*2!?P```$QO861I;F=497-T+U1E<W1"=6YD
M;&4O5&5S=$)U;F1L92YM55@(`$K(E%U%R)1=4$L!`A4#"@``````!(="3P``
M``````````````D`#```````````0/U!C0$``%]?34%#3U-8+U58"`"7R)1=
ME\B475!+`0(5`PH```````2'0D\````````````````5``P``````````$#]
M0<0!``!?7TU!0T]36"],;V%D:6YG5&5S="]56`@`E\B479?(E%U02P$"%0,*
M```````$AT)/````````````````(``,``````````!`_4$'`@``7U]-04-/
M4U@O3&]A9&EN9U1E<W0O5&5S=$)U;F1L92]56`@`E\B479?(E%U02P$"%0,4
M``@`"`#7AD)/DI%6&_4```!-`0``+@`,``````````!`I(%5`@``7U]-04-/
M4U@O3&]A9&EN9U1E<W0O5&5S=$)U;F1L92\N7U1E<W1"=6YD;&4N;558"`!*
MR)1=1<B475!+`0(5`Q0`"``(`*N%0D_-O:DZMP````X!```C``P`````````
M`$"D@;8#``!,;V%D:6YG5&5S="]497-T0G5N9&QE+U1E<W1"=6YD;&4N:%58
M"`"7R)1=$L:475!+`0(5`Q0`"``(`*N%0D]P&HW`70```*L````N``P`````
M`````$"D@<X$``!?7TU!0T]36"],;V%D:6YG5&5S="]497-T0G5N9&QE+RY?
M5&5S=$)U;F1L92YH55@(`)?(E%T2QI1=4$L!`A4#%``(``@`FH5"3_(>?EFE
M`0``=@,``"$`#```````````0*2!EP4``$QO861I;F=497-T+U1E<W1"=6YD
M;&4O26YF;RYP;&ES=%58"``\R)1=\\6475!+`0(5`PH``````,N&0D\`````
M```````````B``P``````````$#M09L'``!,;V%D:6YG5&5S="],;V%D:6YG
M5&5S="YX8V]D97!R;VHO55@(`)?(E%TMR)1=4$L!`A4#%``(``@`RX9"3^DL
M6OI["P``%T$``#$`#```````````0*2!ZP<``$QO861I;F=497-T+TQO861I
M;F=497-T+GAC;V1E<')O:B]P<F]J96-T+G!B>'!R;VI56`@`+<B472W(E%U0
M2P$"%0,*``````"$A4)/````````````````+0`,``````````!`[4'5$P``
M3&]A9&EN9U1E<W0O3&]A9&EN9U1E<W0N>&-O9&5P<F]J+WAC=7-E<F1A=&$O
M55@(`)?(E%W(Q91=4$L!`A4#"@``````A(5"3P```````````````$@`#```
M````````0.U!,!0``$QO861I;F=497-T+TQO861I;F=497-T+GAC;V1E<')O
M:B]X8W5S97)D871A+VIO:&YH;VQD<W=O<G1H+GAC=7-E<F1A=&%D+U58"`"7
MR)1=R,6475!+`0(5`PH``````)J%0D\```````````````!2``P`````````
M`$#M0:84``!,;V%D:6YG5&5S="],;V%D:6YG5&5S="YX8V]D97!R;VHO>&-U
M<V5R9&%T82]J;VAN:&]L9'-W;W)T:"YX8W5S97)D871A9"]X8W-C:&5M97,O
M55@(`)?(E%WSQ91=4$L!`A4#%``(``@`FH5"3XMHHT[X````R@$``&H`#```
M````````0*2!)A4``$QO861I;F=497-T+TQO861I;F=497-T+GAC;V1E<')O
M:B]X8W5S97)D871A+VIO:&YH;VQD<W=O<G1H+GAC=7-E<F1A=&%D+WAC<V-H
M96UE<R]X8W-C:&5M96UA;F%G96UE;G0N<&QI<W156`@`\\647?/%E%U02P$"
M%0,*``````"$A4)/````````````````-@`,``````````!`[4'&%@``3&]A
M9&EN9U1E<W0O3&]A9&EN9U1E<W0N>&-O9&5P<F]J+W!R;VIE8W0N>&-W;W)K
M<W!A8V4O55@(`)?(E%W(Q91=4$L!`A4#%``(``@`A(5"3V/#F]AU````G```
M`$X`#```````````0*2!*A<``$QO861I;F=497-T+TQO861I;F=497-T+GAC
M;V1E<')O:B]P<F]J96-T+GAC=V]R:W-P86-E+V-O;G1E;G1S+GAC=V]R:W-P
M86-E9&%T8558"`#(Q91=R,6475!+`0(5`PH``````(2%0D\`````````````
M``!!``P``````````$#M02L8``!,;V%D:6YG5&5S="],;V%D:6YG5&5S="YX
M8V]D97!R;VHO<')O:F5C="YX8W=O<FMS<&%C92]X8W5S97)D871A+U58"`"7
MR)1=R,6475!+`0(5`PH``````-R&0D\```````````````!<``P`````````
M`$#M09H8``!,;V%D:6YG5&5S="],;V%D:6YG5&5S="YX8V]D97!R;VHO<')O
M:F5C="YX8W=O<FMS<&%C92]X8W5S97)D871A+VIO:&YH;VQD<W=O<G1H+GAC
M=7-E<F1A=&%D+U58"`"7R)1=3\B475!+`0(5`Q0`"``(`-N&0D_A]>7C.30`
M`%U2``!Z``P``````````$"D@209``!,;V%D:6YG5&5S="],;V%D:6YG5&5S
M="YX8V]D97!R;VHO<')O:F5C="YX8W=O<FMS<&%C92]X8W5S97)D871A+VIO
M:&YH;VQD<W=O<G1H+GAC=7-E<F1A=&%D+U5S97));G1E<F9A8V53=&%T92YX
M8W5S97)S=&%T9558"`!.R)1=3LB475!+`0(5`PH``````(2%0D\`````````
M``````!#``P``````````$#M015.``!,;V%D:6YG5&5S="],;V%D:6YG5&5S
M="YX8V]D97!R;VHO<')O:F5C="YX8W=O<FMS<&%C92]X8W-H87)E9&1A=&$O
M55@(`)?(E%W(Q91=4$L!`A4#%``(``@`A(5"3W<5<KB\````[@```%L`#```
M````````0*2!ADX``$QO861I;F=497-T+TQO861I;F=497-T+GAC;V1E<')O
M:B]P<F]J96-T+GAC=V]R:W-P86-E+WAC<VAA<F5D9&%T82])1$57;W)K<W!A
M8V5#:&5C:W,N<&QI<W156`@`R,647<C%E%U02P$"%0,*```````$AT)/````
M````````````*P`,``````````!`_4';3P``7U]-04-/4U@O3&]A9&EN9U1E
M<W0O3&]A9&EN9U1E<W0N>&-O9&5P<F]J+U58"`"7R)1=E\B475!+`0(5`Q0`
M"``(`(2%0D]B[(+'50```*0```!```P``````````$"D@310``!?7TU!0T]3
M6"],;V%D:6YG5&5S="],;V%D:6YG5&5S="YX8V]D97!R;VHO+E]P<F]J96-T
M+GAC=V]R:W-P86-E55@(`)?(E%W(Q91=4$L!`A4#%``(``@`RX9"3W67^;!=
M````L````"P`#```````````0*2!!U$``%]?34%#3U-8+TQO861I;F=497-T
M+RY?3&]A9&EN9U1E<W0N>&-O9&5P<F]J55@(`)?(E%TMR)1=4$L!`A4#"@``
M````AX9"3P```````````````!@`#```````````0.U!SE$``$QO861I;F=4
M97-T+TQO861I;F=497-T+U58"`"7R)1=KL>475!+`0(5`Q0`"``(`("%0D\.
M(Q\#K0```/$````E``P``````````$"D@112``!,;V%D:6YG5&5S="],;V%D
M:6YG5&5S="]!<'!$96QE9V%T92YH55@(`$;(E%V_Q91=4$L!`A4#"@``````
M!(="3P```````````````"$`#```````````0/U!)%,``%]?34%#3U-8+TQO
M861I;F=497-T+TQO861I;F=497-T+U58"`"7R)1=E\B475!+`0(5`Q0`"``(
M`("%0D]P&HW`70```*L````P``P``````````$"D@7-3``!?7TU!0T]36"],
M;V%D:6YG5&5S="],;V%D:6YG5&5S="\N7T%P<$1E;&5G871E+FA56`@`1LB4
M7;_%E%U02P$"%0,*``````"$A4)/````````````````*``,``````````!`
M[4$^5```3&]A9&EN9U1E<W0O3&]A9&EN9U1E<W0O07-S971S+GAC87-S971S
M+U58"`"7R)1=Q\6475!+`0(5`PH``````(2%0D\````````````````[``P`
M`````````$#M0914``!,;V%D:6YG5&5S="],;V%D:6YG5&5S="]!<W-E=',N
M>&-A<W-E=',O07!P26-O;BYA<'!I8V]N<V5T+U58"`"7R)1=Q\6475!+`0(5
M`Q0`"``(`(2%0D\X#H$^I````(<#``!(``P``````````$"D@?U4``!,;V%D
M:6YG5&5S="],;V%D:6YG5&5S="]!<W-E=',N>&-A<W-E=',O07!P26-O;BYA
M<'!I8V]N<V5T+T-O;G1E;G1S+FIS;VY56`@`E\B47<?%E%U02P$"%0,4``@`
M"`"`A4)/!:S#_#0````^````-0`,``````````!`I($G5@``3&]A9&EN9U1E
M<W0O3&]A9&EN9U1E<W0O07-S971S+GAC87-S971S+T-O;G1E;G1S+FIS;VY5
M6`@`E\B47;_%E%U02P$"%0,*```````$AT)/````````````````,0`,````
M``````!`_4'.5@``7U]-04-/4U@O3&]A9&EN9U1E<W0O3&]A9&EN9U1E<W0O
M07-S971S+GAC87-S971S+U58"`"7R)1=E\B475!+`0(5`Q0`"``(`("%0D]P
M&HW`70```*L```!```P``````````$"D@2U7``!?7TU!0T]36"],;V%D:6YG
M5&5S="],;V%D:6YG5&5S="]!<W-E=',N>&-A<W-E=',O+E]#;VYT96YT<RYJ
M<V]N55@(`)?(E%V_Q91=4$L!`A4#%``(``@`A(5"3]Z-^T[4````0@$``#``
M#```````````0*2!"%@``$QO861I;F=497-T+TQO861I;F=497-T+TQO861I
M;F=497-T+F5N=&ET;&5M96YT<U58"`!%R)1=Q\6475!+`0(5`Q0`"``(`(2%
M0D]P&HW`70```*L````[``P``````````$"D@4I9``!?7TU!0T]36"],;V%D
M:6YG5&5S="],;V%D:6YG5&5S="\N7TQO861I;F=497-T+F5N=&ET;&5M96YT
M<U58"`!%R)1=Q\6475!+`0(5`PH``````(2%0D\````````````````C``P`
M`````````$#M02!:``!,;V%D:6YG5&5S="],;V%D:6YG5&5S="]"87-E+FQP
M<F]J+U58"`"7R)1=Q\6475!+`0(5`Q0`"``(`(2%0D]8&?S_RQ8``)7%```O
M``P``````````$"D@7%:``!,;V%D:6YG5&5S="],;V%D:6YG5&5S="]"87-E
M+FQP<F]J+TUA:6Y-96YU+GAI8E58"`"7R)1=Q\6475!+`0(5`PH```````2'
M0D\````````````````L``P``````````$#]0:EQ``!?7TU!0T]36"],;V%D
M:6YG5&5S="],;V%D:6YG5&5S="]"87-E+FQP<F]J+U58"`"7R)1=E\B475!+
M`0(5`Q0`"``(`(2%0D]P&HW`70```*L````Z``P``````````$"D@0-R``!?
M7TU!0T]36"],;V%D:6YG5&5S="],;V%D:6YG5&5S="]"87-E+FQP<F]J+RY?
M36%I;DUE;G4N>&EB55@(`)?(E%W'Q91=4$L!`A4#%``(``@`A(5"3X.W+Z;O
M````8P$``!X`#```````````0*2!V'(``$QO861I;F=497-T+TQO861I;F=4
M97-T+VUA:6XN;558"`!&R)1=Q\6475!+`0(5`Q0`"``(`(2%0D]P&HW`70``
M`*L````I``P``````````$"D@2-T``!?7TU!0T]36"],;V%D:6YG5&5S="],
M;V%D:6YG5&5S="\N7VUA:6XN;558"`!&R)1=Q\6475!+`0(5`Q0`"``(`(>&
M0D\9N@X(C`$``,H"```E``P``````````$"D@>=T``!,;V%D:6YG5&5S="],
M;V%D:6YG5&5S="]!<'!$96QE9V%T92YM55@(`$;(E%VNQY1=4$L!`A4#%``(
M``@`AX9"3^02<@U<````L````#``#```````````0*2!UG8``%]?34%#3U-8
M+TQO861I;F=497-T+TQO861I;F=497-T+RY?07!P1&5L96=A=&4N;558"`!&
MR)1=KL>475!+`0(5`Q0`"``(`(2%0D\#%FDM!@(``)X$```B``P`````````
M`$"D@:!W``!,;V%D:6YG5&5S="],;V%D:6YG5&5S="]);F9O+G!L:7-T55@(
?`([(E%W'Q91=4$L%!@`````O`"\`WA,```9Z````````
`
end

Iā€™m interested to see if macOS bundles are supported but it is just iOS which is the problem.

johnno1962 commented 4 years ago

In fact, Iā€™ve replicated the problem trying to sign the macOS test app above with my developer ID. Signing mac app with developer ID but signing bundle to run locally I get:

    /Users/johnholdsworth/Library/Developer/Xcode/DerivedData/LoadingTest-aapptqcsdwlcdxdjojjbhkbebekl/Build/Products/Debug/LoadingTest.app/Contents/Resources/TestBundle.bundle/Contents/MacOS/TestBundle: code signature in (/Users/johnholdsworth/Library/Developer/Xcode/DerivedData/LoadingTest-aapptqcsdwlcdxdjojjbhkbebekl/Build/Products/Debug/LoadingTest.app/Contents/Resources/TestBundle.bundle/Contents/MacOS/TestBundle) not valid for use in process using Library Validation: mapped file has no Team ID and is not a platform binary (signed with custom identity or adhoc?)

Hmmmmm

johnno1962 commented 4 years ago

One last thing to try I figure. Revert your InjectionIII to code sign adhoc (ā€˜-ā€˜) and change the signing for the simulator to ā€˜adhocā€™ (run locally)

nickgzzjr commented 4 years ago

I am getting the same results as you when running that macOS with run locally, though the error seems to be a bit different then the one from iOS library load disallowed by system policy vs mapped file has no Team ID and is not a platform binary (signed with custom identity or adhoc?).

I removed the signing certificate from the iOS app and still getting the same error.

nickgzzjr commented 4 years ago

Also I don't think the issue is with loading the bundle, seems to be when dlopen is trying to open the dylib file.

johnno1962 commented 4 years ago

A bundle is just a dylib in a wrapper. There must be a combination of signing that allows you to load a bundle on iOS though it isnā€™t exactly supported. on macOS only Mac Developer/MacDeveloper or Developer ID (app)/Developer ID (bundle) works. Interesting thing is iOS app Loading my Developer ID signed iOSInjectionI bundle from InjectionIII app works.

nickgzzjr commented 4 years ago

You are correct I just tried dlopen("/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle/iOSInjection", RTLD_NOW) and it works just fine. Maybe I didn't sign it correctly?

johnno1962 commented 4 years ago

It's the incremental freshly built dylibs which are the problem. You're sure signing with the same identity as the app build settings didn't work?

+ (BOOL)codesignDylib:(NSString *)dylib {
    NSString *command = [NSString stringWithFormat:@""
                         "(export CODESIGN_ALLOCATE=/Applications/Xcode.app"
                         "/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate; "
                         "/usr/bin/codesign --force -s 'iOS Developer' \"%@\")", dylib];
    return system(command.UTF8String) >> 8 == EXIT_SUCCESS;
}
nickgzzjr commented 4 years ago

Yup.

+ (BOOL)codesignDylib:(NSString *)dylib {
    NSString *command = [NSString stringWithFormat:@""
                         "(export CODESIGN_ALLOCATE=/Applications/Xcode.app"
                         "/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate; "
                         "/usr/bin/codesign --force -s 'Apple Development: Nico Gonzalez' \"%@\")", dylib];
    return system(command.UTF8String) >> 8 == EXIT_SUCCESS;
}

Screen Shot 2019-10-02 at 12 37 50 PM

johnno1962 commented 4 years ago

When you say:

"eval101.dylib" can't be opened because Apple cannot check it for malicious software.

This was on the console of the Mac app InjectionIII/system console?

nickgzzjr commented 4 years ago

No, that's a popup being thrown by macOS

Screen Shot 2019-10-02 at 12 58 06 PM

johnno1962 commented 4 years ago

Perhaps it's the code signing complaining so it probably wasn't code signed. Strange it's didn't return an error to the app. You could try turning off the sandboxing in the InjectionIII app but then we'd have to distribute binaries and notarize..

johnno1962 commented 4 years ago

Hi again, reading this: https://apple.stackexchange.com/questions/366542/install-spotify-cant-be-opened-because-apple-cannot-check-it-for-malicious-so

it may be worth trying the following code in the signer :

+ (BOOL)codesignDylib:(NSString *)dylib {
    NSString *command = [NSString stringWithFormat:@""
                         "(export CODESIGN_ALLOCATE=/Applications/Xcode.app"
                         "/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate; "
                         "/usr/bin/codesign --force -s 'Apple Development: Nico Gonzalez' \"%@\" && "
                         "/usr/bin/xattr -d com.apple.quarantine \"%@\")", dylib, dylib];
    return system(command.UTF8String) >> 8 == EXIT_SUCCESS;
}

This should suppress the popup then we can focus on the signing identity for iOS.

johnholdsworth$ xattr -l /Users/johnholdsworth/Library/Containers/com.johnholdsworth.InjectionIII/Data/eval101.dylib
com.apple.quarantine: 0086;5d95d0a9;InjectionIII;
johnholdsworth$
johnno1962 commented 4 years ago

Never mind, you get "Operation not permittedā€ inside the sandbox unsurprisingly.

johnno1962 commented 4 years ago

OK, found another way to reset the file. Perhaps try changing SwiftEval.swift:366

        let dylib = try Data(contentsOf: URL(fileURLWithPath: "\(tmpfile).dylib"))
        let url = URL(fileURLWithPath: "\(tmpfile).dylib")
        try filemgr.removeItem(at: url)
        try dylib.write(to: url)

        return tmpfile
nickgzzjr commented 4 years ago

@johnno1962 Good news! That worked!!! Creating a pull request!

johnno1962 commented 4 years ago

Great! Does ad-hoc signing work now ('-') or did you have to sign with your identity?

nickgzzjr commented 4 years ago

Ad-hoc signing is working, left the codesign command as is.

johnno1962 commented 4 years ago

Interesting problem. It was the codesign that was setting com.apple.quarantine on the dylib.

nickgzzjr commented 4 years ago

Yeah that is odd, I wonder if it has to do with the simulator trying to open something being generated outside of it. I never tested to see if this issue happens on a mac app. Doesn't this kind of issue usually happen when you self sign on a different computer?

johnno1962 commented 4 years ago

Who knows, we just cross the bridges as we come to them. BTW, How are you getting InjectionIII to build under Xcode11? I've not found the secret sauce as yet.

nickgzzjr commented 4 years ago

True lol Nothing special, I just had to modify the script in build phases, changed Xcode101.app to Xcode.app.

johnno1962 commented 4 years ago

That simple eh? Seems Xcode10 xcodebuild was the problem after all. I've filed a PR https://github.com/johnno1962/InjectionIII/pull/181.

johnno1962 commented 4 years ago

This should be available now as version 1.7 in the App Store. @nickgzzjr, can you verify with Catalina please?

nickgzzjr commented 4 years ago

@johnno1962 So I am actually getting a Fatal Error with version 1.7 as soon as soon as the InjectionClient runs. I am not able to see the actual line but its EXC_BAD_ACCESS happening in InjectionClient runInBackground -> SimpleSocket readString I can open up another issue, to track that separately

johnno1962 commented 4 years ago

Ouch, that's unfortunate. And you never saw this before? Can you still run the version you built. I don't think anything much has changed related to that code but I have seen occasional similar crashes on Catalina. Can you try again/run your version of the app?

zenangst commented 4 years ago

@nickgzzjr I haven't seen any crashes with Injection 1.7 and I've been using it all day :/ Have you tried cleaning your project before building? Just to make sure.

nickgzzjr commented 4 years ago

@johnno1962 Yes the version I built does work. @zenangst I did do a clean and build. Though, something really weird just happened. I pulled in the changes from this repo, ran it, and it worked. Then I ran the version from the App Store, and now its working

zenangst commented 4 years ago

@nickgzzjr I'll keep an eye out for this, I use InjectionIII at work everyday so if this is a recurring thing it should pop up so that we can fix it :)

It didn't provide you a proper stack trace for us to examine ?

zenangst commented 4 years ago

@nickgzzjr is this the same crash has you've seen?

(lldb) bt
* thread #10, stop reason = EXC_BAD_ACCESS (code=1, address=0x6fff92a14608)
  * frame #0: 0x0000000113dfe092 tvOSInjection`-[SimpleSocket readString] + 130
    frame #1: 0x0000000113e6cbe0 tvOSInjection`-[InjectionClient runInBackground] + 3520
    frame #2: 0x00007fff24aa8e47 Foundation`__NSThread__start__ + 1047
    frame #3: 0x00007fff40869d76 libsystem_pthread.dylib`_pthread_start + 125
    frame #4: 0x00007fff408665d7 libsystem_pthread.dylib`thread_start + 15
nickgzzjr commented 4 years ago

@johnno1962 Yup that's the one? How did you get that?

johnno1962 commented 4 years ago

@zenangst has been able to replicate your problem as he is running Catalina and this seems to be an intermittent problem related to Catalina. Weā€™re looking into it. Have you had this problem crop up again?

nickgzzjr commented 4 years ago

@johnno1962 I haven't had any issues since...

johnno1962 commented 4 years ago

Thats good news. Let us know if you have any other issues.