From b57d51a5d1ca443bb5f766b88abe867efa122268 Mon Sep 17 00:00:00 2001 From: hasherezade Date: Sat, 31 Aug 2024 19:11:02 +0000 Subject: [PATCH] deploy: 01690db6300bba7bcdeedbdd3932bf413dcf4f6b --- classpesieve_1_1_process_scanner.html | 2 +- ...ef0c51dd3e22c63fda5473f5b329d42_cgraph.map | 2 +- ...ef0c51dd3e22c63fda5473f5b329d42_cgraph.md5 | 2 +- ...ef0c51dd3e22c63fda5473f5b329d42_cgraph.png | Bin 130766 -> 130831 bytes classpesieve_1_1_thread_scanner.html | 2 +- doxygen_crawl.html | 11 +- functions.html | 2 +- functions_func.html | 2 +- namespacemembers_func.html | 4 +- namespacemembers_q.html | 4 +- namespacepesieve_1_1util.html | 64 +++-- ...1293a81c72270b974c5ae271842ef30_cgraph.map | 7 - ...1293a81c72270b974c5ae271842ef30_cgraph.md5 | 1 - ...1293a81c72270b974c5ae271842ef30_cgraph.png | Bin 9018 -> 0 bytes ...41d532faf993963835fce715ccbeffa_cgraph.map | 9 + ...41d532faf993963835fce715ccbeffa_cgraph.md5 | 1 + ...41d532faf993963835fce715ccbeffa_cgraph.png | Bin 0 -> 11391 bytes scanner_8cpp_source.html | 10 +- search/all_0.js | 2 +- search/all_10.js | 4 +- search/functions_0.js | 2 +- search/functions_f.js | 4 +- ...eve_1_1util_1_1__thread__info-members.html | 13 +- structpesieve_1_1util_1_1__thread__info.html | 43 +-- thread__scanner_8cpp_source.html | 199 ++++++------- thread__scanner_8h_source.html | 2 +- threads__util_8cpp.html | 4 +- threads__util_8cpp_source.html | 269 +++++++++--------- threads__util_8h.html | 4 +- threads__util_8h_source.html | 68 ++--- 30 files changed, 352 insertions(+), 385 deletions(-) delete mode 100644 namespacepesieve_1_1util_a21293a81c72270b974c5ae271842ef30_cgraph.map delete mode 100644 namespacepesieve_1_1util_a21293a81c72270b974c5ae271842ef30_cgraph.md5 delete mode 100644 namespacepesieve_1_1util_a21293a81c72270b974c5ae271842ef30_cgraph.png create mode 100644 namespacepesieve_1_1util_a741d532faf993963835fce715ccbeffa_cgraph.map create mode 100644 namespacepesieve_1_1util_a741d532faf993963835fce715ccbeffa_cgraph.md5 create mode 100644 namespacepesieve_1_1util_a741d532faf993963835fce715ccbeffa_cgraph.png diff --git a/classpesieve_1_1_process_scanner.html b/classpesieve_1_1_process_scanner.html index b11b09fc0..127d5c04d 100644 --- a/classpesieve_1_1_process_scanner.html +++ b/classpesieve_1_1_process_scanner.html @@ -926,7 +926,7 @@

