From 7644f3dc6dda65b0f2430fb36aba04737e628248 Mon Sep 17 00:00:00 2001 From: WorksButNotTested <62701594+WorksButNotTested@users.noreply.github.com> Date: Fri, 17 Jan 2025 15:30:59 +0000 Subject: [PATCH] linux: Revive support for ARM BE8 (#1130) --- src/linux/frida-helper-backend.vala | 4 +-- src/linux/helpers/bootstrapper-armbe8.bin | Bin 0 -> 7782 bytes src/linux/helpers/loader-arm.bin | Bin 1700 -> 1692 bytes src/linux/helpers/loader-arm64.bin | Bin 1486 -> 1478 bytes src/linux/helpers/loader-armbe8.bin | Bin 0 -> 1586 bytes src/linux/helpers/loader-mips.bin | Bin 2880 -> 2816 bytes src/linux/helpers/loader-mips64.bin | Bin 2816 -> 2816 bytes src/linux/helpers/loader-mips64el.bin | Bin 2816 -> 2816 bytes src/linux/helpers/loader-mipsel.bin | Bin 2880 -> 2816 bytes src/linux/helpers/loader-x86.bin | Bin 1622 -> 1536 bytes src/linux/helpers/loader-x86_64.bin | Bin 1568 -> 1584 bytes src/linux/helpers/loader.c | 40 +++++++++++++--------- src/linux/helpers/nolibc-tweaks.patch | 10 +++++- src/meson.build | 3 ++ 14 files changed, 38 insertions(+), 19 deletions(-) create mode 100644 src/linux/helpers/bootstrapper-armbe8.bin create mode 100644 src/linux/helpers/loader-armbe8.bin diff --git a/src/linux/frida-helper-backend.vala b/src/linux/frida-helper-backend.vala index c51531ee4..38b72bb41 100644 --- a/src/linux/frida-helper-backend.vala +++ b/src/linux/frida-helper-backend.vala @@ -1988,8 +1988,8 @@ namespace Frida { #elif ARM target_address &= ~1; - uint32 arm_breakpoint_val = 0xe7f001f0U; - uint16 thumb_breakpoint_val = 0xde01; + uint32 arm_breakpoint_val = (0xe7f001f0U).to_little_endian (); + uint16 thumb_breakpoint_val = ((uint16) 0xde01).to_little_endian (); bool is_thumb = (target & 1) != 0; if (is_thumb) breakpoint_data = (uint8[]) &thumb_breakpoint_val; diff --git a/src/linux/helpers/bootstrapper-armbe8.bin b/src/linux/helpers/bootstrapper-armbe8.bin new file mode 100644 index 0000000000000000000000000000000000000000..bf2a32549b2e4211763424f923c49b43db6726ff GIT binary patch literal 7782 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 GAv6GKP-UV3 delta 274 zcmbQkyM%Yb6vh`5r`j`CO}y%EnaaSx#mcbYA&0<%hb#&U9v)&~c+HUT;4uS3z+;Aj z2al71@-hswo`U$sAhy7iry%v`CWkV*^WFie2C4$ddQ4u)D9@NX`6Qz>kH&=Frwj@U z9;*Q9$!{1{7+*~mWNK$zHF+k}dd7mup3KsWnUhnQ=QD;)W@V8V^aC2R^#A`?XPJRE zFflM(m~6_T&8RgwkwuzOd2%g_vWtMgg2#*s-j75CdY{S&^giNI;09YD0Oa!sct2u1 yu;4KVkj)G9hJ-@zQx+g*0Arx|0q&pY)Z?@Z5`42SSAvgPV<=qP9r8cJ%-TAW&38m+0(<8Kjxb#A9i zPzG8^fz%iT6||`>Ep38G!}YG3-ha66xOzQ=bN&dMB^$U GAG06Jd~P8C diff --git a/src/linux/helpers/loader-armbe8.bin b/src/linux/helpers/loader-armbe8.bin new file mode 100644 index 0000000000000000000000000000000000000000..a916e3600024d60610f36fc9499c131d4f129feb GIT binary patch literal 1586 zcmY*ZVQ5=b6h80eHOrDXu4G84`EivFinip+CaX{-!azZWkt!$%rn4;+LL0hnY`=V) zE5g{L!B#56(ECIGi3oxW+=l)Vgh2fx{&4W#yS=zooDl{88Nc)Lvc(_ao}7Em_nq^d z^DZeJdEvArp-q|m_^8~nQ{jiUD0l6VZ~3mX@5;@v(yvBD&duJ7)Ay*MBd4w-x2B^^ zOT+)Vafrqp(x!Lm)?Md0Z9ECTzhlRQjSjcBpQ0MAwz- zSdZqSF`|5d=FF7pY!qp0!zH>}RNJ;ky#4ExVDYG;pB>;%@Z&zY#b+#Bg5%crD;L@^XB?-#_437jZ|B%Q>H? z@qhLE`P=eNf|V5myw7mQIfR~0q8?eh95V;klu=#FSe^)M23Xf0^5&t1Nq9sMGRGF~ zil~G8>b;7&wRCh1I)@Eyj@H_i>%`o-&j?(R*P6Cj#1PRRUaPaub0*rcMR4)#Fys6r zG&>HBz4{J(=U8LrjfS=VnAY<)bl@6>@vLRDw2K^Q0}O%PV4T5DBsG{vfW@>T_H*WW;ANm?8FyvmGj@_M+pJB=Q6J%aGDd#MrBZYPSkws3u!gLU8ta3c zB6fl?zXE0j{qfwsfL(^I(*7JeZ?GeI-rZpj4qZrmx&QgjnG)hMs9QF!By%dD#scQV z+{`7gms#jr9hnvX_n?VDY*Hick~8J!*<9NT;@;+9haC0Y{x{eO*8BzVA@_mi>nZLG z{1wIh%$bv^{uQxpC)?Zh7-ABwee5glSeu)``{mJHTW$m~?*RAef!`6EA!~a$^__rk z1~}|vtt#|^Jq(Of@H5w2us?oc*YZ0t*iD`2{xmrE!7-{AW9Gz;W!-DYA7V;i=0`AJ zg8lLc=9m~@KE}PG_NRyrSTFAH{=aE&4ekLugxComHS>N+-?;ey;0^Ne&V7mZLtTk; zsHGqV-(1=6+V6qG{qa08v$&w4OPjwbyfeHrnAb2~=)nGcsT)<=ft9%Dy`6+T0ecE( zWu!Og{R8=-Y4A7gzZsIg8Xn;NE2ulxg?|6Ajau-X#pOD38+hZOkHjolpK`qeU&sEA z{6sIremY`*4SP1_<9%bySAcn%`Emq$cMNa$C-}Yd#>)Je=Av9*mCe=p1=(Cavo^nW nksi92mRA!Bk#n$Tb$~skBYpd^8&n`BXs!I#iV+-^j$w;kn literal 0 HcmV?d00001 diff --git a/src/linux/helpers/loader-mips.bin b/src/linux/helpers/loader-mips.bin index 4e1843a43c504e9e753fd7d991f7a6a75a590c3d..0ea8135ffdab434909ce070f3e86a62b432c8553 100644 GIT binary patch delta 574 zcmX>g)*z-}Bg4R;K8JyUdFBJfo+bv7{x+@?J&_DL3=I~lD#w@uCMqoB;<~eb1A{^T z1g;YkFO)HH-I(mbXvM^JXL1XOIx+bGBUsRa$q6J_!{j*mAX6$xnFh15;0BPv>U;l7 ztl!FTrGF|=K@RggDXtSt3>vEHmJAzM1pliuIVh<1?_m%SabOgltisaG_+s(~7J0>P z6`}wCRgN(*3NZYCvA~&uslS!$g!&Q&pFT?l7L}!(B9lL`m>X_o00NM!LA1&-jtBiS zfu<_}UC+wEqHf8U1GIq?W`h6&L+0cNR%ge#Xu5tN>0*WG`u7G&mz9dZ|Nnie3^Gg% zCsctZDo?({>IL$=2Ae!@HC&+sgVy8_HbeeJ3>NFRG1#nMz~BJHE|X`lX*0f_e1vTu zNJ|U5vaAY7i+}?I8`!06K$k9M(14izPj>PVc0D7m8z3h#EBxR@ra{333=VGw2Ln}@ z98@fMvI>V$7;?z|6Gb@ee>m93z&Pw{VgSZD1A~ae{}43+rWBa3`pg(KSOou-g7h#r l%urQf`u`tfv{=%AzR7DiY&L)3c)~cDgcqHF*F delta 577 zcmY*WO=uHA6#iy*lT5k@8yjOW0k?IwTd0(+f+m{7#(F5lL%~w;T8fBx6Ff){rKlG} zw&fvMkP>S3RM>)8FHw4s;L(Ezk2!eorw5OoGR~}2^GxC6Hsu_Af) zWA=@9?bD-8d0Z*k1#_Xkwr9ZOhmHt#aIIB?Ennm%9oiSC_o1J0ZmR5xpYf(<_w)uC z*g=im(F)>7!3A#9LT0A1^*<^v22hzlsQ!-u)Me=^)$&o{_~2{CG5VaDn{tHYV8I)N z&$kh#qFFHBOIHi+LjV3>iU^Z5pPe4o@g!|r)qghGMm5<-oz}CH>^pU`?@XdAxif5x z+PN|-QztiNay-nHPs||-earimPmSxabSO(y5$6^Mv+NK56I6@osJ>il4f@hRF;dsZ yUA}y@N9zJ6w8^^$gXpO*xl-m1r6qNYc0@gm)Bs=g#1}^M`H|t&nU7{p@NBJ{Q?Gs$qSge8Q)CSVP4H?&cvXgD&oMfYw`nTbH;a*C0N`U zCr?gb5ocU9xq?NW(PQ!q7H!^41|YcK#&sd(7>B^*3oPQCaw@|A{|hiMv`+rOVr&_T zB(HIQCf5Zf1q)RbRtDB|OU4)$!T;eSWBEax}_2dpVbK5$wwGRImf}J;+>%zSz1_Kd?|MSy|nQXw$ z06Gielz-RmnK1+~I80DgVFH@#^gm_tAGUr*?a4jt(u^vTSFjgsR^V8{GE{(h(jQ5eb352L(qBHohqwf`lZaNoZ+kcr>^;B%DM+ zg=j7nL%s+0(IS;7EasTDnKTaUEQ?Ql#oHQVxMK|C zf7?_{+)gW2kAX|_9fm5d$Qe8KRkHyphl4L(4R;pnxd|t!zi**wvLH${p1Bq9gJ@#Ycj9qH2*KiqN>2av}^KRW^=}OlSNtF87EJU zWf5mwG`W;Tp3!6SR2FUCOa=vU1|Yb=)plQC@>v#fPC1~y|Nn(mS|`6{F}4gvlGork zmU4k>=6zKQ1twMoR+Sh=%XD_AEv5_%0w7%$46653Pb4r|PL5=a=bZOXki~#u(PIC} z2U+d3);lmP`tQN8?SBBng8!U96qqA`Gz)`+jQ#{CCS4#l2OA=!@@BFwo4erj{|o}E z1`Z4$l^`dsp4`f2Zd(U566CFg{~ZJ%4xfDAfT8K${QnLjHcZ87U|t!zi&)wvLJQzX!vD|C8r1buhk|tjfHa)9k+>i>d+x)9%SPnavsBPZnfx zmz=`jBzA#o=KTN$%X=U>&L0ZQsxusz7Edl@k!OsUJds6PH;X|*oB;?faJAi6;5e27 zQm<;Ez{JA9sshpz!)Tc<3pD%xe_@rj$uC)qEyIv>SRmml7%(ha958t=tDVIE0H7}-fH(n&9T*n<2RYG$VcTSWHc`gc zlU3Q=1*iRI5KuL6U;xR09J*?9Et|P*4bT{n^MJYpAkLqB-+-a%-n{<~A~sCLX<$o% z@*s<^0M!OCnB7yI;K1rw?>huY;sv(v_Pja!0Y7YatI5WA-p9o^vU%iF7b%Fk6@(_*Z;~U>xe++>lun$Yk=A(Emr`#g}!h>6$;G(M6@xvGnx;xvq z{;573DtB7-`t_HqC6z^zeW1h@6G#Q#yL;I3A)z#L#zCyYexWft0y{=4oERD;j4nvv zno!BT;FWN}Br#99UrtK|&?F_5RFK24r!sFpUU_Qk@9c)yKHiUj%Q;y~J$4&Po%Z|2 zun`Q3jWy0*3mmbAEKOoACSBHj5R0?>0M3bd1(Ru(vaW$;5t(^q;ept8^e#Se=*h?- JVK4T3L*MW3o?HL` delta 571 zcmZ8dOK4L;6g@L}N#=DBUfWn(`+{kh$&0A?v``Z*_}YqyA5i>&TM-3uC%DL}1axD_ zv)+vbEwu_F2q}n_fWK9Bg)#67%@bCh@Pur+$- z>=6X6-fiC>VpVn7D+TT#t**0b zAbJ$8(V6tj)WUx#;clYR8>sKUH}5*sy~R^LbW?u>FVdIvi9J?_fvXU&f)GoOb)w0T zQM%mWVdAXT!?24^WyS|1EVhm$eJtq;mRgfop*XXXty4Sm&c<2G7Fm%VW=Gj5wX=I| zjO*F$TaPFHbr`|@Sx8xzHmgfCBF4}6COO!ncfmxS-4ya}?4#ba|Fb5_UFKftpNldk onm0Bu`hEmsxU$S!=#e-qEW*}{j`+&xv>VcgzJ6YDY054A0shjHn*aa+ diff --git a/src/linux/helpers/loader-x86.bin b/src/linux/helpers/loader-x86.bin index 6f95a4699900e07e9969c33a063c265c4b826a2c..d8ccbe0516c011ec15507b982b5dc15045706305 100644 GIT binary patch literal 1536 zcmZ8hUuauZ7(ch|YH=AiYSaorDs<4num*hap-2QTbztB&A-%#}XJ=a0t~8Nnb)c|<1>ML<9)c}eo$mPi&P~%IB( zKk@7CEjxamB^k?D<8YJa0IZxnX+Nk1Cn}BYFSJHi!WUD!rzg&yA!qW9^9sLFGj9Jj_yxtUbFXcuFi(QK*gCoCS;cgCDQEL`siCc+{#Af1;ueV|H z{StRygDP<6utK2v$5azgtSPM_#3si=k8@wzPw~IJGCA;8{la}IOTO-Y2`^&&!1k3W z8h>76eQZ{fR+QI(k?_fXWIAvc;jXco`xZq+e+6yck9C(e?cU^aOl$0<9lzTY%FqOC zKirdg*)RFUA%N(m0$OkoF;K+;Lps-`b3@*pAT`;&gw3IZul=hME+ruLtT?K27UN8J zzooKAhe9S$*eMjoE8svc{fefT8BawJOL@dFMVSgn^YW_{(&}-l5xGK?$Ty$!lrSx= zXT4M(e<6;p*RF`<`77h zKui)?ape6W>I*wf{d>|oJ2*BrtC{jgr0A?`=4_W-p?g4rXf5nRSPhbB-}qMD`bUit zxI}YH4+H%h{Fx9J;K@ZntyDYz*v1<669z1B-^Q7C!c|trQec$GH!zk-92g(aCyjf( z&mr-K4u?dAH_HF#@w@)hbp$Rt-m&9qP#*i`IA@RE3K z8%n9oNj2ISl|S$`D)yRs9a{A!9x0G(I4Zq2|lEhc^$h@FGNMP%<@_D(?1FU0e|= z$|Qnar&pi-tiTaSn(o*mF)cFxw)wUJ3la&pUe%+ t&7519T)4yz#M3kLxq+#9d*M_7Q#7o-3H literal 1622 zcmZWpO^8!h6uvL>W2lj25$Y5|8|)O7ifN#WE~KQbuOLPGk|D`});gL5Ck-}r!oi%x^STqNfy$Xwu4r0zk6TuW@;gMc{xAd zIp25gxoP^q>iIh(qlBEl{3o7F_cJ4GaQgKVA(BO6Ib()M?X#9bSDR`2Ae))6dI8#^ zx9Bzdju|;c5`;`-Ge{Fg6j9cOFkjNzdz;;RKWklI+~N84Bga1dL?+AJ2yN1pmcB-4 zdYz}&k_#Fkr1OIi0?Bp9e3_@$Q6aN13_HEunRh)rzj5T40#P08lPK(*e?EOP?$i#9 z5_2fg{kuT*hdg}~=~)Gf^g|x-ex81)JU$mV=6S-wUk)o5{R0_02L-*hvuOJuZF0Ry z^`*AHEIa1s?k;S@Z`@h?k?TuTzu(q7%AsGUdatcN4#8U_T)%5fh}DErMmrs5`eWNM zcUT+SPw!xQk0k=#fVC{T+rAGVKDb@-bj1SC^Sy6j?BpQD$m9s*u#clTIiWQJK_e1ia@cw*%-xJj6#4|bk3JWo z?gZ^C$VJA)iy7q*PQxjU_(@S4_(HS^ytpH=-Y>N6Ie=-TWuKKjVDwzRd=(z8ubQKY z`LNbqOIgm4!BwE)l^6p^BG_>1PIWh+f_07=z1V}bBCOwqbxk~~O0Ntn;AIPgZ=NXz z^^c`l@nuE?WUaXf3EH=%Ca$%-2Yg=#U)qL1!TK`{&d4&QF0bk6+29SyB}E%Y@iU-1 zY%K*c{XgY*nDV8B@isf`r|(5T!gi{=`ZW>rr=qT*$|ZaWw?9Kr|0F8Ks9lzphN+&Dc=AOl-sXO| z0eY>i*Cj*>Yr$nil5#1pcMe<$nKH75L<(N8k)WwMd#_Y4pqtvFY`|Bo(C;J$z4!&5 zMv|+8Zzw4PxQdwaGUbJi-4DbKdf6j+seilt^wcG}BD%Z&8-R6_*AMdogq=k7udj*(hOOSs0Zry?YG>SRl)J;W3_ zS7_dl{5>XvaUI8XjY7CVU*!!skj;ob*LU3r*ge7JZLoPmv*Gb33ye3@GgBu@`KUP? xEzM5lqNV8*m8r@ZvS}_%&*Y-{8MAVxJUcyOl32MidouQUzEp@6ab@UM~Ou diff --git a/src/linux/helpers/loader-x86_64.bin b/src/linux/helpers/loader-x86_64.bin index 3bb302298e3c8070827eae86c11603e8ce3a60ed..17b079da6cf8ef270c35b8637cfec70369e56d81 100644 GIT binary patch delta 530 zcmX|8O-oxr6rD+4YOKO5#m_1xixE;mFbg3|AHKy6okc(wF8tWI2o*$7!9_`t7lq5? zEo5*PXczqfUAPjJ)CNkSrIL-9AD|HfPjI6talB)zt9!WT-h0lR`P})nv*X4dY69Lt z(EWO+H zH6M@PCwNDQ{<#5*GO3E=Uiqe{`y1bZS9&qOyNBS6AMRgY#rHvayT z|3iAt0kI4MDF!4xHwh?3GF_E;kD|b+%9cYS@xmi4F2i6~sJczlgVwlDwU88G8VbzQA7q delta 531 zcmX|8K}Z`x6y4d~)QD-f2ek=`*~18_P?{VHdMIRJ53?|bfZkLD@epe1r4c-cS~fy| zmp#bfLFl1}UP_?!+S0Tkrifxo>qYd|gOXrrXaf=zo&K?uOm8 zXADkR*weGxRVME0*4p%IQ`4AVvnQPiXL5u2Kjs~1zrCSpng_pTSYQsOux8-We5S%e zmv*plfyOht3W_SIK;x~FVxlf=vQ3xXB>#S-6q*xdk|5v29?9yz4Uy0vkv;KLpUt!a(*jjmsI?&|7 zY_2|dDWwB7zl~p?VHZb}51`7zdj&CW40XqK9JhiaMv#L%WLs>R$=(xm zq7pm4#bEzKrecvmsg (sockfd, &msg, 0); if (n <= 0) return false; @@ -334,14 +338,18 @@ frida_receive_fd (int sockfd, const FridaLibcApi * libc) .iov_len = sizeof (dummy) }; FridaControlMessage control; - struct msghdr msg = { - .msg_name = NULL, - .msg_namelen = 0, - .msg_iov = &io, - .msg_iovlen = 1, - .msg_control = &control, - .msg_controllen = sizeof (control), - }; + struct msghdr msg; + + /* + * Avoid inline initialization to prevent the compiler attempting to insert + * a call to memset. + */ + msg.msg_name = NULL, + msg.msg_namelen = 0, + msg.msg_iov = &io, + msg.msg_iovlen = 1, + msg.msg_control = &control, + msg.msg_controllen = sizeof (control), res = libc->recvmsg (sockfd, &msg, 0); if (res == -1 || res == 0 || msg.msg_controllen == 0) diff --git a/src/linux/helpers/nolibc-tweaks.patch b/src/linux/helpers/nolibc-tweaks.patch index 016044218..f3458f43a 100644 --- a/src/linux/helpers/nolibc-tweaks.patch +++ b/src/linux/helpers/nolibc-tweaks.patch @@ -197,7 +197,7 @@ diff --git a/tools/include/nolibc/std.h b/tools/include/nolibc/std.h index 1747ae125..5f30e6e0c 100644 --- a/tools/include/nolibc/std.h +++ b/tools/include/nolibc/std.h -@@ -25,25 +25,53 @@ typedef unsigned short uint16_t; +@@ -25,25 +25,61 @@ typedef unsigned short uint16_t; typedef signed short int16_t; typedef unsigned int uint32_t; typedef signed int int32_t; @@ -211,6 +211,14 @@ index 1747ae125..5f30e6e0c 100644 typedef unsigned long uintptr_t; typedef signed long intptr_t; typedef signed long ptrdiff_t; ++#elif defined(__arm__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ++typedef unsigned long long uint64_t; ++typedef signed long long int64_t; ++typedef unsigned int size_t; ++typedef signed int ssize_t; ++typedef unsigned long uintptr_t; ++typedef signed int intptr_t; ++typedef signed int ptrdiff_t; +#else +typedef unsigned long long uint64_t; +typedef signed long long int64_t; diff --git a/src/meson.build b/src/meson.build index 470112a6a..88ff56078 100644 --- a/src/meson.build +++ b/src/meson.build @@ -319,6 +319,9 @@ if have_local_backend else host_lowlevel_abi = host_abi endif + if host_lowlevel_abi == 'arm' and host_machine.endian() == 'big' + host_lowlevel_abi = 'armbe8' + endif fs = import('fs') helper_backend_data = custom_target('frida-data-helper-backend', input: [