Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dylib can't be opened #178

Closed
nickgzzjr opened this issue Sep 30, 2019 · 48 comments
Closed

dylib can't be opened #178

nickgzzjr opened this issue Sep 30, 2019 · 48 comments

Comments

@nickgzzjr
Copy link
Contributor

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
Copy link
Contributor Author

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
Copy link
Owner

😱, 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
Copy link
Contributor Author

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
Copy link
Contributor Author

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
Copy link
Owner

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

@johnno1962
Copy link
Owner

Try cleaning and rebuilding the project.

@nickgzzjr
Copy link
Contributor Author

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

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

@johnno1962
Copy link
Owner

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
Copy link
Contributor Author

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
Copy link
Contributor Author

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
Copy link
Owner

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
Copy link
Contributor Author

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
Copy link
Owner

johnno1962 commented Oct 2, 2019

I’ve updated the README 379821b (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
Copy link
Contributor Author

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
Copy link
Owner

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
Copy link
Owner

johnno1962 commented Oct 2, 2019

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
Copy link
Owner

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
Copy link
Contributor Author

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
Copy link
Contributor Author

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
Copy link
Owner

johnno1962 commented Oct 2, 2019

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
Copy link
Contributor Author

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
Copy link
Owner

johnno1962 commented Oct 2, 2019

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
Copy link
Contributor Author

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
Copy link
Owner

johnno1962 commented Oct 2, 2019

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
Copy link
Contributor Author

No, that's a popup being thrown by macOS

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

@johnno1962
Copy link
Owner

johnno1962 commented Oct 2, 2019

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
Copy link
Owner

johnno1962 commented Oct 3, 2019

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
Copy link
Owner

Never mind, you get "Operation not permitted” inside the sandbox unsurprisingly.

@johnno1962
Copy link
Owner

johnno1962 commented Oct 3, 2019

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
Copy link
Contributor Author

nickgzzjr commented Oct 3, 2019

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

@johnno1962
Copy link
Owner

johnno1962 commented Oct 3, 2019

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

@nickgzzjr
Copy link
Contributor Author

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

@johnno1962
Copy link
Owner

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

@nickgzzjr
Copy link
Contributor Author

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
Copy link
Owner

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
Copy link
Contributor Author

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

@johnno1962
Copy link
Owner

johnno1962 commented Oct 3, 2019

That simple eh? Seems Xcode10 xcodebuild was the problem after all. I've filed a PR #181.

@johnno1962
Copy link
Owner

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

@nickgzzjr
Copy link
Contributor Author

@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
Copy link
Owner

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
Copy link
Collaborator

zenangst commented Oct 8, 2019

@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
Copy link
Contributor Author

@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
Copy link
Collaborator

zenangst commented Oct 8, 2019

@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
Copy link
Collaborator

@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
Copy link
Contributor Author

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

@johnno1962
Copy link
Owner

johnno1962 commented Oct 11, 2019

@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?

@johnno1962 johnno1962 reopened this Oct 13, 2019
@nickgzzjr
Copy link
Contributor Author

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

@johnno1962
Copy link
Owner

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants