From d5a20b44d55c5e872342454e829ec93cb817017c Mon Sep 17 00:00:00 2001 From: HolographicHat Date: Thu, 14 Jul 2022 16:47:05 +0800 Subject: [PATCH] 2.8 --- YaeAchievement.csproj | 1 + icon.ico | Bin 0 -> 138936 bytes lib/src/dllmain.cpp | 12 ++--- lib/src/il2cpp-appdata.h | 2 +- lib/src/il2cpp-functions.h | 8 +-- lib/src/il2cpp-init.cpp | 7 ++- src/Export.cs | 5 +- src/Logger.cs | 2 +- src/Proto/AchievementAllDataNotify.cs | 70 +++++++++++++------------- src/Utils.cs | 11 ++-- 10 files changed, 62 insertions(+), 56 deletions(-) create mode 100644 icon.ico diff --git a/YaeAchievement.csproj b/YaeAchievement.csproj index 36d3598..c4eb518 100644 --- a/YaeAchievement.csproj +++ b/YaeAchievement.csproj @@ -9,6 +9,7 @@ res\app.manifest 2.0.0 2.0.0 + icon.ico diff --git a/icon.ico b/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..91256b2608b65a4c484d8a548ea1eb256287cfa0 GIT binary patch literal 138936 zcmb??g57QI7?L!r2qLW{e*yB05Q#jSYp$M?P8 z?>~6=+3a4j+00BbnVDoJ0007zf&YFW00PLT0f5!Ze>nXA?#uJP_H4iap!x;@h)`92kA?mQ{iQaRoUD}k ze{cUwsQ-aBbS?Z3CYp<^o*MvQ_xzVY1I~pOz)K5qQWBbQm&(KuE5{-F#pk;tcaJs? zFHsfIs~HUykd~&JG|~U3TQq+-Htr35Kd#jXUFs15{uFNzQ&< z`K69qX2<895@K^EhSlLW2Jx9qJ64(=2m^16G1rMD7KFsF#&3moo9kg0T6QN2wGX4TpLx76O69 zA!Ij1df{my|7DkOPvq@MmO}Z1K7yKgVE|s*oV?~4R<~Q5W0@5QxZ`F0X}stmf(0pS zKbtO?Z7Z4zP2W0k&Xb7`u-Z)Y&8 z##BrWgetp3@yS1*U(6#2F=YK$zTf^K3rNWjx8?!m;Ag=hz1ZAfG_GL=s=3PWtbl21 zSxo}4CN6GG?+aviHUE8@@J=h9rQ~ug@6QCwUMoR%=Ra=)ZClrl$ zf{wFDz^mJ@^3wZ}7b&y>5?~g--J2warr>+ymkxYQKpd+K5uZ<)T_kaM8osThr8;

XOyiEXZ@;nGU@Ald@lnBd`k}Z;L9)1DTq%6=ki?hvR@`eS zZ2vkPahd*hdn!2ccp`(d!b^2AnCJBGkW}J|82(Hz+-ADguH1`P#=n*DbM34wz^Ei8N z&VMf{DuYoj-A}VImY(4t6V3Q#u@lJEDRtr4- zKe=T2yO*Qq&Eq=&e#Wq3NUvaQSbu>P_K*BuLFo1I8tS( zc(VzS@tDKcA(9AqVE(h4+6v=shJaz4$m`c*w{5)~YDD;a2^!kjBa$1^+zgSU5eR{A zP-oygXqj@j$bp=w7`Crz3rgR<#^*B|8(Ja0JOo?3Q+~~h5VRK`N<={q8R3hwB&x>j zUDUFtj2D3-<$RbV7eJH^f+7V9qSC82xjL`bJtIIqpa3relNa-%g3w(^<_K4v zmn_|+dVaW#SZQY1t)#3ZbX+G@m)+2N#{=OX=GWob@Xw0CR zj<$>%h1RPo@)K_xSAn%FB1OfE-H|EBCt%}0E+RvU+vYreJS9vfChIB1SypDs;{>HL zDh4VEQ8wDz)sI7_+`5&XL(=<6{iF+QpD|JfR@?#tSwjxL@$IH)jHSewdmN{@4UW+Z zyrbXM=2RNuReCQxgrbr9l}S;~g}pQ`!IZm8@@iMBlwc3G;rgk8BzTseO=Y}w$oPDw z>>-~KEQuj8*jY=r7AR$(xeGwFvO>v3U&cobUUuu{dC!#UJ54>qKYl}B9Zb3`iwIS@ zA3h{;Ja0Kso(^=>0gv9UC<`+IKQ>e953n>+09Q;&RaA{2Tq1vaDk-tld>XWwW)FlX zrs($!P?UNjkT^jOJH6>0#o`zykW>FrY-hE0Pz#4`OXPcG&wu@4));PrjEf90?+?0X z8T;nYvfr=XE8d&=4I#(pI7lYy-@CaTYBP#q0s6n}?}M1?Fj&kG&dNPV6}SS$xc7@A z?HX27KA@l{dgQ40nf=EA5I;AqD74Ir6|JP5l>Uk4YMZPzg$L}QaLT51Cf+2$dq1cX zv38F_a86|`2hUGWv+C^{4f!8q4Ml_m>#i$EMDq@90t2aq@(=IPw2)mas3dZ+;%wMx z-$*`QB1fnBVG&D+CF&z1#%)!7X{jJFXS(Vf(dqSCyWv%|>a;)xBOfn_g#jpm9}YK%%Q((*C2;DQ8M7)73cOjPqwcLbdKyfuZ*o z|7}J}|MHO%LBkh@!Nnz?;41XjC3naGYMu zu0Z^g#;d((B%mLV48jewl_C8l_B!xfb}LOWW2X_v>z>J_Q85tBUA(bt42+QU?I)+z zFiC1t?x2Zele60XO>wtm5-1T~La_a=D0Z9r31LIY=yL0v=pS+51Tg&Bn>Th!Ty!k!U$i-Vv_&3bFiVG1M3tU{ zKl>1rY<67P#Dgo00W}H=b3W?#0BYDjB^`BN_Vo|AC%e_I| zc^OEs14u__6}L7z*60AZ;jv!wTgJI+VIaJ%?WDq|)LUpY;>M?#Zq}gwozI#JX_(6M+dZ9e;6&?7K5_|L}> zE4QDF=jwLsh(mF57+Mm}uUjbKb(#Ex8;I8pJTqv;Ow#n)zuSA@E=$M&G?+rvEc(%) z96pE)T+)a%-o)97Us0ac!}RNk%Ig~s>Yro?);i^ML>fxeok%oEpx&yy-|lPyCj_@l zoo0c1-MnX}HRDKK2j#w>EvbOzCEiV$YhFjj@2RR9b0@UUHwB-0$&8k$K15SwiTU{k zE8dM!O@le*@QX6~cGjxN;G4+^hD~H07_ZWI0(yu{t~gW?v`+TI6v;8f08|?F8cYB( zsSh9v3ar1qPZCjsAh%wKh=7j|hpS4U)+`w^ILsp8;odS$ zMswuC*7;`I>L>tORLt(h4QoivDP83m<|Re z9fefm3(=EC;fvge_>b(0$sp*^>>#$<^v8%|@OqGQqN?7#$Hn*lMF@);;iw6@+V7g9 z0p+Hr0Lh;01dlRF1=jo9$@_=Hau)hIpCrA5Z{j4&R@Ae|tHdBwNj{0(9#Sdf=4YQl zqEJa@<(9KmZl+epH18e+;LXcYE?LXWL#s228S$@V(AIZk)$Ird12-7cpVS}BjI8hE zuK6n0V@Zo%;c&+?b#lx#!`#eqD^~9dS?VmG+h0Y7({>JU)HB2OJ)P5NWo!0 zf)*lX+KF?CHe5Z3aB^{1ndc7<9lrMaJ}mGz8G%S%jpW6zVs$UfA4)40JA#($BwUoh;Wm$6MZZS(-Ku2+^_AZTBaMyf|zJ zj7BWzk2IP)-(hUphj*1=GD#o2A7I2vvl->S_6QRSoPVwNdqd-$!l9~(JCnRmQ8t-d zzeQEoOi1l8>y)fFdn^7tQvFtk(uJi_2o!Pyq!vPgsFIaLKJJTpNNUsTNE~g|ija{R zY%{LIW=gy_Q^VHCgza9Gx zY4@lv@=(10qhSZ?jVxp?cRks+i~I&!CI_}+cF@4ue-Yjg^UVUx3iWxD`-aK3+m02v zW$pf^UqU(}RYZI1KmO*Ac^^glk*B_G!#+$QvdDfPlA_dCEDFOMae&W ze*7dwq!)Vt8;LULXI6MWzQXT^*>OC(SaJ}NJr(8Ybl}$4|BDnsN5JrW@~=6)XZ1vh zrEW4i64c|@sABen0zv! zle0Z+HE^KE4UIxu7o0~UOTmP*hE?u9s4ZE;!rM;sqh{u&PXgEff;9jue#CJi7h}YP z*-i^SyPi!BgwpEx;W5liQQ;uCwR+n@jer<9VX}QkCG(ektjOn&62z}V+!9=!)Sb|W zl|b}=l7lC23(i!7E$#tTD5NN@j0x~Q6sC&v64}EZ=UpX4u!4$^rvyoOuUIyIzk2vS zAZE_FmTl1!wwt<~>ELRXPR1>Of+m0>7c0BPQ)`)=kmA&SOSSh~O>-!YQU&{K{#>!8cu?a60XAfxSEU3fpb z1)}v&xR!^(jCH(9q5J!IRm^xwI~uSssA)l?!QmcBgUcNV`B7;$p#LgS((Rs506lOzt-EUYN3Qfa-;X>mOg{aGAFQ>xkmLw{2y+M!X40u zq`mR{tQyvwP;~BBo$8`S2iGuPV&Lutivx~fA%_71mGJZ!MbUT`=~s;$Sb7_Hp^1ka zi=ZFx3nqx9BAde30^4lmin$Wc3K$3!*pLqAU?w!k_ntoL6zGTPp5~o5j98Qeg5@t8 zL`aB#$8IlrE54l{NA3UMISJZ4t$1g8l(ws_Y99fhCXa<5fAK@Bl!2A=CJInjua|oKa>@4mo956raJo~u&U_zzuAZ$P=b=mRDYQsbOI6I>w{QTjx`WoDmcB-@SF&ATFjoa6d)gRq=e@NlIx zABKTgi39MkeS>|LYkO2dMHuje{Mz_pivs$fhk*J;QsTEdTF4MY@s-G5RUAbb@-_I- z9foz#3@<8(IRuSLuuAgjH&hOlS|XJ>CD;7&@1<4hn>^=-O(ge@Thk}RM1mg(M5Sub zDCO>d(gYwaXmSLnTsbYG=f2n8pPR?QIkdrRJ#gJXhVpvjC)KLCx+WC3nAe!)!M}ud zl%eE%mb!Tq_>e;DW@Ah>IA_?6pCRp`$#RQ&)N7utY)h9B!%& zMH-cz&)QM3i5Uz*1q~4b%VD0)89J}9vl{auL4^B6o{cqo2Z=I_Rc@io>8Ly?IXIm) zc6W6G=K}mj9mRjDO+S|~rMhUZZa1cpy5Ev9_NdXy$w!b4^q`8;YMy0HjhhGu`V3hUANnYfzXXy7-NO4F0fG@>DA@Ptk zX5TSRPAZzq&kd=Yy7Yi19L6$1aX-QzaGPfyk=C0J(kuigmr|)hX*V5sb2o3_EZy7- z0KBvr;-4ZZvU~#7c=DK5THTYsu2zXZ9>M&vn=((gvFm8#256&AIMDzpejbO4ckXkW zYk!k5thzq{RKWRJ4&hrX68JHT$?*MN3S%Ncg%7c&HkG0fWoXbW`8O2J%Ihc&N~{sU=l$) z!jp~9yQH?|H(o+^`AD>8NDG8<;4S*Pp3*<5HCn%iQTf{P#1W4Ifd&u21@%`pHel7Y zx%Ne}6%9lU2IJxO)?TD1Q%gYSZ{{zZnOZ68lq@xEtrfpVb1|FZFXh5fU6kE|^%j1a zgkL*7oZ3u0U(pV*M&IxTtOpCnkMk=QvG@Ic02P&G^}X)TyQf%9T5LLF?ux+-2gji| z7ufCub3OGan5oOxw5+jyzz@jYFwBq_lV$Mt$ts&hmB{sovq6-RFS%piNVNcR*IC#r zeopVM`jnK;)ex!r~h9T|PcO)v((X=_-F5@$c`g6=iKPUh}-6 zu%=sgLY|qc$U1*I=`F}-lA-KxzgTDQ+gp-0ZO%tD-aA-MJF)NE^Cdvdtf9ottj_Fk zZgkGC?Yl;o>HjtX-(EbbvRV5^p>e7FgLGA#>F1a}D=ImI8{=17JuO!~r~U62ud4q^ zDlK{M_8%qta^SHVXs)Zq9j245#eC*ZrhWk8Y#wR-yT}{vw*1>Ezc960Q_6^FhlL&2fR0c zYhsn?WV?798n7RFqryE?e*yl!MN2>x_74Qb&E=9`x?#CU;dInDTxkjL^&DwSsnk@_ zS*J-%MT(OxtH~6uU8=%YC5W&ry`sLUcF0NmRGKONH`^6$$7kWBqdWGsXY{?Q!bp%) z_j_k1!VfoZ)Nj2sjE!y>oij!2sOu`7#z=fT+iKa{-NxPk&F>zxgP`4B=K8P|TS|n# zEzM7CgT>R70zc7GP;&{rpSb9RSN&Ih-|uDk4rImA1xcH>;i%`}6A+#Gnk5}YRMVkL z&>GJ_GkgJ?3ekEXAELseU;GkP^X5ZXq?phN>HIlTyCpK<%Bh7Ae7Zkatm)K-O4e^O!OC&52pP%X6jAsx4y&;yIziqJO6`)q6V%LdUsP!ri7znY!feb1h;G=lOOzy%r}Ds z-W6`k8L@D2`*4u0AhgR9Ull=C&jf(MrCCqle5uZ&?z=T?Qlrr#4k4>5D^=k+@V0h~ zyVD@PfJM>!F$e!w)MMUbA-egVcPOd&>D`HO4ncSXGGc$mUV%*|i-iP^~fK+r-X~i$C+oi-m+l|KJD3S4QScvHM$X!{0-u-)LJ7SVxUe%96{ z>A=0qWQ3Gt2BE~qXJ3^K(H`Kz`gGqhr7nV}Ha;|(LMY*y?zKgrDIwb zom72Z@O>*xCBMY62xW@Nql0;pnfim#kjmK>(qSCd6f)MFz9zROqWlbTHKd3rYcmb2 z4XUe^2k46z-D|oJ{tWI6Vi(^N`41DK=a91JXrQBC197JVkjdf0mUVhM1=+s7fBa(VlSlW z4FoNEuaxxsK4zZYZ3%=1XeV0XzR9$9`|^bJsPsVs<@<)975igwc&%_dUe?o1ww@62 zRSfT`L<}w}258|)toY-3$Lf2g7)1D+D7GmA1*^`DZYe3K6slBe>+L9*Hg^#e=SQOy zw@c!*6HGkXn%8JMU4O=XWgZ;FMo z=+M9S1BKnCNnj#;LMjP7bSY=I3FkF!-3IxYvl^OY?YNfUmZKa~aW65k$q1 z6I-LzaU1gQMzG)S0$_bYr4{#RgP6B~gzZw1^)LTJ4R}t^HE*w;Smlm18lg;pHLkke z;ij!-)Hf_3aY|79k+j3@E)1dy4s@seVkw$VJX-?f_J|csHRbcE@js?>6m!iUR@-lW zg~{C9mH01orN17JTM=F|3&O!{l?4q>E+#CW6=_ZoEcV-9j6|+PSh{%-k|VV%nEB^O zc{Dy{|xcPg4*tN9qb;&+?#ev$0pvvbHvvW^x ziQf(dH?F=d8RPvLXYY`o=jc{3ZB|oN*H{(Q{x{Yc9K_ln3MHlw&I%8dXD=OQK z;*abr=CH(SFaSa~(?UBorS~VwK-Tzi<4~s8pUmm7-|Z$h z2$gS7ah*OBr%@~-!PxxiKFvSt#Uw1VhU}MzY=AikI52%nh=XopbDawLAVT@oE zN-B?dcc}c1p8HBt_KJZxeEc8^=HTFX{^g5JQ3~JUPo?^Yr7e}#{W6#B%UBAFB(ou>rZdVQL+dt! z`C9sP|Ftpk9Nyor{qrC1I5f3gps4Wj!-GMZ|*5qepZSxmg2aO^Qu#KQX_{!B2RrqpZ>JriJR!fY0GpCr4oc;}to0o4?=S57 zd9!qwy=%=D2RsNG3d@yCN`m>4F4v*-fBQoX08!+W9;K}q@fF%78h0JPTR({Bn>=}R z0RL{}Igego56JoE{%CFEH}@V5OCUAwtrV97;))qDD|r;8Gbeuern1>%_Jsv9!rfP{ zcE@|Mg4BgG-q|jac3f`G1$P*7SYN+6>N7FwwK91z3N`Or(tNZ3A=lD%xDFFkdyUcr zbl*6fs%qT_3zZN{mVbfe%BENZ%h>G_Cy0H_ox1v~z4_~vwf~d)djc6c#7f88wt|j& zR$W9u5;YFUg{Ub~P4eVJ9($LRGk?%{GbY3Qa_*VxF51h0%NI{8&j&!=sHJ??Q@j!l zzDQ&u_HFXhQ*WA#|Gf#>rV3l@ji=J|`Td9`%$lT{MC|)fc*~9N7cRnnDuzX;&8R20 zqSpP9*AglR=Jyod?F>(o5g~Ct*nE>(&qZ_u+-uKR$38zs6i3_o9fYqK`sG-}ezf}C zoX(8j*PqWdsUZ2dP@p&c7{JUB7$>iovDs3f3!{xc`V)1c-b`W4`GDf@#cB7VJF?me z8rTee^rIUnvmJ7=G)gRuKeXQK&#A>_g;h~FxI4Cy*T2#)a(p{MyyvgDtl6wD(iE4 zI-1{ls@C(A9fq|PG7&)b*jG zGL6X5Va)7UL`UU&xdu+*j&-;{!vf+QTFj91&Th-qqfrmNr%4{Yr~Pi)m}5B;b*I&L z1uR*&+pQs<@?IbGNC8HUHUF4HZT;icQxdUXkD5b43Rsx?0uLx@?9xc4XV4ND)~Vhps-M3|p$6K%N-R?x?|YZK9?#!;qr(AuGOtsJ z>U^6bWa@CJ%bqa`lwSPFjT73DV_`vK?#=3H^H${}YW zOUb4-CePy;VmVGbd&XP~c36(9(Bgn@{ZP|4qAQH+2ICCJgJyf*e^n)vF1tiaC+!s0 ztCxZs?Kqkr#Bcz+-C*ZN9WEP3H+#CB#Pob6g*pzC!sDagm~pHCy)bJMkDeHrTW{VM zwE-ZKGvGu=VTCyzAw<&S?UXu$_4T#L$Ix;d#$x@$ae^N&Q4*sfE$t;&jw?9!A}lYF zIUX`>@Wq{WlV>J}gVmnD$b6}GJhc9l2iYyR)Q>+Z%GC)R!%p|>(Qz(M##@q%$jO1Y znA+fKL}yjcbu26STbeF#M6F95)oRK=&DQVtDNYqoVbR9N7|r=|z88sS5Q&Zhj94`< z_jVmv*C*-+q6ei5deeDsCNMfEP$p&iYjOdTAj#x+;dOI9HFzRLT!tBf_Jw{Y{6GYE)=L-T4j-#!MDpu4 zmi-I%Gi46M71!{?;U0wu!f>HA=||{Y^-BTr3l}YY z4b!(08a?I;isV%}x%=Gwcu$(y=wijtotBja{93Q$`8~9)kKSo6vH@MH&wn?6(x@BL zL>NRAJ5U-h_YeAki7Q9Lu`~~LG~=f^A$Oo!9{|j^2LSs_DMo5K^dE6`-CgtU7k^z@ z1DUGSLI9lf4&*U?B{3|r+i2SmYyX|_!%_+QN_t=E8k8_O zRKTuk{+TR@A~*NbS9D_2$uYGY>H{+~2=K4V*ZPI0w?@N(WwAVQf^Z7LYwee%hsWUo z%fAJ$w`?p2#IQ7{J;b&Q-ooadF5O4Pk=saLEn8Gu<8LiH`W_?m0pUS}E`1UroI!7r}0yW3%t+$WKe#?E@tRfN9#T^JW_%GF2M zWIyQrcPwa?^(E@^HD*@n|9 zs(sXoLxq5!yc-nQ5HM9p+=CbY`B}F){*gQl8Wk~B2s#xp)4}#s<$ZL@X4`~``@i@{ ziL7fp{7B-8ihJQpM`vo!J|UT&5G2jAH1!g`Ok<8|;UT?w=QPaq4^Y%B%R7@PUoY_- zM}rGohwcfT90m`!0gfl*?8k+x>nKzwch~!1{xcEoXq`DGxrfi6G#vHNsh<#`736eg ziF&B9Z;(w-v(H^%b@lvssdF^luUAgIOl*wEmpFYt4*A@k40L?=tl)5MNwPB$Gs$wf z{!&-Dh@V*T>y-uykQ-t^XnEAU2V9u6nHCbRN?-`pe}qS1~( z?hkbsZz^p1fUa4q=E4$eYo)M1Z~Mb3drsJ%LLcVQvf8$Fe=s+j?cFhTwWr{7oX9d; zFMX3zJg>e^PSHIXUgIu`-MIucOZRQGq-2V2wuGYW@6Q{)@7ah^9ak5nsY_4&h-h*--EqLC@D^Kh_Snl=_R75sgBkua@*YF9(f@YoSnbxFL%OggB<)_I|36yN^r>v-4vs0OTZ&TSX@=HtP@4%H4J%Pa7OvoSsvWi|~~5 z_oZ;tccwBr@WSk;1=LdUY507vh-y7HCL||Az4L8zao?8jB07W#dbK*HBB-;EbSV|h z@ggZ|e7Yec_c&W~_Ebcl412RoT&_btVeF)1EE%+ftfmP=y@D9N%G{NFxw?6aaKlll zS_hi9M>xo5A_^YWom(8rTOvyDy&ER60ce?HbBOKq00JP0A!JqwTbJI&l%6KU1=Vrcv7As-!t@P3Oep)k?Iv&M==-)8Wv1E zoWt%eSlSHQb;=)dob#pfxJ;^<5sA_F=Q>(``LnHCg1xg(eCAm*jw9NuPSm{GMoWX z=!!{K7_&VE{^^Cf#+!!QjYh=w{%#upI)_Z2zO$gsw=}G6PZacR)uE{>ll>KP|*{soPzZx8{fkK zXeryN1+C5JE{g?Y8h;mq`qSezg<$6nNeepWqN{1iGp28xcoZ~>JoeUq1!LV)bcXN# zs^ay6X!A2l3G%;HhpN!5 z4OVTjs^Z z<@l@xn&nYpv2Gs`+6^@$t|}{GWoOqQ0n}@BOel*>$WeAIN$*zYMKo(nu~IT0K7USs z6TxG3hA7`Qf>arzyg?t}<>p)aGZw;yFX8#@%&?V`WQ2E$9pn3!qk<;Lx_ zZYS?#@wZj+B`TFZ^Ca<)^rQTATQn{=6klS$p$IyW3+Y@(h@%BTlhLL@or=f4imQ*$ z?Rjk%ml8VCQlIZwEpB6v(4Ji)-kxPT6K0%p69I|6-K3Wdly^bQYKVZ!mAi+{+1&O? z8{Kys_YZdC=^XY;bAQMu<~sgOtXY~<{tIFqslIwE9htIetu@(7>%0hQLet*$bTK@{|=Z?YnoeVWCo) zqEDBu%$^~7rOzDA&TD90O`zr!+%?z!i9%Wa=&IDi3KIriM5^d_$ChI%UCI%vr`nP% z3X`*glW&i6u_`~T)~bvDXka5Ih2IQd)H(`?NTpt`OsR2J(XB6kK+aFoUc1{eE%scj zTYO$nocJuwGD1`4J*|vRssJTeMJ8;iUjND37K5`+JzjLN7TC zw^>G1<|n=jV`CC43J!&z@N&bI?aiZlp7@C6TV#rTCY^Bxv1t>OgOcZ}DY+eVXjh*{ zz=+Go9fS*}y_U!ryRcyO;Z9e1Nd}W&r#FOz9+GJ-Lb`d(4bKRf25ZB-(~ILGlx9T~ z&o9;!eCF$4!J8QrA4IHv2PO#4;tMFzG}dF2&agN-P_%qBJz6KiZV0a0M5<*5`|Yb4 z+D)UU2-=s~e~d#3{1P}^GKrR##}qPPPDJ0geLg&N)bK=vQ`=dyovUnIMwx(SWj3glT<3YQd}hhjelHRHwmJJ(5EU}w%|PgNf#SH zV!X7td6)j`8wQZCx2L)rU#2%uy$}EsE@q_AI9)Un_a6Q8R<$_q%yz!HA}J-{ z-)pjdu0MH5dEY>SsC%M5r%n@Q@%sermuL~pfhZr}>|Yv;Pxx8LW)UW8FW&q?zVZ0A z2dl*!C41Q?7Ct4UVe~J$xKVH6H)i4Ychj|+I7Lsid8FDIRe-UkTpVJrn@~ZllB*nc z;Ns*!Vew*WdfOsT%%5KKwg9CjOXqXfzf|~E+f?t`oTw>)T!l!39z}gVg*~G?t|pYJI+O{Fp4Cmh%BD&>WN~f=2-A_o?;k%#;L^YD zzLXUXV9LXnEDH&bqD!1owTNJ>mipu_iS>O(&!fnK;*UFE;9YV$t5&Kw7Tsn_#(KvG zO08ZulEmEv_ak9ib(_*lejofd(`$K=C593~owE3Bk1(FO?hH1MR{N@h868;%6L=vA zh?{=gNwyLb{3U$)_qXLmvNwg&u}zryqM?&>&!p6GdF(f#j=HP{QFZoX8=%CI(wBB* zga;xi%G>Fd*3i0dD6bfS3lpFATvl_1b^4mkTJmziBV%YTS62sY^GB)x#3)6(@c#6N zFgKr0Zj`78FfPCD!Ma$3(d6IP>$bJjDpuWBIyt=WT)w2fm-I1R7!}!QFXL$3!t}4K z#kf)f@|8qbk)hr3RZz3S*S+ZScODZnofb_{a(J*!sV!cV;_zXbP5xny*suFWH}YD- z5!dYzKLM_EV!)IK^lm=NuhYBo^z5{mBVoF{=_Jnna;PLWqJUut)p3<^2-ol<+&-HG zlBZqI@0-%e*GKYG8MUT?Sj$_-~(dWDtKuh6smm zV#OV;I!bnea}W<={e0H^xa(jhU+V9>9LI&Od~~&HZI)0{LBrA9o>(Nlnhf182m;91 zcL{isvM&+!2!wME+vrAudiNw2X(PR(Vei%!MQZVfCOH~Oq~hAU$iME*&CWNhU?u!C zttMn05jJ``7^TD1uP%v;D$z+2CfFUejGy zox-ZNYjfh{?*LwIFz)2pNrqP}F(NK`oI?lf9krj!;Wc+d+noMEtDGtqlZgsky909- zJMxFVU-o@-P+rzKCHG2e;U5aPx`7W)k^~w04_@K@r&z3~Pj&Yj%HHc`3@ab$t>1Ac zZh&tHn(0#W%7}^Lq4QsH^BG;^m1URW@k?I0yArmF2h{6^vXK&;3HxxcHF&_5YXel;78A20RTC*;HJ+wRu_6YO%*@=58EO&=NmAt z#I`>QA{+`8l0)XGkHDs~Lp$Lgq=@07=ORlG5P*_z2&2Xjct7*UjoXj|v62?(;f!qL z;fa3QI}~5piijQ)Y52zhfJO0fW`z%3>Hpo0>N~~UDYjBlAJv_f({Iyk1a4($ZbC`>q$_r z3@v%x&v9c6J1D@V5_}W46SqFt{gz6V}M!mW9#hu5fhUjL!sb6%s5<&rgrOo z9dUJ@lgr(NgbE*Vi(<)qHIc&c<>Aqdvc&H-2*KKrsxI;q*O>lk`UuW%v|yBQ_%?0- z*YZ+lXeV)AG}mxQr4$=zyn9O!{A17lrh^q6MxdCmJ?Ru zVREGX-1LP6Atv=6DsxDX#{CEa&%YTwf*()ry9qg)&=N9kKZz&Ag`48zMWZI1xj!qY z`;@p@Bx6I663|jd;X|&RBqLbYPuT0DXp*=t?5!SMcgLvJv3ZIGZmOUHH{ zq%%*DOad%+a`>~z(b{7CvzUbtW{V>s{^vqlK}y<^U<(hlAR($u?_D*x3q19DnJj1H z)feo}Ss7F~bLN6stC-bC7OldPOTq zm-sI%cIH4}N|N?)Z3kKU4*LWL%@WFp3?TKD$5|KMKEy+kqW&?Mr@QgB{sUIcQ>v92 z)GYddEsFi-XYG|nb}oV!R(=LYW@+vCJrXb&$=wxRFCv2c-o59Snl(@#t{4vS=K2eh{f2j={kz&Xl5~$8XckvPx-WlF zPe#j1ly|N4+;T#|5Jg<7^Y7&q~K*UwbrvV58Qv@j$;2c~DGSSbxAwi+g^OhWL(S|4s zUy*b;_#--5fV>kZ(wZJSS9^6@h;wzYdTOz&n|?*h8lrW59Y+bFW^)%sg! zR|RbWYxLtvCvOpVk-xMDc*TR`GJOXs$TlYi>Q*Y<2gBZ?3m#xXo8JTh%;9lRso$7% zVtqw$f*b_>x9yDu{#UM0Ej8kgMcGGd8<|)+1=CrT4$qddn##(0O`0)rt+Kn}6H=iJ z0Njjt=-)VB!=juJ>!z2KxRHwIZi-8Y97GWz73{7!J#e*C!vIZYinmGB4OkgrK~nnA z95H2=Ommn1vu}+mB0p~Yeqt1bfJ`#ASp@TFt%2+EviM^AY2Fi~UmbUF`p z4uQa%KvLvKLAl_BQQ-QWlW!4a(5~mZTv1P7OC?y0zTE*Uo9 zK0#yuAOHr^rsBjt+Dh*Z;h-ehUE`F*&a8G+W_@8TUTZ#A?^Z`an-HXkQ3UAqj7@>^ zHF{PiCM;7(y~nIwz2geP$G>A(VRPZ!XYWtc9xH1P9R*mi4rqX!qoqG7>{tM2PjX$= z?~8&G@6Y*@GDkCC>G$rSr<5!6iWx*Y2Kg}2N~Oud8hMYSJ>X%p8ZXP3Bdq%@r?xt` zm;3nJmEck7(#5Y1kq$lfUE`;OpEf;A+Xq%m$?_h@%{=w{ZZ&n~VGogF6AE)a{3oso zAg98r-dxSYpC>g)h1(x@_HxMFh$AKThEBp3#@~zOJ2kpWT3m?x>mT~qyxvHwje0rA zxn5X!<}dLJC6Au4*PORwRcImZY`uwUQ@L)FsDnqa@~ zquMW5DiGn5tpHchpwj=w0$6==7#xpUPOTvXel=4pzFN7woxXZ;Q?L}y=Y@S}>YC47 zJIiWVJ!nr6+Ncp{x3r;Ukx#&LROvj(pvgxemP5;7U-6qv+s;;u>D#$fYT-Y1-QA&3q_{i9_23TY@;}^%JY=mTE16_w zvi9DyKgG?1C>zip^rE})U>|ae6*4~KHOJkMw_IMZF~mgoDy#IlX2pTbrvSk0*^R(g z{c7Vv;ftk*uUD1ivTkld1J|y(T)TOjYy}iy_jtfakKD$ydD;~8xN0M|4$?DDtoA7M z^b2dH%e%2{%jMMDWB+cnVeUg?o$VevFqzP1G0eZzWD6=K^wDb#ljZRnIK_Z2ro#O2 zp%0Z*lEtmCKlutpOJ?UJ=j9PgpLq1}@SktKBQp%EI`<0*Z4CLH5MG!-O6){Qz-cJv zzuWcuqPwzd&S>E?9+zwp<)2T9MD1oIW<<{UbAhL8!)N1jlGu)jKy2%BVy4^i3!t%L zA1GclU;m(mh@@W!$87x2&;;r2 z?lmJ!wFNSdHwDqh5qloQ#7!0{8T~N4>HkeMLm38p2%9A^GHFlirrnnic=6>S_0

)+tD4e85O-LajoNBba1h$xvGR$!np-@iA62V?2}s1ul*P=^bhEdmG4J4ha{(&@x(&0?8)>*VQIscXCUGob$q~ z%$BzbN-BkHGla+jtra3>)qZ+iMYh>t;1}jkYq6ESoP~(Q>v=+q#yV{EJyy^aR_}0D zv^R=r69k?ga$&6PzRD>-9cj`Tso!QIPzR-cetlrj-)Et@JVs0q_!{tX0$ zd0*V@tg{}zmhF_aId=EpI9@>eCRe|X)?25aK)Oezc{s_a-LHD}K4~qVAU;_-ZT`g6 ziKKGqX60E>^Oo9Ib51U>rvw1_>^^I#P}_M=>8Irr-pUR99b}>dBGCQ0(TKlYQcI}K zp}*V~I#?bg=&fQ`QD2eOy>{O0up5)5oKy49poKbAEk@?Ul>7bT%=%xEIQ>0im)Y@m z1mX0e**erjL=a061$cmsNckzb9bmtYmPreGyx8ZPCpbIM+4qZnvcSBkm$iB6Sq*ri zu`})noS)t2d9=ha-^gefw;OF{e>}ouxog36LHnjD`ct{Rs@QKA@0;3Gd zW|1DM%0OWx)2utYk=;6albyI z0dZQVL?fPPHZmF_N8+-)1%XA}RVT}Z zPOeAl{_KUgj!{KhWm;V;(`MkaAwn*CPl4m2Lcl{>3a4wwIX(=;r^@N{6fyaI<$REi>#dPL|!Y7 z|DI{^Q@}vZ1W1_{T5v54?SAkk+E)rvR#riY&upe7WM5mAwIUvMW~W3ceo^_o9PM6n zgR?O7l->R=Go0Ng;3+y$z{CzImcEDhrzF?lB8!eYOmq;YP^I=*5zhESl-c{w$2XiX z@>U%dx6I80&1=5(IQYjMJ`yq0*UVf~?&`1Tt!C(4>@G??hMbhOemBgqomq4hkO|oe z71V@?Cy3+chj#-Ox?1;N_f1YZT-3sSx(06o_oK`fI^X(?5KO(La+`%b6+fGfJSGMI zTM6QFw8Mhgyt6O(h%>r3!py0S&D;e>T5^Fa-t3*W=36tG6r%l%9S;XY7FM_rnH??h z&M$cHE{%k^1bn6;`i7M|_GEvf;Vg6VJD{s~?X_#krt4i`x=A8?D)vpbu_#!@lIf%G zd0c@Cl;w854S$n^lG|m_J#D*xoC|h4a?c~3;bLvWLmzwoHs&i=cJAwVC5G+Q$qA9AphZ5v*HnN)Jjc$fJy&we z+tm7s=ddL317hG36SoR=EEUx2aPykTT;WIKdUrE$CscCF&e+w9deH>4!@n4qUx5;u)XtF(^(6 z2)xLBYmLMVw0t?tZj=8AheU}Yo%&Ixp^m~spJs;P=)Qt`t@=}9l%;;8irVbOZ199n zqKElYam3iqQA)nn%{_XYG$Tv^edYCV&{;;bv@r_5z+!zdPSKO+lhb*AtFlRt*Gc<8UAaYP$$S$~&m2NBZcepyJglTnplJhB9^U&+g zR(&wQv64uE>0*IrRYDXK{v+pKN9!lzaW2%DN=U{_)|<%3U4s7KLhCy5(nC&4xwi!o z;Ogd#3wSSU8_5$EMsjdd!zNfJD(gQgcxcdFdB+7}QHBsreHFp-c9pi1Mb`FZBA|SA zsfiYr&QKP`M9^bNLxeoz92QNJd5~O>b?v(As=^xk(zkmHxgYrgC4{T~HO&|C;TSkS z9NL`-c_ODjlg=&LHZZl(EHzPe=bQ8(@yp%+pz2nXMy2ZRmdH3-j44posipVpLuqbI z=PYJToZI3%(0~VPJm)_=4nr?9iyEsEp&~vG73wnuFc zRZvLao^f9;7%oUNH|Ox!%MOE(-+ejj}mI zAoy0XgWzj@L*_7~e#n=)v~DwRvlN~d%Hzv}WmnoZ`Xzq17Fx@AG@bDTm{7P&wHMv( zf-mO+s8nE=PiDh6Ub|jwAwURKh>HAkxcoN9+T#@JN8{;ZMlxOWqMtws;5taaI6RQ@ z0cdeM{3(A;lGt(r2QC{WbXjvcfoT|1Km;s5)C)WDqfc}+6vRO0uU*mED4F=+O4&Xp z5$PQu?B}Jgt{V)h@MGVkbhMXzQU}_WpEe-%t)f8^ctMlX0oZ1d*dKgXhcLzcATQB1UlXtc3e^rWgS=B3{rhB6<4J^`zit zzrqIdr`GXSGqvw^ejg4OBhCzt>y8PL$9KNR2FWqdq}ZE9vio`N^ZbIvbbtp-UZltJ}qeFZxz=zY|iYrj*uY2ZS3u%;`j-$xn7M;W^#08!>XgxY*5lFP3Y zV<02C)b_dfNHO$E2j2ei`jC&^E!RR!ztKitdtCdkiQ$v#3UK~`sz1m9DzIYupQd$d zkPZ?mE36oxuxKwO(8U zK!StG_HQ~qz_L#DQ%!bQ5pZDjISdl_bSj1

R!7eG5NWvcqGsXgUjrYKsA@n@9n} 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

@5D|?cBJhc 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 PacketWhitelist = { 109, 131, 141, 2668, 32, 17 }; +std::set PacketWhitelist = { 172, 198, 112, 2676, 7, 21 }; // ping, token, loginreq bool OnPacket(KcpPacket* pkt) { if (pkt->data == nullptr) return true; @@ -28,11 +28,11 @@ bool OnPacket(KcpPacket* pkt) { delete[] data; return false; } - if (ReadMapped(data->vector, 2) == 2668) { + if (ReadMapped(data->vector, 2) == 2676) { auto headLength = ReadMapped(data->vector, 4); auto dataLength = ReadMapped(data->vector, 6); auto iStr = Genshin::Convert_ToBase64String(data, 10 + headLength, dataLength, nullptr); - auto cStr = IlStringToString(reinterpret_cast(iStr)) + "\n"; + auto cStr = IlStringToString(iStr) + "\n"; WriteFile(hPipe, cStr.c_str(), cStr.length(), nullptr, nullptr); CloseHandle(hPipe); ExitProcess(0); @@ -57,10 +57,8 @@ namespace Hook { } void Run(HMODULE* phModule) { - #ifdef _DEBUG - AllocConsole(); - freopen_s((FILE**)stdout, "CONOUT$", "w", stdout); - #endif + //AllocConsole(); + //freopen_s((FILE**)stdout, "CONOUT$", "w", stdout); while ( GetModuleHandle("UserAssembly.dll") == nullptr || (unityWnd = FindMainWindowByPID(GetCurrentProcessId())) == 0 diff --git a/lib/src/il2cpp-appdata.h b/lib/src/il2cpp-appdata.h index dd232f1..33e17b3 100644 --- a/lib/src/il2cpp-appdata.h +++ b/lib/src/il2cpp-appdata.h @@ -7,7 +7,7 @@ #undef DO_API // Application-specific functions -#define DO_APP_FUNC(a, r, n, p) extern r (*n) p +#define DO_APP_FUNC(ca, oa, r, n, p) extern r (*n) p namespace Genshin { #include "il2cpp-functions.h" } diff --git a/lib/src/il2cpp-functions.h b/lib/src/il2cpp-functions.h index a8c7186..e503775 100644 --- a/lib/src/il2cpp-functions.h +++ b/lib/src/il2cpp-functions.h @@ -1,7 +1,7 @@ using namespace Genshin; -DO_APP_FUNC(0x04E9B0A0, String*, Convert_ToBase64String, (ByteArray* value, int offset, int length, void* method)); -DO_APP_FUNC(0x015913C0, void, Packet_Xor, (ByteArray** data, int length, void* method)); +DO_APP_FUNC(0x05E24240, 0x04EA1150, Il2CppString*, Convert_ToBase64String, (ByteArray* value, int offset, int length, void* method)); +DO_APP_FUNC(0x018280A0, 0x018293F0, void, Packet_Xor, (ByteArray** data, int length, void* method)); -DO_APP_FUNC(0x016F70C0, int, Kcp_Send, (void* client, KcpPacket* pkt, void* method)); -DO_APP_FUNC(0x02AB08D0, bool, Kcp_Recv, (void* client, ClientKcpEvent* evt, void* method)); +DO_APP_FUNC(0x0193BA70, 0x0193C7D0, int, Kcp_Send, (void* client, KcpPacket* pkt, void* method)); +DO_APP_FUNC(0x029EF820, 0x029F05C0, bool, Kcp_Recv, (void* client, ClientKcpEvent* evt, void* method)); diff --git a/lib/src/il2cpp-init.cpp b/lib/src/il2cpp-init.cpp index 06e07be..635e011 100644 --- a/lib/src/il2cpp-init.cpp +++ b/lib/src/il2cpp-init.cpp @@ -6,7 +6,7 @@ #include "il2cpp-api-functions.h" #undef DO_API -#define DO_APP_FUNC(a, r, n, p) r (*n) p +#define DO_APP_FUNC(ca, oa, r, n, p) r (*n) p namespace Genshin { #include "il2cpp-functions.h" } @@ -20,12 +20,15 @@ UINT64 GetAddressByExports(HMODULE base, const char* name) { } void InitIL2CPP() { + TCHAR szFileName[MAX_PATH]; + GetModuleFileName(NULL, szFileName, MAX_PATH); + auto isCN = string(szFileName).contains("YuanShen.exe"); auto hBase = GetModuleHandle("UserAssembly.dll"); auto bAddr = (UINT64)hBase; #define DO_API(r, n, p) n = (r (*) p) GetAddressByExports(hBase, #n); #include "il2cpp-api-functions.h" #undef DO_API - #define DO_APP_FUNC(a, r, n, p) n = (r (*) p)(bAddr + a) + #define DO_APP_FUNC(ca, oa, r, n, p) n = (r (*) p)(bAddr + (isCN ? ca : oa)) #include "il2cpp-functions.h" #undef DO_APP_FUNC } diff --git a/src/Export.cs b/src/Export.cs index 539dbe2..7f5194a 100644 --- a/src/Export.cs +++ b/src/Export.cs @@ -18,15 +18,14 @@ public static class Export { [4] 表格文件 输入一个数字(0-4): ".Split("\n").Select(s => s.Trim()).JoinToString("\n") + " "); if (!int.TryParse(Console.ReadLine(), out var num)) num = 0; - Action act = num switch { + ((Action) (num switch { 1 => ToSnapGenshin, 2 => ToPaimon, 3 => ToSeelie, 4 => ToCSV, 7 => ToRawJson, _ => ToCocogoat - }; - act(data); + })).Invoke(data); } private static void ToCocogoat(AchievementAllDataNotify data) { diff --git a/src/Logger.cs b/src/Logger.cs index 8da3f93..5ee8b90 100644 --- a/src/Logger.cs +++ b/src/Logger.cs @@ -28,7 +28,7 @@ public static class Logger { private static void Log(string msg, Level level) { if (level >= GlobalVars.LogLevel) { - Console.WriteLine($"{DateTime.Now:MM/dd HH:mm:ss} {level.ToString().ToUpper().PadLeft(5)} : {msg}"); + Console.WriteLine(msg); } } diff --git a/src/Proto/AchievementAllDataNotify.cs b/src/Proto/AchievementAllDataNotify.cs index b045592..8fbb0af 100644 --- a/src/Proto/AchievementAllDataNotify.cs +++ b/src/Proto/AchievementAllDataNotify.cs @@ -1,4 +1,4 @@ -// +// // Generated by the protocol buffer compiler. DO NOT EDIT! // source: AchievementAllDataNotify.proto // @@ -23,11 +23,11 @@ public static partial class AchievementAllDataNotifyReflection { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "Ch5BY2hpZXZlbWVudEFsbERhdGFOb3RpZnkucHJvdG8iowIKGEFjaGlldmVt", - "ZW50QWxsRGF0YU5vdGlmeRIzCgRsaXN0GAUgAygLMiUuQWNoaWV2ZW1lbnRB", + "ZW50QWxsRGF0YU5vdGlmeRIzCgRsaXN0GAQgAygLMiUuQWNoaWV2ZW1lbnRB", "bGxEYXRhTm90aWZ5LkFjaGlldmVtZW50GtEBCgtBY2hpZXZlbWVudBIKCgJp", - "ZBgPIAEoDRI8CgZzdGF0dXMYDSABKA4yLC5BY2hpZXZlbWVudEFsbERhdGFO", - "b3RpZnkuQWNoaWV2ZW1lbnQuU3RhdHVzEg8KB2N1cnJlbnQYCyABKA0SDQoF", - "dG90YWwYBiABKA0SEQoJdGltZXN0YW1wGAwgASgNIkUKBlN0YXR1cxILCgdJ", + "ZBgOIAEoDRI8CgZzdGF0dXMYDSABKA4yLC5BY2hpZXZlbWVudEFsbERhdGFO", + "b3RpZnkuQWNoaWV2ZW1lbnQuU3RhdHVzEg8KB2N1cnJlbnQYDCABKA0SDQoF", + "dG90YWwYCCABKA0SEQoJdGltZXN0YW1wGAsgASgNIkUKBlN0YXR1cxILCgdJ", "TlZBTElEEAASDgoKVU5GSU5JU0hFRBABEgwKCEZJTklTSEVEEAISEAoMUkVX", "QVJEX1RBS0VOEANiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, @@ -85,9 +85,9 @@ public sealed partial class AchievementAllDataNotify : pb::IMessageField number for the "list" field. - public const int ListFieldNumber = 5; + public const int ListFieldNumber = 4; private static readonly pb::FieldCodec _repeated_list_codec - = pb::FieldCodec.ForMessage(42, global::AchievementAllDataNotify.Types.Achievement.Parser); + = pb::FieldCodec.ForMessage(34, global::AchievementAllDataNotify.Types.Achievement.Parser); private readonly pbc::RepeatedField list_ = new pbc::RepeatedField(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -188,7 +188,7 @@ public sealed partial class AchievementAllDataNotify : pb::IMessageField number for the "id" field. - public const int IdFieldNumber = 15; + public const int IdFieldNumber = 14; private uint id_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -294,7 +294,7 @@ public sealed partial class AchievementAllDataNotify : pb::IMessageField number for the "current" field. - public const int CurrentFieldNumber = 11; + public const int CurrentFieldNumber = 12; private uint current_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -306,7 +306,7 @@ public sealed partial class AchievementAllDataNotify : pb::IMessageField number for the "total" field. - public const int TotalFieldNumber = 6; + public const int TotalFieldNumber = 8; private uint total_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -318,7 +318,7 @@ public sealed partial class AchievementAllDataNotify : pb::IMessageField number for the "timestamp" field. - public const int TimestampFieldNumber = 12; + public const int TimestampFieldNumber = 11; private uint timestamp_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -380,23 +380,23 @@ public sealed partial class AchievementAllDataNotify : pb::IMessage())) { + if (path == null || !CheckGamePathValid(path.GetValue())) { GlobalVars.GamePath = SelectGameExecutable(); conf["location"] = GlobalVars.GamePath; File.WriteAllText(GlobalVars.ConfigFileName, conf.ToJsonString()); @@ -130,7 +130,7 @@ public static class Utils { } } if (info.EnableLibDownload) { - File.WriteAllBytes("YaeLib.dll", GetBucketFileAsByteArray("schicksal/lib.dll")); + File.WriteAllBytes(GlobalVars.LibName, GetBucketFileAsByteArray("schicksal/lib.dll")); } } @@ -239,10 +239,12 @@ public static class Utils { // ReSharper disable once UnusedMethodReturnValue.Global public static Thread StartAndWaitResult(string exePath, Func onReceive) { + const string lib = "C:/ProgramData/yae.dll"; + File.Copy(Path.GetFullPath(GlobalVars.LibName), lib, true); if (!Injector.CreateProcess(exePath, out var hProcess, out var hThread, out var pid)) { Environment.Exit(new Win32Exception().PrintMsgAndReturnErrCode("ICreateProcess fail")); } - if (Injector.LoadLibraryAndInject(hProcess, Path.GetFullPath(GlobalVars.LibName)) != 0) { + if (Injector.LoadLibraryAndInject(hProcess, lib) != 0) { if (!Native.TerminateProcess(hProcess, 0)) { Environment.Exit(new Win32Exception().PrintMsgAndReturnErrCode("TerminateProcess fail")); } @@ -257,6 +259,9 @@ public static class Utils { Environment.Exit(114514); } }; + AppDomain.CurrentDomain.ProcessExit += (_, _) => { + File.Delete(lib); + }; if (Native.ResumeThread(hThread) == 0xFFFFFFFF) { var e = new Win32Exception(); if (!Native.TerminateProcess(hProcess, 0)) {