- + diff --git a/classpesieve_1_1_process_scanner_a2ef0c51dd3e22c63fda5473f5b329d42_cgraph.map b/classpesieve_1_1_process_scanner_a2ef0c51dd3e22c63fda5473f5b329d42_cgraph.map index f60bb8bb2..6d0dcbaee 100644 --- a/classpesieve_1_1_process_scanner_a2ef0c51dd3e22c63fda5473f5b329d42_cgraph.map +++ b/classpesieve_1_1_process_scanner_a2ef0c51dd3e22c63fda5473f5b329d42_cgraph.map @@ -14,7 +14,7 @@ - + diff --git a/classpesieve_1_1_process_scanner_a2ef0c51dd3e22c63fda5473f5b329d42_cgraph.md5 b/classpesieve_1_1_process_scanner_a2ef0c51dd3e22c63fda5473f5b329d42_cgraph.md5 index 6ef4af325..58e880549 100644 --- a/classpesieve_1_1_process_scanner_a2ef0c51dd3e22c63fda5473f5b329d42_cgraph.md5 +++ b/classpesieve_1_1_process_scanner_a2ef0c51dd3e22c63fda5473f5b329d42_cgraph.md5 @@ -1 +1 @@ -e2f0b06bb4c381b3f3f5112e69cd8c98 \ No newline at end of file +468731a29af661c9c046bdcbe7ec4fd5 \ No newline at end of file diff --git a/classpesieve_1_1_process_scanner_a2ef0c51dd3e22c63fda5473f5b329d42_cgraph.png b/classpesieve_1_1_process_scanner_a2ef0c51dd3e22c63fda5473f5b329d42_cgraph.png index c328dd43e55ebc8c4fa181c2dfd656f2cafbea96..445f52a53553fa485b772629d5a901d7e65c8b1b 100644 GIT binary patch delta 19729 zcmZtu2RPR4{|1iVQm7PCR~1jM48!@knFvq>@9oG>`k`# zz249F^Zy^m?>K%PN6%BZ-{ZPo<9waxdDZ@pFyxrfuK*9pL)xcJ%627#tA3D^ojq&K z_O0@Jp$&UsL8I~6>)dIX(JbFrvwLTX%0^%6f2SPX4h`hc4BsgVS9<*BOJ?TIjbMxN1o` zUY1x(@@b^%J}f?u2>sic6}@2KecAM)r)U!P`-G>s$PGF3t~dX^ZnQZZ!&$sb@vJPPc)P??om0+8Or3ya~}N#^+h)dyD$Q#fVZDH zqYWlhjI_Ca^$$6yrVY#e5yB1%Ti)#aO*MpZ$9FRfqtc>g<9sWs?ak~TD;~+Rd)4Uc z(_1W`-wq~POhz=D3{|V2Nf40tWbl4AnH#{cm7BUX@~t8C>vx%tgas2EiE1W|q(zSSh8yi1 z=Hc%)bLwi}>9792R+@_nTCpR~*4JT?jqYOB-;&K58~sGW+mA8~dcrw`xotYn;PpPM zA{8{$X3r6xAx_|6Wa9q47qiy_-Nv==|SHpUpS5q^K z@n5gCZJ)DLxN8sAMkHp=Z)z zG?76jTKDQ>p%D9b?2BI$(xu%kq~@Q}@7}3q$oP@q>y?{pEYcb3Q@^f%--31i<|hR` zy*-O5%{-QO*PV|``-rYR>#C;4x8W9?e-my}sB+< z!;;n?3ND|QJoS9?Nvi*`r+_N^BcV64OfHu#O(yPr`dXb>O@q(*&gkhxi0zGU?&CLH zIe){g!y!m8Vt56LM1nSA@pH1Z@Js&~iOYYG%ar0FBKc-~(&DI@!kyy$dXnW?$%;1= zW-S#0kpMVYZNz$y_!6A`ooa(%RSHw@Z{fHNh(m4E@+XQbyafdE% zwC9Bi^Y`nSBOW$O{gNa%K#&+}DI5H2yag0LDfjSe&IM@J=U@r%U^x&=eAO!oxd^P| zKDCDsb)F4!fBblea${p-GNIk+wqEkM zKHtmhOx`|YO;NX{+Nf>5EZ0A5DGZyaHLP9t{lF)dS{#%1%ldBU~`-SoHQ%e@FQ!jYkyC(Yv0FOTS3V@JTS#+Iwf&R`Lhyj0{~p34G3NhA1oO{jJ5a ze{f5Pj6Cl%e|qSY4B3t$Uv@j*xXM{RFY$QIv|%+eRlbKexZDuV` zJssOG9xu7h#{J(KheVR=n9y^}@dP(9Ax8ln_Vg2j5Myz+Wf{JkOUt2e<&NGHua z5kDRmk=JPo{HGLb<9aPO@)goz<*s^s?|e(bE3Xwxd?he{$kgC|PW0r0l0w=qlL=#X zX17)5IeQWcj0qJD>D@c&%AVIx$BynNK4jnhFUKk9E}ypx>J*hiEdN*4*UeuFjVrHN zs(6T|V>v9K?i9ZWFuZ-8Lw@nidqd^$nzM}NuTyWcC!c%8MD0@Jc#|2A0*~g@Rc56k*dGL%f2@{e9e1`?lQ5R-+^B@(bc+~W?@|ZH~+em1#1;gxbotV6~5}IV2aD^ z8JkO*x4aR14 zZH~jQc&D^Ev|4bHR7So%##RE!Ng|62+6rmN^ERTyI~Ve~o{w4yn>^d1I_4X%ie3E8nv$;#E#$<2y|X#i{L$au^y)V(f(=P zk;}RC^NaIcXOurM$&9%R)4GbqON~eXp+Eca zkuVsk9k8;ddAT1dH3SN-7&8a&+SFre-|rxIxQ<`JK#uuX(qG9nKGbXntetD87fg< z+)2J5<~pnZh4Hi})8AZH-o9?!rh=vA4bDede;km*t42mf6b;L?!| zrfu?CtBjh?HSpQi)c4u$<%}Ffdav{IhrPXJr^^fbEZm zb%$uQ@}dHJGE}01XQ}o!>i%uU6TA~5Hlbp33t~87vC(2r+TYdDSa^=k^hZ3ATsqGKVJQeh!@{VA9T^&euQ3Y?4`|LV_NI&Y925-m z(Foc$zM}V?A3|1-_P5Zr<+mH^S@Fe~HHUvzispO7Ri57R<_ag3n8&SpDvn24ao4BO zzrw|?-EsT#L5^+`mU&k4WS@kQk9ovJy3sU== zGgjk2D%0@>;K7RQhU=@J;ahcmJ?nG0W7ZZUfY|4kIv0*a_3tjECYo3K;c296y`vNN z>`Yaq7j<7%@+Y`J#cxUKwY%E3;rb9=8|?Rofq6~0(v{=-SYH2iiEOE>t!;$Gzh0~m zeuHuC$6?me2JC!YON%1>k4;}+KhLD$Vt-ljxbKrPw-pXHl{nJ7k=%M5OiYjx$mVvx z!P`-LO0o}djh5yJPP6eJK7)~rOxP-4pJ)l6vcN#^{h26ivArJI2io28zB1Z7Zc6B_ z$k|j}GRr@1O!-ne2L=*f6;z@_j-HZ{;Z{rMO!w9&MdD?P=S+83N3j{&y!%@nl6u2c zdsA`lk14*x58$1WMXkfD?^2s$jO~=Zt;Eh zhFr@TpY2FoTPS{6hPO4>5oJ{K@?Ydux{pogJ+1IlDW_v!t097ET=#V~zQn~`GXAmd zl5+KTit^QdCs_6yn%^&P&9)^y_`oD~yf>ZY+SJtaH6_KV;hOs`^HwU)on`s$#a?*u z3;u*8^(~xBerivOY@3RR{Q?7tAVeGd@bEth*id}<@S${Q?eS8c^PCFiaiMj@iZ8st z)0|<#*nGE|TeK!7* zaU_aqL~)y6Z3gX&op+XXIR5CRn_w^u7H)M`C zLXaH$QBewR-3PIPb_4kqBoUmC-0YU%S5XiYYF^L3mcg_l_l=F29IF1gW$i#<=-TG& z?eCkF8|Vk!iXIi&*xj9LjlQi@G+KeXE%TNl8CJ5ub}+Pf%=4{9qEF=JOiOnzV$vYi z;UTfLZ#{0<3|x%T)h-x3kK?C|Dzp>gjp4$beKRS2Rg z*VLCxZQ!|Z9o95iT~U|qUwT%LOnqbYZL#2-yTs?eg#E!&l`GRHXH{Yl7r*A0Ytn$t zHI||C`K#8|)iqG+%m&++gs8-eRvc}%pd}zfubjfc!NK?BpZjCjNx1pj#6p>^*Uh$4Wlokey};8DWU{{>&WQx6x<(r(Y<783O|Rq>C(*muZ7?1&)8 zV$O5sV`(0qlOHXg0T;{yf-O9+ZN#nD5V~hh0yy?)~1Ap%d1X ztf>B7gI&~Rz8dXDLq&G6Yo()2ZA+==qM)FTbslm{4y?GDcO6S33JndVx+Cb!uoWAzu{q6=Y)=l$@%uq6SI*EM4Gkoef6Fv-iQ3c*n#3lwt7b?w zE-Nc5oxarMM9{w{Qva!f;n=h+VOH8nPt z80)zm+KrZJ7TJ$_*5#F#WoYN#KR#H>PB*Xc9)*@?)}N)9)i7M_5Ct2${l@!I*r*6n zs-2jK9P8{r_nN_#k8)oXvJW3EcYoWx5dQbCi%ykqW!xQi?grac-I!rLA7pQmP+ngC zsknZnXJMQej!$uQS-&c7o`JK}J<~q}9!74=XIJm_yLSKW3YGV*jg+dx ztFXd_qXq`F<&~9PGa;>G{w^ZDiobsS`qO3Nd$>}(xt!loc9U6LTn}0g7d(lJT`|1( zLg#1yI8oQ;m0b6=v70Ny#Zhn_3!Q}97QsPu;zODVHIwh5l`A?qtmoMzFQtC zy{%ZkG2NgDWotCj2N$20ez={mB;q{VNJ#I^0PkEXwliRYFfnaHYfw~D3UXN+)6<8A z;YuvN`J||EIz*Ctw9GXOQmeVtdCq=bpnObJ@2h{th-a4T`v^({Z?zu>i=5~?!mHwr z_vfyQhzu5vnddisy64X#CN?7QDKfATLVL#G;s)HtK(U@Nk^SuXoEfl4I z>yo8kUxHswGWA({(>mi`&@ zH)9m^>P943#b<~s{ph80bi$B7bgC9*S~JZNNdW5rv76$?8X8{Jzq_hlY(L7mlcrxO z3ajx|A%a6Ep$fV?5fM?NCiU_0ae+;LFq2GH#XW}de>D7-ccEovX}dj&60{qdSX%Px z4T{PxhoY9Io*KNgq31p-1HCc3(OqCLKJ4u_ia^}Qa2AosTxCUtWzRPxwP7kYcb@ASSzR3duE`1Ae$vw$R!;4^MjBUXzSqC-Ia)D~_hihn>#$9m^GPAt z0!uY0#C6aN&;=Wj_cDUZ_%{u8Y!+j<=X)gA8X|qmjF_ zaX}D@ry7fhq4q-Uix#knfzIQ zdTY=G8t9QYo`xS0`8PVCv0a8CA!6z6D3oj5TIKEod3i<{6h1J^og$^6kcD~O?S;K z>mC_>wns+GE^}&e4X=FHOpi1fEX_RZHFeKQ*G#X63emJWS`HKMXM-wVX&D(_>z*4J zSZM_aRS3{C@EyR}Wdtv*h6>o%s!k*(jw?!Ae3)IaFXSFRe7{tAnT}2cAhu49Azt>6 z0}g;!OroMReozRze)xF70Ho=AjO<&$fL50jB603+x!X$C&|145HMF|c_&ZS(6NbU` zlI_rcUcY_Y^0eyHCx(6!`Y3LThW`F2cwWG@xwMFFYu0kV0TSO7#@1cw<&Hs-*};=V zZX5fMC+}g{XBV0(i>_j-3SF&##bPo!{E-DG%-y)W?!xV!wWEl5+>1zbW!K91X!HKE zYI#K7jSg!VvLZQqAzi1_vwuweX$p%I_YzdB8gQO#&-FQUOYq*5he1a=Ss}u5v`irW zjyo#{$KsnjA&0RzJL*c$?O)b~c}6t^kV}Kb4)o$)JFQQv%-h5~3B9tGd?Ejrpt1fg zuu|_YgZZnty#0)+?`y!yjL?}ZmijVv2y84zN_fwnJ?nS4HOsyGu1Ed~U6cx$2Abl4 zi=g)nmb>%7_t9Lz0614klxTy)r8gx+}3>OXMD|ct+uB~RdscBtcy8cyomEl0Mh2s+zUSrS6ei%IS>M0z(J^9 zqomMUd}+$@{XA);PS{tI`|k&VEdZWpuFL8kw*76xq)0!gqIg20q9{%3gG#>)-z{~TA-ZtEY;CO4cKk>Db;Zc_ zT5{D1M?{#2gv8x$ZhCsUC+W|KTNfP(%ON;8{kg3Gm& zDT@u+JPL{-Le(_gz$H_a)T^R+Psn~05B-r)wZJM|k&rxE$A_B}^2vF|@|nF^iu?-b zTdmMq6Gd|nrlnAv0Rki|MsZ6ca&qcv*y{&7D~d3wWqWQ9>ruZK37Huwb%sLxf5Qt8 zGqXQ%3}GYc7uxifr4UAo;Wn?}oMLvE%ky|5hRY0EN`L4=VGm3d9Wme|Y6Y!dn> z>qu-C!bkT}EV_FzkV2q+hH07WaY102>k>9wU!3CRV`&c$;jytX7!hv+N3+20mN30#Woi_4qcDLE6Z|5KeK%KUV6&&M-eqiO*s z#t+^+W?@vn-=><-4t#~!YWbQ(g2&WZ=>S-%?j$)9U}xl2RV^SNG%_DYKn&#~C%&vo zAMY9(GVoOXy#$nw_sPFq1duCMT|N4?Mf(*q$;0LR!AQJLsOu^TV)6hA@<%)u?5m(9 z|1NoI0`i}^3b7q0;SGFz^%dbh;jGw>tJF zZpGu!tpU2uK*`gIWM*c@0nq|mLBF?@T~)G_byE0tsVA)lUi9q6i}mLDW?tNRoQM7- z5}zQFd%mgF^xmrU*lySB8=)&^xSeqElg2&rojmG4e(NXGf@U5)4_ML=KGys$hde-R2smlUNQNpBOp`&{gS_}`vs_L<^a0`Q^h7U z*UlWH8rl}WRFA zWu=JM4i`!h!0`DM$|>LR@!=Z$;bE2UKid`+W#u+(>hhv*<=jCRaTH8Sq<~~*vdUMR zozBnI`2Z`Y0K1c|?Vg!ExZSt##dWC18 zO#o|WbaMO;4R08&A|!kc9097+E_p0GbvF6={0z(W>nqX1PmMEmS0;=OCLb+|>RSHs zITt__fGA%Oe7m)z&CAQ1yRTWqAx5iASQL7Pe%|z0bpMrzk7LMDu3bp~vF4%UQ2f4Q z393VhawuKQDt_j^;BtloxjgHfd7+{rN)LaHkLh_g6>*NPA7yBMdUpriD#P z@}841^%dV>1tUu>dV4GPXJZ3iyx>KSy)~Z8xz~ckk8Ur} zlU5%RZDqXX<6^AU6$$mj3f+a`&E^iA@39-eD)qu{rV5GV{)soZGua6zn-VX zYlrY2oLQ$ZE_^J0?Qj%sqP*yV;>P1a#FXMdVY2jAg{ z=-^hG$-P3g3!2zdiTGfG=VWxZRgSHcr-%gi9|vT=9nkUqj6C}m&Oux&e?Rc|@VBi8 z;mUNEqz=k2rtudi8-CTdG~$}PCcN(&w|-*^PX+S zyoKT@pTx3ZJ1cA&`SaH4vp-W}&aC2%$&?IJ9WSlVN{1`|C>;8ehN|$XTO6+9P@pO4 zyq1ANoBx2U%*VAv-kfe?ORQ*W(qJ?r%ps~`s(8bAi?Mbjk<@mqvfycyf!oTEOrk_W z`Gazser~|4GoId1bb!{kDsx%5ucSo$r08hv%M5f8DiJ3Zy)qXgK;(cU)fF{@Gc<3iNKn@5Q@b0_{xd}%R&C3C_o<4!{3H~^is)ArQ+tv}$U6S}{Xy&D zqMK;FfTV?yuDi_Drhmj0dVZaGJ{cL=Jz$9E2XdL;QkK)la`P;?PgLU-IgBSw5$%*7Ho5zIC&E2Kp&Fux;vm^|752#Q_K-Yp_=LM>%nYst* z%5L}uRBR{lmwqAEE5)hyGB6u_K~9boqK_ta;G$`>SQ4 zoSAI?X#$zxcTLlIp33K`8gz<8eB)O?$0NKw+oByLyl=nWB~DB40sYF(`n|jok)SHe z=~xbmk_MvNXUg8bpwE=2EgUi}6Ob=^fw0OrbE}PJ!CgIOA|C06Bzmoi^pnnFOd5h+ z1?u_u_&(k;It8$wg@dEn^-#;c#Zj1+OD8V?N_Kf)U48xLVtRHNodbwGsuIY4z+8eC z_ZnyVIq~yB3PdRiuuqd(b|cqWSZ*0sV~!6v^Y3g!VC~IGp2$Nz$89#Tq457bZpp;O zg&#)YFEE~Q8T^QYHV<4Iz*#mft{|XY%A4D=;uJ?gaso~5lEYf74ht5GZES4(1OXW* z{Pa0Ij|Dh=?s!Z*BSZ;xD0{WWNN(pBne!@f!uJ#u&H=Lr+4K;4 zBuH++keUED`gd(SkySZ{l#J{rhzg^T&S_3F&A-3OlLKnBg7FU~9WzLF;F=OrlwWTY{7F&{pXLVY!KBw*gC7;?^ocarZD3HbTEw-5fF$#4p+-VAk#LA ztNy*yD|drcE)kQQQ%D;gm`KKQb+INswsVr;QzP&a4Z-3V%|GB?nJ3VEPhQ33V^tK*H?L`JEF*O1)%d5V6w~r1b0C%w;CzQg`{W(p1969 zw-Jav(*`8?+SK$kGjg=?%4VF`q`py#L_B^o3AHsOP(;B3kc2UV`+3 z;FOk@hGk)~8!Fgn6e-o|%hKb79$su~^2ZHm>i>kF#MJC9s8uYtZatiun)(XxV-tX6 zS)b3*Mgtbcq1@q>EMyMoPt&8ljXY30@Js<>WjSF)94Gv2hGE8TgfYySE7iE}jSk=7 zid*iW?Plxkjt4K!T`}$buBp@4ktk^ZL;!1uVJfkU*L zJvo|_>;giPYsP)P^B%~uNN;PY0Q6ND?*<&`5MR!jm>n1{=#`fYyGU{T&Gp>G^fIjS zVb+qHF8?XavDki2?w%upApCkTd}-eN#Y{AL>Mj1M2Sr1sAFBVR-Qy~aK(@8^QP_nl zkuY061ceBQdN~l{waZ-CLAe@1PX2}8d=d#P7dGF#jf=cOa=jYA;siN9Eahev5V+z; zB6;*4xI;{|zr@k_$v=8k@$Jh{QD#yTeK#9%4>=_NK`x>)31~dI*1a6o{aF`G$3o*0 z5)zU_h7-iSZagXC0&*DT_{-OR3>RiWUTb6?RN;k##jQOpt_6p~0plk9@F8ir`}* zq0Y&*_1FEY9ttx;CZ^|VABUM{lTBSL`r7QrLe0@&PRmW%IiBr&%ZIKOmxDnyP^iX@?<~>^!L8z+1NzG<3?I7vJmtEpeWOnsu7QHZ zqmuxfp=nl#jbC}e@Fg@bW`|JHqG{6q{A zVmN7$t}Lh%_GbYcHx;SQ-(#7&i zzWoG7CQTzP)Iuc)i$ho-TwsnRrKXmLqKne_c=Mngj3X!FsAdQx5=f%KfcSHv?%8li z7S9ye4M&15`Vu-E#_?$H>1=zvBIK=3snd1zQxM%{DfOe<=Pq6}KR(*eT6nkvCDaTP zIs5{}uCFgWZ{4kzCugXm>eC@lMzX9tz=3T7gsTx}qO z+gzzJK-qJ1YGr%^)TWWG9}n#7E!ZUvP+egp(mg>I`!W@qLa$r(XN_KY#2e1>Er=K8 zg`wk?`4Z!1qb<;T003fwc^^cU@+{Li=;-j{*MN>eDvw>#be1c*|)R;Fd=Cp>gS)2|#}+jW^Fd$7|Of95t?sJxyJN zb6=PdxnRe?^J+9g_HmCiD`qmD6bJ9^c|f`TduQyXF>vWsXU?4IU53FhAp!^5H8chV zz{`3aQ21X%T`r~JPgPAc2W1ULm%84l6{y&@z@YXzhNKs2p4Ed@P z&+rMq=~tGe8>~RV(j`wYK)$;ybiop?$1E0uKj#!aK5((x!O>x1VW2bI@%8lu=G|$k z_AGoSdw{2yf=l}@7TcBZnw*Uy@UU#VCOe!^=6ch(bRgjlmC-~vY5pLJM5yT$L%-|a zdI)1eOf}!L*S+3*9RC@N4D`YEw|UxbV$^dp2|O-H7CHuk9bxkm`#tma327a@+F$(7 zT-9Fl&AOb+?pQIguhJ3ewVU}h!IflUGV>1qCa#gnIOx{l1TI*|j&D?W-%#P({%E&I zZ*OvPGOuB^pKbpklpHA5h$^B_c0hcQZN%}jFct>f7bZio1v3`{~tBy^7a=0HB*_iC)Fbo z^&d!Wk5?Q!fB9ucg|(@@zI4YU?Q)AflK8C-`_nq?Wby8m?>QeYneMQjj-{lP&=6QJ zxqF+3M^MKu??xBvHL-YA)E7hqzM!6)rjIG}lfRSf;xX5*7xd$b9@|~=F0_lMCMNXU zBQ(7Fo~6#g9-F+`fud=Joc$Y&fnLw->nAKG${)mLyjBPu%gz0Ql!s##(rl4=dii8~ zUUZ;k9H_8~>yAF=m@7$MB5#+S(1`z>>6BCSuSiD|ZMI@vDfCZU z^%tc|O}ViVK;1yD?zj-UUKMd&3{PeLmaYvV4A3Iz*W$sBF||O{Fa4@h^E)O`hixo) znix;N#?TRa+5f~W)(le~ry}Zo**X};xw$@_`1VvxEU~IZ zxn<*f#tz~5cAG>;`7|+7dV0hz|8crEIXU@OWT3{j%SBg{AYQ`hsi}kwm*5cyXY83q za>Zon1Dpiee0#4%)l1?yT2h`Nl@;5py|i1RqK{u?lqu_QMbZO*eH5AM{HG9H<=q1~ zGOE+G2;WN~l|=I)kgG%d&rT>Q_1tg#XWFNr7Ir$4RCYz2a^-~rHa z?3&+u+8(6alYuP?L|>e~(Xou=?2|Ne_stA4V?UGXfZG;#k{Ad>QrIq(nEB=?XPt80{FQFWLwAF*F`NpsL!ATfU&{=J@Md| z`h}u}DtD`Zw_=jMT2U*u!gZE-%}NU5v1jGJ+;5HV7~Wq*yuwaHDyJO+&RsmuNq{iB z+RF+i+n-SvjY&e;2(psyYPo93fA|9yg-z#q&)0Tz@1x;&l!Aa`=Um`7nJ(-E9#wk7k+F=G!E;%VuRcmsY0q`~;@io0a%zaI827|MKAropk4VCncX-|m}O z=ird`g|9Eqq!@Y(4Y&KIE02ZfatVn4mut;7sKRiHDJxdwBCUI|vTcU;PT?nSvhy?X z6yK?CgoHKMKg6SYUOe_W#a@*%0K^BHd|wR9DCutz z6S&D0DtJ_dQH>bJAzQbe6EjgHxyVJP}gBb5u6B_*x zc)g+(D<vyZEW{fJ8>}3=tGbM|w1?=gD=_rt44(*1*JgfH8x?!nrc7{)@FRJ| zjSJ6i@CG64n^Oi_v0MdImsH|epF-!IjtfUiNL$LI^>FOq=I*Y=uYj`}-yS{#{MiM< z0(j9#FyJ|o1!Dyes9b<3Oo99kB*F;Bz5@pt_<7_2NrCG5EWH)Pc2xGr3OY;9>Iia! zMN=2xPkmsZXhTLp1M@_7mT`4?RaKHz|8`>2D;^p6M0}Qd^`B${#QP;mO4P=d)##D7 z+$;gKGH}&N&}dQI5p-237}mH<++JmS9i9>}JHKV8AJ`UR=lM>?Ww-M5 zqh;MpTQWwVG61>d0yMZtFQEiW?(Awm+KWGt9Hnmz+z{&4grUiC^N+kj6n7g82M<(L zQ(6%8(Xy7nq&t6JC4zK7}TylPPrC zcNJO814Pz8{YW1t^Z&MQJ~FK+8HYH_yXg+$gaus^wGD|2S#`018^gtGByLd+zPNw1 z)uFcp0F)Kxmt63HQu9eCcrLORZ&&t!a|}*0cxI)JBQMbU!DQFquqmxk zI+`{DVQI@7wwO4TW?cBXCWb{NT{-fJol`?wYX&6#dN-$s0(&t)C1A+|*fqX82T zFpmyrB6UlyY|6s4ii7}KpPbvRlK;aaZZUXGNNBsHAZ~r#@yFiOdDMFcLMV`e4x21h zWxkZN@w&uZbO(ju?dz-~RL9)+gL+x3Fx{1W4+59WgAGO+hGUQY$UhUk)T(~jKq22K z_j#6*L{o}AS%WbN>T~!L7<^Me@xrjMu{p!&5+j5-s6_Lb3A@a{Un**WqJu(B*u{;V z9rMXwFNA3?M&5iP8$u^;iF$}>{UE^1;hjK5MtL|8L%@Au>$pALVkPMgZ>HOFxVx4L zUJ@a1Ul5aP!JdL@GBDg?bPh($+($-wYKDi03u)=-+8aMGgXa&SLup){d|RGN>?C`t zkDMkE`Eob910%`T*H|s+dp> zg4XFCp^lnD>2@<`b`F{1#qhyWE5R3@N&mTxKbyrXZbICAzZT>pX6F6$` zzP{MOAC19m74 zKBLV=fwCaP*F<}I2_4|F*w6RREOe)KT%qP!@sH9Q1TX1(xOZSxRTaNgmoz$zKcW|N zZ*YASlD_@V3uNM2DrVF=zHQ^NvE3=*kstsh{#C0mWvy6KZ9AsHBWFa`hgrP_=D&pY zbjY{~K9Ehr%W%g3|1(H))?SceFn`H`vt(05XEM)o+u9SZ39+?RFoLp1;OWZ&--XSP z1CZPqzy|AkdwY8%5MWCw{*zxPR6m(sj2)60Fx*HP4iBE4Z);3}dpZ7wwvJ#IDWVb* z+Ce?UL4SJv=FO%Ht?M;~gKkY?ywZV!Kwkb!cdpXs%XfQ|pdadlqhwf)ClD0i#)#t< z{?>x}SYbP7bZ}_w17}cR-K%goe&wM`jY<9M+flKUXPR-;TC%JPyGO0Ch2PhIs{x!C zJecq&5xa(bzWZG#pY`N;w`wb+0@@{%@+L7()lpsa3>3k0UXPiAOx}SrwM4R~4Tue7 zuQw^GKW`m~MSGRT&r~$2u^jZtH8=w)MGRR*fTDfxU zgj{P)c^^w{-Husu_!4x~FpQ8f?J$dsD&>>g^$9nzxnex%q1u8n{o7*9Q zfsJ$gXd5cKws0c`F1LZYC;kr#M45eUfaK`}>kv2se}eeY3XSMl>#$H1kAVto$sQO1 zh255^fKN__AsjXDswK%XGGRasApz3tl!1W(hsL-6JRmib7(-~M$Z0}C^*mE~Xdw0Q zTeqQT(3ao2hX|;0)YS3(%y}nGN_R8!s4eSl_o#AkYiB$zTzq3<;9!oXBYP)wh%_-i z?>$FIgn&`|IXIT#CNBAON*XnXN(Z2pBbB&Do9s%0YDJ#PTBv#`cLKfPD{xA-qexi< zlnGR1f?@Xc>(`$_1p*@Q7Nj81Myd}U5Z$|X51z3*^NA2_N-c2k`;h&5kLueKB~_sg zQw!PCqMc@_zzU`6VL&s^H9Z-QteI>qQeqg6dz6m2m6p3KIQ9Pjo;mI9->d#u4ui^_ zAsY<@%puT$Kth@-drr6x2HY-S$pCA#Li0hd4Mf~msPh%@!_eUH$&5hGuC1@ff@!BY z@@C65_mQ8l2|C~`KipYi=H?CtlMgDO>4P(#!P&_XoETsMU5BHKFDUgV)+cL31j9!n zO2Le2>#X0dhpaB^{@+r4!N63Xc(2t;6Mg@=_^ zn_Z%|oK~GI<~(o1oPbr(`?~w@M)GD40`)W-mk8Uco}xqzLJ7K>XgZRJ|0P9<;k2~0 ztok1KB6wT)B>(*-hcAF#BM#p8Hqh3nAOuW1N?pGn)b?EeNr(a>KuUF!j)ujeOJ=nSmy1_{?Vi?^%9!q64c z_yIBb0Ss3PzB+lPuVD8>k;zX!gxysv7rnR9cu>SVOg9%RNW*Z=P>M48&n zt}3w)XFN3(fXSKx_!~io0Ea6bDS2A6T#}!!&aGd8Sh|gGZaVQ&5uwX9b-nzw5SXc-iA>$Z#3zgeH2|@x_uXFzf@bTDib8Cx?l9CX`!^1@v zz#G?T$xlU3->|nQ3`%hhoKZl(o|To=*wTXU=uGkeezIa6`E?%Ukb0~IhK7gnFhC*h zL0`mF8xucy@&q)}&pA1r;V^a_JqLP3DosPhYpt(O3o7KN!ouEVVM)pH0;Pk#N{GmH zFu~qS?>&VnczhFJkU6|U%3HfM70^EbrOANK0{%5iiaU~$^nik8p|Zkbks?%7fp8*0 zox6BWTKey&jq9A!{NVgzHoy9DylHHV4x~(+A9Y*%ecZ(_LU2W=`27XRbLV3{W7=3a${Uc&gvCjEp&M|;`Fy7t!A z0xA;-`Wswa0f=l89)?!ZmzL%ofuNuuOmD@)JPZt&%*@R7^>qxUdjmdqQzA(#UFP0B zJa{#@$wN&|ff?8Cx*`oWOk-2iJ$-#Tz)SCAV{It5KrOqkr*{oBk%#*F!Hta%Q2is! ziHXUxb6|q(chENtjyU0s_3X_jH#+XQ2pJ(pMuBhMoO0Y+$pKs-?7DdQ;NTz!AQnGA zKc-|qOdDU^R@l!Ox!I4GaxU z!Li1>uCCj9b3m3E!nBm)HR5~Zz#gIS7Q)F2N-P*xf5MK6nYDuN4~Z>O`cHJh)YQ~C zIy#nE;K<3^2(F4TF?~7HSXWoK><#$3bHSx^X`70M=Dw$AnUyVE!~?8(s15~Q+ArU} z5k1bN@bU41#rO%uu+4b;?_cd8GE!1MI7ScliA!#7ZbawK-M@RcT5qncXJBC9MDta7 zt_GXoA|lS68k73)#;TQywDigU?)xn(>mq?ao!iM6$m20AZdXv9$D2^{l{ z4uBaTgTTqi-~wFzktPQwd$5k+htY@u!g$MzF@)U}emZqJBQq0J=3wfM{69M@k7%x5 zwa^Po)Ba9gUH>kSPQ`XTFc1l(_yh}wwpYj(VHlQtk2d6b`umfrs_0<|f1!~49HcFn zgJ16KxGfJAp1*nX=0Fu93Fv?%>386-U-v=!Q+@LfAkyO?JPaHGyyxV^x4g3QAwFI_ z2^Sw9zxO9h^?hjQDNKq9pc-!wpZ9=%$aPu3g5?b%5fl`v`l0>gNlkO}In+;&Htx5D zIhVc4MB~M9PFk*2x7p<68g%LynPP4VdPtw}Mn^|CwzkGC@dwUJybTVn2gl9(s3<}U z3kwZR&3lYwHQ^VK1-Yh8m+}cL%5bm~D=RBd&@hIg!EifZULInx&p&)1 zTOKW^g!F#M5%Dlh10Cv6GYq&6KF-WfPConmnGusi1+OtGane3l<*fAiA)LD~ZjM6} z!N0zcQ2K;%1KHS!of9RDxvHh56%R~y!od}P{hC~n0z62|w<=-wlhAHk_W@a69 z;WcM-lHz@A>d??*Q*(1L+4_&S1kM{w^T5I|!or+!j>iWyM>Z;n?rtE(M;MS9`1xJ3 zxe#jHDX~-rZ4;c zRp@}6Hgs(_g%o`uX=!(IVDFjWJlAXz*g(|MG^Xa}*c6hnaN5j_(2=oDCffGkl2ha&g^;AbOydNjz$04I>et60RKS{i(kf{>6<2addgC?^Lc@ef#S zBH$DSH60xV*#|&xugj70a`=1`de{r}%#=e(%ejukD6n6Z9vYlNHJ@2rjgE*!gi zd;jzMm>3!|GH3(gU|LcMl1(DMaN%`%c{%g}4QXjlFR!}ZUd=ae-k2I2qi+=+9uD)& z{QNgClgi(__bhP4wg==$ZjdtgczGG&;+x=qSbH1T2nZ5AotHwpYP$|5CTZ!fm6dvz z&%FSo{U)#x>Ll2vWZ{UM5H&S5nX0O)yrLpG89Xo?}33pSaW!}XyYmnQXk&9jPV0b3Q$P<4Yqf(_?Y#-e*@Cf(-%hC+Ae?rgNlw$ z7P^k7rzd(+;LV$Jn7i8ARB(>s4j6q#Vy8&S+Q^`ENK5l`LQ%bN;X-3`Gn8^sej4Ng zXt@4UQ^xb#o+TwEAN5Y4TAjkk%F2HFZTaxgqgP-RHi8c5e#>xwKajKJU>Lh4;3pb? z@lm$EkD&-D*(lHd?m|mT3juKsG8CrL35bw}#zrFWN>45ogE@0C512OFebJl9-(j@I>ZLFQqbBRwQz)I&M@-v zT>?i6SRbSxJ)#66-x1EW>(ntb#i*7jqv6@s47}7+03F1{#1pX&KYoI?{ux@+5A3Gq`{s)L06mqfSSctd&;v~X`=ylspZW3@ z6&HU5){FP=H-T~u&}rAVXI$EQaC?T(#l1&VXMrMrX=f)Va4*rdM>~3Zc@G^vET7<( z?c!2m4hc^$;8uc+yu57|>q4|{0!y#6#!&HX+qMBi094;}y!d}$`WoO`G$7Cw084`k zSq^X$w2A{5xQn-KD_eJY!S4lY*XFJZR#?Q^!Yc^}@3>buXUAG!%x})Q3_r!|KEd-Y!a}|wQ**{O+md0m-BMETJ_d?9WE2OJs1i}XDW)XWue76K?5cRZ3)@Chj`X=?2TL{Rplt+(-3tE#o&=} zH)!LqtBN05t9v*IW;l-$vO-zcqw_a#rmkLNy% zZZ1pZ@)#e!gOv{ctBH>a{RBI^D&#-@Kbx+HttzM;;h7%0s>Jd2 zyvVjK76EO3==jdkij|tAv8Dx$CogB)@%nm*T-GY-xBFk;%dq=JxAbCt=_n?m9d7A$ z(>!3%k(?*xbr&t`AVBvVH(QZ~veCA%pHHOir5)UnlJM|of_cVG_D%)TsPHnIdId%5Ry)&O z@zyk8}jlPphG9r5IGE;7d;iYFn?-nt}dCq@zo%UAGb5VVIp!RVz zR$e8lgZzAJTO-{Y>+>Q6MOcIl|0*d<$w?Wa8@q%p2Cue;ruEXEJF?$u9?a_aa(= z&f!8j;ep{T(~prj9h!uuBpq#o2Cx0Cxhx6E?RuHHxsLM&POkUcd7PR>WN&}!Oe@zs zxJW|SN$dRYPpO-naDd7H`KRi;>^REU&F7S`s0nj!zqxh|F_PD>K9b2g3W8m%F)41p zF(dp@(b0Q!W?gKbQA|wi*WwZlf{TBRM_P_NqwRse;;gDPjlUCNRAdj=gTXeOa`i_s`r3MjW&FlzT)+l~-!_xyVAcZu~yNy1o zykJu_cjA?uOj@?~4+sd(&$o$>iHVt<)QYUIoqcU?Z@(R*qM}m2-u)rLn%|lmt5J?L zTHkJSF!8!WJr&atkD3eFWg3bQ3JH$KA7cKh^G6w63XEb*CZf{c=)G9w}lrj3-*-&j)tb961V$xTMQ%WuZx zrW4XIFMH{P(T|Bts*UZ4XtzyK;z3jNL;&q!t{aAI@&M*3|$47=| z_eQu2umg+k9IPvu#XXfm{j zA%oXCVnIudo5)B(;*aZ{ON` z*}ltrfVXD%_|k)TAFH~{gvMeV$0Vcmi7v+Tp6nbPKj?2QuG6d}CxyeOom>KQdWn+V zZ7G=co*EVF8m5zy1?0UW>mN&qSPx5&>=;KvHvJoUh8fd@3CTHZaT}R;CdX~w+xMjm zbW+&eT`?^iBmFzGa&;R+j5SMfWj*hhjh<~rI#7`gTbtU#*LRzOi{Y4q%uI{M6Onko z>*nOVT$ORx2b+FuZ7+Vk`_p=8KtOB$T~3#!HndCQb%Z#xxXs`%uf(+|f9Uv$Rfzm_ zE~$NF?~-?3f-BrWp;HwI&8_uerN$pkVBiOR_xLqo%$P--Ew-@Tv8 zX&;H#{rdGQFka#c&K!wXJ&(>a|Hj~A{;@a{mn9DpEe^8qy1Kg+j?2H+Z>?}~YJKw? z85!Z2%9`~WtA9eAsI}HLT40m*z0sE*A;3?O&H0c_x~33c=`h(N7sC~rnVDH>ToySP z;;{Im-nx|EcBW4EVbm+@?j&;kE9sF5BTv5k4X?wG`U{CIsRPp>oO?AW}*=}(KtMs+}=-R^!>AdhLs zRrlQ$>4y(5WUJ@eM~gcCCSj5dyK(DQ;A~^S&bUpj@c!<`bV`z_OGS?HP>xmzow$fz zbfIzUc0C@wiTnDn0g?p&o`CcKl@4~@9n|2jj?T*qnzUZ>C6@Ro8%{?^B@hTZBeI_)=JuiX zWX`SaULl4o(;H3y87e;g`b=1p+zcdh9azqr;TwnJF$zH0;(-e^*B%pfL94>Ig}k9vHtN zrYEZF{q!JC;*|(oG}U^t0{ui3y9Og;k>zlhpWnIjL^N&7{h1dpT(BJ~_d0R!PLbUB z76$9L)qXSOPIx6^zkt6{y-ycPb=zKx=%Y#dhe!^sZFFh0zMEb0#UpN^cyPGA&~K^> zf5gEfN_%y*C${s0zv^hc@)+Kcfrsba-rD%iz!T-I35TBYs<1e{hRq$ zc6L5njhA#2J?lvpA1$^dM=xR6_~!3&f50Vb!LlF7V#k{O^u$!(XIcJdbr?2{Jca%B z$>qsPAzD%AG5 zg(n^5nOEtryAzSVCuNdpD==)7lA2GC(f^?GS;o|vQcphu7VFWc`~LF-Sx>s>4BQs3 z6^_3AWqW6SE?hGDyLpeu{veWXU|{wm_Wg4~4eRb#4j%CA?2L?ASy{j4=9r-4GBU#F z(;Sz7elu!*Tj@n>Edb$vk$^zw_xirHJ_#9FiET$Dt5!{koM`~Wpq#7gK~hfV7yFSw zQYJ5*D%ZkFL|{N%6aEK6{8#A@gS8`HrEjTMc{uAlXa(<$X@4kkD6OO?KQ>#;X%m+(IGjT`SGBby!&i#L_o&He8CjQ8}b+NY=4>V$M+ z6vW|wugI*86f!l6VE*m?X@xwY;CY6D^@gwAkY89Y;@sNW!W3EbF*e%6wmVwK+){bX zZ{BU*H0W*7TY>^g+<{RtVg1V(_08cGs}|ka(#0j zY}{L_X@NV1yl;$}^SEjqx$}J?XVSONug$PJbqOG+hM~>G1S$S44||L5ejfv@JXG$m zlsNwU`E%VW*Z1E{J5}Q%hjlTS>zGGU_Yk$OYOEOwaUa$-gBMnk#`3GS@sXqP>A>LN zxdfXU^bJ?1Yg4utIz_{G_x7B%WYIGHC%5#D*YO=*US2d0wAfrSt;(kiS#`^7-zrcpg0&4NVB8X7CsD&Y z7e*_3$9YvVFHuPHr_E+$MSa6m3tiRSf7f;v90Ev;iysC2#(b}zEMHe!{+XVoTh8ZC zK)(13X%6PlE(%mlm*e%=dwKp6l^;A?YdAf+LJDzw{vVj-FVoN{Kz041^7%YGwByE9 z68tVbyA&RSa>!1v*6W1g_KT}$CmYCjT`n;(8t=2y{o3Uc{uiCqo;d22&Q|(fho+vd z{)-wuu{>BDO8qOu#KdMj$z9$E77m4|Gsn^XM&^@DrN3+AF`Y5oPqI{*zdp^D3A)UD zOTX&Q+F0?N!P!6ZT%FSHt%*F7h21BI@_&YMH_Ex|lvR`uWdtheaw zY>>Bx(J~1NMsLmKE14wgP})f3tFB;?R^7#aGhz}n$b$H_$Qiqsl_Lp{)c00LnKG4< zK6E7r$=lo8SDduBw?mqcL7>#8uh#qGEo7#6eV9hh#3y(D4Clw}EcKXYg%OZ*wXFe>B4Y~yq*o79I2dC(fW0lKSt|WyI z=NoWCQIL-j{XERgFVZeIG`W0(9UdtLioXFPBO?HThYbx4CP#Z~-6ybNd`3+dmdA>- zrKF@Ds;Yi)m=2-jPc!dH{s~RAd<#j0^^Spz>@%fhWo7+YXe>Kg;gr2o1{FsR%F=we z0n4e#tvcsY&$JqU93i_F; zOdsPkJ&_SI=2bfEetLYk-6u=m4!2@>@P?3-^gX)Vu83=yI{+YSw@i$Eua;W$xZ9 z2P)?hZmZKdxnzhwtw0=~QwhEdjET{xSgNk7vgrMY18^hhFLLry?*@~6U%FS9%|I52LVLq&Yj~i`$4hzBMwJbFTxI%34>4$ z%`Ptom6i%Yw{$X#6SAQr3-*UzUoKXfnR)XXyLwZ9KmX(&+;*heqx8E3sp0O*AWV2X zZrdgp7Ug7xg^s9x(<&7ir)k%!?2_rVVhQ{C3;mhO=G*h_=o>Bl2XAZXJy8l7Aw!XPU{YAf8 zq(^+82HxM1=t>#yTqxgHQ8u=>wWquJj=y_-V6%7uE~@A2hX$Jb7iZyr$rRK13JOXe zT{K{~^t8`dpc1nFu{!!aX{pRklxbK}^UKq0 zGJpJQ9h+qxNEExdwu}0>mnfy)A84u$D+8>67y@Eq$f4#i3kXCCO}XND!?HXnw>O15 zJy27-%D}+T{m78&_KPNnYkNIAH37mq~)}`xX@N zU|{2AA>!Olc85o+-1x;k_U1>;QxM#bK(Cb2x-5MSgA67E$a42C#=JYx5J0k&jEtFf z_w@AiVSQ`pIOW#fUIsMEt88kw`iZIezaDi7O`EI?WI+MD=FKSm_6`zL(GfqmvuFxa zW`}5=UDc+dBiMjj2PPDz?^Ynb1gH&d$n zuv+{%pP`^@=Bk&x9DNO`ghx!526I_lwB^J|u1kS=`C4g2UvVDve00oNABRNR(XJbm zWc)LTWVb?J8ZCD)uV|;D60o@I=qNDrucEx;6}Oe@VQZ-TxoaGn?_iqw4(Uupa|iu> z3UVrpAqwz?rsHsYVAm2(-vekn7KX4~?c!8;l7qv;^lTwsUg#+&|8_q^?w~Xll!?AP zJyEu&Un8HFzrDu3_%o_}1!?dnpb@seF=_t@=DSW+YWj1qcx+etE906r7cN_rUNI(D z*D+3iRa85=ysj&kb-dJKdM{6sOFf4I+VtO*L3TY^oVuQ#@XO3{1=f=yVf2#S&Ok!Kqu~g=O*vUaDK|p_-%~^T~g$5ny0|e&o4*MTU70{ zOejb3i8Eit&^xb-(Z8C5r|nna0{04ynyt0?n1zMoV6?nULGgRLqTIb}JzbH_T+?b> z+3(k{`lWu+__B#ROKV;dC&$N|o14!j%Ir!Bsc-332;94OkLHf8_hhBZcl!moWRG>> zRcF!q`ugse7yBIEFL=J$Kb_@IIVEH@#*X_eXg*H94wh`FRsyooB{aebh>r0 zRyzI7WkWyNbNdlCHg+H|R{D+M68{31QV_b}X8Ym%(dwc{3xqfeJRyQag4&4j{Kr8S z<3{6!_laUl08J971z(+=?87V?4HV8;iB%{15>PPUCCmWtLW7@!h5_RRurr^Ol0=Rd zxRFn26FgqM%Av{AC;}ykr==I_@RY}fxYywV`O;c=T$H?m!hG9%Cd_gP1jFIsQi@OZ z#^G{5l9|~V5w(C=YoP5$S@NXFp<0jBZt7>e)=*Be5O+U7>5kOVQx;awAje|znOX{? z2QiOkimvZ`uXI3pOtY?dbns_jq!DopgjBk6`SN`^IeeXxm!F_kM6zpy!4mR5|9OK= zJ*O=@zecXqdh%d4fc~MpJQFKx5OTP)G_ATH%v}RxH-=WkaRxRjlG{LHGB+l#1He@% zVDbW|KkAqzXZWV;(OPMiW+9_#M`V3xXQyyq&u$^g6gW;vIEliz(rNXlMg^+r&EbEG zLFCXSnp;At-Qa#%k3V6<7{MSS5)U1Z-~F$Jp!LMVC^qEjEyyH5bmsN1apUxbG|D$1 ztYy=&lPSJp@<;p;ZQ})vxfzFmo8L1^g^s@Om_TTy!+;Ni%IlM(eSW)NQcwaLVZu+E zE}=Gt*D{8=S(AedZY-;*Npa<-(mdp2CbV>Pr^?gULsrW23~IduEPB1)Ga<4Wm7$|g z%Ymc0LP}Z>lj={a06)LYAN)O=z!KOm|750fn@3K5#oxBPOi!;2fhL&1*=YG*Ws?5Y zU(zHICv@#)!fT)i9-SFPPGL=I7_RKc}X?=9m0ePX^3Ff!$n7^&2AE`1HA( zit$pqx-`I9EXEjk&3+1?t1#8=1WxUa``=s8TJ5KlF4)4e0&7vI$sxAg#?&p@0m0cE zbmit3jePwKr@BGPjjHNu8_~|ywGL)xW>Ru;S(r}|Oyaoo+p7#vTVNaCB_=9B5gMs^ zC8`)NfTA+!0pBc#xzOfiWR%K3hfb(QMkqbgUa$@@$kD3f%bJTvuFVhI&!1((?YHM2 z!Fs)SEVb3=c7Q*?-Z*sDh`#DtFHszBZf+*Mc1_yEB<(abM)AJYHa!-?{?2-cn>Wx$ zzz17qBNeyGN5#h7dJKxasiBMi5SFi>HP+{16vLSUR*6-Uwl%b4VnOS zX*=jpaGwVdK}kp5$>NlxM-bsgpYOf;n^buNIHV#dRVQg^l%?OT;=Gp4&| zw8US5!=-!mSLGB&W1KtYKSJKV?bvfzC?-lq=K(#5np-iCyPv<108J-u9G@?uuN_5NG20sjVKr_Z`4(R*)Bx{VIH>+k~%m;Z(>##TCf z4Y|gxpU7w0Q6?%=!(%zb5zV3XVb-g1a{ZWv$$)Lfe~_hO#7(f=nSr0W$TXyWZiUP$ zv{wnAulYrU@MYv^Uo?Iv74~O&DEVorkYU3)lx~LJ_vq21dT6Tv{VPR>UfmOQm77ct zbY|gn_4&KMyYRqIdWeFOl-9yJ>CxRRU6RpeU2JvTBcY#E?BQ>H@A_c~>8WNV83ad7 zuFG(6#7+4qQhY`*Q?fbg*_BN5)F`6~lka*MGApsCM&e!x&u)0(fkn*nE1TCi1h22( z&1r6UDUUC&Aonv&RCsdNX(`e&TzroL!tYOStLFpsaeV!&Lup;RUqn2h$k4P>y)9A~ z(q8mYRd{twl}^;hC0U1AIzO#<>Mo{%WNs#9NHfehBAt8T0fS+R$`-~dZ!t{|l_sPE;X`Km5+ zP&f?R-Z21yBHlPE3`GHjbVy2PyP8DQ`DdhF(yp`*nt$Kjadq@|J8S9IQv%w6yV|32 zLw>BjlY-y#^Ckc$M!uN_ zC#ZfEQ{0?cQN4Km*lgy~$HgMd6H$>mg|;=`?x3KcIu+%7w<}_;JQ+UaI(G^Ax4+Tjckv2l1jzZmzCPHUNw*&`?+ClB)0lQf zJ839Hl_s4t)8Y6Lx?)jc=KdFF9){d`7}lg@WdVsi0+#=9y>dgd##0#Jg8*=%fCSov z3;Up@0ajvL8!vTn*glr81z4LPeUv~S(%VAu!cBL!b<_02O(bLB=?fXr2(iiOCMmqw zrBoaRTmrEde!|##%?-*!no6K>c2cqHy(WKH|HD#^`0MZA7N=X`$Q}CHzdz->S$|*w z{N7j%NzcgO1CZhV_xC*ui!VESxj93IrQ=%V_RLVRUDksG17~)J4O}FqptYpD+N0#I z{;Rqtq`rW7khwC6c;okBEpF^vE^z@qz`{8Xt!!|10LH@^(4TJVRXQ&KU|Op4!KoY6 zp>KrkF0rCU>B*yw+MA$NkBn%(_Vrzc0TG5`hoJ-&aUu8B!dA^nXU^ng4UP8?6%=j& zmV`!a2l@l7c#8GV7*ujlBal&!VoTuiV3t7%siki$!{hH%76CQzK%AqcNOYshck*>I7yU3y*HV>w}n~;c7-TWe z5ey;>jmmsY9vD!$Gsz7#fJ`ZlPnu3jBTtuA2IO+{5|zNa*jNf-=havM zhQhD@6#*L{3pjng2?@H={S96>A~V^Yth#i!rLkE#8{pt!3Ftw$mre5vq zT_hyDO8TDlNybB9yC&=v?K=TwGK+~F*Q|wz1h+b`o8NF791P_Bc>cc9T?Xi zdY$ZQEY$$hAqT5=gOjuCP#3_o39yvNWpeVH-m7E9om#}#1BmIJ>0nyb0~$&{V>gmh zM^G;VW8BnW4daqDxycz4j%B`K$sflhMBJyf)oO1@NFNZy#q zQ24W8TR9{wkcY^{{K<;7^!d1HZx?TuH%)TP!JCBl3+nI<3@+ygYO(NGR!FjMEGbt% z?MBrVC^F_igrRa3@Rg50-o;YS)t0`09~_vW-j4$OAs2NjkNQ^B9TWCm2@!O_v&#zqeS z!&rWEBJ>deUJ%ktBq9(OQ|^B_LB{+(AOWgSM-2CdCkRQi3j9!66KUJhPBgjj*v z_<*Wl%ZZ2n&aiOLTiOHy3tBp`n55{QEBRv;@>%?6BoIhnAIv;mys#;;=`|vx+BtiV zex~RAc}-(sg%FOr2Vx>^zX$w@V#bwydM9(4Mo^@CJII@lh<(2fm|KruFB(f0X?h-6v)VhJ=4g}!I}U%_do-$L*_}KPLn#f zg?9*OeKXa#g7$>?c^xrhSFd^z1-&0z?@m*5M!k|Uc(FpzUi6p-gf=NR3CRR?tiE+2 zRP3Jvn%|}Xj+`K+plE|JOB0lCWr@QZ(4WnKFl%aR>IKFC10Zfcu$yzyT!?6 zvR?lB^G6=i=>l@`B09uZ!RU$sKK?yKrq63!0#%TWz>1*=MHjlr8tq`ppu2Xdbyw-M zSLf-;5!M}tMMA(mX+VIZOab~W7#*inme#Ft&z&o9-7;FTzZF14D<_22>3bi*;zFtg zvg2#lOY%_Q%^gedBe}4o+cy;5MZUk%_IBeG=~WYY!(yZvx~cuumIIL6gO_|fu0F1n zqM02i2mcX9=}5Mx_z<9=WMvuDN_g+o0vZ1!{&q0AzN?Qc{i{e|FO3T|0|Nuw>}fGD zr%6~2<$RKhVuSqf2ho?uX+^Cgno~YO&?@l^?JmG7S@a_rU7XWKx1uyCjbr&t@qyE@ z^P)hD&Es0HSHM##L-3*6%1**+PR9#ztFa=68#nw~={!P!fK|!WzKzy)FmPy_bHd6jHEL3=j~Ph}IE^*8dT^Tsnj3JC?V zo@uf@LDu!|bTuV>{p(W_&8{sMe7!S$&hdJ3IcIoLnRvD5c48!D2Ry>7h8G@R(&XHq?ncHY}NkmTHV`T%`CPCo;o%%nSe19{rIFHz}2+YVOiFyUmi06Q~rCMLT*9F z_O0PG21DBeW&$-}2)l2lWM^+Gn=CumYa@tu`@sg{@oe?@JCQ|U{ehTUE z%X`PCo^Xt4-2D3Zuvq|cxGqw6Jh?8-jMI3I%EPsw>qUeqgW&U}bx$xisOf(M@VAZv zd)lZfi}N9*jTYhTt3_isW}I6^R4H*C_qUn_udBbEw^mKJ??z2#+TMo(V=1lPTrH1B z>RezDC81)kW@MB?Tv)+JL)mNaL2lBVaSVwo`iq;Ms-+& z)extb-7`*2nZN2KA^)pauKWV(ENUEWe~+9Ny8tkv#lxlbG4VUe(}TuI(gCZNV?{wQ z43>+&sgMV`-o?dFH1)}EwkSNm)}YK2!UsNQjn8Z!llb;12Bc$q&=QTkqB2pcWXMo0 zH`^>#?QiV1q)5gkGNeG3R6dOU=ivXYCj^5XISo;35_egenjlcO72lucJ`Dp^GlhdO zY9i^uB(?F6_ib%$*lBnfm$Qt6zX-q2Y3L^rZX_;Ew5dPNXkz|BfwH ztm7>9djgMy&h_pLFiS14pbe4E=p?%PLb0xw0Fx`#18K1XVb8dtAVR*{$+DwmBr_!g z90|gSYLm(tN=b6}@4v1zp8o>;Iu8$@qkl+*fDCoxxI|6Wi{kcq0`h~qqVBNIbXP@! zGgRFINm~NzlSl0sT^S<_bu{@8bh6^8M)ddH<#AG-rL3{b$OgA3@7li_8JOU&&(M7$QaHQ~@yO^O*RnIk-r` zKCo3TQ;4N+2ZDS>XxlQ#OG;`aJaV-bo9vi|jE!Qm@t&LUEgZt;CmWBS5NBA*2UP7% zu(^pc$C2=c@I5CiZRv=)a3w$Y`+pDThQ20!5Wv})reb8=W{RGUPC{(>0jm@JVOmo8 z1y2%$l!2c1`MsNd8s59=2`~BHv_VwlUik)Qw~kI!(u`CkP7J&-7q}-RpNjM23dI=3 zfudiyr>8K*i-^)UO)IHQsQHNnRw3Q~DNqK`2$R6Q>1ZqiLkQ5ZlZg)((xCS@g7w(E zGO6P{3jtxl1-u7V-zH$JCPDgc8%M!1Qo@tUEqpDVau0@y1?VUdo2sqzXJGM53g2iA zVO#3@ZK4DN`bE0*FV=)7=c-7^bc{!>irYJVYu|rc@BRXNVJg%5-&24iW`cH>3`VWA z^b?!rpd;ST9paE{pF<>~#0EPsh$XkFATP@T!*BLPYL{X$L+u#p*MkF82 zVK;=bKp=Zi4x-8f9RLAGEfJUXAC~#m(aYr?KoW%0iCd5EZEYd50I3{?_W%9K=l49Y zMI{r7!}%*fcT(~^tK+1!iBy>cDG`)yuB$*ZqQC9|n$s(U)58w1bmi-Yrok5a=OyeoQp0g(FSdU}RtrrfJ1D^&*1GMcW+t zjn5i!MGLlowHKro)wo!oOyFke;KU4}y8Tw-)xQGw-4`gY0pj8aOt9$FfP4VMS@b>M z^L^PG+*58#wD5s?P>+63*Gd8yZZvvy7N;uXgxV~Dc8hBaAV%fm%a<>sG|fiMQC_D# zloZhHkp`_Zkaj7-!2}m(hS5+9kpVF%5cQaXdAAGD0nDuwum1gQ|5@xbNaPKE$S5HG zRpEM|GB*S41g`rWU_AzAW`7W4&6mYire0B)2A)%TvVwe28aJk~aAWrv-YV|CJjhx%qWC)55FEQB4$hdW8(u-lwu!P4M% zV`o+S@-9)>p{3lWJ5d<*+LXi51Xnk=c5n>dU|_gMLlgiGzdkozm_kip;QI!sjPMT$ zDT*Hz;sqW_Nx`_CqYXT^h!1Z&n-0dp`i@;Ux~Oet)i*10!j z0iMjufE0TtC6Pl#DL>8oFMm!^u@mG7J}MlW4}V7y2iE^kel~tvBuK4btjRj`8gL5J zI#%0{t7kh-yB<>uFm+hYLqZOJTEiL6mHq#QIuVd~4 z!UTK4CrEB^8h=1Qv=OnX6m#3Y0lEq^0|S<_vU1JgA~k^OY>oU3kNtHRu7|XU?}GNp zpM&!ecw@1%8PqNU>k&u$ylq-&A)#gt?}^i_<=13po}{GLJ?~71LpVkzGsetOWqH!^9iU^iPHE{H%hK1 zhZMJT7?Cn&9(}(|%@Au@>w&9`v%pCvsBN6CTvV&|Yx@R@%*cM#2aBYMCnjN4d1V-2iNhs;6L&DS+w5(G6_f zDa*xWdXuO+31S9HEx^j6xdaT+5=TUz8^2|17wXIb$q@XCkq&$mPDuPBVk4+XEbt(L zR_!hYYeVDtXdPo=KZeQSN^D%htM?B&UPRPZvVTVnwvipa>t=*g;5fMjDRd3!4jAl% zX~f;tq@?yXrn$jy9}U^@2&|j)8^~ED#Hw(s=hIy6r$BV20o8b!l5#m`r)A43Z-s<3 zPShn2v)!+ZNTzo#eAR{eo(@}G`VwW9zN+W4LCOOY!VQJXC9Gbj+&&$WPsV+J{gr$R zb?c0&+J3UQM;Z{bs7)G%%Sd90gF4~!J%es~#dFTaXH#BBR=h23J~(*aj;Zt!aYw>r z4>-<9M^M-&KFBS`5@|1(g zy%@@Ahg$wES0bwN4V-^EkImz1;+(^qb}^7Nl1MiN+mKrNI_=J_G=r3fnwLMIt zzQ^j+15h`z;~J{}8UgtYbkFLl{X5v~$ZF?FVm@RYBVSy%erY9RX)K7NUoa*A4@mh1+Wu;~DAhEnV*dj^ z52-f*?WTVYZBps${@tlrksYMNqWqwI8=)>f)D{Q4;qmeDErS{{NKTx*sT$!I1Gn^D zXK_Iq#;Jq8g&yo-1+xKkCS!>A(gBngN8$yZHvmcbTWkYxgfi54I5J@jP7S!EDQkYV zJ*8=Rd1&6Zt~h?6b3`WWr@*huZ_-8r2t<18SM&0CDL0Tr9sm5HZKOw5_y9MkDr^MA zK=;{Dz5%^AylY>9;RCQP)uCKGFSudB@`;HRb>U)c_z{QjYZV&dA}4@6eknxs}V$Xj!tP9c%|ZC?*LOpR95~*AJKgVPPec|Spw76GEiUhk`Nyi1v#= zC^4v{Arnrg2mlDRdw?G=6WV0lqW#nEr_l-J9ntS$?IJ#WXaLVimR_ZxsLT310>Vyh zzkD{jv$($j_^WZbgIy$PoQ`fe=3J$n=NQm!T44X??4j_q~SPYw-LA(qDnOnWBU>aYx| zD`x*LC95KA!dwDyFv-yU6h)zZ(9wQ6A^$mua{ z4BB0;AS?>8p9Ml49VQ~wV<}<)y)beZuC*)8~73^;gAWDFnv;{ou z=!T=ZP;$P@#uR0=Llo}AVHu541Wa1i9_t_+0khY_6fX9<+2|8gQjzwz72Lb<1fa`w zpa&8hmoJBlZD06*e0X1oR_@WF!hfqO%pxYH3wEMgEA?PQ_}}TA6iKK3|A|7(o%x60 z-!%anHhTVOw7}38+UDPAW2F=cgcCM48U_3w5}cfh&Z{E~V4Zr;u90^qMbd3M?d5n$ z*MH9RZ!iTsl9T&)wzn?Hvhpt+=ODrWk3R&gdx7_C>&p6c85o4`MaMt*S7;yW9CVJ8 zGJ)MH`#IAGNgloI!uumc*s|VtB~2C@NH#wl*kL_#co|4&5ojTc1Uxvmu0JgqE2J!Z zqoyN2IlNZFWuxb4*KLamnXufi*&p}p0i>z7p}4yWIVZ2E7^++AHTkQev{Zvjx9r*0 zM0`9IB{g*fP#hOASvfh8v$KZ5G~qPDj9|Xs53$NsDs2go`J5<;Ofl}|^7__a@9OIM z+1F>7>|(COkMs=;+yMSge!urIWBe1{R6yxPO_7n2*LitK!8iy?G#-@IkLuZm0#xwN z`^3Z$R1*Qiuy*{bL{yYBPhL*$-TU{3Vder<;1cq$Jv*hQ z3O$ec*k@t8&~Yu8#zsi*rKJ-aE9*ToGZxTm3IXl~kARhFq|}BUwi?V!A#m~yc$rv- za`BstspT!q@lpcpxVX4?U?&H+ppGe)leT+mDwJQI$!xp1zKdf*q z`+qNXK0MG&I#)eGvX0X+m{lY7h?$WQ8>D{>i_2R@1%)OU#6J%IDFn}KQAr7Q?8M|y zSJx$Yq+;QN&&{p+83`}*S4oSk|I2nb9# z=3+#r!}5m4DD)hrAKt$W_>pH&l+k~Vav zq@=#r!(#?oT(oy^`0iQ_z`&wdn~;de$i(E_=;-KT;cd&I83e3s4S*#{NJzZ5x9wq7 ze($%N*22)D=Yg&jcrFbqQ5I43&I0I7f1EWOURJ-~xZLdDmKNZc%Y@R|U%x zxT$w2H7Tdk|8C}6@2#QlhWnzJ3Z4FmC6B$Mqsa&_T{48%u(h{;4Gj~TO4$0kHE7-B zw6wH$05Afc@I!)vE=ER0G4Szi=Z%19Q!_|`0huivR9_CA62im7L;m>T@$q1=uwGbR zUdBADAtEG1ZRdgcHUIFFlauebZeCwqyD3=%&sje-LV`ip8m7n6BZh$!w?PA*Tx z_2)7@4Gdhwrxr^+i=CLzonKt+cA=8`>)qVaf*1jUxW&cwCOeyb<{T!IwmsG@z*k(nc4+2aB|-X5G&FS4*W3HCg3HG{wjIAGB7a_ zf-c1TJhJIPNqRDUaEY!Dd1!5Iz3jPk7fvck5ff31F*2qyo5Av200MeLfJ|&CC@`8) z&=r0w|0CDODPjH&*<(=+Hr&rEG?NkT(I ze{XEmTE6u3q_MKHDuby*&)B`1?$V`8pi^T@H67QeXE!%Bo#WE43T$bSAtWZo!MMA- z_d?v%)JPPSmf~RY^sC=)ZQ1QqK~8`yM{i+c6VPsgjY0nI@6Q3G6H0mI(g~Ls8z1lM z?{`4(@1d(8<;V>>`OR8el|s^CDR zkpPvn)D3oac^X<;=`6JlFs#5C3bnuP)q#O`L`CI6zy&A?$8Ab;Gz;%*YilEEsj2s& zu)>Gs%*-+Z13{?|R?oiOGYO(GMNKU&m6n&M zgr3EWi;aDUynj!+wY~iTYCkDyx$|0lS!JcXn_GFT0*eY;l&Y2%DfONKx1u z46g5EK+t?5B5a`Beu#>Kiv9WXX9U$++W;TYJGN&uLA_kRd5TueK(prd_KT3;2XJ<% zz+>MUWM;D6-CYa@I>P6^K=f1!W@cptAN~lt0)M^0$IqW};P39Rc=6)Cjt=!-cX1gR znIDDIz)iw0F&LoU>|pYtTu4*T#=^iO*t)m~)$Spio8I7Mx1K1&f`aMeg9T@#K9-b_ zVbF$XQ+q-NMQ1(vTtv1ze`HGRID8eQ1D}FDz>k$uPxO1 zGE|_%!-Rx|-Op8jklBwO*U_wYzYVH2=X&+4^;{VnmS}DRYu=6SVGIus4}yW34t+@L z$HJ#2siLa|^-PdX2g);4hgPtv6}%kf+i`%E{;!IIZQ(T(?2gV(ECsG?M>{(# z@5;qoy~-h@ATyv?4#%6medB9FT3UXAm(b$nODPoir5#l@d%mOJu0goj_R sS?=KC%>gckT^Fog-97!{KSnJPlRfV)%{wuxiU9~bUHx3vIVCg!03)0r+W-In diff --git a/classpesieve_1_1_thread_scanner.html b/classpesieve_1_1_thread_scanner.html index 8c4d15613..b1ad45663 100644 --- a/classpesieve_1_1_thread_scanner.html +++ b/classpesieve_1_1_thread_scanner.html @@ -546,7 +546,7 @@

pesieve::ProcessFeatureScanner.

-

Definition at line 387 of file thread_scanner.cpp.

+

Definition at line 388 of file thread_scanner.cpp.

Here is the call graph for this function:
diff --git a/doxygen_crawl.html b/doxygen_crawl.html index d0a57a672..45120f1a8 100644 --- a/doxygen_crawl.html +++ b/doxygen_crawl.html @@ -1943,7 +1943,6 @@ - @@ -1951,7 +1950,6 @@ - @@ -1978,6 +1976,7 @@ + @@ -2016,6 +2015,7 @@ + @@ -2561,12 +2561,11 @@ - - + @@ -2653,11 +2652,11 @@ - + - + diff --git a/functions.html b/functions.html index de15d5483..173b8d20a 100644 --- a/functions.html +++ b/functions.html @@ -106,7 +106,7 @@

- _ -

diff --git a/namespacepesieve_1_1util.html b/namespacepesieve_1_1util.html index 12492e095..5d5ad8de7 100644 --- a/namespacepesieve_1_1util.html +++ b/namespacepesieve_1_1util.html @@ -344,10 +344,10 @@   bool is_cstr_equal (char const *a, char const *b, const size_t max_len)   -bool query_thread_start (IN DWORD tid, OUT ULONGLONG &startAddr) -  -bool query_thread_details (IN OUT std::map< DWORD, thread_info > &threads_info) -  +bool query_thread_details (IN DWORD tid, OUT pesieve::util::thread_info &info) +  +bool query_threads_details (IN OUT std::map< DWORD, thread_info > &threads_info) +  bool fetch_threads_info (IN DWORD pid, OUT std::map< DWORD, thread_info > &threads_info)   bool fetch_threads_by_snapshot (IN DWORD pid, OUT std::map< DWORD, thread_info > &threads_info) @@ -1216,7 +1216,7 @@

-

Definition at line 121 of file threads_util.cpp.

+

Definition at line 120 of file threads_util.cpp.

Here is the call graph for this function:
@@ -1249,7 +1249,7 @@

-

Definition at line 54 of file threads_util.cpp.

+

Definition at line 53 of file threads_util.cpp.

Here is the call graph for this function:
@@ -2517,8 +2517,8 @@

-

◆ query_thread_details()

+ +

◆ query_thread_details()

@@ -2526,47 +2526,49 @@

bool pesieve::util::query_thread_details ( - IN OUT std::map< DWORD, thread_info > & threads_info) + IN DWORD tid, + + + + OUT pesieve::util::thread_info & info )

