From 7964b00aa9a4fe27aac567d972ce118281fa0361 Mon Sep 17 00:00:00 2001 From: mrpond Date: Mon, 19 Aug 2019 09:48:20 +0700 Subject: [PATCH] Life suck, can't normal revert --- chrome_elf.dll | Bin 81408 -> 359936 bytes src/BlockTheSpot.cpp | 2 - src/BlockTheSpot.vcxproj | 13 +- src/BlockTheSpot.vcxproj.filters | 37 +- src/HookApi.cpp | 472 --------------- src/HookApi.h | 585 ------------------- src/dllmain.cpp | 65 +-- src/hosts.h | 971 +++++++++++++++++++++++++++++++ src/stdafx.h | 10 +- 9 files changed, 1021 insertions(+), 1134 deletions(-) delete mode 100644 src/HookApi.cpp delete mode 100644 src/HookApi.h create mode 100644 src/hosts.h diff --git a/chrome_elf.dll b/chrome_elf.dll index 0d9d2a7b62b61371c50b57cc9bcc26b64002e699..4eefc1b5d27ece0284da86b28442bc8b604678f1 100644 GIT binary patch literal 359936 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%0Dk)+vF$uw>0kwKsE+x_g&TalLd|k-9`S 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≥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 delta 33172 zcmd?Se_T}6)<1ssnHd;xfKfqF5K#w3MH(1>3=9KfGKz^c3i2a=VSyo`5V6{WYREUCOTh6$FXl@%r$7S*w#qBNr-=lfpg3~2XupXa`we?G78=R>V| z@4fcg`|Q2X+Iz3P_BqGe-iX>><>oBL-EW@a?7AcV*M{L!pY5abE3JE;K>Ym5DSKii zyn4@Tz}U4@_Pi|N)q9#GwC;ITN}smp@4$xP)1Lhi_{^=>?b$2g)IHBg`0BGV=1TF| zOKz;BYjN^lA!oC4Ts~8AL!T|3?`Luy96xFR3mw8WfwM{G8lr((&~YiQmBKv71<1+$ z$W^l~H?p`0&nU(nQgGb*IL2j>jE!*}!V5p};hHkWX+k-!b~xjV_m7H-XhOi^FGd1f zBA!H}1}EApYV6=Wz8^ny^(Jmh6h9(8VIIO%lLepypez0?9A`-^Uu0hdUe|E^=o!Zi z0uE>PJj)uqag z5lmaj#c|s5om7I&)fHV(RJ>EEXIu2YgfDul&e~Qt^Mt_{Hj;CBdQ3g5s#~nRB-zw6 zjA>s}4rki>=rH&BI!8y{oc20v=RNB6N9?h+zt%X0+!LA^Y}Z2mlF#Rx=C-!EXP)rB zYMFYq_X9uE-Mppo7n2iJadm~$MYV>v>#V&+Rh%y(`Z%X`cehwC(ABCm_13PiVvnt8 zao8u;E?n3y#?Zp{j8(XpVYwUD;nr_gx6a;i`{EARYPpf`l(7=*!}>tC-wuXX=kMt z{c00eCvY6K!sCeYIUJU z1*f`)b4QP&LOzGu7omlS%XzbgIf{G{N<=F4Qc0Hv_gz_Qv)L+-Yth@NUL+*^au!MM zlRi27kSeaSaUcpPLqcUGe#8u1u!&T2{#zPc^G|<`thqlf>{YOEr@?cXLrKY=W?za9 z|BIvmcPn-EmX5kyou=g6O)FNE|B3%4`0A3%8y1z9ONqEWXyB|_mpj}&Q|-2D?q+q? z9yk7%?&XUrjyuxaC+PI+9wZk-bn)G6F@zEHOK<3xrc^hF)ZR+(C5}TsicL`P(o(lo zo0n%pvc-a5HGajmDC$Rz&(TX__e)~ZHCt<4&=n+{VRQtwSbMlgj`IdmK#hA#LKX;(pz{8?IOT>i zBg(S&xYqWdE>MbdUfdgGa&<6!sM|?_OGrOgjao`&VV1Iwpt_L60FrD)jeER7Qjp4$ z#Bk}b^Xo#<4mA0qx+fJBvJFqMaT z$<>iFQmg68_E>-IL$0W+_n#zP9cp{DB***vF!pjE;!1KKGS11_1O3;g@~P!^=YS4Ai1bXBx- zu8KD9u=T>Z!`7dH7eT*(dN|iw4d)0nc+OpiYPr^`<;c~DK#8G`=5y2?=msf516GnA zB}r>J2Nr=&j0CR5+J1fzr}c)r)@qp}6xeG#t(C3g^7eOoM29JGOm8#x)0Sls9RQ~Ss zq4^}{b97%RC)Mg2_souot+UXMgB{fL`dntUiMRbm^P@Kc-F3O&btv25@hXrHi`v!F zoIC;Qa0IJ`v_6H?g6F{GiG?Zw!dQS(2t>;tKHvPew45n~OopEv{7=n4om;FB&MDYv z^%t0^y(;m5Fj&bFom>npL_xUYoH!8cQR#YE3m@Prq8f4=tzW*xHqQUXRng12%sZw) zf5JArO)9CP2o!}A&5&E~vCkB@V4@ReVibzY@Kc$KrMfZ&KjKqyD7O@o#CY*5q(C^f zQctM~AA}-#ij*vsD7>#^QO;0Wy1QN3oPA`G7%x}Kj>c-Lc(m1>=6>H75s&=7PkgE} z3)Ur%#T$0d{BL}YFU5KiZ#H<`GrP;{LQp@hbm4-zN1Cew#eX2_XqBcimYST5%I>7h z8$5R|%G*UDkw@h=T01e)`&!F8O2j5=(F)kN;=8DqD^BVKzkMb~-~zZ~xbMkyVf3Co zoT@WW+>LA)7~&u3o_|xJN&X61s6tOrqt|LS_#6RY8D`W+_)f(NhrfRji%oZ(qtoSM zj?o(~I${bWHGAcvFgJir4~rZ|^MYRu#601p0G6n)M(03OMKu|WRCJhMP2_G{Kn4d? z2-6mGs6>}AFp!OO=0SHPUCKqEGDyjJ`pw9EaORUKu&zsoo~RlszPgL!p!ljPzVyBE zyDBGR=?p2S--t5$9Wjr7Q%mUAT!`Prn<8o@2(e2r!X|+#UxK*2$;=6vNx6t_zfV;I za9g=u%Oq6pss`3u)w|YEd_z0tx)xOvZW-ekx04cg*%50|RpOT_-lAG2rIMo7_(N67 z63jL&wQCT^yvxaPw=_iR@>M;{!8nL98G>DemKc?GQr@$$mHie;xU1pHNwasUQ7gbF30?s|+~YnQ>=YdCnMS-Ph1ftnf9aH(HDSO`T$ zU_o=`Mhq%nL^<-vVeyM#(w?Tx;5RpIqhIj{pHIjLVhaappgy<-vE@54<8p88p2CD@ zgK!^DLF2#=6w{%C-bk?pahv%4IFtmo0(PT#Vm!ye!o--Toz;3zY1o6{T5+-U9)~2c z9HuhDfuada?{^Ru7lS1xAc_c7L0lzW$1zOOB1z3=hC?@tE|!MI z{ATfLxn`Qmy=aMe&jf0lSfHcohOHk9q#7A>#2hz>2hcC*iLn?W zqvfhhqN-qm3af0Qn#IUb`^03ASMNIFs|%qD*M&4nzx$+L608e3ApLsqdss!+V~s3) z!TjbbmDqufJzAx%ETh3aN4S0fyRZ0l)E^fPt0fB|$l!Su_e^_tUwx^KoIRkHY>7cM zrQC{Y5SlSpm6lRFnmVxlULJ=97>Me}Il-b~qxopHP_AJc`3C}p?=>t+QF)vbG$Cw+ zG_GlP=Zm0$jaF*bpK_?H6e7BTE5+RCiaSJ?ZZ0T#;{>+5uhWm|{HkHa?(7Xdd$9YM z|Av0*I;=FEUwIA_D#^B!EdBiVvJ>a_?_1=Jv@aFc<=nYCZQU}RwjMOG!@s8%J_upv z3|Cw$)yLJPD=?gz5;Q`K!BG_~#yl!3$}%iFu8MBX;Bkde5^p$CR9rU#d4vUF?Edhh z$m}}C>dX}I2Dk|Yg_dQ+NDPI0e)qx!&(MzFzF00n*`lJ{*K1kg3={}6USeo*ySQC+ ziHps#_Cc=JSeXqime~dmdJmH1q={Xg{oRgk zY?@(i!31(27r#YwuqVr?(bxx7N)>Q_>TVT(Pzfsru@U?>m2mGMmZCrh?SFd^yPbDd zOIlMQqu{Ap3jR-bw2;EAyD(L*P&?BY$x8|_d;&7vc z-y_&+9=K`<6NKM}vZ%1?iSXUXDn};0po_#9x%E5Yxk$D-czgnG;s%a^z zDoyW|)EJwX>XT*`Tsu%CrS^V>+tJ@9v}Fm>T_Kd!M|Y~I_|24DCiJ4}ihKkjqu7WT z1Ym5~W0xL|EUs^gMhrFBNbL+EnSv-bUb7_8Z(2}KZ;WDb{OWIo=cAY*>=vY4d3%10 zVh#nE!jfnfMY`?{t)I>n%z9mqK6@aV6-0o?!v1zIl;hl&mX?*_{&7x_fBB=v< zC3E+W9l`c6#f2nJI1$5Aq7cyfboI()PP>_YG@wXOLNX_e8OaJsb8Z{St`6Tp5{>w2 z0=0tLlezuJMzSS*kqr%W>#^da&4I27!+CZ zEqC=4J4RInR(c>+AV$hNBn;4yq9R#ZxOX%gqu7Do**BVvQ_Mrhof*yIoMg{KF2LP- zcbHdsce=rY`GZDGQDqxl@i_fZ2;=EdniDXz>28oAciBuvmId>Dahp+?l(ma;b%ID>Ayfkqx;ueOX8PKJfL=0v(0GpH#zQf`kn}C7?>s8WXpFMLfHn z7osP#5t#?9Sh^eocdC zwNEd0MF^j-VuqW2=!jBE-$CiAl>TF_xfTNpyUT~rOf0Fd)*yN}Gn}fM-|G%=!)$US zxXrXYxsSQdj@-Eh$)*;;FMo6^RdW(0f4pGT%^Z7;l5k_bk> z7MlYfhA8@L7g{LHT+PNS&=bOKtJzpntOnD|kOg&mv2*~fy61jFU5dp?W3by+Vk&%N zBRa+4D=HS}!fmwEG7W3fAx&MXei{=#Tg`I#rv?a7x3a|O6r{KhyMNhbq`>FiYhWJM zt?jWDiTk32id)&(5hOvrx6kV$NX8}(ha!m1@+J5Z>)jYWlTrjcN$l@B$V6$|ZE#0md(8;cpb9VrIiE)u}J^&>Kt7Kz_# zh4*h`7Ji0S(B94xoFl;YuYpO>TwHk_=6o~=s$hY>RdIEC$<@~@UPq$Vo>E2IJ%iVO z=xFc`EEcidA)iJH6<%uaAvm6b?iNWo4Ia4dZ8q^1?7ELiUGCo^jC2PSyDxb)w!z|W zVH{WQRJsFcaqdP1!-V&5hha_APS@=$MuBDsA$PFI8@Hh$WEwc2{n+PJ&dKAnuTty8 z2f(SUrs!6Rx)AlHQuD>>Qjl_r*$9@FHlG^|s}BB&4jL7wPhv)f+fg1lQ$mG}cQ7-b zA1bum!N$@$^}`)3KU5l$IMz|PBgnRyzJ{d*rQ^U&j&5AT%E`p2V|A02b(7Tw?3h|q z9$eA}F4l8ttcV_5zD23SSka36s47SiLr@o>+gIdHrBPQTUXR`{5+{tO-xshmDH6ZJ zPOV7n?xD3Kypb&+qwbkAC_q-?S(UnJ*wxq1^ogr*Ga4BwH>{a_7|LP_d^5gO8-j+5 zbuw#|#3FU8lM+O&#K@8u#1?%R09dB#Qi(?wl1m--{pR=pPhD6zBy`qE%5|ifg9W2ZvTQN)aU;>3 z4?gkv#FtR4yIO;pA%^@;eJd{(Uie}y&F%`Z&)0;rQ@^gxLUG`tQ=uQd;k^6>QB+@mEw6QH=(%-a_18*R8Q#vwv8;GL3(&-`=dU?FrPo1TH} z(jg@lFJCcDZEA7V2`ELCt$srXJU3NvMm&59!{R8sF!dYsn0|?M_bFlXMz*gQ+g3~p z?jB!69zyjS+K}b))^#wJw=gPME_m5TC|EkJS}2Zuha5Hi(`OUZS<(O~0QNY-BXw-d zNNK!$0&Rsg1J8u4+T4tiaJr67QlQmB$UQ7}#1%8YU)A7JHh4^$x1lJ4?H{}Ag!iOWg^#V(q_5(uF zqF6=}as3ka5ns{_tH#aYzr4H+N9>U}pMp9wN7%YwNuBM1v&7lZq*B3_%5>4|`wFY2 z!e0BJ?{Yf2obyGN5q(vkgoPw3`X!EGA0V7~k!7cUjF5jM2v9a(b(Sc| zVPCag+|(CL5!dwvjpFLQV7$1rFPI>f^#v{BoW5YLcnt+ZU~e>*p=M$hqC(+5w!rx) zW-Is9{8E!N1KPvQGzr>6Ts3rbV-sJ(l!g;ZP2JS|1sD+E=!i4Fd1pT4Xpc9l$R>V{ zQyOU*A54CFN)ZP{(=7NX=1Wo%I5K3DA6vk_jL|mn=_n^M_Q0Jo0BeAw#&F90yVovB zRQYUTD~iQM&sCPwXl3Gu)Tuq#|G}7(c6-v5o`6(=I2dYG>h%=+FJCWZbqu^Lb_Y1c z-cKuOqAwPgN#jdA?L?6nwC>MwkWKr;Up|lWjrkor3tAAH#g8$IAC>A;L~V_AUy!>;?cesSjjH)?JN6dog4D6pe)Q}em~{TNXJcF|&vk`K2??SGB?O3^6E0bqqG0_jh{#$`tDCqaYKij7kAvV#B z6jul_Z9YV|=j^%McagkU;L!h)S0NVoZ zS!rs~{Dbnr;q@x^D1zk>OBjVkz4*;mWHVgE!Qu{BO~v9_Y;mE`kv>%;A`Cq{g3XJ>?R@-)6Cc+OQFV)y!a7UYrUAInpd# z{~(K-_yfi_E*V=SiqKDTbw?Ccso^NeBcHk+1%P$Z8zP4H2+uyqMvjvcbW#GI9udF% z1=D1=JbG>7JjBrQ1@ncSZ?j44fN<<>Hg3kZm^PunRdDDTjx4TIdp|5LuJRRCVVMgT zKSp=E4n-n;NM9)fsT6TCmCSilust(P)2!Cm+{eTn!sNqj2!H=Tq4Y2t#|H-pe>=?L z*>A$0!z^aeBT`YZR~9uFYi+6Mrt=`qJCnA0{bl_flN?0T3krO9FYEE}P@mFf9gdWD}` z+1T;Zq4rZ?7nhpOIJ(_y+uV+xVlf5G(uH%S+kx#^L4kPZc_H@*%W&R<^H6DW@Yx3y zV?SR|Bz`uD`U$tgVZ+8};^+0sY*+~eHt}G8Lb`i?IQ*OIq4WlvclYAfX^O;0s4Pcs zDV`yiqO8-qe{oGwDvQPSV3*?3bG_>gzGC_l-}}jLm<+&?)i#V!$@drd4ol!SPZCn! zVRtDv!<-V{e1}a`9KeGA-8-yQsUp@j@3Iwx_WX(>>o@Gh4C(%?=qcsMhT~# zc(6)ot5@EG=a0q;zIWM>dDlVOy`h#ilI}K$H$kUr|FH&fZh>9nd$}4RaRL?TZicmj zr;X-{17GVmSFkizakMdi7{)UmV0i7^9~_rqQ`;a+dUN*)_XFaY%f6}_&zehphL>xN(i`H2%6a1Cd{S2G=pGtXI zD&;HuqLhHVx@kDGT{u^o#fq@^zcU=?G>50E!a4D+?}e%Nu{7G@+<7019JEg!o&);^ z)P(PahWl6wul_?ga~~Ua)k>_p?hT#jVDeu{XXNKzp`L}U)j?CA+ZL=_QQ1Tf{o~lHHXb%AcOx{I+ z<>uBICEJUp)2yF`y!V;KdFU)nZ#z9Q9FU<&0;%_LuW_fbQ7ZooRgR0tCCCnP^;~ic zYEe-X7l#YsDBA5!aP|E0XLc*GBV0YbIMlUXxSYXlQP+|uK?pns=jz*U3yH_rNClZ= zwqtT{ZbX9OIP|#j7`vJOBSsi`oQ>p@;swibY$$``h05b>6Tki?;o@;-R(=dqUr7Ie zCFYL(7P~{q`Q$!dEQVoRl`f>QcBEN4s8WgByQzb<=s5IDjIwrjL0W*&xpV+wt*lA)}^3XjBH~_EFMJzw=wbF7YO#F}y=WX4>v=7yTO;pPpbomAbbj3=O$?%WZ1Vvsd6Q+Fx zkL@A!>@6R$oCtI=Ei{fwh8tNwHL}t{)koS>F$PYXvF=6^?vRJ;1xnoLQi2v zEVXvRx!h4-TY{1oo?tqK1%bOxuslUR0w0`U6P#xnld4h+s9Q7;wX)j)jJ zU~x3XMw8cRu3X%3Mb(fJazpniG#@^}pQd55;BKx_fW-3I&lls&?9Y1P1q zztk&Dcxu)r?uM$No9T1}EvU4AjU9hA{ZI(Q(ud-q2hElHh`E=3C{z_L4*RMv=_qjz z(GP{Hh6q&;VX)<)m75-7!wPyZ+W+Dx0JaaE{?JiCYX4Ed+0W%}_t@!ppbW(oi0}3D z{^EEbM!<2(HuSAqv03)=6bLMJI-L{9?!_YUa63BiZUt`qFv&Gi6$|GGTq7SHGe{29 zyG?jpcj4SV6SA_CTGBy32niqH)XFLElf9~@IG*!Jz7ZH~Vl2(I~v(|&%T?oQyDYp$U<8cAX=};kB76U z-Sn`P+&!p)nxh)fVTQkmy;Ou$4xMUL4Z`8=NF5tC%HN?^9%xX@HJqGJd|&wfzgWEF zS{(K;8+ENH_l&MD-3|Ln>Uwm-pKIZjJSZJiEqnu=3YkqMVM71>~plMRXxygJ%~NNj@-F9EJM5 zV6LvbdTSH(dKrdj(xXhTZXmyN{54Ei@+iA1=7N;lKE~YwpM6Kp!CwQG9>?yZR}o$x zpT~q(9%bnY3UoipQX;w`jAzn+_t`@*YJ+erhU`MdV=PGlFPm`lV{piDv6#4n8ZjRQ zimN-J<%UyuI1MKR1>&M;;n~Mn=B!o3rtO8{qWdlsPIEC1GEc%}ay>K+nAU3Sv)sS9V^D)o_q)=K7Q)-$=fV9Ga@$y{JTg8lb$zckIn<8Mg($&4 zkTCu3N`ODGZ(NC^F<(gcZ0Mg9mv$!7lUY25A)JADAdQ;U@Em3WID9b&4a7tzyL=?q ztNVQ%co7eb9}T+mFdFG(aZ z;mHTs__!3Q;!RmHkRTp5(Mup{=+cljoXwqofL$9;++8HUi^O)xS;TQ?P<@ZOxhlTW zLiN%AU0AY(%~D2TG85j|!eT?lz~J$pV$D4%c(<_Ou>m;xDZOVV9xptB$7sLCQyp-C zTHEo0M7TV+#cgGab?q2Q8iitMNQV??t+Te84%!F1%G7w}LgVe0R^#WlvJu)BG4uJV z)x~(mQoeWXTiM8gB^|hmdrk+Q0(wVgYaV1V%0dVWiP#7_14sbg%slLlk4jUf8!luE zT8EDRs8#m=O5H&BnD~A7xX*!TNbQq;-@h7%{`sEMjaFCIQqQzMi=ixS!SBcJ2KPA> zjmA0WYNa~>hU8pfNea{P=b3O{3d_h%BAMo@gvuS1*Vdo+HT1V%N5~1iGZ#Pg(RX22 zSm!ulI&Z(u9RM@Jmu?eZ#bZFJtdd`TM))KZhd>cNVQ3nAIA}4I48PY%;k7hYqE;bl z6Xy>VhNt5ZOsTx0Dg|6&j=&}wEZzXq;kAM8!@KB8*Z_&ir!fw>U37KPg)mlCzeC(H zu}WD~mr8=7<_f9#f0k0g3R=)yZ1BBdgonfLI;fu-YZHA=nCd&JWcQ~Be+#HfX>zw< z0$JK>bSodELF~>|N0OT=2zIj_Pr5h)Tc&C;SNmLtjnmd$B9DpV`Gpu?G!uy9kRWD^ zg57XYD%6(}AbyOf6e)Ep16-b1%wij97CfwUUD7z5ZN5~gVSAw@t~d%}dX)_x+&fvm z&y#_rtDh(NDP%d?XSptQ+^UC044vu?7o()J1aeS>!=vSQP{4~Q`yur5WJwMR%L&b8 zO9u`J)m}Db#BB#jZ7!^aIe2JN~qY&O#HY}!V`O0g0k~FX!eJD zSxV?$gk+CIs2KN=5dL?V)07X7v6f&`wfvop!^6^KHb#i8a5?+OCx;+z4z%2&-R#%( zS)%R})Bp$9Gkftg<1CxFxQ%Mmi}yOXBSP;Nu;#SbZ%q4=U84|T>TmrLgZ`b9==)bT zVkQ(%@WR0_S;Xju%dAFH!BXGqHR6`b%#A079%M~i43_(@t;qUjEq*4p*u(;fwap*1 zN_jRRCT5-#rgmZjiwbD*dPg9p*l?GTgQHR8Ny;Gpj>^&-D7`M{1$O1bJQkP zx1Y0D=IBkTNPj60%bXOGD%#K4_^}Y6;uHAmKNeC{{KCjzaqQ)LWj874_foKdf?u8x z_Ne&T)9;g5CD!sj43f?9K>4ijbIfAZ3@qPM&HxH$?NjhAkV+PuEb&9866{ZI8 z6Zyx#7FGrD;}N{2sQu!oxSSHIc!@8-4B;G*;67`RA@i@aR$D!~lL}PA%m8^=vvs53(GgCx>x1 z>lh@KUryVOG_NYdp z#Qq?}h4PbbUI+URH)kY0%8+4=b!6IX*xLIXI&l_k1KM=OqT&g~;%V{)8ZH)yCuFB! zeFfepnJfFsqBoH%!RLs@quMxA5?>$@?+K}I;Hr{ztXtgDD7+cUXE=YtTxvLiH$=7` zbRU#gIq4Cl2yx$A{XN%(g-TjHkeLq2AwiY4+1XN5mb z!RdX~5#g$KHZDW54O)z*-yJ^{iNChu(vthK3L9sdtMA(4^R2@(0kPOrj1s@_K*@s0 zV-n>N?rUe!3lFs*N1dbBeTjBQ+PbwJ8CLb0kr^rfAZx~vBz_0urA{fuuwsN)X%@g6 z)_3p^UmWLsLdxm#Sawkf)4Z>{9i7+)y+|bslTNdt!BiB?7?>r(#M5lp41fFzlca!b zlHv^)Yi=^7QYow8$#Y+#t(h-iX&a0ysR9>s74giT>sq6T^x4hggXEdH?=;gnIXo`q zmvQAI5z0SAeDqDa^Du2V(TSidmYiGAFMrR{OIW{Nf_ZU+oG9MhFYleQ;YiImQ;1ZP zk?w=8vpENQ0+t>@JvLC?FXpOIj{vgu@HFt~H&dn3#Yz1Ih!t=6RSml!ZWQjr(|Cha zb|hNKDZ3lJDtz!bi@NG^d83NO>wM@l^pq0qL2r)`Uqm^5CqHnezw(9|38Glzz`-fC> z99~KKx2}uK7-=KZxr2>~r|Q-@_PKKdBH`du{8VS%T<6%1Hu znWP-Eo?uygO|Wp^6KuNDdJbLI{sbGP{9Htc?P9}}Z&4^_7t`t1V==|NQfEC%Z*1^b zrBIO_vut?98Z*ykyf1`(^5R|0tf0VCyBOwVZ1BI@#V~Cn5V@PhL{sB7&SQywTfR1* zO;S$vHcIX>VfJnuhD~t^ckE^php)qVMCoEvvm@R$Rmr=44|YUUh0HAwmjnx*-E6o5 z{xsqAZZ^~zL61IQGMEEx{#w%Ji+$Q$yG9?+t<4fs(c^AQzN?8AVa^fiS7aoQ$6LJh z)?S;R3ag%EL!<_7dXiO1ZU6O2 zHf93(`|y1K%wBi1yx`rpuHSRpq@|L^CHQaq(kJmi8Fdj#7$(#{#TH7%eDTy@74uZ> zV;#bYr=K;h|BR92I_9fe+bQkoT~CQkj$_JrBEWpRnc`HbQFh_Gj35ews>Xd4`oqj0w-OB_U8m8stH;dhK|Y zjdup@>n~b-3G=T0+~XLaHn9nj(sNr7b}Pw4h4yIUEp}C{X}EoacpRxM93J-I#1|37 zM0c(dq7$uMa6J1TdDT{0s25FlA)S0VYH>G?`6O!{dueW5fiV@Kk-KY>%@z9E!6R@4s2>fXMZMf{|jUh`KNWsHqemM z|C`6rUDgYgT&?u75@y|($rW`-Bb`SD3*)|EgM`H$ER(-gAw1E+%J>L{pghZ#^RX`o z_OtA&$#!@bBp)%JrgxkWJK*1I;qc%Ao^X}-Ud`TLq*;=7*;ro6l$`i_zYta%;ngsH zR*oz}4`>;gU1PFp?17frEWBuS0oG|HRJU)bmlnYy@u_Z9^O&#H)Z!Q@#x@G?e$HYB zh0EF!)_2_a+VjHipR>`DI>mOd=%VFVJK&D)vl~R0bo6eIrU?XZC{{6>_!L+)^Ww36 zd>%o4gtmtCB?YO1ba9wv5n?$Gas0OC_UDAtpRq{iJJ=rGfA~ ze|v6Ip|ak=t~;agBDrsMw5Z;XnkaV(8q=kuikLV5%l^yA94GW2J!RQIC@Hk9?_F$n`Q^iHkV(Ka+yWs z;_S)7h#~yMEQjixih8e0b2?ln{tcF&h-W~lH=FAVbxLs(II|x)nWeMmmZ;kLE5P)nWNDLzL{3625hwykWS^rfE{9lO*TPj7! z_#!M=cXnCuISagMNb@6? zeW@hqi!dUUT-uIF{=+OGHk=<`c4Z>Yh9#$VEotGfHPAI^6ovsNhM}-6WS^zcjf$zO02(64Gs%4Cel`&Nx%7pDPeAEC-xFp!5 z*D~R)7=EG2BTKZAZXTDyrBJ!jQ;Wk&-XUHGct1(;_(>Ky{b%r>wV}j$Bl!`EZUokh z_v!XZ15_L`c;BSy!dkj;J!XV z^boiDvG$M?DDucyzI;RtO=d;KaKNN?B8cw`VR^zqx9ZJ@ZpDL2{DN^h35;5!+R zlO9y?3y+QGr^fW4T<L3w6DDJim8bBnmw>zxR=g2i11!$WxPub9(-T zM-aJq5Kj@GnxuoUWdgrMVT)wK-U<9XMaM8E44BB5NP)!@`K6=5!34-0u_rsc(QPM@ z_mJxLFye%sZab~&Muzhf`K!opqf6jlADe~UJ3ixpDX0`7Y68wk#Y8*?BrRj~rKlGc z`2^J@eg)-OJ&B*i7rrSRnZ#eGc%;lHL?!YMC`6Rnn8-&CLqO|I#@u;@A zdPc1I(HrR2ygd&MUt{2{{JK~7HyijgUV41JHf$xX8I(tq> z>wXGLQ0nmVxS3v^{vd;YTqOnfzii^ivQTM>hj_8fye*SYWI>3}lI1(I_~TA-EaQFy zX~r=w78DQ41uXzA2mKAS8MGbL0BQmq0%`C)w@VWl*A41LJTjhfX`pLBi$S%Zhd_Hl zhe7S2ZV*47al=7lL22Welbedb0?=yEy`Wb>Z-I`3&VWSFMUZ*|GJ@hk*`PvD8ORP= z4|)i+1GE>^1bPS50lEm%qLLFpnV@{oJWv&A&BW^&cMk#&gPsGu26_k74vIz#>8}&5 zqd&Zotd#=(pK0}+cJA$*_Kt?j`~yXtcH~o>cFY}|Rv6gKM?2|j81$74$`tz%UULPd zfGnVVPzk6UWCzuPHiEW-c7Pf{`#>HLj5+O5&vOpG4E+`L_53+#@K_#GhpfXT7s1mdcR1LC& zYCvm1wV+L)ZJ-?|@WrIP2pj?(2X%s!AEN@GTu?b^J*WY62qc2kpP*8pe9$~l8K@Fe z1KJMS4Qd2=K<%JjknU5+gY2LkpaY-|kTS6ig@NXQYCs!7+dL+*U0yLogZJW#`QoR=m^o5MV!`D z%xQ<*!fD5W=|JD>?1&pfy#peD+P3b%^ql{4syoO+ez^23#nI_uoB} zU&5U8&Y*Wd<)BK?GEg=0mOZdy8|M5?dQ;~NJL^m@t_n?7AOx?2r2>1166|7faF1hkNY6J8MFvnxv=y`+v=`(79RN?8_)2`=}uFLxZ z?S_tQ1bRT~FVSAmJ`m|oH&BlydKstz)C018g`zci_=K*QaumQ1! zxfpG6}8-W9Wn}OI?aod2j=i33qhKg$d!UN4UUZ4pD zfhI8UTs!9h(ziZafrEj^f$)WKZ9wvvcK{_H5s*HR(+$My7F-XI);#WKP8$VK1IeqS z1>*4~E)s|jDR8mCk-&IhEKvWmlhckuzz7B{%UYZvi~(8@*8%f@aX=ezEU*MP4p;^p z53B@|Tca8{5m*CE0M-KGP~Y02+Y}P6RR#Xar^hn}9h$56}W^ z1x^MY2TlRD0ds*Jz^OnHI1ShhoDS>(UIXMV;*mFi8h9;G3%m{(3A6!Yfki-PJOafC z=z-S*jlc?^1?U9k0U4AaAIJksfC^waPzi+cYE{5$!~=k9fPuh`Ks9hH5T9@2p!(VY zz#WKdC=Lu!;uC;P2!w)h2p9%D4kWE>2Mz?%NErmAkwWiDiQtC=F90Ke+%M1xpavKT zj06q?>VU(6dSDbV3m6T|1C9U|0%MeDVi^J>!B_^21=avZ0oMaZ12+T50Jj5mzy@F( za363i&;uL?JPI5SYy(aJb^<2?yMYP7Uf?8Pcn@>}7z<2xB9MSU3eX5l1?B?NfHoj~ z?`a;;2&@EV0PVm`U@g!D+yu-9ZUg23cLOcJM&M-N0pJv1D=-(>0ki_UfX=B1^dK+| zsQeX51k?hr0Y(F70ONuAz!V^T&&2|~4ww(L0ZV|hf#tv=U^TE9xCThC7;ger0Jj5| z0`~%!0T29&@xKm%RxlW5k`q8BA?|e`umkZRU>7hL*aOr6mA^qpfLh>SU^Fls7!Mo* zOaTrDT7V;fCBOt=InV@L1Iz|){0-xO3IbcfSPI+=WSFuJ0F}U2U?A`WFbLQI3&c6by_8E(OK|$w)H-mB3tJAkYR30?q>l11p^fXb`XihXZSYCg3I@!_>DO zs020u1A+U1K|l{M7A(||u0usA9oS9jz+OrRs{cTG zJSqeXipTiZArK6Po)Qu;PALJHM|@x*@%0#{#0M@TKCp)PDHx{22W}=la69ph=rM`| z_fb3xJw|chQHop8V-&ZfqNWtcMNJ9wP*cKu)btY2hVcqiuEBT(4hQNlar+-%!UwVa zja7V)+DS9y)to%HqrO~;ifL~F8nGw=xN^kXfYrdyfNOyCqQFMr4&YYceZU>SW5B(@ zkAY1<@|Yb0J_9@sd==OZJOmVh?YM*71q5hq-~yQTC_n>z6Br3>1=3qXoRtU-B!KusW%7Pnf& z)rdzTzKa$q9RlwG^}xNrEZ`Af9`FHRA@DU|8Sri3GT=U74e%4-df;*3X5b9qcAy8? z0Q?BJ5f=;s?nC?opa+OYZn&dB=cfp?A@B~c6ZkT)8+Z`d3p@c-tC@B;FdX=IU@Y)+ zU;=Op&_+JNr^=K;?GD}kqgcHkLcE$}38lNw)RIE;V|_i_wy8xm;wCc}da zlii3f16CqV223O3l|VAhf`JDR&j&UjJrUT7_$uHwqz?d|Kzu8(1NbDc3-}zc2RIX` z401BH9$2Qm>w!(ks0WrH{wS~wKmpi> z^ufTrh}Q!}l$!=@Li|o(2hzi7{2v0Nhy=ih03JuY7}yTnMttBVU=Q$dpn3q)HUP5G_%tvNxEfdp+>Yx@_Wm$n85na(05u&AT!wf# zum<=Ba3io8xDD6{YydU^n}F{ETY)V=E%FZswjn+bh$&zDC9o6mw}8FCe*nWZQ0k`; zNI>AffRV@;1&A65xx#a^SPTYT#7h znh>_X`F1{y_5^T4ez%FAi$&`??pn|su8^YQA^&4i8zghWx!ZqHIODMI}kHrIkyG@((d&@x)+;(q;y+>H2${(BZ0etq}6+Yq|N() zq>KlEV}KqYwe}E@=7Cn=Sm1Fuknh{Zzv`^1smZ}#4R~B&7%4s{(oa%qQeu)mDbbji zoRWsPAvH0{n3kBFoRXMI$~6i9*}2=eYOaDa|4ZC~v?bg!5XsQrjVqQfuej09-MT7y zp&>c3eAzOIogn@8{q+6IBGiTDJh~@}(ef!JBTbm{13!D99?BFYD+Zl5;Qr1GROsm6 z+(>t#iTGY4hwuM!)20;WQ!4#?Akx1LqPv-t7)^&JqsYW1^bddNNPjt$!;z{a>h(7+ z#x$AG7oRe_P**Z#GRf%w%)6d=_&T+mPm-HHnWhKM2qxXjM435-c=(p}m4Z^{yg%`5 z(na#YQ}^e!l~CToKg*SnAU;QSMR_)UzMx((?F zB(7Yw@g>&ghTmuf`00H9isWGcw;e*Hg&3XW&q6hCg|g z%^#?rfvMf`(%cC^Zi#eTz&1sSH=cBdPPj}z)pV|>Zj%AIL9BvN(-Wnqd%O# z`Uty5GY&V78}26&DqsVz3FN_Si9-yo;|lD)B24_hBFaa6lJ%2QDu@dEEBYN53mL<> zNuU{^Vo(`q1L#puBd7)RB`6T5p~FDQpzA{C|UeDk8^<@rmNR}^zYdEz)$uB=#YhuDo381!pZ1Bxps19YE6N?qD)LbDG8D{BQ{+`Fs+Q$A zZn_kky0W5zrrMsbbs=>+EZ- z`Gy$(y7?4`HrN*~x38$?iVOPJQ(+fVYKPoba-nF97PD~LN z%~CAdU!_(YRtlB?MFW-{^&BH!7Mgd>|4dH*Ul!!cAph?OrV^J(S85h^yv3^@3RPHy zhEPT1D9I3^e()1@2mMjCB@_k*pj-CV^BO0`{}28-{|{c9F8zPQ^{=?oeRupn#(9+a zKbHP?SE4fd{vacH-GD-4Js)x76%6X}|KwsMM}K_<{kuG}6rOu-sORxnn`VBH5F4OS z{{K|7|D}~Q&-BkV2>)~UUzu+C=XBc9Tq%I)e_OzRliqLC{F@5=W%_s$_E+F91^Uy4 zY7d`4XU#V`{TCp4BJ3Z?;Mlb9O^MKtDh~LVumUQ2(j^E4?Bq7(R^sNo`3TN!sMNIVsnqdD1>f8=jt!o|K-RJ|lfr`n>cKW0mm% zqsMsI_>=KhV^GHOjE6Ix&S=eeFXQVBZ$?i>X6DtIj!b7}UFIX1FF7++rlF<}Orcrv zS@W|NXWf!jleI1Dv8>%$&t^4dy^{5htV3DvW__4-GOHu&o2(zQe#!D>4KRnBhnYv3 z$D0l2Ddqz6jpk)$xA|f7E_0*#u$jva%GPEN$&SvB&rZyKGJAT?lAMQg-pe_kLp=j$ z4uIDW(~s20=_l%)N&0lXSwCBUlYY70uD?saS>K~qC5=xCOdgkwT2i&h9TF`W;km&XNXJ5NU@|;r`(qEx0KB(|CRD=%EZ){Qol|8DOH&^ zFwKzmKw4PF%V@hL^XE)viph%0nvrG8x+AML>v=TnOjeIGE5NKVk27C~RyfUd<}K!( z<^$&U%qPu1n6A!cc2?z_8Qso?&Q8 zTuNffj+AFozDW5lr9CY)JtEy=Tx48h++@7p_=s_bagXs8<2%MF84qMUn$ezdb!K5^ zNoHB*vdp_O-^@Ib`FZ9ynLlOrWGYNS(5^U>(Nt)<*|gI1nCW@bKGP?r^Cpvds`(%0 zJ=xBe(Y5EZ<8sn+Cg-2j4-}Eo(ztdlx^aARCL$Von zf0^Mf!()ag4TlXs7?dePQpTiYrOZiLmGW@P^C@qp98LK-r8i|n>eSS^sW+$Ip1LJ< zcj|Mg$5YRyUQFfC{gcwBrY%e>PrEs7pEC_cZF*vQYPu!;+VnZ;bJJI+uTB3k{g?DH z#_>jz@rcox@pi`Fv$mLT$=(JXAn!^WD)zZPF3FwrR8nKonB=>XpG0)6-|B7o-=b&re^JzBJu=XZqdg zPoy79|25rYe9iccF*KtzDi02Z^_<}eNXm%*?Y5(XLn|w%l^qW*T15FU4IxI z@6!)RicA`bL79_uYtl1GhmtNOr6x~Hz9aduWZp2yFvYOSu*Y!3@QuM|7!J*ui{ZFF z<;#?BQ+`b8Nl~R1;Wm_|R;1pVnx3{J?U}TLY2T;Cq*tfcq;F1lK9>Ge`Wxx*rWYG; zF|Ibw%UqqgA#+RSEcr1iDf+X6=FOZ3b1_vr^FWhGskR0jQDpY%{tL(*$WN0ZJ#_xa@TWU78C z=9RV1Ym_359b*BJL3qfKkgF7p>=(X7qR$S%(g%o&C5 zTb;8Wo%c-6hdC!P5A@Q7H{;v{FjzlcU#?$@UOT4ek_<_CNu^26Nhg!yldnx)ocw%p zPja#0LBq4?m+`6dQrD(#OnoTTIVx>-+AV3Ww0eyG<7wvf8`JMe-;+Mpm~UK#S^V0J zJ2SRryqh6r1ZH+*E;oJl|Fv{}p>0)h9M49pc?cRMj68&qX&xeE@;iU-pY+~)PGEs` zBWM_9WLQ`kRVoziFiLP82`r2tnN%nw4;A`Qq_RHbp=gi}tBcTK865^!u@4>OAws}B zM2Red-)uhJ$9rFM zESaA}r*qa7>w9Zty(7`~v>}I{6?OoEpc<)u|7s zZcKeP^`-OB3A*Rqd8ElL_rSg4tpQM``UVVr4?Fntc(Dx}O^y#=_vr{j_7|vsirr)t zu&Tx$A^UplDSL^Z1^++dJNzfG|1ribCZ@%A;(d8T-jV;v9B6;WOkoG_TmRbOp5`d-bAi61yL69!r$2F*lk&9uQT}b5wZ^Ab?GS=H&TNcIie*@q&9FQx z)Xo;Z?hq;_{7M;Aa?3A3cQ*o+JZS?Wv z<=Si4CaHG&lgaoiSi~`2$HJw_c0l1)?N(v(jbg-$c?nN?u9x;Q-i$Zv%_B+k-m+JQ zu~)HY8{U?;jXY|3`(7J1?|40L;ElWq6;L50Y)mDTRIW;^jG94C&8tO~SIerbs%llO zsSSW&TkWWp+E;CL1SIs-K#kOd4(L!(M|4alwA8Ln>x`b!vw9wM$m?Z{coi&O(;IqA zZ|fa|-o9?@Bi+$GJ$OF!eGEM|Z-N38q6j#hAW1HzDT5v}3nMHd&zGr8Ra&Jr+Mq4k zrX6b0KDD8Ehl)KK(1<2jfQ49u#aMz#=#YjEGi;X4vqfmJ4D(jmDqCY4Y>RDU`&zJZ zn;o$Z24sLBo8SQ$I>KW-!6kQjnrBd$X8Al{e#ARP z-s1y4;u9huLL!36N(d=jq)X;mAkHIY@?u$(MOCbdHL)SK#J1QGEwL}!;s}oFiGdg) ze*!WjBQhovQc7E;)U?W~oSIV$YDpDTNmbMe!ed=+s)lN+U9|@~AFAT9>Z(2f=F@&1 z)L|V3rb*j61ypBsPS5EDy`&4eq$_$w*Y&#I)D7L#yLwL_fZNC5c3%(Sr4#s1O-vX0 zDM(?MKaS9}DMizi1q|nCftIL1C90ra)oGnJsX@&m?b03{&>P2mFv9^Dgg$k3QiSK@k>F5?d*pH#$(sEc*6DH@`Q&#Lc<1ElP+=!(7=3ZL}LpbX2Xj7tLUQgRx=%gH&pfRb2{ zC0RjDtfSd%%7!DGa#!xj19>QqWmonQRzAaT1dXr}HR1*twvjTXjjVA|zojqf%VTKa z^`CLZ)NWs&oGK1baeU6e8+u`7!+<%MuK?rKVY((19;y&zwIO8z@--pZSS(-k`9q;F zB+5aSIyIrekiyvU9Co>mF>j8a+~8SH8ka1DTY+c|=yeF+bg4&vn5O%>*)#j-6hm`l d`m71dZw0Kd6|tgL48<{FktMBfaYi;c@gHPiVEF(5 diff --git a/src/BlockTheSpot.cpp b/src/BlockTheSpot.cpp index e5516d53..7c77e346 100644 --- a/src/BlockTheSpot.cpp +++ b/src/BlockTheSpot.cpp @@ -1,6 +1,4 @@ // BlockTheSpot.cpp : Defines the exported functions for the DLL application. -// - #include "stdafx.h" bool AddDllToBlacklist (const wchar_t* dll_name) { return true; } diff --git a/src/BlockTheSpot.vcxproj b/src/BlockTheSpot.vcxproj index 823de560..9e136593 100644 --- a/src/BlockTheSpot.vcxproj +++ b/src/BlockTheSpot.vcxproj @@ -92,11 +92,21 @@ - + + + + + + + + + + + false @@ -106,7 +116,6 @@ - diff --git a/src/BlockTheSpot.vcxproj.filters b/src/BlockTheSpot.vcxproj.filters index d69fb78a..170534db 100644 --- a/src/BlockTheSpot.vcxproj.filters +++ b/src/BlockTheSpot.vcxproj.filters @@ -4,23 +4,48 @@ - - hookapi + + mhook + + + mhook + + + mhook + + + mhook - - hookapi + + + mhook + + + mhook + + + mhook + + + mhook + + + mhook + + + mhook - - {6dec95b4-4fa2-4d85-9de5-8a6af4d6bb2d} + + {5f92c477-8601-4c3c-a1e2-b55ebd230af4} \ No newline at end of file diff --git a/src/HookApi.cpp b/src/HookApi.cpp deleted file mode 100644 index d500a132..00000000 --- a/src/HookApi.cpp +++ /dev/null @@ -1,472 +0,0 @@ -/* -////////////////////////////////////////////////////////////////////////// -HookApi 0.6 - -thanks to xIkUg ,sucsor - -by 海风月影[RCT] , StrongOD@Safengine.com -2011.06.08 - -////////////////////////////////////////////////////////////////////////// -//更新内容 -2011.06.08 0.6 -1,增加cdecl的hook -2,使用malloc申请内存,节约空间 -3,新接口InstallHookStub,支持直接传函数地址去hook -4,hook还没完成的时候,不会发生调用hookproc的情况(主要是VirtualProtect函数) - -2008.04.15 0.5 - -1,重新写了Stub,换了一种模式,使hook更加自由,将hookbefore和hookafter合并 -HookProc的定义方式与以前有所不同: - -HookProc的函数类型和原来的api一样,只是参数比原API多2个 -DWORD WINAPI HookProc(DWORD RetAddr ,__pfnXXXX pfnXXXX, ...); - -//参数比原始的API多2个参数 -RetAddr //调用api的返回地址 -pfnXXX //类型为__pfnXXXX,待hook的api的声明类型,用于调用未被hook的api - -详见My_LoadLibraryA -原始的LoadLibraryA的声明是: - -HMODULE WINAPI LoadLibraryA( LPCSTR lpLibFileName ); - -那么首先定义一下hook的WINAPI的类型 -typedef HMODULE (WINAPI __pfnLoadLibraryA)(LPCTSTR lpFileName); - -然后hookproc的函数声明如下: -HMODULE WINAPI My_LoadLibraryA(DWORD RetAddr, - __pfnLoadLibraryA pfnLoadLibraryA, - LPCTSTR lpFileName - ); - -比原来的多了2个参数,参数位置不能颠倒,在My_LoadLibraryA中可以自由的调用未被hook的pfnLoadLibraryA -也可以调用系统的LoadLibraryA,不过要自己在hookproc中处理好重入问题 - -另外,也可以在My_LoadLibraryA中使用UnInstallHookApi()函数来卸载hook,用法如下: -将第二个参数__pfnLoadLibraryA pfnLoadLibraryA强制转换成PHOOKENVIRONMENT类型,使用UnInstallHookApi来卸载 - -例如: -UnInstallHookApi((PHOOKENVIRONMENT)pfnLoadLibraryA); - - -至于以前版本的HookBefore和HookAfter,完全可以在自己的HookProc里面灵活使用了 - - -2,支持卸载hook -InstallHookApi()调用后会返回一个PHOOKENVIRONMENT类型的指针 -需要卸载的时候可以使用UnInstallHookApi(PHOOKENVIRONMENT pHookEnv)来卸载 - -在HookProc中也可以使用UnInstallHookApi来卸载,参数传入HookProc中的第二个参数 - -注意:当HookProc中使用UnInstallHookApi卸载完后就不能用第二个参数来调用API了~~,切记! - -2008.04.15 0.41 -1,前面的deroko的LdeX86 有BUG,678b803412 会算错 - 换了一个LDX32,代码更少,更容易理解 - -2,修复了VirtualProtect的一个小BUG - - -0.4以前 -改动太大了,前面的就不写了 -*/ - - -#include "stdafx.h" -#include "HookApi.h" - -//#pragma comment(linker, "/SECTION:HookStub,R") - -//#define ALLOCATE_HookStub ALLOCATE(HookStub) - -//#pragma code_seg("HookStub") -#pragma optimize("gsy",on) -/*ALLOCATE_HookStub*/ HOOKENVIRONMENT pEnv={0}; -NAKED void StubShell_stdcall() -{ - __asm - { - push dword ptr [esp]; - push dword ptr [esp]; - call _next; -_next: - xchg dword ptr [esp], eax; - lea eax, [eax - 0x20]; - mov dword ptr [esp + 0xC], eax; - pop eax; - _emit 0xE9; - _emit 'g'; - _emit 'o'; - _emit 'o'; - _emit 'd'; - } -} - -NAKED void StubShell_cdecl() -{ - __asm - { - push dword ptr [esp]; - call _next; -_next: - xchg dword ptr [esp], eax; - lea eax, [eax - 0x1D]; - mov dword ptr [esp + 0x8], eax; - pop eax; - _emit 0x68; - _emit 'b'; - _emit 'a'; - _emit 'd'; - _emit 'd'; - _emit 0xE9; - _emit 'g'; - _emit 'o'; - _emit 'o'; - _emit 'd'; - } -} -#pragma optimize("",off) -//#pragma code_seg() - -NAKED void cdeclret_stub() -{ - __asm retn 4; -} -DWORD MyInterlockedExchange32(PDWORD Target, DWORD Value) -{ - DWORD retvalue; - __asm - { - mov ecx, Target; - mov eax, Value; - xchg dword ptr[ecx], eax; - mov retvalue, eax; - } - return retvalue; -} -WORD MyInterlockedExchange16(PWORD Target, WORD Value) -{ - WORD retvalue; - __asm - { - mov ecx, Target; - mov ax, Value; - xchg word ptr[ecx], ax; - mov retvalue, ax; - } - return retvalue; -} -void MyCopyBytes(void * pTarget, BYTE *pBuf, int size) -{ - /* - 优化 memcpy 字节 - 先把stub的前2个字节改成 EB FE,构造一个死循环,然后memcpy剩下字节,再把前2个字节改回去 - */ - WORD w1; - w1 = *(WORD*)pBuf; - MyInterlockedExchange16((PWORD)pTarget, 0xFEEB); - memcpy((char*)pTarget + 2, (char*)pBuf + 2, size - 2); - MyInterlockedExchange16((PWORD)pTarget, w1); -} - -DWORD __stdcall GetOpCodeSize(BYTE* iptr0) -{ - BYTE* iptr = iptr0; - - DWORD f = 0; - -prefix: - BYTE b = *iptr++; - - f |= table_1[b]; - - if (f&C_FUCKINGTEST) - if (((*iptr)&0x38)==0x00) // ttt - f=C_MODRM+C_DATAW0; // TEST - else - f=C_MODRM; // NOT,NEG,MUL,IMUL,DIV,IDIV - - if (f&C_TABLE_0F) - { - b = *iptr++; - f = table_0F[b]; - } - - if (f==C_ERROR) - { - //printf("error in %02X\n",b); - return C_ERROR; - } - - if (f&C_PREFIX) - { - f&=~C_PREFIX; - goto prefix; - } - - if (f&C_DATAW0) if (b&0x01) f|=C_DATA66; else f|=C_DATA1; - - if (f&C_MODRM) - { - b = *iptr++; - BYTE mod = b & 0xC0; - BYTE rm = b & 0x07; - if (mod!=0xC0) - { - if (f&C_67) // modrm16 - { - if ((mod==0x00)&&(rm==0x06)) f|=C_MEM2; - if (mod==0x40) f|=C_MEM1; - if (mod==0x80) f|=C_MEM2; - } - else // modrm32 - { - if (mod==0x40) f|=C_MEM1; - if (mod==0x80) f|=C_MEM4; - if (rm==0x04) rm = (*iptr++) & 0x07; // rm<-sib.base - if ((rm==0x05)&&(mod==0x00)) f|=C_MEM4; - } - } - } // C_MODRM - - if (f&C_MEM67) if (f&C_67) f|=C_MEM2; else f|=C_MEM4; - if (f&C_DATA66) if (f&C_66) f|=C_DATA2; else f|=C_DATA4; - - if (f&C_MEM1) iptr++; - if (f&C_MEM2) iptr+=2; - if (f&C_MEM4) iptr+=4; - - if (f&C_DATA1) iptr++; - if (f&C_DATA2) iptr+=2; - if (f&C_DATA4) iptr+=4; - - return iptr - iptr0; -} - -HANDLE g_hStupHeap = NULL; - -PHOOKENVIRONMENT __stdcall InstallHookStub(PVOID StubAddress, PVOID HookProc, int type) -{ - int ReplaceCodeSize; - DWORD oldpro; - DWORD SizeOfStub; - - DWORD SizeOfStubShell = 0; - DWORD AddrOfStubShell = 0; - - DWORD dwHookStubAddress; - DWORD RetSize =0; - - PHOOKENVIRONMENT pHookEnv; - - BYTE JMPGate[5] = {0xE9, 0x00, 0x00, 0x00, 0x00}; - - if (HookProc == NULL) - { - return NULL; - } - - if (StubAddress == NULL) return NULL; - - if (*(BYTE*)StubAddress == 0xE9 || *(BYTE*)StubAddress == 0xE8) return NULL; - - if(type == e_stdcall) - { - SizeOfStubShell = 0x1B; - AddrOfStubShell = (DWORD)StubShell_stdcall; - } - else if (type == e_cdecl) - { - SizeOfStubShell = 0x1D; - AddrOfStubShell = (DWORD)StubShell_cdecl; - } - -#ifdef _DEBUG - AddrOfStubShell = AddrOfStubShell + 5 + *(DWORD*)(AddrOfStubShell + 1); -#endif - - ReplaceCodeSize = GetOpCodeSize((BYTE*)StubAddress); - - while (ReplaceCodeSize < 5) - { - ReplaceCodeSize += GetOpCodeSize((BYTE*)((DWORD)StubAddress + (DWORD)ReplaceCodeSize)); - } - - if (ReplaceCodeSize > 16) return NULL; - - SizeOfStub = SizeOfStubShell + sizeof(HOOKENVIRONMENT); - - if(g_hStupHeap == NULL) - { - g_hStupHeap = HeapCreate(HEAP_CREATE_ENABLE_EXECUTE, 0, 0); - if(g_hStupHeap == NULL) - { - return NULL; - } - } - - pHookEnv = (PHOOKENVIRONMENT)HeapAlloc(g_hStupHeap, 0, sizeof(HOOKENVIRONMENT)); - - memcpy(pHookEnv, (PVOID)&pEnv, sizeof(HOOKENVIRONMENT)); - memset((void*)pHookEnv->savebytes, 0x90, sizeof(pHookEnv->savebytes)); - memcpy((void*)pHookEnv->hookstub, (PVOID)AddrOfStubShell, SizeOfStubShell); - memcpy(pHookEnv->savebytes, StubAddress, ReplaceCodeSize); - - pHookEnv->OrgApiAddr = StubAddress; - pHookEnv->SizeOfReplaceCode = ReplaceCodeSize; - - pHookEnv->jmptoapi[0] = 0xE9; - *(DWORD*)(&pHookEnv->jmptoapi[1]) = (DWORD)StubAddress + ReplaceCodeSize - ((DWORD)pHookEnv->jmptoapi + 5); - - dwHookStubAddress = (DWORD)pHookEnv->hookstub; - - pHookEnv->jmptostub[0] = 0xE9; - *(DWORD*)(&pHookEnv->jmptostub[1]) = (DWORD)pHookEnv->savebytes - ((DWORD)pHookEnv->jmptostub + 5); - //*(DWORD*)(&pHookEnv->jmptostub[1]) = (DWORD)(dwHookStubAddress) - ((DWORD)pHookEnv->jmptostub + 5); - - *(DWORD*)(&JMPGate[1]) = ((DWORD)pHookEnv->jmptostub) - ((DWORD)StubAddress + 5); - - //写入变量,这里要先写变量,否则如果hook VirtualProtect,下面的api调用会出问题 - if(type == e_stdcall) - { - *(DWORD*)(dwHookStubAddress + SizeOfStubShell - 4) = (DWORD)HookProc - (dwHookStubAddress + SizeOfStubShell); - } - else if(type == e_cdecl) - { - *(DWORD*)(dwHookStubAddress + SizeOfStubShell - 4) = (DWORD)HookProc - (dwHookStubAddress + SizeOfStubShell); - *(DWORD*)(dwHookStubAddress + SizeOfStubShell - 9) = (DWORD)cdeclret_stub; - } - - //patch api - if (VirtualProtect(StubAddress, ReplaceCodeSize, PAGE_EXECUTE_READWRITE, &oldpro)) - { - //memcpy(StubAddress, JMPGate, sizeof(JMPGate)); - MyCopyBytes((void*)StubAddress, (BYTE*)JMPGate, sizeof(JMPGate)); - VirtualProtect(StubAddress, ReplaceCodeSize, oldpro, &oldpro); - MyInterlockedExchange32((PDWORD)(&pHookEnv->jmptostub[1]), (DWORD)(dwHookStubAddress) - ((DWORD)pHookEnv->jmptostub + 5)); - } - else - { - //失败了,无法hook - HeapFree(g_hStupHeap, 0, (void*)pHookEnv); - return NULL; - } - return pHookEnv; -} - -PHOOKENVIRONMENT __stdcall InstallHookApi(PCHAR DllName, PCHAR ApiName, PVOID HookProc, int type) -{ - return InstallHookStub((PVOID)GetProcAddress(LoadLibraryA(DllName), ApiName), HookProc, type); -} - -BOOL __stdcall UnInstallHookApi(PHOOKENVIRONMENT pHookEnv) -{ - DWORD oldpro; - - //如果内存不存在了,则退出 - if(HeapSize(g_hStupHeap, 0, (void*)pHookEnv) <= 0) - return FALSE; - - if(IsBadReadPtr((const void*)pHookEnv, sizeof(HOOKENVIRONMENT))) - return FALSE; - - if(!VirtualProtect(pHookEnv->OrgApiAddr, pHookEnv->SizeOfReplaceCode, PAGE_EXECUTE_READWRITE, &oldpro)) - return FALSE; - - //memcpy(pHookEnv->OrgApiAddr, pHookEnv->savebytes, pHookEnv->SizeOfReplaceCode); - MyCopyBytes((void*)pHookEnv->OrgApiAddr, (BYTE*)pHookEnv->savebytes, pHookEnv->SizeOfReplaceCode); - - VirtualProtect(pHookEnv->OrgApiAddr, pHookEnv->SizeOfReplaceCode, oldpro, &oldpro); - - HeapFree(g_hStupHeap, 0, (void*)pHookEnv); - return TRUE; -} - - -//定义下面这行可以作为演示使用 -//#define TEST_MAIN - - -#ifdef TEST_MAIN - -BOOL IsMe = FALSE; - -//先定义一下要hook的WINAPI -typedef HMODULE (WINAPI __pfnLoadLibraryA)(LPCSTR lpFileName); - -/* -HookProc的参数声明方式类型等和原来的api一样,只是参数比原API多2个 -DWORD WINAPI HookProc(DWORD RetAddr ,__pfnXXXX pfnXXXX, ...); - -//参数比原始的API多2个参数 -RetAddr //调用api的返回地址 -pfnXXX //类型为__pfnXXXX,待hook的api的声明类型,用于调用未被hook的api - -详见My_LoadLibraryA -原始的LoadLibraryA的声明是: - -HMODULE WINAPI LoadLibraryA( LPCSTR lpLibFileName ); - -那么首先定义一下hook的WINAPI的类型 -typedef HMODULE (WINAPI __pfnLoadLibraryA)(LPCTSTR lpFileName); - -然后hookproc的函数声明如下: -HMODULE WINAPI My_LoadLibraryA(DWORD RetAddr, - __pfnLoadLibraryA pfnLoadLibraryA, - LPCTSTR lpFileName - ); - -比原来的多了2个参数,参数位置不能颠倒,在My_LoadLibraryA中可以自由的调用未被hook的pfnLoadLibraryA -也可以调用系统的LoadLibraryA,不过要自己在hookproc中处理好重入问题 - -另外,也可以在My_LoadLibraryA中使用UnInstallHookApi()函数来卸载hook,用法如下: -将第二个参数__pfnLoadLibraryA pfnLoadLibraryA强制转换成PHOOKENVIRONMENT类型,使用UnInstallHookApi来卸载 - -例如: -UnInstallHookApi((PHOOKENVIRONMENT)pfnLoadLibraryA); - - -至于以前版本的HookBefore和HookAfter,完全可以在自己的HookProc里面灵活使用了 - -*/ - -HMODULE WINAPI My_LoadLibraryA(DWORD RetAddr, - __pfnLoadLibraryA pfnLoadLibraryA, - LPCSTR lpFileName - ) -{ - HMODULE hLib; - - //需要自己处理重入和线程安全问题 - if (!IsMe) - { - IsMe = TRUE; - MessageBoxA(NULL, lpFileName, "test", MB_ICONINFORMATION); - hLib = LoadLibraryA(lpFileName);//这里调用的是系统的,已经被hook过的 - IsMe = FALSE; - //这里是卸载Hook,这里卸载完就不能用pfnLoadLibraryA来调用了 - UnInstallHookApi((PHOOKENVIRONMENT)pfnLoadLibraryA); - return hLib; - } - return pfnLoadLibraryA(lpFileName);//这里调用非hook的 -} - - -int main() -{ - PHOOKENVIRONMENT pHookEnv; - - pHookEnv = InstallHookApi("Kernel32.dll", "LoadLibraryA", My_LoadLibraryA); - //pHookEnv = InstallHookApi("Kernel32.dll", "Beep", My_LoadLibraryA); - LoadLibraryA("InjectDll.dll"); - MessageBoxA(NULL,"Safe Here!!!","Very Good!!",MB_ICONINFORMATION); - UnInstallHookApi(pHookEnv);//由于HookProc中卸载过了,所以这里的卸载就无效了 - MessageBoxA(NULL,"UnInstall Success!!!","Good!!",MB_ICONINFORMATION); - return 0; -} - -#endif - - \ No newline at end of file diff --git a/src/HookApi.h b/src/HookApi.h deleted file mode 100644 index 654f3947..00000000 --- a/src/HookApi.h +++ /dev/null @@ -1,585 +0,0 @@ -#ifndef _HOOKAPI_H -#define _HOOKAPI_H - - -typedef struct _HOOKENVIRONMENT -{ - //前两项的位置不能改变! - unsigned char savebytes[16]; - unsigned char jmptoapi[5]; - unsigned char hookstub[0x30]; - unsigned char jmptostub[5]; - void* OrgApiAddr; - unsigned long SizeOfReplaceCode; - unsigned long oldpro; -}HOOKENVIRONMENT,*PHOOKENVIRONMENT; - -enum hooktype{ - e_stdcall, - e_cdecl, -}; - -#ifdef __cplusplus -extern "C" -{ -#endif - -DWORD __stdcall GetOpCodeSize(BYTE* startaddress); -PHOOKENVIRONMENT __stdcall InstallHookStub(PVOID StubAddress, PVOID HookProc, int type = e_stdcall); -PHOOKENVIRONMENT __stdcall InstallHookApi(PCHAR DllName, PCHAR ApiName, PVOID HookProc, int type = e_stdcall); -BOOL __stdcall UnInstallHookApi(PHOOKENVIRONMENT pHookEnv); - -#ifdef __cplusplus -}; -#endif - -#define NAKED __declspec(naked) - -#define ALLOCATE(x1) __declspec(allocate(#x1)) - -#define ReloCationForADDR(x1, dwHookStubAddress) ((DWORD(&x1) + dwHookStubAddress)) -#define ReloCationForDWORD(x1, dwHookStubAddress) (*(LPDWORD(DWORD(&x1) + dwHookStubAddress))) -#define ReloCationForTCHAR(x1, dwHookStubAddress) (LPCTSTR(DWORD(&x1) + dwHookStubAddress)) -#define ReloCationForLP(x1, dwHookStubAddress) (__##x1(ReloCationForDWORD(x1, dwHookStubAddress))) - -////////////////////////////////////////////////////////////////////////// -//另一个LDX32 - -#define C_ERROR 0xFFFFFFFF -#define C_PREFIX 0x00000001 -#define C_66 0x00000002 -#define C_67 0x00000004 -#define C_DATA66 0x00000008 -#define C_DATA1 0x00000010 -#define C_DATA2 0x00000020 -#define C_DATA4 0x00000040 -#define C_MEM67 0x00000080 -#define C_MEM1 0x00000100 -#define C_MEM2 0x00000200 -#define C_MEM4 0x00000400 -#define C_MODRM 0x00000800 -#define C_DATAW0 0x00001000 -#define C_FUCKINGTEST 0x00002000 -#define C_TABLE_0F 0x00004000 - -static int table_1[256] = -{ - /* 00 */ C_MODRM - /* 01 */, C_MODRM - /* 02 */, C_MODRM - /* 03 */, C_MODRM - /* 04 */, C_DATAW0 - /* 05 */, C_DATAW0 - /* 06 */, 0 - /* 07 */, 0 - /* 08 */, C_MODRM - /* 09 */, C_MODRM - /* 0A */, C_MODRM - /* 0B */, C_MODRM - /* 0C */, C_DATAW0 - /* 0D */, C_DATAW0 - /* 0E */, 0 - /* 0F */, C_TABLE_0F - /* 10 */, C_MODRM - /* 11 */, C_MODRM - /* 12 */, C_MODRM - /* 13 */, C_MODRM - /* 14 */, C_DATAW0 - /* 15 */, C_DATAW0 - /* 16 */, 0 - /* 17 */, 0 - /* 18 */, C_MODRM - /* 19 */, C_MODRM - /* 1A */, C_MODRM - /* 1B */, C_MODRM - /* 1C */, C_DATAW0 - /* 1D */, C_DATAW0 - /* 1E */, 0 - /* 1F */, 0 - /* 20 */, C_MODRM - /* 21 */, C_MODRM - /* 22 */, C_MODRM - /* 23 */, C_MODRM - /* 24 */, C_DATAW0 - /* 25 */, C_DATAW0 - /* 26 */, C_PREFIX - /* 27 */, 0 - /* 28 */, C_MODRM - /* 29 */, C_MODRM - /* 2A */, C_MODRM - /* 2B */, C_MODRM - /* 2C */, C_DATAW0 - /* 2D */, C_DATAW0 - /* 2E */, C_PREFIX - /* 2F */, 0 - /* 30 */, C_MODRM - /* 31 */, C_MODRM - /* 32 */, C_MODRM - /* 33 */, C_MODRM - /* 34 */, C_DATAW0 - /* 35 */, C_DATAW0 - /* 36 */, C_PREFIX - /* 37 */, 0 - /* 38 */, C_MODRM - /* 39 */, C_MODRM - /* 3A */, C_MODRM - /* 3B */, C_MODRM - /* 3C */, C_DATAW0 - /* 3D */, C_DATAW0 - /* 3E */, C_PREFIX - /* 3F */, 0 - /* 40 */, 0 - /* 41 */, 0 - /* 42 */, 0 - /* 43 */, 0 - /* 44 */, 0 - /* 45 */, 0 - /* 46 */, 0 - /* 47 */, 0 - /* 48 */, 0 - /* 49 */, 0 - /* 4A */, 0 - /* 4B */, 0 - /* 4C */, 0 - /* 4D */, 0 - /* 4E */, 0 - /* 4F */, 0 - /* 50 */, 0 - /* 51 */, 0 - /* 52 */, 0 - /* 53 */, 0 - /* 54 */, 0 - /* 55 */, 0 - /* 56 */, 0 - /* 57 */, 0 - /* 58 */, 0 - /* 59 */, 0 - /* 5A */, 0 - /* 5B */, 0 - /* 5C */, 0 - /* 5D */, 0 - /* 5E */, 0 - /* 5F */, 0 - /* 60 */, 0 - /* 61 */, 0 - /* 62 */, C_MODRM - /* 63 */, C_MODRM - /* 64 */, C_PREFIX - /* 65 */, C_PREFIX - /* 66 */, C_PREFIX+C_66 - /* 67 */, C_PREFIX+C_67 - /* 68 */, C_DATA66 - /* 69 */, C_MODRM+C_DATA66 - /* 6A */, C_DATA1 - /* 6B */, C_MODRM+C_DATA1 - /* 6C */, 0 - /* 6D */, 0 - /* 6E */, 0 - /* 6F */, 0 - /* 70 */, C_DATA1 - /* 71 */, C_DATA1 - /* 72 */, C_DATA1 - /* 73 */, C_DATA1 - /* 74 */, C_DATA1 - /* 75 */, C_DATA1 - /* 76 */, C_DATA1 - /* 77 */, C_DATA1 - /* 78 */, C_DATA1 - /* 79 */, C_DATA1 - /* 7A */, C_DATA1 - /* 7B */, C_DATA1 - /* 7C */, C_DATA1 - /* 7D */, C_DATA1 - /* 7E */, C_DATA1 - /* 7F */, C_DATA1 - /* 80 */, C_MODRM+C_DATA1 - /* 81 */, C_MODRM+C_DATA66 - /* 82 */, C_MODRM+C_DATA1 - /* 83 */, C_MODRM+C_DATA1 - /* 84 */, C_MODRM - /* 85 */, C_MODRM - /* 86 */, C_MODRM - /* 87 */, C_MODRM - /* 88 */, C_MODRM - /* 89 */, C_MODRM - /* 8A */, C_MODRM - /* 8B */, C_MODRM - /* 8C */, C_MODRM - /* 8D */, C_MODRM - /* 8E */, C_MODRM - /* 8F */, C_MODRM - /* 90 */, 0 - /* 91 */, 0 - /* 92 */, 0 - /* 93 */, 0 - /* 94 */, 0 - /* 95 */, 0 - /* 96 */, 0 - /* 97 */, 0 - /* 98 */, 0 - /* 99 */, 0 - /* 9A */, C_DATA66+C_MEM2 - /* 9B */, 0 - /* 9C */, 0 - /* 9D */, 0 - /* 9E */, 0 - /* 9F */, 0 - /* A0 */, C_MEM67 - /* A1 */, C_MEM67 - /* A2 */, C_MEM67 - /* A3 */, C_MEM67 - /* A4 */, 0 - /* A5 */, 0 - /* A6 */, 0 - /* A7 */, 0 - /* A8 */, C_DATA1 - /* A9 */, C_DATA66 - /* AA */, 0 - /* AB */, 0 - /* AC */, 0 - /* AD */, 0 - /* AE */, 0 - /* AF */, 0 - /* B0 */, C_DATA1 - /* B1 */, C_DATA1 - /* B2 */, C_DATA1 - /* B3 */, C_DATA1 - /* B4 */, C_DATA1 - /* B5 */, C_DATA1 - /* B6 */, C_DATA1 - /* B7 */, C_DATA1 - /* B8 */, C_DATA66 - /* B9 */, C_DATA66 - /* BA */, C_DATA66 - /* BB */, C_DATA66 - /* BC */, C_DATA66 - /* BD */, C_DATA66 - /* BE */, C_DATA66 - /* BF */, C_DATA66 - /* C0 */, C_MODRM+C_DATA1 - /* C1 */, C_MODRM+C_DATA1 - /* C2 */, C_DATA2 - /* C3 */, 0 - /* C4 */, C_MODRM - /* C5 */, C_MODRM - /* C6 */, C_MODRM+C_DATA66 - /* C7 */, C_MODRM+C_DATA66 - /* C8 */, C_DATA2+C_DATA1 - /* C9 */, 0 - /* CA */, C_DATA2 - /* CB */, 0 - /* CC */, 0 - /* CD */, C_DATA1+C_DATA4 - /* CE */, 0 - /* CF */, 0 - /* D0 */, C_MODRM - /* D1 */, C_MODRM - /* D2 */, C_MODRM - /* D3 */, C_MODRM - /* D4 */, 0 - /* D5 */, 0 - /* D6 */, 0 - /* D7 */, 0 - /* D8 */, C_MODRM - /* D9 */, C_MODRM - /* DA */, C_MODRM - /* DB */, C_MODRM - /* DC */, C_MODRM - /* DD */, C_MODRM - /* DE */, C_MODRM - /* DF */, C_MODRM - /* E0 */, C_DATA1 - /* E1 */, C_DATA1 - /* E2 */, C_DATA1 - /* E3 */, C_DATA1 - /* E4 */, C_DATA1 - /* E5 */, C_DATA1 - /* E6 */, C_DATA1 - /* E7 */, C_DATA1 - /* E8 */, C_DATA66 - /* E9 */, C_DATA66 - /* EA */, C_DATA66+C_MEM2 - /* EB */, C_DATA1 - /* EC */, 0 - /* ED */, 0 - /* EE */, 0 - /* EF */, 0 - /* F0 */, C_PREFIX - /* F1 */, 0 // 0xF1 - /* F2 */, C_PREFIX - /* F3 */, C_PREFIX - /* F4 */, 0 - /* F5 */, 0 - /* F6 */, C_FUCKINGTEST - /* F7 */, C_FUCKINGTEST - /* F8 */, 0 - /* F9 */, 0 - /* FA */, 0 - /* FB */, 0 - /* FC */, 0 - /* FD */, 0 - /* FE */, C_MODRM - /* FF */, C_MODRM -}; // table_1 - -static int table_0F[256] = -{ - /* 00 */ C_MODRM - /* 01 */, C_MODRM - /* 02 */, C_MODRM - /* 03 */, C_MODRM - /* 04 */, -1 - /* 05 */, -1 - /* 06 */, 0 - /* 07 */, -1 - /* 08 */, 0 - /* 09 */, 0 - /* 0A */, 0 - /* 0B */, 0 - /* 0C */, -1 - /* 0D */, -1 - /* 0E */, -1 - /* 0F */, -1 - /* 10 */, -1 - /* 11 */, -1 - /* 12 */, -1 - /* 13 */, -1 - /* 14 */, -1 - /* 15 */, -1 - /* 16 */, -1 - /* 17 */, -1 - /* 18 */, -1 - /* 19 */, -1 - /* 1A */, -1 - /* 1B */, -1 - /* 1C */, -1 - /* 1D */, -1 - /* 1E */, -1 - /* 1F */, -1 - /* 20 */, -1 - /* 21 */, -1 - /* 22 */, -1 - /* 23 */, -1 - /* 24 */, -1 - /* 25 */, -1 - /* 26 */, -1 - /* 27 */, -1 - /* 28 */, -1 - /* 29 */, -1 - /* 2A */, -1 - /* 2B */, -1 - /* 2C */, -1 - /* 2D */, -1 - /* 2E */, -1 - /* 2F */, -1 - /* 30 */, -1 - /* 31 */, -1 - /* 32 */, -1 - /* 33 */, -1 - /* 34 */, -1 - /* 35 */, -1 - /* 36 */, -1 - /* 37 */, -1 - /* 38 */, -1 - /* 39 */, -1 - /* 3A */, -1 - /* 3B */, -1 - /* 3C */, -1 - /* 3D */, -1 - /* 3E */, -1 - /* 3F */, -1 - /* 40 */, -1 - /* 41 */, -1 - /* 42 */, -1 - /* 43 */, -1 - /* 44 */, -1 - /* 45 */, -1 - /* 46 */, -1 - /* 47 */, -1 - /* 48 */, -1 - /* 49 */, -1 - /* 4A */, -1 - /* 4B */, -1 - /* 4C */, -1 - /* 4D */, -1 - /* 4E */, -1 - /* 4F */, -1 - /* 50 */, -1 - /* 51 */, -1 - /* 52 */, -1 - /* 53 */, -1 - /* 54 */, -1 - /* 55 */, -1 - /* 56 */, -1 - /* 57 */, -1 - /* 58 */, -1 - /* 59 */, -1 - /* 5A */, -1 - /* 5B */, -1 - /* 5C */, -1 - /* 5D */, -1 - /* 5E */, -1 - /* 5F */, -1 - /* 60 */, -1 - /* 61 */, -1 - /* 62 */, -1 - /* 63 */, -1 - /* 64 */, -1 - /* 65 */, -1 - /* 66 */, -1 - /* 67 */, -1 - /* 68 */, -1 - /* 69 */, -1 - /* 6A */, -1 - /* 6B */, -1 - /* 6C */, -1 - /* 6D */, -1 - /* 6E */, -1 - /* 6F */, -1 - /* 70 */, -1 - /* 71 */, -1 - /* 72 */, -1 - /* 73 */, -1 - /* 74 */, -1 - /* 75 */, -1 - /* 76 */, -1 - /* 77 */, -1 - /* 78 */, -1 - /* 79 */, -1 - /* 7A */, -1 - /* 7B */, -1 - /* 7C */, -1 - /* 7D */, -1 - /* 7E */, -1 - /* 7F */, -1 - /* 80 */, C_DATA66 - /* 81 */, C_DATA66 - /* 82 */, C_DATA66 - /* 83 */, C_DATA66 - /* 84 */, C_DATA66 - /* 85 */, C_DATA66 - /* 86 */, C_DATA66 - /* 87 */, C_DATA66 - /* 88 */, C_DATA66 - /* 89 */, C_DATA66 - /* 8A */, C_DATA66 - /* 8B */, C_DATA66 - /* 8C */, C_DATA66 - /* 8D */, C_DATA66 - /* 8E */, C_DATA66 - /* 8F */, C_DATA66 - /* 90 */, C_MODRM - /* 91 */, C_MODRM - /* 92 */, C_MODRM - /* 93 */, C_MODRM - /* 94 */, C_MODRM - /* 95 */, C_MODRM - /* 96 */, C_MODRM - /* 97 */, C_MODRM - /* 98 */, C_MODRM - /* 99 */, C_MODRM - /* 9A */, C_MODRM - /* 9B */, C_MODRM - /* 9C */, C_MODRM - /* 9D */, C_MODRM - /* 9E */, C_MODRM - /* 9F */, C_MODRM - /* A0 */, 0 - /* A1 */, 0 - /* A2 */, 0 - /* A3 */, C_MODRM - /* A4 */, C_MODRM+C_DATA1 - /* A5 */, C_MODRM - /* A6 */, -1 - /* A7 */, -1 - /* A8 */, 0 - /* A9 */, 0 - /* AA */, 0 - /* AB */, C_MODRM - /* AC */, C_MODRM+C_DATA1 - /* AD */, C_MODRM - /* AE */, -1 - /* AF */, C_MODRM - /* B0 */, C_MODRM - /* B1 */, C_MODRM - /* B2 */, C_MODRM - /* B3 */, C_MODRM - /* B4 */, C_MODRM - /* B5 */, C_MODRM - /* B6 */, C_MODRM - /* B7 */, C_MODRM - /* B8 */, -1 - /* B9 */, -1 - /* BA */, C_MODRM+C_DATA1 - /* BB */, C_MODRM - /* BC */, C_MODRM - /* BD */, C_MODRM - /* BE */, C_MODRM - /* BF */, C_MODRM - /* C0 */, C_MODRM - /* C1 */, C_MODRM - /* C2 */, -1 - /* C3 */, -1 - /* C4 */, -1 - /* C5 */, -1 - /* C6 */, -1 - /* C7 */, -1 - /* C8 */, 0 - /* C9 */, 0 - /* CA */, 0 - /* CB */, 0 - /* CC */, 0 - /* CD */, 0 - /* CE */, 0 - /* CF */, 0 - /* D0 */, -1 - /* D1 */, -1 - /* D2 */, -1 - /* D3 */, -1 - /* D4 */, -1 - /* D5 */, -1 - /* D6 */, -1 - /* D7 */, -1 - /* D8 */, -1 - /* D9 */, -1 - /* DA */, -1 - /* DB */, -1 - /* DC */, -1 - /* DD */, -1 - /* DE */, -1 - /* DF */, -1 - /* E0 */, -1 - /* E1 */, -1 - /* E2 */, -1 - /* E3 */, -1 - /* E4 */, -1 - /* E5 */, -1 - /* E6 */, -1 - /* E7 */, -1 - /* E8 */, -1 - /* E9 */, -1 - /* EA */, -1 - /* EB */, -1 - /* EC */, -1 - /* ED */, -1 - /* EE */, -1 - /* EF */, -1 - /* F0 */, -1 - /* F1 */, -1 - /* F2 */, -1 - /* F3 */, -1 - /* F4 */, -1 - /* F5 */, -1 - /* F6 */, -1 - /* F7 */, -1 - /* F8 */, -1 - /* F9 */, -1 - /* FA */, -1 - /* FB */, -1 - /* FC */, -1 - /* FD */, -1 - /* FE */, -1 - /* FF */, -1 -}; // table_0F - -#endif \ No newline at end of file diff --git a/src/dllmain.cpp b/src/dllmain.cpp index 222b8376..4190c8d7 100644 --- a/src/dllmain.cpp +++ b/src/dllmain.cpp @@ -1,15 +1,6 @@ // dllmain.cpp : Defines the entry point for the DLL application. #include "stdafx.h" -#include "mhook/mhook-lib/mhook.h" -#include "hosts.h" -#include -#include -#include -#include -#pragma comment(lib, "Ws2_32.lib") -#pragma comment(lib, "Psapi.lib") -#pragma comment(lib, "Version.lib") typedef int (WSAAPI* _getaddrinfo)( _In_opt_ PCSTR pNodeName, @@ -186,58 +177,6 @@ int WSAAPI WSASend_hook( //#define API_COPY(M, N) \ // _##N = GetProcAddress(M, #N); -bool AddDllToBlacklist (const wchar_t* dll_name) { - return true; -} -void ClearReportsBetween_ExportThunk (time_t begin, time_t end) {} -int CrashForException_ExportThunk (EXCEPTION_POINTERS* info) { - return UnhandledExceptionFilter (info); -} -void DisableHook () {} -uint32_t DrainLog (uint8_t* buffer, uint32_t buffer_size, uint32_t* log_remaining) { - return 0; -} -bool DumpHungProcessWithPtype_ExportThunk (HANDLE process_handle, const char* ptype) { - return false; -} -void DumpProcessWithoutCrash () {} -int32_t GetApplyHookResult () { return 0; } -uint32_t GetBlockedModulesCount () { return 0; } -size_t GetCrashReports_ExportThunk (void* reports, size_t reports_size) { - return 0; -} -const wchar_t* GetCrashpadDatabasePath_ExportThunk () { - return nullptr; -} -void GetHandleVerifier () {} -uint32_t GetInstallDetailsPayload () { return 0; } -uint32_t GetUniqueBlockedModulesCount () { return 0; } -bool GetUserDataDirectoryThunk (wchar_t* user_data_dir, - size_t user_data_dir_length, - wchar_t* invalid_user_data_dir, - size_t invalid_user_data_dir_length) { - return true; -} -HANDLE InjectDumpForHungInput_ExportThunk (HANDLE process) { - return nullptr; -} -bool IsBlacklistInitialized () { - return false; -} -bool IsCrashReportingEnabledImpl () { - return false; -} -bool RegisterLogNotification (HANDLE event_handle) { - return false; -} -void RequestSingleCrashUpload_ExportThunk (const char* local_id) {} -void SetCrashKeyValueImpl () {} -void SetMetricsClientId (const char* client_id) {} -void SetUploadConsent_ExportThunk (bool consent) {} -void SignalChromeElf () {} -void SignalInitializeCrashReporting() {} -void SuccessfullyBlocked (const wchar_t** blocked_dlls, int* size) {} - typedef char (__fastcall* _is_skippable)( char* This, void* @@ -618,8 +557,8 @@ BOOL APIENTRY DllMain( HMODULE hModule, // Only patch the main process and none of the renderers/workers // this make hook not work on spotify 1.1.12.449.g4109e645 - // if (!wcsstr(GetCommandLine(), L"--type=")) - CreateThread(NULL, NULL, MainThread, NULL, 0, NULL); + if (!wcsstr(GetCommandLine(), L"--type=")) + CreateThread(NULL, NULL, MainThread, NULL, 0, NULL); break; } diff --git a/src/hosts.h b/src/hosts.h new file mode 100644 index 00000000..609c5b1b --- /dev/null +++ b/src/hosts.h @@ -0,0 +1,971 @@ +#pragma once + +static const char* HostNames[] = { +// new website +// fork this if you found more... I'll check if had time. + "google.ac", + "google.ad", + "google.af", + "google.ag", + "google.al", + "google.am", + "google.as", + "google.ba", + "google.bf", + "google.bg", + "google.bi", + "google.bj", + "google.bs", + "google.bt", + "google.by", + "google.cc", + "google.cd", + "google.cf", + "google.cg", + "google.ci", + "google.cm", + "google.cn", + "google.co.ao", + "google.co.bw", + "google.co.ck", + "google.co.cr", + "google.co.im", + "google.co.je", + "google.co.jp", + "google.co.ke", + "google.co.kr", + "google.co.ls", + "google.co.ma", + "google.co.mz", + "google.co.nz", + "google.co.tz", + "google.co.ug", + "google.co.uz", + "google.co.vi", + "google.co.zm", + "google.co.zw", + "google.com.af", + "google.com.ag", + "google.com.ai", + "google.com.ar", + "google.com.au", + "google.com.bd", + "google.com.bh", + "google.com.bn", + "google.com.bo", + "google.com.br", + "google.com.by", + "google.com.bz", + "google.com.cn", + "google.com.co", + "google.com.cu", + "google.com.cy", + "google.com.do", + "google.com.ec", + "google.com.eg", + "google.com.et", + "google.com.fj", + "google.com.ge", + "google.com.gh", + "google.com.gi", + "google.com.gr", + "google.com.gt", + "google.com.hk", + "google.com.iq", + "google.com.jm", + "google.com.jo", + "google.com.kh", + "google.com.kw", + "google.com.lb", + "google.com.ly", + "google.com.mm", + "google.com.mt", + "google.com.mx", + "google.com.my", + "google.com.na", + "google.com.nf", + "google.com.ng", + "google.com.ni", + "google.com.np", + "google.com.nr", + "google.com.om", + "google.com.pa", + "google.com.pe", + "google.com.pg", + "google.com.ph", + "google.com.pk", + "google.com.pl", + "google.com.pr", + "google.com.py", + "google.com.qa", + "google.com.ru", + "google.com.sa", + "google.com.sb", + "google.com.sg", + "google.com.sl", + "google.com.sv", + "google.com.tj", + "google.com.tn", + "google.com.tr", + "google.com.tw", + "google.com.ua", + "google.com.uy", + "google.com.vc", + "google.com.ve", + "google.com.vn", + "google.cv", + "google.dj", + "google.dm", + "google.ee", + "google.fm", + "google.ga", + "google.ge", + "google.gg", + "google.gl", + "google.gm", + "google.gp", + "google.gy", + "google.hk", + "google.hn", + "google.hr", + "google.ht", + "google.hu", + "google.im", + "google.iq", + "google.ir", + "google.is", + "google.it.ao", + "google.je", + "google.jo", + "google.jp", + "google.kg", + "google.ki", + "google.kz", + "google.la", + "google.li", + "google.lk", + "google.lt", + "google.lu", + "google.lv", + "google.md", + "google.me", + "google.mg", + "google.mk", + "google.ml", + "google.mn", + "google.ms", + "google.mu", + "google.mv", + "google.mw", + "google.ne", + "google.ne.jp", + "google.ng", + "google.nr", + "google.nu", + "google.off.ai", + "google.pk", + "google.pn", + "google.ps", + "google.rs", + "google.rw", + "google.sc", + "google.sh", + "google.si", + "google.sm", + "google.sn", + "google.so", + "google.sr", + "google.st", + "google.td", + "google.tg", + "google.tk", + "google.tl", + "google.tm", + "google.tn", + "google.to", + "google.tt", + "google.us", + "google.uz", + "google.vg", + "google.vu", + "google.ws", + "l.google.com", + "2mdn.net", + "adgoogle.net", + "admeld.com", + "admob.biz", + "admob.co.in", + "admob.co.kr", + "admob.co.nz", + "admob.co.uk", + "admob.co.za", + "admob.com", + "admob.com.br", + "admob.com.es", + "admob.com.fr", + "admob.com.mx", + "admob.com.pt", + "admob.de", + "admob.dk", + "admob.es", + "admob.fi", + "admob.fr", + "admob.gr", + "admob.hk", + "admob.ie", + "admob.in", + "admob.it", + "admob.jp", + "admob.kr", + "admob.mobi", + "admob.no", + "admob.ph", + "admob.pt", + "admob.sg", + "admob.tw", + "admob.us", + "admob.vn", + "adwhirl.com", + "ampproject.com", + "ampproject.net", + "ampproject.org", + "android.com", + "anycast-edge.metric.gstatic.com", + "anycast-stb.metric.gstatic.com", + "anycast.metric.gstatic.com", + "cdn.ampproject.org", + "chromecast.com", + "chromeexperiments.com", + "chromestatus.com", + "chromium.org", + "clients6.google.com", + "cloudendpointsapis.com", + "dartmotif.com", + "dartsearch.net", + "doubleclick.com", + "doubleclick.ne.jp", + "doubleclick.net", + "doubleclickusercontent.com", + "fls.doubleclick.net", + "g.co", + "g.doubleclick.net", + "ggpht.com", + "gmodules.com", + "goo.gl", + "google-syndication.com", + "google.cat", + "google.info", + "google.jobs", + "google.net", + "google.org", + "google.stackdriver.com", + "googleadapis.com", + "googleadservices.com", + "googleadsserving.cn", + "googlealumni.com", + "googleapis.cn", + "googleapps.com", + "googlecbs.com", + "googlecode.com", + "googlecommerce.com", + "googledrive.com", + "googleenterprise.com", + "googlefiber.com", + "googlefiber.net", + "googlegoro.com", + "googlehosted.com", + "googlepayments.com", + "googlesource.com", + "googlesyndication.com", + "googletagmanager.com", + "googletagservices.com", + "googleusercontent.com", + "googlezip.net", + "gstatic.cn", + "gstatic.com", + "gvt3.com", + "gvt9.com", + "picasa.com", + "recaptcha.net", + "stackdriver.com", + "stbcast-stb.metric.gstatic.com", + "stbcast.metric.gstatic.com", + "stbcast2-stb.metric.gstatic.com", + "stbcast2.metric.gstatic.com", + "stbcast3-stb.metric.gstatic.com", + "stbcast3.metric.gstatic.com", + "stbcast4-stb.metric.gstatic.com", + "stbcast4.metric.gstatic.com", + "unicast-edge.metric.gstatic.com", + "unicast-stb.metric.gstatic.com", + "unicast.metric.gstatic.com", + "unicast2-stb.metric.gstatic.com", + "unicast2.metric.gstatic.com", + "waze.com", + "withgoogle.com", + "youtu.be", + "youtube-3rd-party.com", + "youtube-nocookie.com", + "youtube.ae", + "youtube.al", + "youtube.am", + "youtube.at", + "youtube.az", + "youtube.ba", + "youtube.be", + "youtube.bg", + "youtube.bh", + "youtube.bo", + "youtube.ca", + "youtube.cat", + "youtube.ch", + "youtube.cl", + "youtube.co", + "youtube.co.ae", + "youtube.co.at", + "youtube.co.hu", + "youtube.co.id", + "youtube.co.il", + "youtube.co.in", + "youtube.co.jp", + "youtube.co.ke", + "youtube.co.kr", + "youtube.co.ma", + "youtube.co.nz", + "youtube.co.th", + "youtube.co.ug", + "youtube.co.uk", + "youtube.co.ve", + "youtube.co.za", + "youtube.com", + "youtube.com.ar", + "youtube.com.au", + "youtube.com.az", + "youtube.com.bh", + "youtube.com.bo", + "youtube.com.br", + "youtube.com.by", + "youtube.com.co", + "youtube.com.do", + "youtube.com.ee", + "youtube.com.eg", + "youtube.com.es", + "youtube.com.gh", + "youtube.com.gr", + "youtube.com.gt", + "youtube.com.hk", + "youtube.com.hr", + "youtube.com.jm", + "youtube.com.jo", + "youtube.com.kw", + "youtube.com.lb", + "youtube.com.lv", + "youtube.com.mk", + "youtube.com.mt", + "youtube.com.mx", + "youtube.com.my", + "youtube.com.ng", + "youtube.com.om", + "youtube.com.pe", + "youtube.com.ph", + "youtube.com.pk", + "youtube.com.pt", + "youtube.com.qa", + "youtube.com.ro", + "youtube.com.sa", + "youtube.com.sg", + "youtube.com.tn", + "youtube.com.tr", + "youtube.com.tw", + "youtube.com.ua", + "youtube.com.uy", + "youtube.com.ve", + "youtube.cz", + "youtube.de", + "youtube.dk", + "youtube.ee", + "youtube.es", + "youtube.fi", + "youtube.fr", + "youtube.ge", + "youtube.gr", + "youtube.gt", + "youtube.hk", + "youtube.hr", + "youtube.hu", + "youtube.ie", + "youtube.in", + "youtube.is", + "youtube.it", + "youtube.jo", + "youtube.jp", + "youtube.kr", + "youtube.lk", + "youtube.lt", + "youtube.lv", + "youtube.ma", + "youtube.md", + "youtube.me", + "youtube.mk", + "youtube.mx", + "youtube.my", + "youtube.ng", + "youtube.nl", + "youtube.no", + "youtube.pe", + "youtube.ph", + "youtube.pk", + "youtube.pl", + "youtube.pr", + "youtube.pt", + "youtube.qa", + "youtube.ro", + "youtube.rs", + "youtube.ru", + "youtube.sa", + "youtube.se", + "youtube.sg", + "youtube.si", + "youtube.sk", + "youtube.sn", + "youtube.tn", + "youtube.ua", + "youtube.ug", + "youtube.uy", + "youtube.vn", + "youtubeeducation.com", + "youtubemobilesupport.com", + "ytimg.com", + "accounts.google.com", + "apis.google.com", + "app.google.stackdriver.com", + "b.mail.google.com", + "chatenabled.mail.google.com", + "ddm.google.com", + "gmail.google.com", + "mail-attachment.googleusercontent.com", + "www.gmail.com", + "ad.doubleclick.net", + "redirector.googlevideo.com", + "beacons.gcp.gvt2.com", + "beacons.gvt2.com", + "beacons2.gvt2.com", + "beacons3.gvt2.com", + "beacons4.gvt2.com", + "beacons5.gvt2.com", + "beacons5.gvt3.com", + "clients2.google.com" +}; + +/* + "1435575.fls.doubleclick.net", + "2542116.fls.doubleclick.net", + "2mdn.net", + "3642305.fls.doubleclick.net", + "3765329.fls.doubleclick.net", + "3ad.doubleclick.net", + "4.afs.googleadservices.com", + "4053494.fls.doubleclick.net", + "4236808.fls.doubleclick.net", + "4360661.fls.doubleclick.net", + "4488352.fls.doubleclick.net", + "4514783.fls.doubleclick.net", + "4684100.fls.doubleclick.net", + "5362399.fls.doubleclick.net", + "ad-ace.doubleclick.net", + "ad-apac.doubleclick.net", + "ad-emea.doubleclick.net", + "ad-g.doubleclick.net", + "ad-yt-bfp.doubleclick.net", + "ad.3au.doubleclick.net", + "ad.ae.doubleclick.net", + "ad.ar.doubleclick.net", + "ad.at.doubleclick.net", + "ad.au.doubleclick.net", + "ad.be.doubleclick.net", + "ad.bg.doubleclick.net", + "ad.br.doubleclick.net", + "ad.ca.doubleclick.net", + "ad.ch.doubleclick.net", + "ad.cl.doubleclick.net", + "ad.cn.doubleclick.net", + "ad.de.doubleclick.net", + "ad.dk.doubleclick.net", + "ad.doubleclick.net", + "ad.es.doubleclick.net", + "ad.fi.doubleclick.net", + "ad.fr.doubleclick.net", + "ad.gr.doubleclick.net", + "ad.hk.doubleclick.net", + "ad.hr.doubleclick.net", + "ad.hu.doubleclick.net", + "ad.ie.doubleclick.net", + "ad.in.doubleclick.net", + "ad.it.doubleclick.net", + "ad.jp.doubleclick.net", + "ad.kr.doubleclick.net", + "ad.mo.doubleclick.net", + "ad.my.doubleclick.net", + "ad.n2434.doubleclick.net", + "ad.nl.doubleclick.net", + "ad.no.doubleclick.net", + "ad.nz.doubleclick.net", + "ad.pl.doubleclick.net", + "ad.pt.doubleclick.net", + "ad.ro.doubleclick.net", + "ad.rs.doubleclick.net", + "ad.ru.doubleclick.net", + "ad.se.doubleclick.net", + "ad.sg.doubleclick.net", + "ad.si.doubleclick.net", + "ad.terra.doubleclick.net", + "ad.th.doubleclick.net", + "ad.tw.doubleclick.net", + "ad.uk.doubleclick.net", + "ad.us.doubleclick.net", + "ad.ve.doubleclick.net", + "ad.za.doubleclick.net", + "ad2.doubleclick.net", + "adclick.g.doublecklick.net", + "adclick.g.doubleclick.net", + "adeventtracker.spotify.com", + "adnxs.com", + "ads-fa.spotify.com", + "ads.cc-dt.com", + "ads.pubmatic.com", + "ads.yahoo.com", + "adservices.google.com", + "adwords.google.lloymlincs.com", + "affiliate.2mdn.net", + "affiliate.googleusercontent.com", + "agkn.com", + "aktrack.pubmatic.com", + "amn.doubleclick.net", + "analytic-google.com", + "analytics-api-samples.googlecode.com", + "analytics.google.com", + "analytics.spotify.com", + "anon.doubleclick.speedera.net", + "aud.pubmatic.com", + "audio-ec.spotify.com", + "audio-fa.spotify.com", + "audio-sp-ash.spotify.com", + "audio-sp-tyo.spotify.com", + "audio-sp.spotify.com", + "audio2.spotify.com", + "b.scorecardresearch.com", + "bid.g.doubleclick.net", + "bid.pubmatic.com", + "bounceexchange.com", + "bs.serving-sys.com", + "buttons.googlesyndication.com", + "cc-dt.com", + "clickserve.cc-dt.com", + "clientmetrics-pa.googleapis.com", + "cloudfront.net", + "cm.g.doubleclick.net", + "content.bitsontherun.com", + "core.insightexpressai.com", + "crashdump.spotify.com", + "creative.cc-dt.com", + "creatives.doubleclick.net", + "d2gi7ultltnc2u.cloudfront.net", + "d3rt1990lpmkn.cloudfront.net", + "desktop.spotify.com", + "dfp.doubleclick.net", + "domains.googlesyndication.com", + "doubleclick.com", + "doubleclick.de", + "doubleclick.ne.jp", + "doubleclick.net", + "dp.g.doubleclick.net", + "ds.serving-sys.com", + "ebaycn.doubleclick.net", + "ebaytw.doubleclick.net", + "exnjadgda1.doubleclick.net", + "exnjadgda2.doubleclick.net", + "exnjadgds1.doubleclick.net", + "exnjmdgda1.doubleclick.net", + "exnjmdgds1.doubleclick.net", + "fastclick.net", + "feedads.g.doubleclick.net", + "feedads.googleadservices.com", + "fgoogle.com", + "fls.au.doubleclick.net", + "fls.doubleclick.net", + "fls.uk.doubleclick.net", + "gads.pubmatic.com", + "gan.doubleclick.net", + "gcdn.2mdn.net", + "gd1.doubleclick.net", + "gd10.doubleclick.net", + "gd11.doubleclick.net", + "gd12.doubleclick.net", + "gd13.doubleclick.net", + "gd14.doubleclick.net", + "gd15.doubleclick.net", + "gd16.doubleclick.net", + "gd17.doubleclick.net", + "gd18.doubleclick.net", + "gd19.doubleclick.net", + "gd2.doubleclick.net", + "gd20.doubleclick.net", + "gd21.doubleclick.net", + "gd22.doubleclick.net", + "gd23.doubleclick.net", + "gd24.doubleclick.net", + "gd25.doubleclick.net", + "gd26.doubleclick.net", + "gd27.doubleclick.net", + "gd28.doubleclick.net", + "gd29.doubleclick.net", + "gd3.doubleclick.net", + "gd30.doubleclick.net", + "gd31.doubleclick.net", + "gd4.doubleclick.net", + "gd5.doubleclick.net", + "gd7.doubleclick.net", + "gd8.doubleclick.net", + "gd9.doubleclick.net", + "google-analytics.com", + "googleads.g.doubleclick.net", + "googleads2.g.doubleclick.net", + "googleads4.g.doubleclick.net", + "googleadservices.com", + "googlepositions.com", + "googlesyndication.com", + "googletagservices.com", + "gtssl2-ocsp.geotrust.com", + "gvt1.com", + "haso.pubmatic.com", + "heads-fab.spotify.com", + "image2.pubmatic.com", + "ir.doubleclick.net", + "iv.doubleclick.net", + "js.moatads.com", + "ln.doubleclick.net", + "log.spotify.com", + "m.2mdn.net", + "m.de.2mdn.net", + "m.doubleclick.net", + "m.fr.2mdn.net", + "m.uk.2mdn.net", + "m1.2mdn.net", + "m1.ae.2mdn.net", + "m1.au.2mdn.net", + "m1.be.2mdn.net", + "m1.br.2mdn.net", + "m1.ca.2mdn.net", + "m1.cn.2mdn.net", + "m1.de.2mdn.net", + "m1.dk.2mdn.net", + "m1.doubleclick.net", + "m1.emea.2mdn.net", + "m1.emea.2mdn.net.edgesuite.net", + "m1.es.2mdn.net", + "m1.fi.2mdn.net", + "m1.fr.2mdn.net", + "m1.it.2mdn.net", + "m1.jp.2mdn.net", + "m1.nl.2mdn.net", + "m1.no.2mdn.net", + "m1.nz.2mdn.net", + "m1.pl.2mdn.net", + "m1.se.2mdn.net", + "m1.sg.2mdn.net", + "m1.uk.2mdn.net", + "m1.ve.2mdn.net", + "m1.za.2mdn.net", + "m2.ae.2mdn.net", + "m2.au.2mdn.net", + "m2.be.2mdn.net", + "m2.br.2mdn.net", + "m2.ca.2mdn.net", + "m2.cn.2mdn.net", + "m2.cn.doubleclick.net", + "m2.de.2mdn.net", + "m2.dk.2mdn.net", + "m2.doubleclick.net", + "m2.es.2mdn.net", + "m2.fi.2mdn.net", + "m2.fr.2mdn.net", + "m2.it.2mdn.net", + "m2.jp.2mdn.net", + "m2.nl.2mdn.net", + "m2.no.2mdn.net", + "m2.nz.2mdn.net", + "m2.pl.2mdn.net", + "m2.se.2mdn.net", + "m2.sg.2mdn.net", + "m2.uk.2mdn.net", + "m2.ve.2mdn.net", + "m2.za.2mdn.net", + "m3.2mdn.net", + "m3.ae.2mdn.net", + "m3.au.2mdn.net", + "m3.be.2mdn.net", + "m3.br.2mdn.net", + "m3.ca.2mdn.net", + "m3.cn.2mdn.net", + "m3.de.2mdn.net", + "m3.dk.2mdn.net", + "m3.doubleclick.net", + "m3.es.2mdn.net", + "m3.fi.2mdn.net", + "m3.fr.2mdn.net", + "m3.it.2mdn.net", + "m3.jp.2mdn.net", + "m3.nl.2mdn.net", + "m3.no.2mdn.net", + "m3.nz.2mdn.net", + "m3.pl.2mdn.net", + "m3.se.2mdn.net", + "m3.sg.2mdn.net", + "m3.uk.2mdn.net", + "m3.ve.2mdn.net", + "m3.za.2mdn.net", + "m4.ae.2mdn.net", + "m4.afs.googleadservices.com", + "m4.au.2mdn.net", + "m4.be.2mdn.net", + "m4.br.2mdn.net", + "m4.ca.2mdn.net", + "m4.cn.2mdn.net", + "m4.de.2mdn.net", + "m4.dk.2mdn.net", + "m4.doubleclick.net", + "m4.es.2mdn.net", + "m4.fi.2mdn.net", + "m4.fr.2mdn.net", + "m4.it.2mdn.net", + "m4.jp.2mdn.net", + "m4.nl.2mdn.net", + "m4.no.2mdn.net", + "m4.nz.2mdn.net", + "m4.pl.2mdn.net", + "m4.se.2mdn.net", + "m4.sg.2mdn.net", + "m4.uk.2mdn.net", + "m4.ve.2mdn.net", + "m4.za.2mdn.net", + "m5.ae.2mdn.net", + "m5.au.2mdn.net", + "m5.be.2mdn.net", + "m5.br.2mdn.net", + "m5.ca.2mdn.net", + "m5.cn.2mdn.net", + "m5.de.2mdn.net", + "m5.dk.2mdn.net", + "m5.doubleclick.net", + "m5.es.2mdn.net", + "m5.fi.2mdn.net", + "m5.fr.2mdn.net", + "m5.it.2mdn.net", + "m5.jp.2mdn.net", + "m5.nl.2mdn.net", + "m5.no.2mdn.net", + "m5.nz.2mdn.net", + "m5.pl.2mdn.net", + "m5.se.2mdn.net", + "m5.sg.2mdn.net", + "m5.uk.2mdn.net", + "m5.ve.2mdn.net", + "m5.za.2mdn.net", + "m6.ae.2mdn.net", + "m6.au.2mdn.net", + "m6.be.2mdn.net", + "m6.br.2mdn.net", + "m6.ca.2mdn.net", + "m6.cn.2mdn.net", + "m6.de.2mdn.net", + "m6.dk.2mdn.net", + "m6.doubleclick.net", + "m6.es.2mdn.net", + "m6.fi.2mdn.net", + "m6.fr.2mdn.net", + "m6.it.2mdn.net", + "m6.jp.2mdn.net", + "m6.nl.2mdn.net", + "m6.no.2mdn.net", + "m6.nz.2mdn.net", + "m6.pl.2mdn.net", + "m6.se.2mdn.net", + "m6.sg.2mdn.net", + "m6.uk.2mdn.net", + "m6.ve.2mdn.net", + "m6.za.2mdn.net", + "m7.ae.2mdn.net", + "m7.au.2mdn.net", + "m7.be.2mdn.net", + "m7.br.2mdn.net", + "m7.ca.2mdn.net", + "m7.cn.2mdn.net", + "m7.de.2mdn.net", + "m7.dk.2mdn.net", + "m7.doubleclick.net", + "m7.es.2mdn.net", + "m7.fi.2mdn.net", + "m7.fr.2mdn.net", + "m7.it.2mdn.net", + "m7.jp.2mdn.net", + "m7.nl.2mdn.net", + "m7.no.2mdn.net", + "m7.nz.2mdn.net", + "m7.pl.2mdn.net", + "m7.se.2mdn.net", + "m7.sg.2mdn.net", + "m7.uk.2mdn.net", + "m7.ve.2mdn.net", + "m7.za.2mdn.net", + "m8.ae.2mdn.net", + "m8.au.2mdn.net", + "m8.be.2mdn.net", + "m8.br.2mdn.net", + "m8.ca.2mdn.net", + "m8.cn.2mdn.net", + "m8.de.2mdn.net", + "m8.dk.2mdn.net", + "m8.doubleclick.net", + "m8.es.2mdn.net", + "m8.fi.2mdn.net", + "m8.fr.2mdn.net", + "m8.it.2mdn.net", + "m8.jp.2mdn.net", + "m8.nl.2mdn.net", + "m8.no.2mdn.net", + "m8.nz.2mdn.net", + "m8.pl.2mdn.net", + "m8.se.2mdn.net", + "m8.sg.2mdn.net", + "m8.uk.2mdn.net", + "m8.ve.2mdn.net", + "m8.za.2mdn.net", + "m9.ae.2mdn.net", + "m9.au.2mdn.net", + "m9.be.2mdn.net", + "m9.br.2mdn.net", + "m9.ca.2mdn.net", + "m9.cn.2mdn.net", + "m9.de.2mdn.net", + "m9.dk.2mdn.net", + "m9.doubleclick.net", + "m9.es.2mdn.net", + "m9.fi.2mdn.net", + "m9.fr.2mdn.net", + "m9.it.2mdn.net", + "m9.jp.2mdn.net", + "m9.nl.2mdn.net", + "m9.no.2mdn.net", + "m9.nz.2mdn.net", + "m9.pl.2mdn.net", + "m9.se.2mdn.net", + "m9.sg.2mdn.net", + "m9.uk.2mdn.net", + "m9.ve.2mdn.net", + "m9.za.2mdn.net", + "marketing.doubleclickindustries.com", + "media-match.com", + "mimageads.googleadservices.com", + "mimageads1.googleadservices.com", + "mimageads2.googleadservices.com", + "mimageads3.googleadservices.com", + "mimageads4.googleadservices.com", + "mimageads5.googleadservices.com", + "mimageads6.googleadservices.com", + "mimageads7.googleadservices.com", + "mimageads8.googleadservices.com", + "mimageads9.googleadservices.com", + "motifcdn.doubleclick.net", + "motifcdn2.doubleclick.net", + "mpartner.googleadservices.com", + "n3302ad.doubleclick.net", + "n3349ad.doubleclick.net", + "n4052ad.doubleclick.net", + "n4061ad.doubleclick.net", + "n4061ad.hk.doubleclick.net", + "n4403ad.doubleclick.net", + "n479ad.doubleclick.net", + "omaze.com", + "open.spotify.com", + "optimize.doubleclick.net", + "pagead-googlehosted.l.google.com", + "pagead.googlesyndication.com", + "pagead.l.doubleclick.net", + "pagead.l.google.com", + "pagead1.googlesyndication.com", + "pagead2.googleadservices.com", + "pagead2.googlesyndication.com", + "pagead3.googlesyndication.com", + "pagead46.l.doubleclick.net", + "partner.googleadservices.com", + "partnerad.l.doubleclick.net", + "partnerad.l.google.com", + "paypalssl.doubleclick.net", + "pubads.g.doubleclick.net", + "pubmatic.com", + "ravenjs.com", + "rd.intl.doubleclick.net", + "redirector.gvt1.com", + "rlcdn.com", + "rmcdn.2mdn.net", + "rmcdn.f.2mdn.net", + "router.googlecom.biz", + "s0.2mdn.net", + "s1.2mdn.net", + "s2.video.doubleclick.net", + "securepubads.g.doubleclick.net", + "showads.pubmatic.com", + "showads1000.pubmatic.com", + "showadsak.pubmatic.com", + "so.2mdn.net", + //"spclient.wg.spotify.com", + "ssl.google-analytics.com", + "static.2mdn.net", + "static.doubleclick.net", + "stats.g.doubleclick.net", + "survey.g.doubleclick.net", + "tpc.googlesyndication.com", + "track.pubmatic.com", + "twx.2mdn.net", + "twx.doubleclick.net", + "uunyadgda1.doubleclick.net", + "uunyadgds1.doubleclick.net", + "v.jwpcdn.com", + "video-ad-stats.googlesyndication.com", + "video-stats.video.google.com", + "weblb-wg.gslb.spotify.com", + "wintricksbanner.googlepages.com", + "www-google-analytics.l.google.com", + "www-google.nl", + "www.adwords.google.lloymlincs.com", + "www.analytic-google.com", + "www.doubleclick.com", + "www.doubleclick.net", + "www.doubleclickbygoogle.com", + "www.google-analytics.com", + "www.google-docs.info", + "www.google-docs.org", + "www.google-tour.com", + "www.google.ienet.pl", + "www.google.xweb24.pl", + "www.googleadservices.com", + "www.googleapps-espana.com", + "www.googleapps-jobs.com", + "www.googleapps-spain.com", + "www.googlechrome2013.com", + "www.googletagmanager.com", + "www.googletagservices.com", + "www.googlew.com", + "www.googlewordpad.info", + "www.partner.googleadservices.com", + "www.www-google.nl", + "www.wwwgoogles.com", + "www2.doubleclick.com", + "www3.doubleclick.com", + "www3.doubleclick.net", + "video-ad-stats.googlesyndication.com", + "weblb-wg.dual-gslb.spotify.com", + "weblb-wg.gslb.spotify.com", + "ds.serving-sys.com", + "bs.serving-sys.com" + */ \ No newline at end of file diff --git a/src/stdafx.h b/src/stdafx.h index 600db143..2adc2cae 100644 --- a/src/stdafx.h +++ b/src/stdafx.h @@ -13,11 +13,13 @@ // TODO: reference additional headers your program requires here +#include "../mhook/mhook-lib/mhook.h" +#include "hosts.h" +#include #include #include #include -#include -#include -#include "HookApi.h" + +#pragma comment(lib, "Ws2_32.lib") #pragma comment(lib, "Psapi.lib") -#pragma comment(lib, "ws2_32.lib") +#pragma comment(lib, "Version.lib") \ No newline at end of file