+

Definition at line 15 of file threads_util.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + + + + + + +
+
- -

◆ query_thread_start()

+ +

◆ query_threads_details()

- + - - - - + -
bool pesieve::util::query_thread_start bool pesieve::util::query_threads_details (IN DWORD tid,
IN OUT std::map< DWORD, thread_info > & threads_info) OUT ULONGLONG & startAddr )
-

Definition at line 15 of file threads_util.cpp.

-
-Here is the call graph for this function:
-
-
- - - - - - - -
-
diff --git a/namespacepesieve_1_1util_a21293a81c72270b974c5ae271842ef30_cgraph.map b/namespacepesieve_1_1util_a21293a81c72270b974c5ae271842ef30_cgraph.map deleted file mode 100644 index 58a086d73..000000000 --- a/namespacepesieve_1_1util_a21293a81c72270b974c5ae271842ef30_cgraph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/namespacepesieve_1_1util_a21293a81c72270b974c5ae271842ef30_cgraph.md5 b/namespacepesieve_1_1util_a21293a81c72270b974c5ae271842ef30_cgraph.md5 deleted file mode 100644 index 387577f50..000000000 --- a/namespacepesieve_1_1util_a21293a81c72270b974c5ae271842ef30_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -cb25de863a1b7eafb3dd840a4fb60123 \ No newline at end of file diff --git a/namespacepesieve_1_1util_a21293a81c72270b974c5ae271842ef30_cgraph.png b/namespacepesieve_1_1util_a21293a81c72270b974c5ae271842ef30_cgraph.png deleted file mode 100644 index 4e6e6dd41f2705436d70e8168515f0be6641b245..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9018 zcmY*<1yodD)Gt^dg5aMNq`OPH1O=qKk?!sel@O7TmJ*~>I)wqG6eOinQIMg#65WJ?{BC%es;1uM6nf7U`QbOEbiT1eQKlUICwmK>`Hx# z>)8})>q(=W>zXSKWeK*^Bj%P&#rZ4ryEaBrO6nREz=7-#=T#@-G;vw? z45achE_?MFOjz*5dsL_rSo*&BM>Rit;1?*mbFmqd(yilX5>3h%nVp^8to*bY1FnBl zTU#p<`KkDmA>2OCfa+ZZot!%P`)-|hy5jramRRNDH8Cu9lj!71ZdRYj$J33Y>jlsk z$6!C?34QwJ{?zfz2YxJA5mbxGjnmg6N_ z%TN?f#m4ZAnqmNMjeeza-$#cN>W1g`)6>sR{+ZgUbb zzsH-i4c03^QbXUo(J(ZON>3*%)u~w7n66p-P-j0`?YXW!QEpHuo*Wm~adx=w>g_FC z_>8(vOMPGwcq?^NrLk`g5nhQF) z=Kh@ATxmPIlJ`+cAGjpDy1Fz^GeSZ_1l|5dOz+;jgN+9p;_};orRGS#BQhJz5Xvbk zdOkHZ6+y_VT{Ps49F-Q`?ZT&_qk9&(@rE)84~O(IUUzr5+1UXy$Fe_p=|?KBjH^n9 zAazDYM%U}x_Y?=&L-8)pkBMQk<=R2xgk)r_GSQ@UOUhT2iL!`zO`O29G z57t?M$*H{7Ig{(?cv5&|WC|7*bhI*2CjH6mYmFL(%G^O0K4(Xp{Zm!uLas}pXLFUN zonx^F1!io9jqe2(d^(v@z9%s9+E0|F4~p52(lIEdY1)24J!xy}(u#D6U~yinA11p? z-E78)jFS_e1^?|6YUQ;0y3kUKauOiU4|JwlnKRhjqR;PN}LSsBVwfo)!0U15_xj_B%o7K#@d z7N(}E+Rj?hB4uPm(dvJ!ZN4>A_f8>&BQ<*D(^Cwqp^xQ=EvSMY8A1u|?N4g{puuUo zxVe?owg#SiMMg%BiSqFB3i%x{1)d#H)6l&BDCWPnR$8ImS0$=ZrL=o|%t%Xn^X2fc zs=7M%rA@uld}LdjL`O%5kB?6!R9d@gz*8wHLGP_cr>Cc(p`n@&1?cEP|MbS@j@y+6 zAhNSx8V8+*Ap*~}McQU){6(It^C@Kr#<~9KK_AXnAg1vB`vB@J70w%pM4p_UqMMkS zc0gtLZdCPt`|-o#>f$ssJbbjmSfbu>R>szrnTUwUZVn!BYE+firv6N=ZD$&vz0c`# z%5Yi4HV$ok>hIuV<0 zJN!J_Fw!GK*fVm{$UmCcIG}3gbesqU8)?nn+n=4z&(D80x|%Qj`BPO}YXPmb=6?J3 zZNpYSLRnea0>#v??XPa`9vtMsI-%(v5*ob>!N5(6Lf;ux;Cw(yIn>YD_G2_(;UTx# zv$~#fM(d%E`C6sgXdat0gwkryp~UuA2H>tYxd;}ajAG%Lo7vjR6)I=qNukbeBv%$W zR;-cV7<_fg2rbt>Fo5$Cc6Ep^2d6h%?}#c<=%6VF{QSNDyKoM}#%!l`4`Hl(_gp1msCzH#$5$9W9S`H@+0A1c3u224K_4nrC;TbbSH?g+1=I?n={q*E-g37n= z->IpoCE2wF$gE=;UBl5xu#V=TR)p(LlFHAoPX5GNSXk_I;j5qx*I28>kc;%}E%)EO zf4^sDhLnqq{l`bK^xOA{G$Td)j~x7tx1w`M^b`Djd`Q^U4mPF}qR9lRUH{0`bTw%+zvIj>bO}_T@6uaFn}rtNx}N3b<+zj-9oyN# z!I(@D?~>RQ30$J0389JtGo8H2bpW0FfEvGzug_A>d~9r(-2V;I3krU?gF}k8GyD{H zq{-cSX=w=)2S>|T#D0P;ncbl0`f~BQ*nT`LEUaa>hm4MafhX|Hqo&Ev*Z1M&Qkim4 z-KWvGZ2;p7Lg}W>I~~Awm{l|!92~8m_lsf;4GnFktLcx9jtGc|{-dOft*POCN5sBF zd3}Nb^-j;oh#?^%VPgKj|`Y)>x;M2$7fB#=rFpo()+SjjNqn5-EhMzK+C;B4u zQzG8J)H8vLVWz! zZ*jDz2R~JSf&M}Lcx=t30v)Gw5ZBs`N0u8jlvo#PGPcdABKf6qWupBg)e@KM>+2`& z`S6PeZR_;OsJnhOHa1eO3#WWx7Z%o^ljl8z?yI&QqIg73F66#~y*X3Y+0!Evcm)7= zvD-^IH9Pxfeck@?5j4Qxzkh%I{%z{fJhnCe#dfxy9h5<{Z4|I_rT4Z`v*&tve*P|Z zLa{3n8NT=lFjZ#OQYcf{6N{Lb7=`errqtr%;%JYA+-@l-D73V;M!U^bnPZTPcy$d9 z4q9v+9C+;Q?~gwM^a-!1aL&(vzqDkguCBgweB3)dtrsZD$r;=E26rE7U&j|+UQ!Z0 zH8u6*}3wW(mJ4nDiH`On|&~VO?vM7xW0k76F z|6x>&g`GXx|I^8pd&nyFEoWw|;v4D;Y;rG1K3#aSayvDgBxh<-iA~w%ob++d<@v|n zK201oeq!AIRUU&@Ai{wlo}h!{(|bGffrV*Pc~d1NG|F05U$=7apl(r0HNG!F7NOqC=ap%rZWfj@{3q;n3Z9Rx(}fOh zIpMJT{!L7BRqOygyUwxguZiz=j*HdfHFaPWYd_W{?xn92)lNv-N4G1yOvxG6$815X zFtdq3Bk;gfwkP1ZWx+!FU)aZ(c3vjkbWGzMrqxgr?b93sBQrA^TU%RicjEkWO)D!; z37=GL&Uf3({VAye&PMs#eur|WkKEne_3G@BM);26Up3`U+GBmhWFvUeew*s)lRK4? zYTt(M@l?{~=HD)qz}ASGxGUpCaQ$S+T}x4qCR_8>wSE%UW_pl(QVRcF>ZSe$@5DTV z{1F@VEsKCwHUw#O!RXzw!;ZD_QWW3q92`9EQ!5?c%f6y&yQ-;dvWpgJZhOaqWkeEV z6xdJRN<=G|+oYyR7&d^(LxA&8*j`!F)50!><{O@T6Fo-Qf7IC0In(>qis|a< zjTCDzqR716MYGZNCqs30HHZuv8XBqAjGeBx_!mdB&H!IaNTghaQEO#gU4CWd`^H8= z&*=`$DA0?;InwuDhlGp=0FD72_rkA@Ipg3TfO54=b1R@1>XHa6YCMMb6eJ?LA6t`rj z{V9ov3XDn@s?25UMvlfybx@#g-V@cauyD0<{UP$kywSFR+whz!x)E0G9eu(Oz8eHM z(o*j~ktAb`s_DLw3YU5RDe=8fLz~&v9b-P5tAxK%bI)Jpa8=YM4iO({m27R$$Q_Q6 zXW12u+fCQm6Qc+tPL`shvopkZe9z0v?ZFK>dx)yYj26_uJl?Zb(A z8#5Qxj^)}0#p!|C+C(~^4XH&%AA#bKl9KW{`TZu^t*oeIik_YxrA6oF3}3%~-RQGR zgCZ|R#@>yVm7}MnadqwJ?heb#qvMm&*C)--&mU)PL6f3NtKGVP!ume9 z-AtNGJ$JagHgRQ9Jb!9vz5LdX^;}WjiiZE-V{g${h1vd(A1ks>&j($Vz|{2BWP=K` zbN^S?`FC~})1UJ4LP4aI&Tl(9I81?PgZmQ@5(1 zbj%X=?E5RuZ##O6m6bK^v8@!y>PDZDga0hGs(_s;L7i<(RWU_M!3~w_f0u4uou8e# z{r-BpCzetLMArAAp?@K`;@L$-m?9z~UfT;wDI71Hgk^pEW&{>a>pvcQG4USD<$F1c zQOWTY$wXF^mzR$?$_4}m>Q$ND*3;8VOinHt$U+C2aCLE^0-^*L^Z}&FXtkvRTs2Q8;Ib9{{-n{O&A zIDsVXf^|TD&CSmXx%@%{p2`sQRc|Fup_4mQh$dJBCh`!@oLSp~iULDs;^+uM!SR1> z>N*^HC1|3o>x;s(I1y&%w@~|gzu!=jwodf*^?@dWW=Tj)dTK+ zSU+@_Yka^}Ht94~i5?srJX2@i3(vl)vNBt*#!667aA#b{*!AMX6@*w9oK8ei5+RT} zEu0n9sJy&&(s*N`m8^ZEMPN2I617}VjL(&o5zF)#a`AR5(T`4N zW@p{^{>m{ZXGCb1=F258v|Q}Ir$K!#@_(`2m_abj)kRU=8yQ$0`o9MmYFcMg~| znOP~!>YAD+ugx@lI`T)4Y^Exy{aQbkm9c>YgZj{LZwa~-29Kg8vYH-=6Yj6_qR|Ci zM@J{<@=#~+qga2$1KJ;h_I461g9cW=zlQ1R>T-Fk4%=OlB{%7$6)TKhX3KC^GX;yh z-`m*OC}|mr&tY0ik(QCu(iPW&|#Z{(O``S9}#eFh(yIzt%3M z5diXb01C%0aN+vuxXr4n4xlqY4HwuMORN_gH7? z?#rU`DhQUG;X0!hpE%Hjlb)pB8_Gw2f_!lycq%hG+8-Dkw1PP3@4tWh%PGctXX_O= z!&#B2rU38n;^FZZ$Hs>3O|7D&w0yi6+zWw4Wo4z^vj63o=YRP4-+%njOur4zU8{+5 zWreeiQb*)P`gFpY90zYs0vSOcaE(o`yO${MxD<(sGU#r)&_ zw2Rdf(NG4D?I#oiMX9J>F0}gJ48KRAU9O)m{_pSKJbv0NL06g~(S2+&zXP=P`T0yv z#L4TztRPb0SfI#QzPpQ9cuN zF1L_jns3@y2u=f;>A>j&ETMgW=II8WIvSg>>;oC}dQFoICd;{qTUBWH7#8hBn6s1$UehDLvQWv?SU?o&K+?% zT+=!%sR2tWUrtf_A0A$NBC`f048K9dvguXdYBf^Py5tr=->6~vSJ6o6DV_VJ;N3gb zzO7E}@B0#1>)|oAOss=UKFDiCp}{Szk5VR|B4$|zjifqC<|;&3Z`nM?CVu^!_P?$h znK7|MM>>NGt=>=K?POay5aYIsx^emW^aupvk+4UEWXPRQOjzjx&J03AsSS%k=^#x& zPua}WGEaVf@du&E#sJA8-w?H_fIdc$Es?x2T}^e#B_r* zrS)Kj+B@gzphWT{9ll^C1cvv|Na94ZD}`uFw5FiL(9t_axYm|J<;j=8!0U)EPS@o#!O#)ACr2C zb%FcK0?{Hg97-OS>D7=3IL)y~lk+=}EC%f307l%#wib+{5F<4(Fz`EA?SKk~&<7>R zWhny_LG_^mFjTMuFmyWEb`=Js45=GK3T_`$Br3hqtF?L1cCiNms9`oRYIVX=a0BeDn=PN zt0Sawl(w_8(`?)vm*)nE1Yzy7{NC-x{J--a$WeL@qn3!mLdNOoX%GuV3OC@`X*oGn z0zbo}5rt4=O_%!CzoD$cyu4dLI)@x&XuiI_D1L)j&)n2h(#wkcj6Am4fO<%@s5cqieDR==eEe?#WZ&c?`l)qCfrPFMXYoH{eHk>=Y4%?`{$2i7Cs zv^&d3D@NzfJ#7 z_4V(5LFsl&=}LuH`%E9UoH*qURWk_}uP?WQt+p4)9zJ}Vpi!P>r=Rc7Jn5fAq0f9H zcgRdiwZvxFT-S+7n);@gf$H%q-t6Fz9^w!=x$N<)rkf{TJFE^l_=Sf>d@I1=Q>B4UABXSTDv!2=Zk-Zh zu$4sPp7-N5)7LDWK{n-`XMU$$gczg=arCRIc>UIvCuBNS5Se>`#r&+H20zyAHRcDsNYl6(IA7yKoYvd9Q=n8Os8o0}VoAe`GS`At^$Qc_dj zHZ(N&MgF@u-M3vth;@eJm=C1!p*ZdJ>l=nIUYuT?Z{NkjD$$Orp0&8#>BPk*KNlB~d^hk$PZSEv7E&V?Lj9>Ywe7b+XQGqY!4*}t%a1%Yh0DA)Gy?a236 z_j|$U!l|IBShg24=ZUNt5`PLK6EI@Gj@-s<9=DvWmD*t-BF~PuRj#it(N7?0L`6y> z-dm4_?=dkjgtxSa!T=-$Mls-K0ss!4$;iZ~rs|cGSORLxKup+nc|?ZNNn~2{@=@u& z*O$iwD+ZYe&J|4-1Smb^H_9hS^h)#I`v4eU0Xs(Q>Q2tj$qpwVY=#gj6eb}L`8;oQ zj#yY(F;GxY$b_*;NKk?a0Nte6!}LW&{xn>^H?1vdWn)sbAi79VbqrB-0d8V-XBAs>Tix8z@) zfv)b(pvZP51aEb>?L7$y2r40t_1c)~c*lwO20{ul#isHMJ6dCnziAZ*?Q1^^alxGz z0Mv*AN`nc1pO|>-iM%{kxqclD4^KQqUZao$9~uRL7%qTWP|IE)D=HKOG%4nObDz8q zh;yK43Y_!h*&%P=a(;>t4LA30fqUEa)p-kiB-NiEAUmgPf*YDY2sl$*pAH41qVYvU z;3Gkoms!DAP3kersgXFpHa30$zWMGC2sF9;{_5De2sw2Cd=&r>fPjFcIga0E_$ACO z3|K568tejt4mJWc8-sw_nKf&sPbYrMe`I8YhL2B6GX(_y>Ue3&uw9)LCbjs!(sCxwbYazOq_75=oc3KwgejjBau#+;!HKUGeWFWX3%gS7-(*8?gTPYy;eWIpr9a#k2USQ z(~^^|c*4P4!8Fji8>@5Z4{9L7WrC)xtZdbb4yI{oZB5_y3xg)3mxBY_V(_)t_wU~u z9xZ~rMbR|a6PP*R8u>00g3@^nmKki|cw}5c0_yc$yu7Ub^h84$qmqT7i>j5`xUpx5 z6&MGL4fh2J7tJ0WGc##0hy)vp3*X#5IxWuBXq}{vnwkWt!2(qNvuDpFx3pT(&~E%ey%#{! zK0_#l<8q$B3D6JvbZu}kn+0kk4g!EZRFW`b?%?PMkWK}&KbVNA1A_KA4M*b%&bvR6q^(%3`theNU=*nt^H&S=sxhiqyvk+Szy>{si?AL_W5LqjFGSS zE&B){06>|a1Ql`9lbzqFQBY+i*GJ!#herOJe1Nx|AXvIGgxpj-Te2j_sce-A9_v> zY70USY)Wy%OncZTSgTTNPR(x3jY!yBs+d2&irC>8JG=kI`Qo(|tOw@2_#`CXAU=dR zsu!k3DMo(CfU8wP?iUkpaxVJNJjknngbwwWfjo z-I@1Z9M?q%(58^*Va!1O23;-)kYI7JIVObGK_T8gS^-u`m?n36^NxV z;FPDvdWZpHL>LtmZ7O~7K<3n=@e$_!0ORd*Fe3XlGLon7`&=Vv9CvV4^0TnTPVhEh zSQ1iG@eat88cxAQORSp)P?mYW3S)Nq62ujWPUGHa9o# z;^35z-Sh{JxBz`fKulZ{aOwsr+(SVZs^a3}HDz-?v;mP#B%38S;X+g_Oub z#808S2*aq>F9f=NF5h6nfidx`BV=9pHWHm7HUQ<$U$P + + + + + + + + diff --git a/namespacepesieve_1_1util_a741d532faf993963835fce715ccbeffa_cgraph.md5 b/namespacepesieve_1_1util_a741d532faf993963835fce715ccbeffa_cgraph.md5 new file mode 100644 index 000000000..b59117ddf --- /dev/null +++ b/namespacepesieve_1_1util_a741d532faf993963835fce715ccbeffa_cgraph.md5 @@ -0,0 +1 @@ +44f786e21d77f8d6b15e537cdf280dbc \ No newline at end of file diff --git a/namespacepesieve_1_1util_a741d532faf993963835fce715ccbeffa_cgraph.png b/namespacepesieve_1_1util_a741d532faf993963835fce715ccbeffa_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..2f660cf15388bef116df88b29f0005a495ca1223 GIT binary patch literal 11391 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 literal 0 HcmV?d00001 diff --git a/scanner_8cpp_source.html b/scanner_8cpp_source.html index 28763b3e7..e04ddd251 100644 --- a/scanner_8cpp_source.html +++ b/scanner_8cpp_source.html @@ -623,7 +623,7 @@
497 return 0;
498 }
499 }
-
500 if (!pesieve::util::query_thread_details(threads_info)) {
+
500 if (!pesieve::util::query_threads_details(threads_info)) {
501 if (!args.quiet) {
502 std::cout << "[-] Failed quering thread details." << std::endl;
503 }
@@ -713,7 +713,7 @@
A report from the thread scan, generated by ThreadScanner.
-
virtual ThreadScanReport * scanRemote()
+
virtual ThreadScanReport * scanRemote()
A report from the working set scan, generated by WorkingSetScanner.
@@ -731,19 +731,19 @@
bool is_process_64bit(IN HANDLE process)
-
bool query_thread_details(IN OUT std::map< DWORD, thread_info > &threads_info)
-
bool fetch_threads_by_snapshot(IN DWORD pid, OUT std::map< DWORD, thread_info > &threads_info)
+
bool fetch_threads_by_snapshot(IN DWORD pid, OUT std::map< DWORD, thread_info > &threads_info)
size_t enum_modules(IN HANDLE hProcess, IN OUT HMODULE hMods[], IN const DWORD hModsMax, IN DWORD filters)
void print_scantime(std::stringstream &stream, size_t timeInMs)
Definition scanner.cpp:44
BOOL is_process_wow64(IN HANDLE processHandle, OUT BOOL *isProcWow64)
bool is_DEP_enabled(HANDLE hProcess)
+
bool query_threads_details(IN OUT std::map< DWORD, thread_info > &threads_info)
DWORD count_workingset_entries(HANDLE processHandle)
std::string device_path_to_win32_path(const std::string &full_path)
size_t enum_workingset(HANDLE processHandle, std::set< mem_region_info > &regions)
bool is_in_list(std::string searched_string, std::set< std::string > &string_list, bool to_lower=true)
BOOL(CALLBACK *_MiniDumpWriteDump)(HANDLE hProcess
DWORD(__stdcall *_PssCaptureSnapshot)(HANDLE ProcessHandle
-
bool fetch_threads_info(IN DWORD pid, OUT std::map< DWORD, thread_info > &threads_info)
+
bool fetch_threads_info(IN DWORD pid, OUT std::map< DWORD, thread_info > &threads_info)
bool validate_param_str(PARAM_STRING &strparam)
Definition scanner.cpp:31
int MAX_PATH
Definition pesieve.py:10
diff --git a/search/all_0.js b/search/all_0.js index e4b01069e..67940814d 100644 --- a/search/all_0.js +++ b/search/all_0.js @@ -22,7 +22,7 @@ var searchData= ['_5ft_5fpattern_19',['_t_pattern',['../structpesieve_1_1__t__pattern.html',1,'pesieve']]], ['_5ft_5fstack_5fenum_5fparams_20',['_t_stack_enum_params',['../struct__t__stack__enum__params.html',1,'_t_stack_enum_params'],['../struct__t__stack__enum__params.html#a915e530586fa556a5ab79686aab9a07d',1,'_t_stack_enum_params::_t_stack_enum_params()'],['../struct__t__stack__enum__params.html#a8c088c3243763eca88d44c8855e74fe8',1,'_t_stack_enum_params::_t_stack_enum_params(IN HANDLE hProcess, IN HANDLE hThread, IN LPVOID ctx, IN const pesieve::thread_ctx &c)']]], ['_5fthread_5fctx_21',['_thread_ctx',['../structpesieve_1_1__thread__ctx.html',1,'pesieve']]], - ['_5fthread_5finfo_22',['_thread_info',['../structpesieve_1_1util_1_1__thread__info.html',1,'pesieve::util::_thread_info'],['../structpesieve_1_1util_1_1__thread__info.html#a03b1e58c49513071816fd78ac6c47be5',1,'pesieve::util::_thread_info::_thread_info()'],['../structpesieve_1_1util_1_1__thread__info.html#a3417095a3e85b9ee90b652c1959017ba',1,'pesieve::util::_thread_info::_thread_info(DWORD _tid)'],['../structpesieve_1_1util_1_1__thread__info.html#a866badc78340688e5b3adf5ce545f147',1,'pesieve::util::_thread_info::_thread_info(const _thread_info &other)']]], + ['_5fthread_5finfo_22',['_thread_info',['../structpesieve_1_1util_1_1__thread__info.html',1,'pesieve::util::_thread_info'],['../structpesieve_1_1util_1_1__thread__info.html#aa218f2462134867951f2e1cf8451bc50',1,'pesieve::util::_thread_info::_thread_info(DWORD _tid=0)'],['../structpesieve_1_1util_1_1__thread__info.html#a866badc78340688e5b3adf5ce545f147',1,'pesieve::util::_thread_info::_thread_info(const _thread_info &other)']]], ['_5fthread_5finfo_5fext_23',['_thread_info_ext',['../structpesieve_1_1util_1_1__thread__info__ext.html',1,'pesieve::util::_thread_info_ext'],['../structpesieve_1_1util_1_1__thread__info__ext.html#a48a9333fdd363bb2ed7da9f3202508cb',1,'pesieve::util::_thread_info_ext::_thread_info_ext()'],['../structpesieve_1_1util_1_1__thread__info__ext.html#a4d7efd7c77cd2eca3c156ac54725d400',1,'pesieve::util::_thread_info_ext::_thread_info_ext(const _thread_info_ext &other)']]], ['_5ftojson_24',['_toJSON',['../classpesieve_1_1_module_scan_report.html#a1abd35c0bc354eb713e7a27383e27137',1,'pesieve::ModuleScanReport']]], ['_5fvalidatesecregions_25',['_validateSecRegions',['../classpesieve_1_1_artefact_scanner.html#aa33a04b0c2a6ea781cc0f68f8dff906f',1,'pesieve::ArtefactScanner::_validateSecRegions(MemPageData &memPage, LPVOID sec_hdr, size_t sec_count, ULONGLONG pe_image_base, bool is_virtual)'],['../classpesieve_1_1_artefact_scanner.html#a03c815ce8e0b33ccffe947b0d7e6d4f9',1,'pesieve::ArtefactScanner::_validateSecRegions(MemPageData &memPage, LPVOID sec_hdr, size_t sec_count)']]] diff --git a/search/all_10.js b/search/all_10.js index aaecfadad..707de8be6 100644 --- a/search/all_10.js +++ b/search/all_10.js @@ -1,6 +1,6 @@ var searchData= [ - ['query_5fthread_5fdetails_0',['query_thread_details',['../namespacepesieve_1_1util.html#a075bfd4ad08d8b7401c93260a7e7f63e',1,'pesieve::util']]], - ['query_5fthread_5fstart_1',['query_thread_start',['../namespacepesieve_1_1util.html#a21293a81c72270b974c5ae271842ef30',1,'pesieve::util']]], + ['query_5fthread_5fdetails_0',['query_thread_details',['../namespacepesieve_1_1util.html#a741d532faf993963835fce715ccbeffa',1,'pesieve::util']]], + ['query_5fthreads_5fdetails_1',['query_threads_details',['../namespacepesieve_1_1util.html#a5258d6e6ebd34e2239fdb335abc7cdad',1,'pesieve::util']]], ['quiet_2',['quiet',['../structparams.html#aeefd2c2ea3ba6b706790e0d51353315a',1,'params::quiet'],['../classpesieve_1_1_results_dumper.html#ac2f5a75c4f183f855c91b329efea99a6',1,'pesieve::ResultsDumper::quiet'],['../namespacedemo.html#ac0d6563c1afcf0e8f96a900c25b1007e',1,'demo.quiet']]] ]; diff --git a/search/functions_0.js b/search/functions_0.js index bdac39499..1517e9285 100644 --- a/search/functions_0.js +++ b/search/functions_0.js @@ -18,7 +18,7 @@ var searchData= ['_5fprocess_5fdetails_15',['_process_details',['../structpesieve_1_1__process__details.html#a2695b9f4149c0743303424b721ef0378',1,'pesieve::_process_details::_process_details()'],['../structpesieve_1_1__process__details.html#a5f47663cbb649683a5e7e9e3ba1f92b5',1,'pesieve::_process_details::_process_details(bool _isReflection, bool _isDEP)'],['../structpesieve_1_1__process__details.html#ac1376c561da34c50c414601615d63270',1,'pesieve::_process_details::_process_details(const _process_details &other)']]], ['_5freadremote_16',['_readRemote',['../classpesieve_1_1_pe_buffer.html#a62cf4335cc4f61b8e6fc07b40aa55659',1,'pesieve::PeBuffer']]], ['_5ft_5fstack_5fenum_5fparams_17',['_t_stack_enum_params',['../struct__t__stack__enum__params.html#a915e530586fa556a5ab79686aab9a07d',1,'_t_stack_enum_params::_t_stack_enum_params()'],['../struct__t__stack__enum__params.html#a8c088c3243763eca88d44c8855e74fe8',1,'_t_stack_enum_params::_t_stack_enum_params(IN HANDLE hProcess, IN HANDLE hThread, IN LPVOID ctx, IN const pesieve::thread_ctx &c)']]], - ['_5fthread_5finfo_18',['_thread_info',['../structpesieve_1_1util_1_1__thread__info.html#a03b1e58c49513071816fd78ac6c47be5',1,'pesieve::util::_thread_info::_thread_info()'],['../structpesieve_1_1util_1_1__thread__info.html#a3417095a3e85b9ee90b652c1959017ba',1,'pesieve::util::_thread_info::_thread_info(DWORD _tid)'],['../structpesieve_1_1util_1_1__thread__info.html#a866badc78340688e5b3adf5ce545f147',1,'pesieve::util::_thread_info::_thread_info(const _thread_info &other)']]], + ['_5fthread_5finfo_18',['_thread_info',['../structpesieve_1_1util_1_1__thread__info.html#aa218f2462134867951f2e1cf8451bc50',1,'pesieve::util::_thread_info::_thread_info(DWORD _tid=0)'],['../structpesieve_1_1util_1_1__thread__info.html#a866badc78340688e5b3adf5ce545f147',1,'pesieve::util::_thread_info::_thread_info(const _thread_info &other)']]], ['_5fthread_5finfo_5fext_19',['_thread_info_ext',['../structpesieve_1_1util_1_1__thread__info__ext.html#a48a9333fdd363bb2ed7da9f3202508cb',1,'pesieve::util::_thread_info_ext::_thread_info_ext()'],['../structpesieve_1_1util_1_1__thread__info__ext.html#a4d7efd7c77cd2eca3c156ac54725d400',1,'pesieve::util::_thread_info_ext::_thread_info_ext(const _thread_info_ext &other)']]], ['_5ftojson_20',['_toJSON',['../classpesieve_1_1_module_scan_report.html#a1abd35c0bc354eb713e7a27383e27137',1,'pesieve::ModuleScanReport']]], ['_5fvalidatesecregions_21',['_validateSecRegions',['../classpesieve_1_1_artefact_scanner.html#aa33a04b0c2a6ea781cc0f68f8dff906f',1,'pesieve::ArtefactScanner::_validateSecRegions(MemPageData &memPage, LPVOID sec_hdr, size_t sec_count, ULONGLONG pe_image_base, bool is_virtual)'],['../classpesieve_1_1_artefact_scanner.html#a03c815ce8e0b33ccffe947b0d7e6d4f9',1,'pesieve::ArtefactScanner::_validateSecRegions(MemPageData &memPage, LPVOID sec_hdr, size_t sec_count)']]] diff --git a/search/functions_f.js b/search/functions_f.js index 6ff817888..f6121bd34 100644 --- a/search/functions_f.js +++ b/search/functions_f.js @@ -1,5 +1,5 @@ var searchData= [ - ['query_5fthread_5fdetails_0',['query_thread_details',['../namespacepesieve_1_1util.html#a075bfd4ad08d8b7401c93260a7e7f63e',1,'pesieve::util']]], - ['query_5fthread_5fstart_1',['query_thread_start',['../namespacepesieve_1_1util.html#a21293a81c72270b974c5ae271842ef30',1,'pesieve::util']]] + ['query_5fthread_5fdetails_0',['query_thread_details',['../namespacepesieve_1_1util.html#a741d532faf993963835fce715ccbeffa',1,'pesieve::util']]], + ['query_5fthreads_5fdetails_1',['query_threads_details',['../namespacepesieve_1_1util.html#a5258d6e6ebd34e2239fdb335abc7cdad',1,'pesieve::util']]] ]; diff --git a/structpesieve_1_1util_1_1__thread__info-members.html b/structpesieve_1_1util_1_1__thread__info-members.html index 9512bbb1a..41aa825b7 100644 --- a/structpesieve_1_1util_1_1__thread__info-members.html +++ b/structpesieve_1_1util_1_1__thread__info-members.html @@ -96,13 +96,12 @@

This is the complete list of members for pesieve::util::_thread_info, including all inherited members.

- - - - - - - + + + + + +
_thread_info()pesieve::util::_thread_infoinline
_thread_info(DWORD _tid)pesieve::util::_thread_infoinline
_thread_info(const _thread_info &other)pesieve::util::_thread_infoinline
extpesieve::util::_thread_info
is_extendedpesieve::util::_thread_info
start_addrpesieve::util::_thread_info
tidpesieve::util::_thread_info
_thread_info(DWORD _tid=0)pesieve::util::_thread_infoinline
_thread_info(const _thread_info &other)pesieve::util::_thread_infoinline
extpesieve::util::_thread_info
is_extendedpesieve::util::_thread_info
start_addrpesieve::util::_thread_info
tidpesieve::util::_thread_info

- - -

◆ _thread_info() [2/3]

- -
-
- - - - - -
- - - - - - - -
pesieve::util::_thread_info::_thread_info (DWORD _tid)
-
-inline
-
- -

Definition at line 46 of file threads_util.h.

-
-

◆ _thread_info() [3/3]

+

◆ _thread_info() [2/2]

@@ -201,7 +172,7 @@

-

Definition at line 51 of file threads_util.h.

+

Definition at line 48 of file threads_util.h.

diff --git a/thread__scanner_8cpp_source.html b/thread__scanner_8cpp_source.html index e720468df..3fbbcc53d 100644 --- a/thread__scanner_8cpp_source.html +++ b/thread__scanner_8cpp_source.html @@ -496,105 +496,106 @@
372 std::cout << std::dec << "TID: " << threadi.tid << "\n";
373 std::cout << std::hex << "\tStart : ";
374 resolveAddr(threadi.start_addr);
-
375 if (threadi.is_extended) {
-
376 std::cout << std::hex << "\tSysStart: ";
-
377 resolveAddr(threadi.ext.sys_start_addr);
-
378 std::cout << "\tState: " << threadi.ext.state;
-
379 if (threadi.ext.state == Waiting) {
-
380 std::cout << " Reason: " << threadi.ext.wait_reason << " Time: " << threadi.ext.wait_time;
-
381 }
-
382 std::cout << "\n";
-
383 }
-
384 std::cout << "\n";
-
385}
+
375
+
376 if (threadi.is_extended) {
+
377 std::cout << std::hex << "\tSysStart: ";
+
378 resolveAddr(threadi.ext.sys_start_addr);
+
379 std::cout << "\tState: " << threadi.ext.state;
+
380 if (threadi.ext.state == Waiting) {
+
381 std::cout << " Reason: " << threadi.ext.wait_reason << " Time: " << threadi.ext.wait_time;
+
382 }
+
383 std::cout << "\n";
+
384 }
+
385 std::cout << "\n";
+
386}
-
386
-
- -
388{
-
389 ThreadScanReport* my_report = new ThreadScanReport(info.tid);
-
390 if (!my_report) return nullptr;
-
391#ifdef _DEBUG
-
392 printInfo(info);
-
393#endif
-
394 bool is_shc = isAddrInShellcode(info.start_addr);
-
395 if (is_shc) {
-
396 if (reportSuspiciousAddr(my_report, info.start_addr)) {
-
397 return my_report;
-
398 }
-
399 }
-
400#ifndef _DEBUG
-
401 // if NOT compiled in a debug mode, make this check BEFORE scan
- -
403 my_report->status = SCAN_NOT_SUSPICIOUS;
-
404 return my_report;
-
405 }
-
406#endif
-
407 // proceed with detailed checks:
-
408 HANDLE hThread = OpenThread(
-
409 THREAD_GET_CONTEXT | THREAD_QUERY_INFORMATION | SYNCHRONIZE,
-
410 FALSE,
-
411 info.tid
-
412 );
-
413 if (!hThread) {
-
414#ifdef _DEBUG
-
415 std::cerr << "[-] Could not OpenThread. Error: " << GetLastError() << std::endl;
-
416#endif
-
417 return nullptr;
-
418 }
-
419
-
420 thread_ctx ctx = { 0 };
-
421 const bool is_ok = fetchThreadCtx(processHandle, hThread, ctx);
-
422
-
423 DWORD exit_code = 0;
-
424 GetExitCodeThread(hThread, &exit_code);
-
425 CloseHandle(hThread);
-
426
-
427 if (!is_ok) {
-
428 // could not fetch the thread context and information
-
429 my_report->status = SCAN_ERROR;
-
430 return my_report;
-
431 }
-
432#ifdef _DEBUG
-
433 std::cout << " b:" << ctx.is64b << std::hex << " Rip: " << ctx.rip << " Rsp: " << c.rsp;
-
434 if (exit_code != STILL_ACTIVE)
-
435 std::cout << " ExitCode: " << exit_code;
-
436
-
437 if (ctx.ret_addr != 0) {
-
438 std::cout << std::hex << " Ret: " << c.ret_addr;
-
439 }
-
440 std::cout << "\n";
-
441#endif
-
442
-
443 if (exit_code != STILL_ACTIVE) {
-
444 my_report->status = SCAN_NOT_SUSPICIOUS;
-
445 return my_report;
-
446 }
-
447#ifdef _DEBUG
-
448 // if compiled in a debug mode, make this check AFTER scan
-
449 // (so that we can see first what was skipped)
- -
451 my_report->status = SCAN_NOT_SUSPICIOUS;
-
452 return my_report;
-
453 }
-
454#endif
-
455
-
456 is_shc = isAddrInShellcode(ctx.rip);
-
457 if (is_shc) {
-
458 if (reportSuspiciousAddr(my_report, ctx.rip)) {
-
459 return my_report;
-
460 }
-
461 }
-
462 if ((ctx.ret_addr != 0) && (ctx.is_managed == false)) {
-
463 is_shc = isAddrInShellcode(ctx.ret_addr);
-
464 if (is_shc) {
-
465 if (reportSuspiciousAddr(my_report, ctx.ret_addr)) {
-
466 return my_report;
-
467 }
-
468 }
-
469 }
-
470 return my_report;
-
471}
+
387
+
+ +
389{
+
390 ThreadScanReport* my_report = new ThreadScanReport(info.tid);
+
391 if (!my_report) return nullptr;
+
392#ifdef _DEBUG
+
393 printInfo(info);
+
394#endif
+
395 bool is_shc = isAddrInShellcode(info.start_addr);
+
396 if (is_shc) {
+
397 if (reportSuspiciousAddr(my_report, info.start_addr)) {
+
398 return my_report;
+
399 }
+
400 }
+
401#ifndef _DEBUG
+
402 // if NOT compiled in a debug mode, make this check BEFORE scan
+ +
404 my_report->status = SCAN_NOT_SUSPICIOUS;
+
405 return my_report;
+
406 }
+
407#endif
+
408 // proceed with detailed checks:
+
409 HANDLE hThread = OpenThread(
+
410 THREAD_GET_CONTEXT | THREAD_QUERY_INFORMATION | SYNCHRONIZE,
+
411 FALSE,
+
412 info.tid
+
413 );
+
414 if (!hThread) {
+
415#ifdef _DEBUG
+
416 std::cerr << "[-] Could not OpenThread. Error: " << GetLastError() << std::endl;
+
417#endif
+
418 return nullptr;
+
419 }
+
420
+
421 thread_ctx ctx = { 0 };
+
422 const bool is_ok = fetchThreadCtx(processHandle, hThread, ctx);
+
423
+
424 DWORD exit_code = 0;
+
425 GetExitCodeThread(hThread, &exit_code);
+
426 CloseHandle(hThread);
+
427
+
428 if (!is_ok) {
+
429 // could not fetch the thread context and information
+
430 my_report->status = SCAN_ERROR;
+
431 return my_report;
+
432 }
+
433#ifdef _DEBUG
+
434 std::cout << " b:" << ctx.is64b << std::hex << " Rip: " << ctx.rip << " Rsp: " << c.rsp;
+
435 if (exit_code != STILL_ACTIVE)
+
436 std::cout << " ExitCode: " << exit_code;
+
437
+
438 if (ctx.ret_addr != 0) {
+
439 std::cout << std::hex << " Ret: " << c.ret_addr;
+
440 }
+
441 std::cout << "\n";
+
442#endif
+
443
+
444 if (exit_code != STILL_ACTIVE) {
+
445 my_report->status = SCAN_NOT_SUSPICIOUS;
+
446 return my_report;
+
447 }
+
448#ifdef _DEBUG
+
449 // if compiled in a debug mode, make this check AFTER scan
+
450 // (so that we can see first what was skipped)
+ +
452 my_report->status = SCAN_NOT_SUSPICIOUS;
+
453 return my_report;
+
454 }
+
455#endif
+
456
+
457 is_shc = isAddrInShellcode(ctx.rip);
+
458 if (is_shc) {
+
459 if (reportSuspiciousAddr(my_report, ctx.rip)) {
+
460 return my_report;
+
461 }
+
462 }
+
463 if ((ctx.ret_addr != 0) && (ctx.is_managed == false)) {
+
464 is_shc = isAddrInShellcode(ctx.ret_addr);
+
465 if (is_shc) {
+
466 if (reportSuspiciousAddr(my_report, ctx.ret_addr)) {
+
467 return my_report;
+
468 }
+
469 }
+
470 }
+
471 return my_report;
+
472}
static bool dumpSymbolInfo(HANDLE hProcess, ULONG_PTR addr)
@@ -617,7 +618,7 @@
static std::string translate_thread_state(DWORD thread_state)
-
virtual ThreadScanReport * scanRemote()
+
virtual ThreadScanReport * scanRemote()
bool reportSuspiciousAddr(ThreadScanReport *my_report, ULONGLONG susp_addr)
size_t enumStackFrames(IN HANDLE hProcess, IN HANDLE hThread, IN LPVOID ctx, IN OUT thread_ctx &c)
bool resolveAddr(ULONGLONG addr)
diff --git a/thread__scanner_8h_source.html b/thread__scanner_8h_source.html index 0633f70c1..929934fc0 100644 --- a/thread__scanner_8h_source.html +++ b/thread__scanner_8h_source.html @@ -243,7 +243,7 @@
ThreadScanner(HANDLE hProc, bool _isReflection, const util::thread_info &_info, ModulesInfo &_modulesInfo, peconv::ExportsMapper *_exportsMap)
-
virtual ThreadScanReport * scanRemote()
+
virtual ThreadScanReport * scanRemote()
bool reportSuspiciousAddr(ThreadScanReport *my_report, ULONGLONG susp_addr)
size_t enumStackFrames(IN HANDLE hProcess, IN HANDLE hThread, IN LPVOID ctx, IN OUT thread_ctx &c)
bool resolveAddr(ULONGLONG addr)
diff --git a/threads__util_8cpp.html b/threads__util_8cpp.html index 7887efa58..3df5fdd63 100644 --- a/threads__util_8cpp.html +++ b/threads__util_8cpp.html @@ -113,8 +113,8 @@ - - + +

Functions

bool pesieve::util::query_thread_start (IN DWORD tid, OUT ULONGLONG &startAddr)
 
bool pesieve::util::query_thread_details (IN DWORD tid, OUT pesieve::util::thread_info &info)
 
diff --git a/threads__util_8cpp_source.html b/threads__util_8cpp_source.html index c2067abfa..3595fa976 100644 --- a/threads__util_8cpp_source.html +++ b/threads__util_8cpp_source.html @@ -108,7 +108,7 @@
13 namespace util {
14
-
15 bool query_thread_start(IN DWORD tid, OUT ULONGLONG& startAddr)
+
16 {
17 static auto mod = GetModuleHandleA("ntdll.dll");
18 if (!mod) return false;
@@ -120,148 +120,147 @@
24 HANDLE hThread = OpenThread(thAccess, 0, tid);
25 if (!hThread) return false;
26
-
27 ULONG returnedLen = 0;
-
28 NTSTATUS status = pNtQueryInformationThread(hThread, ThreadQuerySetWin32StartAddress, &startAddr, sizeof(startAddr), &returnedLen);
-
29 CloseHandle(hThread);
-
30
-
31 if (status != 0 || returnedLen != sizeof(startAddr)) {
-
32#ifdef _DEBUG
-
33 std::cerr << "Failed to query thread: " << std::hex << status << "\n";
-
34#endif
-
35 return false;
-
36 }
-
37 //std::cout << "\tStart: " << std::hex << startAddr;
-
38 return true;
-
39 }
+
27 bool isOk = false;
+
28 ULONG returnedLen = 0;
+
29 LPVOID startAddr = 0;
+
30 NTSTATUS status = 0;
+
31 status = pNtQueryInformationThread(hThread, ThreadQuerySetWin32StartAddress, &startAddr, sizeof(LPVOID), &returnedLen);
+
32 if (status == 0 && returnedLen == sizeof(startAddr)) {
+
33 info.start_addr = (ULONGLONG)startAddr;
+
34 isOk = true;
+
35 }
+
36 CloseHandle(hThread);
+
37 return isOk;
+
38 }
-
40
-
41 }; // namespace util
-
42}; // namespace pesieve
+
39
+
40 }; // namespace util
+
41}; // namespace pesieve
+
42
43
-
44
-
45bool pesieve::util::query_thread_details(IN OUT std::map<DWORD, pesieve::util::thread_info>& threads_info)
-
46{
-
47 for (auto itr = threads_info.begin(); itr != threads_info.end(); ++itr) {
-
48 pesieve::util::thread_info& info = itr->second;
-
49 if (!query_thread_start(info.tid, info.start_addr)) return false;
-
50 }
-
51 return true;
-
52}
-
53
-
-
54bool pesieve::util::fetch_threads_info(IN DWORD pid, OUT std::map<DWORD, thread_info>& threads_info)
-
55{
-
56 AutoBuffer bBuf;
-
57
-
58 NTSTATUS status = STATUS_UNSUCCESSFUL;
-
59 while (status != STATUS_SUCCESS) {
-
60 ULONG ret_len = 0;
-
61 status = NtQuerySystemInformation(SystemProcessInformation, bBuf.buf, bBuf.buf_size, &ret_len);
-
62 if (status == STATUS_INFO_LENGTH_MISMATCH) {
-
63 if (!bBuf.alloc(ret_len)) {
-
64 return false;
-
65 }
-
66 continue; // try again
-
67 }
-
68 break; //other error, or success
-
69 };
-
70
-
71 if (status != STATUS_SUCCESS) {
-
72 return false;
-
73 }
-
74
-
75 bool found = false;
-
76 SYSTEM_PROCESS_INFORMATION* info = (SYSTEM_PROCESS_INFORMATION*)bBuf.buf;
-
77 while (info) {
-
78 if (info->UniqueProcessId == pid) {
-
79 found = true;
-
80 break;
-
81 }
-
82 if (!info->NextEntryOffset) {
-
83 break;
-
84 }
-
85 size_t record_size = info->NextEntryOffset;
-
86 if (record_size < sizeof(SYSTEM_PROCESS_INFORMATION)) {
-
87 // Record size smaller than expected, probably it is an old system that doesn not support the new version of this API
-
88#ifdef _DEBUG
-
89 std::cout << "The new version of SYSTEM_PROCESS_INFORMATION is not supported!\n";
-
90#endif
-
91 break;
-
92 }
-
93 info = (SYSTEM_PROCESS_INFORMATION*)((ULONG_PTR)info + info->NextEntryOffset);
-
94 if (!peconv::validate_ptr(bBuf.buf, bBuf.buf_size, info, sizeof(SYSTEM_PROCESS_INFORMATION))) {
-
95 break;
-
96 }
-
97 }
-
98
-
99 if (!found) {
-
100 return false;
-
101 }
-
102
-
103 const size_t thread_count = info->NumberOfThreads;
-
104 for (size_t i = 0; i < thread_count; i++) {
-
105
-
106 const DWORD tid = MASK_TO_DWORD((ULONGLONG)info->Threads[i].ClientId.UniqueThread);
-
107 auto itr = threads_info.find(tid);
-
108 if (itr == threads_info.end()) {
-
109 threads_info[tid] = thread_info(tid);
-
110 }
-
111 thread_info &threadi = threads_info[tid];
-
112 threadi.is_extended = true;
-
113 threadi.ext.sys_start_addr = (ULONG_PTR)info->Threads[i].StartAddress;
-
114 threadi.ext.state = info->Threads[i].ThreadState;
-
115 threadi.ext.wait_reason = info->Threads[i].WaitReason;
-
116 threadi.ext.wait_time = info->Threads[i].WaitTime;
-
117 }
-
118 return true;
-
119}
+
44bool pesieve::util::query_threads_details(IN OUT std::map<DWORD, pesieve::util::thread_info>& threads_info)
+
45{
+
46 for (auto itr = threads_info.begin(); itr != threads_info.end(); ++itr) {
+
47 pesieve::util::thread_info& info = itr->second;
+
48 if (!query_thread_details(info.tid, info)) return false;
+
49 }
+
50 return true;
+
51}
+
52
+
+
53bool pesieve::util::fetch_threads_info(IN DWORD pid, OUT std::map<DWORD, thread_info>& threads_info)
+
54{
+
55 AutoBuffer bBuf;
+
56
+
57 NTSTATUS status = STATUS_UNSUCCESSFUL;
+
58 while (status != STATUS_SUCCESS) {
+
59 ULONG ret_len = 0;
+
60 status = NtQuerySystemInformation(SystemProcessInformation, bBuf.buf, bBuf.buf_size, &ret_len);
+
61 if (status == STATUS_INFO_LENGTH_MISMATCH) {
+
62 if (!bBuf.alloc(ret_len)) {
+
63 return false;
+
64 }
+
65 continue; // try again
+
66 }
+
67 break; //other error, or success
+
68 };
+
69
+
70 if (status != STATUS_SUCCESS) {
+
71 return false;
+
72 }
+
73
+
74 bool found = false;
+
75 SYSTEM_PROCESS_INFORMATION* info = (SYSTEM_PROCESS_INFORMATION*)bBuf.buf;
+
76 while (info) {
+
77 if (info->UniqueProcessId == pid) {
+
78 found = true;
+
79 break;
+
80 }
+
81 if (!info->NextEntryOffset) {
+
82 break;
+
83 }
+
84 size_t record_size = info->NextEntryOffset;
+
85 if (record_size < sizeof(SYSTEM_PROCESS_INFORMATION)) {
+
86 // Record size smaller than expected, probably it is an old system that doesn not support the new version of this API
+
87#ifdef _DEBUG
+
88 std::cout << "The new version of SYSTEM_PROCESS_INFORMATION is not supported!\n";
+
89#endif
+
90 break;
+
91 }
+
92 info = (SYSTEM_PROCESS_INFORMATION*)((ULONG_PTR)info + info->NextEntryOffset);
+
93 if (!peconv::validate_ptr(bBuf.buf, bBuf.buf_size, info, sizeof(SYSTEM_PROCESS_INFORMATION))) {
+
94 break;
+
95 }
+
96 }
+
97
+
98 if (!found) {
+
99 return false;
+
100 }
+
101
+
102 const size_t thread_count = info->NumberOfThreads;
+
103 for (size_t i = 0; i < thread_count; i++) {
+
104
+
105 const DWORD tid = MASK_TO_DWORD((ULONGLONG)info->Threads[i].ClientId.UniqueThread);
+
106 auto itr = threads_info.find(tid);
+
107 if (itr == threads_info.end()) {
+
108 threads_info[tid] = thread_info(tid);
+
109 }
+
110 thread_info &threadi = threads_info[tid];
+
111 threadi.is_extended = true;
+
112 threadi.ext.sys_start_addr = (ULONG_PTR)info->Threads[i].StartAddress;
+
113 threadi.ext.state = info->Threads[i].ThreadState;
+
114 threadi.ext.wait_reason = info->Threads[i].WaitReason;
+
115 threadi.ext.wait_time = info->Threads[i].WaitTime;
+
116 }
+
117 return true;
+
118}
-
120
-
-
121bool pesieve::util::fetch_threads_by_snapshot(IN DWORD pid, OUT std::map<DWORD, thread_info>& threads_info)
-
122{
-
123 HANDLE hThreadSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
-
124 if (hThreadSnapShot == INVALID_HANDLE_VALUE) {
-
125 const DWORD err = GetLastError();
-
126#ifdef _DEBUG
-
127 std::cerr << "[-] Could not create threads snapshot. Error: " << std::dec << err << std::endl;
-
128#endif
-
129 return false;
-
130 }
-
131 THREADENTRY32 th32 = { 0 };
-
132 th32.dwSize = sizeof(THREADENTRY32);
-
133
-
134 //check all threads in the process:
-
135 if (!Thread32First(hThreadSnapShot, &th32)) {
-
136 CloseHandle(hThreadSnapShot);
-
137#ifdef _DEBUG
-
138 std::cerr << "[-] Could not enumerate thread. Error: " << GetLastError() << std::endl;
-
139#endif
-
140 return false;
-
141 }
-
142 do {
-
143 if (th32.th32OwnerProcessID != pid) {
-
144 continue;
-
145 }
-
146 const DWORD tid = th32.th32ThreadID;
-
147 auto itr = threads_info.find(tid);
-
148 if (itr == threads_info.end()) {
-
149 threads_info[tid] = thread_info(tid);
-
150 }
-
151 } while (Thread32Next(hThreadSnapShot, &th32));
-
152
-
153 CloseHandle(hThreadSnapShot);
-
154 return true;
-
155}
+
119
+
+
120bool pesieve::util::fetch_threads_by_snapshot(IN DWORD pid, OUT std::map<DWORD, thread_info>& threads_info)
+
121{
+
122 HANDLE hThreadSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
+
123 if (hThreadSnapShot == INVALID_HANDLE_VALUE) {
+
124 const DWORD err = GetLastError();
+
125#ifdef _DEBUG
+
126 std::cerr << "[-] Could not create threads snapshot. Error: " << std::dec << err << std::endl;
+
127#endif
+
128 return false;
+
129 }
+
130 THREADENTRY32 th32 = { 0 };
+
131 th32.dwSize = sizeof(THREADENTRY32);
+
132
+
133 //check all threads in the process:
+
134 if (!Thread32First(hThreadSnapShot, &th32)) {
+
135 CloseHandle(hThreadSnapShot);
+
136#ifdef _DEBUG
+
137 std::cerr << "[-] Could not enumerate thread. Error: " << GetLastError() << std::endl;
+
138#endif
+
139 return false;
+
140 }
+
141 do {
+
142 if (th32.th32OwnerProcessID != pid) {
+
143 continue;
+
144 }
+
145 const DWORD tid = th32.th32ThreadID;
+
146 auto itr = threads_info.find(tid);
+
147 if (itr == threads_info.end()) {
+
148 threads_info[tid] = thread_info(tid);
+
149 }
+
150 } while (Thread32Next(hThreadSnapShot, &th32));
+
151
+
152 CloseHandle(hThreadSnapShot);
+
153 return true;
+
154}
#define MASK_TO_DWORD(val)
Definition iat_finder.h:9
-
bool query_thread_details(IN OUT std::map< DWORD, thread_info > &threads_info)
-
bool fetch_threads_by_snapshot(IN DWORD pid, OUT std::map< DWORD, thread_info > &threads_info)
-
bool query_thread_start(IN DWORD tid, OUT ULONGLONG &startAddr)
+
bool fetch_threads_by_snapshot(IN DWORD pid, OUT std::map< DWORD, thread_info > &threads_info)
NTSTATUS(NTAPI *_RtlCreateProcessReflection)(HANDLE ProcessHandle
+
bool query_threads_details(IN OUT std::map< DWORD, thread_info > &threads_info)
+
bool query_thread_details(IN DWORD tid, OUT pesieve::util::thread_info &info)
DWORD(__stdcall *_PssCaptureSnapshot)(HANDLE ProcessHandle
-
bool fetch_threads_info(IN DWORD pid, OUT std::map< DWORD, thread_info > &threads_info)
+
bool fetch_threads_info(IN DWORD pid, OUT std::map< DWORD, thread_info > &threads_info)
std::string info()
The string with the basic information about the scanner.
Definition pe_sieve.cpp:270
diff --git a/threads__util_8h.html b/threads__util_8h.html index 30df60c08..9e92b3d7a 100644 --- a/threads__util_8h.html +++ b/threads__util_8h.html @@ -126,8 +126,8 @@ - - + + diff --git a/threads__util_8h_source.html b/threads__util_8h_source.html index bad6839d1..f228609fd 100644 --- a/threads__util_8h_source.html +++ b/threads__util_8h_source.html @@ -141,46 +141,41 @@
40
- -
42 : tid(0), start_addr(0), is_extended(false)
-
43 {
-
44 }
+ +
42 : tid(_tid),
+
43 start_addr(0),
+
44 is_extended(false)
+
45 {
+
46 }
-
45
-
- -
47 : tid(_tid), start_addr(0), is_extended(false)
-
48 {
-
49 }
+
47
+
+ +
49 {
+
50 this->tid = other.tid;
+
51 this->start_addr = other.start_addr;
+
52 this->is_extended = other.is_extended;
+
53 this->ext = other.ext;
+
54 }
-
50
-
- -
52 {
-
53 this->tid = other.tid;
-
54 this->start_addr = other.start_addr;
-
55 this->is_extended = other.is_extended;
-
56 this->ext = other.ext;
-
57 }
+
55
+
-
58
- -
-
60
-
61 bool query_thread_details(IN OUT std::map<DWORD, thread_info>& threads_info);
-
62
-
63 bool fetch_threads_info(IN DWORD pid, OUT std::map<DWORD, thread_info>& threads_info);
-
64
-
65 bool fetch_threads_by_snapshot(IN DWORD pid, OUT std::map<DWORD, thread_info>& threads_info);
-
66
-
67 }; // namespace util
-
68}; // namespace pesieve
-
bool query_thread_details(IN OUT std::map< DWORD, thread_info > &threads_info)
-
bool fetch_threads_by_snapshot(IN DWORD pid, OUT std::map< DWORD, thread_info > &threads_info)
+
57
+
58 bool query_threads_details(IN OUT std::map<DWORD, thread_info>& threads_info);
+
59
+
60 bool fetch_threads_info(IN DWORD pid, OUT std::map<DWORD, thread_info>& threads_info);
+
61
+
62 bool fetch_threads_by_snapshot(IN DWORD pid, OUT std::map<DWORD, thread_info>& threads_info);
+
63
+
64 }; // namespace util
+
65}; // namespace pesieve
+
bool fetch_threads_by_snapshot(IN DWORD pid, OUT std::map< DWORD, thread_info > &threads_info)
struct pesieve::util::_thread_info_ext thread_info_ext
+
bool query_threads_details(IN OUT std::map< DWORD, thread_info > &threads_info)
DWORD(__stdcall *_PssCaptureSnapshot)(HANDLE ProcessHandle
struct pesieve::util::_thread_info thread_info
-
bool fetch_threads_info(IN DWORD pid, OUT std::map< DWORD, thread_info > &threads_info)
+
bool fetch_threads_info(IN DWORD pid, OUT std::map< DWORD, thread_info > &threads_info)
@@ -190,12 +185,11 @@ - - -
_thread_info(const _thread_info &other)
+
_thread_info(const _thread_info &other)
+

Functions

bool pesieve::util::query_thread_details (IN OUT std::map< DWORD, thread_info > &threads_info)
 
bool pesieve::util::query_threads_details (IN OUT std::map< DWORD, thread_info > &threads_info)
 
bool pesieve::util::fetch_threads_info (IN DWORD pid, OUT std::map< DWORD, thread_info > &threads_info)
 
bool pesieve::util::fetch_threads_by_snapshot (IN DWORD pid, OUT std::map< DWORD, thread_info > &threads_info)