From 0f7e547f74519a896aaf46749a69539a29ca2f4a Mon Sep 17 00:00:00 2001 From: "mr.exodia" Date: Mon, 18 Nov 2013 22:12:42 +0100 Subject: [PATCH] DBG: updated TitanEngine (hardware breakpoints for x64 now work) PROJECT: updated help DBG: you can now set & delete hardware breakpoints (x32+x64) GUI: added hardware breakpoint delete in context menu GUI: changed command bar shortcut to CTRL+ENTER --- bin/x32/TitanEngine.dll | Bin 544256 -> 542720 bytes bin/x64/TitanEngine.dll | Bin 603136 -> 603136 bytes help/x64_dbg.wcp | 142 ++++++------ x64_dbg_dbg/_exports.cpp | 1 - x64_dbg_dbg/_global.h | 1 + x64_dbg_dbg/addrinfo.cpp | 6 +- x64_dbg_dbg/breakpoint.cpp | 17 +- x64_dbg_dbg/breakpoint.h | 1 + x64_dbg_dbg/debugger.cpp | 203 ++++++++++++------ x64_dbg_dbg/debugger.h | 4 +- x64_dbg_dbg/math.cpp | 15 +- x64_dbg_dbg/sqlhelper.cpp | 16 +- x64_dbg_dbg/sqlhelper.h | 3 +- x64_dbg_dbg/x64_dbg.cpp | 4 +- .../Project/Src/Gui/CPUDisassembly.cpp | 48 ++--- x64_dbg_gui/Project/Src/Gui/CPUDisassembly.h | 8 +- x64_dbg_gui/Project/Src/Gui/MainWindow.ui | 2 +- 17 files changed, 272 insertions(+), 199 deletions(-) diff --git a/bin/x32/TitanEngine.dll b/bin/x32/TitanEngine.dll index f6608807f45b02b78f944ba3cd79e87767ac10b0..7211f16b4a2c1dc19ed8120412061a6d49e54d11 100644 GIT binary patch delta 42529 zcmb@v2~-qE&^W$b!zF^Cu-rE&D4-~KB8m!1RB!gww1s_G;8%f0jG zd2h2|E}G9~C8&)5?x?`KF0)jrW(g|Q9-R+sB}87c(513Z;9LwgpD%>!t}}njbu%g1 zmdec1SwbM2qiY5J%ukmN{*5=9)Zmhzkt$VW)3HNFj2fg;%}(JULf(fSm1SFCA#0Yo z*3350xmQZn#_5|gH0JafUp`WeM?vGl{?)^gUmlD(2u_lJpp-S;x-yiM(_M^hoOGW^xJ z2+?|ku9K--{~QIs6E74YCtHso(D0Xigg-0n!XxDLx>6OZNiQWe}&eFUI8?0+-9$SYuJvl{;7@-r*o9Hs`sdXpK+tlH8ap+`SU5h5H zP}j;r10krJY0=J{bDKI-cfumjgX0sg#fx&^7N&6bI#*H>W^!60zBm|Q1dP*j(#l0K8}}8@~&~`5Yc+H&eO7` z70+MXlIJWPLAY8$3@o2NT6Wu*H& zDm7*JfwlC=j?DIwW;`<(`t~g<&xtQEou}*dW!Jhq$K*8?W}^GNvejQYGB&Slcit#- zHoGif#)ilR$4xDH&4~(oZH~7zmq{j8_c$Kp#L3J^Pfa^aJ*&vme`Gv$+`lo;IQ(T= z#?h#H{Z;AP7!`Tf(?(IOslr(ocEYZzrO%rh9o2Wf}J*f*hPT9iwVb&hB9*^jy< zXFds$aZrX18?b&$+P!x~Jz{S*gzQyce6M3q0=;HfWB)ph`0kK0`$hj#|x;C2OSal)yOZ z*sA!776k?qo|5!}Dh<(1Iqz)iAg5OntTG{4vY4Y=e|{*_=&UciW=T4Wi@oeO&8p=C zHHkQpDlI7+elZEyW8J~a&DkE^^UK%Sow74mJQ*w3J-K>>ZPM+ymdbkR>Rr!lu&_`m zp2gLAwklcrS(ks^r$Oe&;BRz0ulqnyq3+uCF<>`G*W*S!VOwz{wSi^9M;H=ymNz}^ zu21_2?4#ASzv;m?=u&Ss1D`_O?3>4+&TL)MtxN2BS(BfmnR(1AGh0b2*8Ozbu@`?A z<4m&pucmQn-IISMTVxxwbGUYnFIHpxCfwGT$+gVWow@Ba{Qu`lsM>T{9Hk>uYC9$LOlWz!RHoD1abbOQ z!|!xtJ9L}wG-Z9tZru5jnRCs>^+7B1j|NOEIremznqM zbr5(?r4~rdi0y5)!3tlL%4l8yYs+=r@}9?0SiYtD<^@&hCEe|ExHU=Qmbt zr{-A+?a?TQ7K~Igz4GaUYQ)s5td4H;eYgM5Ep;=tH0+Ca74nuYdGJ9?&pr58OI!WB zrEb*H$j|??r9?AnPKOpMo!kAUA2hj!f?p=Squ_%klR5IQCcFLaY{7vvw~o+7{2ue} zL;HKods8g$m1n^D1ggURugpSI+ia79LnaBlGbHZ`I<4dg787*qrNeBT zF8g60wp4fcVK%$0Yx>BU?bXFR8o~^^EsyrG&br|ht{#nY2#?xtCG~^J<-syGZS0%) zf^rLuWSOH|ThWG{EBm=(9OQ+bNG!G}W5qEh#W5Cz7jwYEX*(32r>DisLnb+bMIZL^ zkOe(s=xNKp;pHJO{!PzF{w)+<_?$k4SBF$8rs5D2{tEmxMt(Jsp%xr!Aw%U?TmG8Y z$CQJ;WU%}iDQB+3q4_dYepNA!*o;F}z!592GJ%#dRHjjRmB}=hpf1z{N*8*W4fD^hw9}aLSJwkX2nx`snUYuCPt9Otaxg&46-$Xyk^A< zMo=UNnOf%)idpeggz#B&ekfqhj#=@aCwifP1;5s$n$Xakdfz4{b zDx#3r$yqWh-m(@f6D)&?Wb<0EOtcL4n)ONDmj`81>XDuP@}Ln*{^7FjPa6T;$}JmP zdC0_7%(X~1sI5u_+pN>Tr-!V_Wu&6n7=u9<`N~;W{>r>8>#s$ueM2$HwpeYk+{{+a zL4|^-P%@c7RtB{#y>4UaX@?2S-&>T^`#Zx#=k>~kjnsv|3SdKZgI`6MjU>^Hw!lma zu-Enf%c|_ytAWhyvv)vSwHIN@9-Y;nh)I?L2kR35K1B+_^YsN?^EZvk9RG1)?9;Lq zZ~kU13vEuY#=4|xM>b6NS+&2}FxfJ|KW8)hvMtrs!2030j7_uaOZXLQLY_o3qy>Gk zGq65v112Tb{#cLoOxPS|hAT{%i&Kgb(`>(;&fLsM z4Lu!NE}5p_Srg{L*5OkV_J)~ag(>r9nP_dsl35ZCHe=15la!L2HDu})+^^cbnJ`GI zwYbHMEo>l=Da6H#xL(qVWPDkK?>TcN_k4IOQ7ktHzuUVv`KFg;)|o-NJlg> z_bVoqa75y{!1KjPZ(be}avB$u1OF`La0QlYp%kpJqcj;Fc#v=qkThb!L6dkXZ#0Bg?-BH3BLaeEmMQVxqKx4onYv$RTgXNk?w;nU)sEHFQr6JZkiJ)RNCrid7<46vD z8GbY;P)3uiF{pPF(~D)Aid)JQw+zr%S+hyNlJq&Y%!aY<`oj8b3u7@DYRAsA1T?j0 zMf4@wGk1D?V^1;|gD2_BIYwr%_7he9l;2f3>TH&*jr~1d`Z8v*nyFa~4FNCIykK?o z9n}n(V=sfjMqf`j5npf=w2NN6H5kb7oZl6nI1tJxtmnw)v1nZ7$o%MW#F3@2ICOJj z6YXP37H!Gn*J^LQQq1z{vADsBwWm@KoLH(&PXigdaw3_?&7!cEGi$^;<9KJ*)Sl8l zvgyb7#NE!U4eNq`I!orQ@61U#Yo)N&Ny%t4<n& z#B$O#_8hO=X^S4e!XGc@m`A?eLio>t;ta)5yw5 zC;vjBer6l&>C4=B0s-W-&@<$7N`2elBwv;wbC*1DyyQ!Ib23)>GWT|}#~o$XyQtiz zkUL?9b4t8J>|HM=!JxiG{NYJcDXE0#6^?4Ov3KGn!)@&4$AbKn@(wXHY?Qn?O%()M zlX@C$(wzip>up@+$3A%%t-wG1So^x%pC&2kLSX=G(~yPO$qsgIRl&owVkImSF4|Zn&QmXEb^n|bm_G(-e}GKq0(2{u+c0CyR{`M zf^bS(){XhnAJ)xTukFlcFv_QnVxx%Sq9`_v9v0E0 ze!Q?#G&RQyi0&VEVmf6`U*t6Scd-}EEp^0nm zm>febcgGDe%ojRo@k|U$XAL-pVAeq2?-Nqk%nm1Zr_#0`m$q=lMm?ys3r_68S^&)E zr6cfR4>A;NIEo-xW}|Q0lhtF)R@UT|lgKU^70Xtz-e?_1f!(mYfCoKG7W2Nr{?7? zNDnP~LrOj+K}u2MRSla9>kBa}o|UjVXqiAQs)GUaFt4LDNZ0drAa7#=Ns$pGYYfhQ z%Q|>6f$dvuL)_91R(VG>r5qQ5h>k`RbxSR;?tG@5`cC?_n zlB!C0D)(3^ctTms60+;X%U&yiWmmLh1P)7L-XCMOPyQF?8XwQb{Qrbm^)coH$t;g( z?wG=2+HtDHo&u*>AiM(i(|xDRU;E|=^rK!Vs?Fw^!F+~O0Y>I@==lmffM~t#FBd=aV zwaKnJxvXg3m!x?#hV^B=0<368=tF|+MDz6%GBpd1IBBE&ETsA0R2#&eeuI^8S!2LW zeOVb3Fry!HqQ}I3>fpF4=Ju zVoQ*|R4q;;eWJovX>4+kfvTKq^nnjjgo5lxX%_*Brh+MNRO8!oEAR!`1|?MEFKKKk zTq@RokT?h8cvH1(M0p=?^)XIsP#@?lC!b z>F*j+RHg7>H)m{x9rwTUR25dC%0RI-^pBdQW-Mn$~%4}bJ4kmuU} zCQBPzDPu?=(^IM#Us6VnqT4^;^s*vh!l?#b_%r$*FkG9im!{b))f9 zJm;4D{-${PHF_yte4l=gPUqGqOQ)HIn>~A9DQ%foZ#1(FqrXJ@8%ck+>F*x>J)*xq z=#NM7qb<@NM(r{fjJ`#7byk){PIh^|3abaOZgqz3CQ@2UnY%G=AZre>45toc4Z&4Nrnlz>S8Q0)FNKw5p4Yo zxvyqjL&Iutut=YEIF*kAbQ?|+=96OVG@Ois-{;_j;p}tRJRhG8r)h7?E4|kUwg%wF z96U0T1;fo3NPwk!?I<>x!Qp3EcMNL+_zYW*VWOkuGp;JgSl#`i)YR5!uP*x?ua6;K z<@~;QEb9Ps{=~?!)Wk7=Vj6$;{u93#%SzNKzbV~F>XV1lLn)jd^&5taW1jHyY>Xer zyj<$iY5<|HiD4-HsnJMf^Yr34<^<6ADXz<9dG>Ml-r-WL#P;{F&3M++V##WQp|CtB z3_GnLW1?g{5l~r*`^U4E+%x}cJS(ohk_wZWOXeX!(w=kg;oJ$VN&P_|f_vY?lM|>j zM$X5|3G6dZ*#UoT$mywg*vA7;7RTOyc~J4NO9OE7MCO{tJ>S4Xw5G+?=zR?jGfHFb z$~;rtV%bj(JRYy1ZcC7ol_c3=O_7s~UhA>wH`Sy%vYD7mD}$jI#Gj;gi}A%o*2zJx zLXII6&)Z3ZyEuaT$#U2QGd^ebPI3lo4lJIzmXH2&W0w3=WImC1>WwEpXNh3DNbm6l z8_Qt!ZFHYZcJr}GtT!1j|pg%R4RWlegPk-u5_6vi8Ir>fcWDvvt+4|Ab$QT8C zQSVa7G62eE>L*QSdFIe!s{W0Z{mdXSPk(bR`%?hbIs8e-y4P7qvMfHAwA0ahA!}79 zN%@SMj+qNtKXrq%)isVQca^!tXZQ)vE@YqDw>$E2R|g!yo{QKK7PEM{%t*NGUr znB_o40Uln={(+~{upDU&Pdtckko5xpgBZJnb%GA3aNZKuMZK#09Y*82&g^oOmXL`2 zF&RC-V%=fTN&WDzn2y0u#}_YS-PD2m|5e0kzrO!6)|J7mvAA|Qn{RoQV%UY`Vzn^E z0WH82(^s$xDEJY3tYp*SpCfp2C7S^Wld%6P)(z@R!gZ@?u$=e;AFN{jpc=2Qx0<;! zC_SVUa6N=&C2SE4o`~JoP~++y#PT&n$?#qOqNL9*bSq^U>H!qVD=g1#MH2+Awj~+J zHkzZyd8N!5#_4fWDH-^^^mw+Eje*$*u=85xQ+GFE<5rCJ#aj$%FQ~0E_!^{aR7&@D z;{3I2B%IlgY#nRr`Q$rAj=$qQB#p{77~ad=XeY+4W1m6&{rJN=77zP>K-=}KtNF_x zzM8{C!So-g4L6D{HsA(JJ9ND)&p|)Vc)OW1{kv)g$-;F zSZ&9w4J^g>2}MaWDDJ7yxo#Vt-M~hJb`N&?hHbDf-ue!qq8lb`#kb$ETu^ProQ*8a z_U5Sf%j>q_uNzr9gl@r3n`l?Yv~2zCP3#-oLpQuH|RC&dW%)Y3^cxmqrwA;=ank=Lw9^b{J?X07B zGtw40^+ferK33IU^jl$BvVk6@{9STxh2L#wUgnwHf_3kYx3-fICw+~cJ4m5F>WoqJ ztk<6s^Cxp7po18ZiMcyiD~f$?-oeJgmTl-&#sXb<7BR=cf~Jn_KE`>YDmg_u(Fuo? z(HykD1! z0@(LPm%Su-mu;|kFM9&(SK`Ed%)5TUO1TpXjt2C|y_+H}?1>xq(LCO6CEllGcgGKt z11NANk||%YAVqTPi9SED+2FArxBb9+smCpQN0U)qWG+Md{S-%hG9Ksers5w+{E5~0b-P2P&SLFK^R;Q{`;HB8@01E`wQp`EPT7l16(k+2_^#F5o z$ouMDC46oSy+DDFuk>}w$>WBLUty1f>}$ADf-ep-jrGhDxotxWI;e7{;Pyyn2Ql?= z=poh@rcA+uhu9PdTa1y1S*V3!k%AX*Mvz0Yn(L52ym*+RO9jRhc@W8=fkg;MSd>?9 z5|?Aqm)dioY#B+vvZtF|!r>YzYZVSX!e&B;?pS$*^wRD{IP^#MCA3+Dzx~KE;mSfR zKT0!i+EF$D(&dj`kh~lx9%CKt_Rg}Zc=;7xJ3)C< z=YEv8`&?{tlEivmlz!z&KK)Ebj5$p?D`tO`^TupkdYVN;Y-jxSG%4MkTFgE}G=^#M z(HXW7;uc~4Pc#v1omE?~W`TeCEWGv;DS^6?=zEs!hA~s|=d)}F{G5mL&#}uebOC0a zr#er~s4c3rWX}x!p7RvwfF?8X#Rcl!XEQM9B5A@^GcfNW*%6=5z;zdyZ;ReklC*

U(tRNZX@{3z}FYaig64_$4jg;lv?1gHWXDD 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 delta 43646 zcmb?@2V7Lg^Z4yNnskH%q(~95fQVv25wQSP^bQ1U6iXCQV*{hHfC4H$h|v?ruBfrM z*v=NaXzV6-O*CrEGnlB+C@OIO+4l}C$@kYje?A}Xy|-m{c6N4lW_EV7zxK&q>a*Q~ zxow&=Ggf8%yQcylD`u%ueI=+=2X(%zg|N=8hOQs$0u#F6w*^9o?k1~eS+|g~?WxXJ zI!g#(^K>ns9;>fQhI$RQnpDA(pY2qtc0pr58!>8-O4YPCPa@!b>G5*sR+!Hkr>!xw z53m_bzk4T6m@wh>8I62qR48zY7f){Qaoa2i2rnGRAK zs8mV;o>6QPVMp-mHJPjX#nhvBfzqS`k{1)c2WFvIV&0}itt|ugl;TbxS(kAPIA2{jGn1|Njt?~3+os~sHR-kKP zp@Hp7bh9j4n{#^8aO%Fd2&l~=iZ`^PJi7TwPo#CkG&EE^*(Oa_vqrczFTR?W%l90t zOSN>;jjB-(zFwkRSfiCWr*Z&|$c-BHz2req^FhdudLqU=(Mo6d;CS*B(Po0q%d)vO zFQ4C>mt37euv)-qf@9groRf|d{)T0JFOIpW=9I01^OjT8lc&%S>Ab9(Tl4by&3Vby zxjR#>F7yG1WjljEiw5Uc3qX}0^)RQBW%}hE$@EUt#7XxT>?|1C(wQyPotW~u=R&GA zW%%JW^hj@)?k&yy%V6l!C+|pxHpg_KuIJQfD_&yqs!}u2bK%aFQ(YKaxN~pTD04P{ zXZ@M$+j+hpk$-v9eRs;$k|P$UQ2*|!=H_ybXe8WE2fFfJq$KxCI!;5cFx7een zbJ?s&mv+8OV7J8vL(U27rbkke#R9+iG@U}uNq6QLD-`%GrIeK9kaOFaRI>A@^U)CA zfHH%V4C$;e#-M#1PTZ4YfK1oK!uYa;SjmcVnmweb}UGXIkHb-~pk~Q&s@*K)D}zCmWFUBk(rz5IngdJF zNN$wDIOv!%ZE4dSg9*=xe@Tt1bTOA}**_}e`OhfrS!{xIqfj^g@(|{&`|0vqR#$i9 zhn`N8W>?dJxX$H0R^o%<~t3ck7myW~->%Ij=mKsxhQD%j{coRwo1(7nohxj^&bN1>n7L+!nZ2|( zU$^|OOHckT_Ap5syppD^O)vhHV3BSp{ECZjZN9oUPl>ipC!AOJr+343{+eb&gOip@ z-|2>&68i+6X1JcRSEJkf^J2C~*XgdtOl~Drx9qO#@c++^P_xN0J4*AXR1ZqX`H&;Y zQjX61o*PTmh24u_({+>X1+mnf8}ChJ=3KCGaoG6&Aa_~pMLL^_F&1G*#|{+Zp9z=4 zj(yRGFJN2lyC`C@yBTN;dzsmak!EJG8YyEkwG>}ooT2;WzB9|vmE8}r8ku%nt6C9oxt&P^FfZhGbG3$=&`ZnGM?$qzmL&pq`p_SEFd_YLx%rv3U+Pgnl> zkDj*pXHPw-r}h*7wWowLNlxdcD&3O@K_7Lw3WKc^-ed4lmq}mwN0*;Gs%60wY4Od_ z+5Fb|{YTPooj+KE`KTQGZ6x#51xspI^Dn3gr@vEkP3_Z7a*mnA^1+avkJlwhE^uSK zZoG7yb=0+f+?%EAbdS^7H@eElwV0@L{rxj`Q8)GXgRG`5tkk{st8oNJ?YEr9!Q|>- z8CqdXxi;sBg+{tHPM1*{%2w{&QaTQH20!x#IQYfR*uRdMIHjGV*+tW+-4dFKrDF+3 zrUi~EXSH-k-k9&~`MQYJ@f73j^VJqh&Ftk;2?ljwv0$Hf#IEQ_a? z`^r}7qZ8BmbC7Ony1{S4<-8~hyd;3r&I4~gXJ(_Qura}2?M?8~N6Qrwq<|s1xOZpS z=Q^+QAK1v9f0ait-Scw)or#rK7)!@d=UIcIc;>=}6^&%|%!bKwAGLFt)9$UT5?FuS zBCzR>{RqCYR>&eUMVi+SJD9NEY$Gl)VNY2N6irzj))%*#G7oy3GiBba5B|X)>(SPX zeZ?$rnHh6)?PG*g;J2$5Uqt$aoC`T3nfAepW~??_hku%}a%PUD=FEo;L>mj1z!Gt= z1#40(QK`vSWLn5`9+vIhOb{g1THI>E=GQc(g)W=cC8EBj!o*&>m5RM;FpX=%zc%Qa zfCp=^`YaWHt-+456kKn~8nSr(kCyCj0KXM@#)gGA@FR)D*Q_{gLZU&vYo$PX1Zgc^ z#2J(${Ftu}rspZsKn%8JJ{J5Vz?3TYv1LJ7_310@Xr@Kp_jY;T5MrWDAf@EAQmy7W znQj55+sjReOAF)6W3~BF<`0`iBgp39`M}U8>=IKgWriD_m z)RFS!^njxTgA$3~bB>y5rL6G;PPE}|$?yVfcylD4l!}_w9Gm=@a;b;XY>p|1ZV}L& z*AQ*^M>=q5(_X29`I3=YF4g(4C?s>1Fb+pCCkTjD?1W?g9tc;ogmRzn}*!jQRW4F)^Ct?<1zrvwU%URD?kq*l!BjDNTi z$Y`{!#lB{pa78WVM~@S=SR&J)hZ~#V)RTD8o(#Ui!aJ`OrE5k{T<^x(P_19xSU?PK9M!j~-wX)BKfK`1OI2wIw75)E~~?JPx60k*d> zPFzJlO_5f#!RB>XtJr92Tt#XMReY-ucQYlWtE9eELnEn)5|S_d)Xh?poOCAMkGVjUZO3MQnHzPKs7Ma|;mX4Fo=rv=_M)Zc8znsa>YTCjDjA?jPO z)rN&jaBW-mmZoEI1ZzT%A0t>ZXlOtmj(tcw=2_G016(*U$9m}pw&TS2!cFbjDpn7B zbYOAxSk-~~!UV*U4y+HWjouw;U9XLy9oZD-fqOdAIJskKN7jze42)zw9Nnt{(=c%@ zyOX=VFp|w=R8AeuMiIt&(QG=^;Q6jBnK^L?jhK_ZZ#NRy zOpOz|Q|+3c*0%6O{}`(6ffHg_Q)v1XuN{t$V@OeO;2;8FiG#jX4`$0)O<9s_vPqE` z)srnFEyhMe^SD1IX^2os_^pO@s9TH65n7Jo3X2|=av4@%P9d=!SD5#ZWRga5u7$2z zHjTOBVl69SHaH-bwIVP}Vp#)67hd0jrv0`S0mc6J) zR#;zoME9ZrrtbA32C}Lqy+V0QD?HPS?O@h8C7!i|i-mYNo<&eyLpt|l39_5jufoJBl6fD{%3{xN{nqlbDRA!xw% z16c=FiMa#W5A;YJM9O$2jvqudHqORfgIHs8GBA=Jui1-Thp>J%PVFa5T1rRu&AYCk~`B zH>OwK|43tw&}O9`h7tLMv0y;Ybk<#{LoXxJSvT{myzf!gveBdeA)PH0;QkC8@i}vc zlQS^?bJhSF&ct1xvpVLcGi8e4SD!OK*gs27Y*sW&PL#cX+TvM@xrwhK|3+_v+Jp=y zF~(Yqx6q2*OVpZNLc|=iZ{Vn<;B1vV`*=U2s*96JC_+pD7LOt+-DxgfAH^nu^?ZyS zP4dUKT%SFftpaF07yZVuMiBM}DPghxk8x}=gF3HqcqVHIuU{c%GSMadRi&ae?0vb~ z)ZVB#yeq|4u>L2DeLvp z-*DlVth+_oDuW^SNJcX(E+)yvCJ_RfwOD%+YtC(?_(?3^p^_>S*ClXMo0$3OZ}@Z) zYv^$NPS);S$;CO_uktD}movpN{>OlIy$+y)6a zMy_Sf)ekk?oR=<>YDr_G7$~yE5O7+np`oLRpk&FWL!z8zv>#4Il~)>Q7BexE9P}YS zh!>>A3$fP}*4|leLbm4ezurZ9Rem_PSY!hj4^LrEu5tkzo|r#t4HYOoVk~m+BJ)JD z6MV42R2B!LQ9pGm8_VFy1Dujg3QE0f)(Zy6ADiL$e0{()R>|P_Jbge8`X8NG*VjLj9MsSPFonsJ}g%Wtqdg9DV?a00r|HAyv*!Y&UcsP+tZR*z z#LVIg>5o}BZ6Rw>W4H3Tbrv33$oi_s{#aRMLU5ynue~WhV&g?@nA76ZpAPk`)3|vN zI|0W|;n>Bj6||p(TNbkn=r#lEEMf1UM;>}FrKx=5B=%p*dcw?;xMeA856ds&v!$$~ z+Hm4MM5F)o$qDSdj98>+7G^DDUE%lz{n=$q#~|oDrmkR})Z(#!)R}Nhe{cnhX7GCk zniR9SmMtf7*0alPYKoT|ffpVsW~K1pd)%~&&47O2W5{YY6Lw6&gR5C57&Zk>*U)Tf zFa@L5uzHX>LI3$0=FUJkrBs+yf{trh5uErEH?F1LeSQ+X*AXUX_x}Tvz58+UI+mh7 zN=}vBBbhD4C?|4j#~Wy^`ttxjTgPg_j|b3dJ?UE84q)T;Yz#a(j;rX~%JqQEoP~ui zD{y;DL2Z-5o&AbM&~YC=U(Y^=M#pi$1{UNMLoIVg-pz+dy7+~`@Im1jdvWUqHWJ1h zL(h#&3$>5o=#4DeJb?&DmC$27Sig^h+k4q@>Yw%+OS&i4Qn z;c$H?CT(Szkh&AEY-LIIVPik6|6&KW-^P+bw*!l}(f;WD5&9?F*d+$uJM@RXmB-{; zq?dshzLV8-4BuzuRr1@cyib0cz9^Ffcs)H<^LJ@OYgF%H-sWjsq3|4x zZT1io@7{!2dq|>pjlwnbv>i;D*^|j?&S)!!r{UE-tOZL$Ydsqaw!1M~&jQ?d5i!Hr z;={G0EFn>95Q!)CvCeNg9xQCVDW||Bg+E`&)7IcTDTle9fmrS7!}69AYhDO(J$Z#1f!; zBCa|_HBKj>|6vvj84391VdA^bobd5s_6L})#v4bNkHdpi@)+cl)bEygKT&$w11*oz za=v&KMjmB8o?m>NJ&RlzB578o^Ae@WJ#hL_Rsd5sqWv+}Q~l$L_c$5F#gP@5ag01V zF%$9mF&fqJ8_@MQYvQU~NkzN+d5FFI>Wh(nf$2<3bFgqG4mi#tp>R2_JI(?ibva%+ z&RW3q^<1_DV9OKC!};#A_pR{7G31A2>FhH7uoGnbK*)03bds%u)@!j>3Dej}-^iUC zlG9d|F$KTvKzhgxHI|gHKJZf(`kZ1@VE$rUd5VQtq%2n8;-pKYAgUCQgWjXXJ24rap^f`r8mFGRxo(91lM1pvfbu>QkJxtx0hHHY>CA7 zmr3Y4&BHU73CHbVu@-L8?%39}2Z*L51+*a9rLPLj|d;@#_{NZb_B z^aiWbbeAX(o@f(Fq%CaLBfWlFn!&_AQCgy8(ArO{wkqH?ZQODtAy>q{H%N{7A{@WC z!8$;Q4gTW5obfUNGbyt+7?d@=)=iqqU3D0FlSSLFqTQ&R6HZ3Q)Z$sV_$JLl-8_7E zlX=yvDd&3k$UKt#-g_m?`lv(Fi<#K|7E^z)wS=j+Si*;UOL+Mfa|+>B%g38be9Pq* z4(^|uOI#FrPC(b&tS(tAZEv&2|GMwekJql+YO=ikkIfcqc{?S;jAAqJ(rsGLx_ylu z@30WZ1z`q5e$@VS7MHFfwdt(%Su1`19Tv}`D)R_r)K}zxT0mCF;#ldA4-&-qd9l(R zO2|3kR~VJ85o5BoV*FRJV$?j+$WD{CT^Lm$4G+LNKeG#drMVotuSk7dK;RZ@rCT2) zh%xiD()YQjzDtU2?}pgoF3HP1({buuvTZU7P<%_`zxh4Z56VUPL%-!7xoN{>JSF)j${z_(CqsYWDKjwj4_{Vme^p!l zhrh&&&q@1xJF2<`qhn4QrSJY1Aqne7VBz0n6u6AQb$_#^u&4~9UXhrM8;Rm8(l6?a z!~?HbXSg{6O<%KtZkZ$asND&W7g`q2w-6g#@iGv?M+@2GkNh`;2 z^}z>gy<_$m{Em4$lQpOm3b`F8Z_iPwR&uFExaJ+J<;7j<`JPwg-y8Hx?&@UOILs-t zw#zd%x^*;fw43XTe{HqfXrfnLyIfF-oC*^vpS7Ut;P_S`%44_T0b; zcft!5%sEThUdwr6%{RfPIOP~DGVNYPS+EQz9ucB+*H9zVjM9WmGAgYp>Zf_ADW^?F zi%?UJtz9mUGYB=cCb)LFFXVULlwIxxigtPrrp(GN?^kl>Q*aGgk#m-b$8+A8 zWZEk5SY3mm+)(PC^TssOn%*l6HY(alD7DOaW0q-3?*c`wm}i7gm5diX<8j(W!$Wc^6Wuf6u41;r>=TG>`} zZY+_gMQ4KKhq*8CfTP`nKzWF%J+OmkNohL^eYYI`^V369=#@x%DG^Y^UfsG zPASKxJu(|FtV0~5p85;HdTaCrukmJ>seZdHa&@o zD*CqO-;UYgoVcpJG3txABuiqxCyxZdm2X*KR+LlDql%mh)QCL0xPX%ff+SMyoHFC&sxWZ+l1#G7 zDKkzkfpBxpdBfSRjL)w(#`*PHE=rQgKj)2cevxRZmGj0pzuw9DB%I{=^&-pgq41Oj z@Rf6l1vwLBbd8uAMO0<||CCi95yN%p zN2L64Ui5@mX3DFpqeOzcKM zKmSLWD9eKXp-9a7FJWF|Ae3lJ-h!qJ!cY#j~O(Jc#ua%{bvsSfS_FHmdMHr z5mZI8;sXXH(K}ccy)uLTQ}k90{a4YORbu*omc9Qc(fbieCl1c~pVL(H?=)>O_*0tx zFG!l=k-VBKnMU!RZ^LDMm5@J&D-GoD+A&C0l<+qLYpt$U#f{-~q=|PPRMZX{6=gu1 zqHPcWI|lwY#Ru}@n9HCI9%j%LbOX=|AQ%P=z;J;2!fzFo`ZNG%a>A!#wg6q=#}uC9 zhQA6BWS*ZwB#U{8KIzO!A7lb|0aD7)&Kw%U);Mfu4oksaenw#(3j&`N%M+b2#{y=+ z11(zBfKISjOJQgPxu+Ia)PVl*T!R%gpcgFBV4Nl8|J4tdT0*2x!OKd+Y-d`kv)?|> zY{1t8KQgI$Fxo2h^C0uOCo(Gtgu^|tu@z`wWKW!C1##diKkH$I6@HYj>j3p2iOd21Y}OYoYeEo2_S3hn z3BNOUi!XRjtTpM3hitzcuY4sYNZUTsM>s)8@;lALTs5qPu`w9v4DI1+2OQ-L!`)-a zS^mCer16Vtz8Q#rJHtTXjJ}tM0z>x0&k(~96aF)FWi3ZQf-(&d}A=gY4exe zqo;Jf3tp}T&ak@+KCT5P)$`jD-@V`3;}Pl8+Tw9H8bQxOeC`HrP@I4^?(j9tDZ~}- z^!*~9e~-f;59kNuo}uUg9icKAFL^*Gzun1PAeHV-H%Tarx}uRzhRgGqvlriFei$q5 z4974}@Pzr{*w+(!Kx8;>^d#&pw|Dx#Co`#kFB#$0s zE1)e0DmBm7gNE+Sr~L=`Z3ZZ%meeQs9kcLkeQ<~9fhg67ZRSO!w-Z))sXp~@!T_E) z3)?n?c<+g_x6zg3JAkW6F%QKzrqAg&K2Ib}ZyD~a#mm%HfMh*)FH zBOKX?AgdqY_l-d7IFRo{Q)rnO^-xT@BfgfVO~h$us7W42=_+R4kbHTGsC&c|a*50< zQoD)xc@T7i7ZVg*ZUsTGdS0_CR-oN8Wz#aN8G1E_kxqLWyhl%Ag*6RuWn-uXgC^jC z#*j+q>(Db85-rmnRLYx%zc9XOSR0oHlNdbTRDU@bmN2;HkDoV%x)$5~6?l02IBSf3 zTY@ECX$s*Dn;6r{w`6pWc^OmWkV-N|_J%r9$nk>=3=4r<>Y0rRWqx9!Fi%05juSM- zhRpzBNeUis292FGejlUWPipIjX3e1)3=G0H%^}L^Xq}HsBum@sU=c5&OUB9;&=f10 zLn9d52m@O{cX*hDTUtVp(_-IGtIhJogDs#P+)Lrr`a_36?B5c4LX#Aw#!#P6YsCBD z)0U84|HV=+5KP2p`MbAsf#gWWBWJK1VbI8Tl9y68 zZx@vlJGT)E&(VukEaLSj1f!o9>cU_Pj2Mm`+7PE+^uWwEBx78LBesEf@E(qTwjs8B zei3cLVImCi#986s3mrUhb2#({$pg*WQuz`Otlt*)o1aPJ6UqcrXE2uq5ikdA{BUjr zjDpFNkZ3jx946t&cHmxXzpIf-1%4T3#sGCX9ktpOi`&8HV1EQ1+C!vkCn7)BFO{QJ z&x{P)#1}`lC;4dUt7sRj`AtLfa}?tPl@1-<&y(2XI zmzMk@p#l8uggqmnA>?euNs-`h-0QTZz0OX2uX9@@w35?u8gWz|vcp^At4L_tC~__D zsy%0jd@ga+vZqcyy(nhbTExmRG(U=b4|Ky8jE|yas+$^fqDa_wa>R-#T9+SeM)zo1 zkv@0A)Myw9nKkiZG_CMwaXgJAuYEd`>Ug1hCm7+JX(Kn8Q)b9?qQIQE1Z|?! z-X52AB2GyD5-)Xv=s`2w9TEL=rjE+p}#0^HLD+N-~*RVDU{6mNa3G_Mv~ zccr6uhE!UDrwU&bU!$xYrAGVV3T5Qt|q5{rtRRGrG0DUE8&Xx+cIi9bCtvpYn>180Q?uXTqG zSub}HQJD5X)_B{`*Ib&7kOG-RhdTe+Iq-OroO z9^ST6#z;|yUwiOFV6Z?!PC0VjPiz~I@?B3#xj4g$dv^7@C;}TUPop->?T3W<*IN%d4 zQT0JQ2E>vK+qNHj#*(Oah{t8Iq|fZ@g@4CFBhQWXsh2lOy(o_9tL-#ngwrH1FOex4 zE6u5o5plGl`u4(tIGSdEnaM#}9ZfWag{P^6R=Q_~w!LT_`PK}>dqD@s7;>*p*t`9uKWedJD9tv-~Ut3XHc=CXqIQCed}MrmZsJN&u%)ECMv$gXa?9 zD_FH#-#-z;8I0?ROL~)j-)J68jr);k@ypC>Wuv4k*ijK~TSxYiw*mj&Y1k@0_ z9S`<_fpEbKz59YIWbDG$eW4KQdf~T2p)R3PfzSI=E8A*gL_hEsW-1A_a9A2Ok-inz z^dpt`Z%=&F58N9p+@WX^i-^$aM2whRt#qQYf_FcTLf!Hv8#vK+R90Yke=?~iR$`xF z5ZI`jQluLx)SWXfIeK<^~dNHf31 zR!KD6Q#Rw=Bodac9(XMY{K0-RRwh9dY;eb@WbkqI_mYKXI6==E_iefdZLcoWO4|c* zYBH5-;EpGgp@aReZoHJMcq8w2Mx-<}8ZAda5Jpk(2xPk9#1t}vJG$Yf6d2d!Lap~j zPwl0MW)daQDi}7s>NejG~ zN_{%-iarBio=+=RBk2630z#yP7?Yd#eMVzW(D>X~$?XkZ89>6&ay^<1q-A)$3q}v5 zF0WjNpAUpYIJFIfN7Ia`vkprK5~H1P#)gBa2iw`0cz6(L{EyUV zF_`KFZ^HqDNhA&Z2HnR(J-jd&HV4mJqu{$onniD7LNg(uKB=t>HBy-i$I_mbn+)G7 zdgj(ek8$J)IPn<-dX|%VN3unXpU*3Z%X$+X#NGWlHHzD#%@9a-E?&)9Gx#IcEL^Ry z=J?f|HQjON5YTu%uK6KJ>~e?jHFZXTLiK`moN1@x%AsHf;WZV`b$%gpZUnlfk@C(z*Y_(*0NBj$ve%|73>_>BQ2xYp`KDv2?)-oSqKR;Ae+t(rLUr zR^VUhq)P6y#pc7Ifo%}cq>Avzyl}*D=m2ePar2yseX4o$1#;fJ9PEu%Z0SsIVnT2=Th5?Z z{!iJmrYmR50QklXyNn}EbNK=sJr0~bhy3;*In=5dt{w+XEL@c$O|ku0K@Hkp@dW{B zedUo-F=js5=pVE8#1P)TN$HA`sHHX~QL9L%Kwh9BiZ46)l^k4n_=ttvgs6h zRvIKLo+i}`CmniI7S6YS$T-J|7qq3G@|v1hSj4kprMrLN;Y^Yg_D!)ell1?e7ohie zQt!ttKyf^+1`mtS?F*pz&m#TTUqC!FGr!Ma;h_oOf@DXu7v8+9#OR5{S{;IL#615&$Z2%@sCK=@!fO99qDhoS8 zjC*tN>|D}}A5|y^dvsI4!%=s;nq~^grr*Y6Qy@h>=~pAk`0+S}W@*1-i>ct{mbhG& z%Pox^F5G>EXh?HAYZ;E33a+))RFy=POq<#=ZTKNQg*a~>;x|))qGTK3uT!B8ye!mP zX3=dk(Bl@a%qD$(zCXH6qb^(fl7&uEuVuC7);<7au)iDAC@O&+1uY$l$`BbQ7|AN*nljDZv0`1=f!AKBg* zG?N%K+8fhm(zv*jsWg-3W#(nPI1^e53vO57&9khnJkC;+jKwg_)-LXLdl}mKT!~)2L%Wn8n0d)@D(4~-! zqQP$1wGdic96GD?Mdxuh0InK`0EM3sw4&&13p`L?wp;LB} zjT3gTiPU#MJdSUlobUf%3N=t~6?#7I2 z9)8h^NY?J>~fov3YVsmZ+<8&yi~?9{Z7wuSCWb@(Rt!nX(J^S=J9NeXeXT2Qc+5mRu4j}%`gN4 zD5iZg42IpG;mys^TRnWwKOpqpqmSMK{RLRL9@lJ#AgePwWMNM}kZ_#aiq-c)QC_m; z0g{5(e?VX!11;5FkN)4nAaY5~{+4ElTNqyX7Q*^pI>_wl$i9@P=awq@P3&@KkcvpB z++3yNm`PDNR0>t^dvhvHGHa(D(Si&yM32LFKrPFv zZ+ks{wS#<6v)AJO9i;gC{f)oxAo=x6AMUC@6S#Yu+@S<%b6weJ7H^0}-D!g47q#JY zt~ae^c@s$O)=1(uble4x;KeuiZWolp-^cOIZepIZ$1!*>IAg0l@Dp4+hOT;=Cf}~c za6QT2uU2EK9@c<#6wUTh;X_Ax;a5;{L@8HXtdyHtjHCC#39wy(E%rkg1Z==@`(ccH z%#fcsEZq+cZLY5%N_fimmQa%K0Ww%KF!cbqn~&i+ls5eUd2#o2#JvY#w*AKCa@WK> z+A@-JV-Et4+MRHaHnwJUz()t6gM*X5(N~b+n68SG>N;Vo?+E{|mtpdE#MGK)7;%U? zx9d9sY$7K*FE|7NPDhu@z{xlzTd*(z=%n{jUbGctEX6MmK^@ngN(muzeyO84Wxg2m zb)q&wYPA%1Qz?haB~|sKzSbm4PnV#9SKhS*TOWolp~H;XwuLbp6SY!b`V^xIh*b*X z3t~0twuy#og;7hTzuHytN=z9AXXY=$1BZ#qDU0ye!_chTkBgN?j8IO{=f6Se|1p#o z3#pjA8&*~oReo=we((|6n}c~P(fT;lhWigO@Hn`pT9k0|S#Sp4MsqLiFZzi~ODm>; zsPL5prn_G|I!q8rJ3O89ZGy?mX{RsnNfNfb~d9Y-(8{L z=jT%2F1Y46bZXw4GKzT-!IZ<$Xr(!Hh=tl+9Y~+~{rx;zd2(=eUkxO|5MnqL>F1q+ z-X~}m>U3wcJqc|w;{%?;gDHRLWlOvNbb(P~~EMiyp;(%>5_|-}1 z?abS^n=eOV7Wk2Pds;sOsMGdZX=qdY?G)4vO>L>vf0oXKO7gbVq;t*Z=2aM0=2Aoi%kcA%H2zzqC7H*>?u8fq4Wu%ReMp7;OifQs3G5`vvIkIAp#&W5QnB<=!DyPLP_n)_1uGpD~y} zOTYaRt#?ihW>(jgb&r0M%S>$a1Dpk?tN8W@nj8;Xq1%se*w1loB?a?u7JD=kzRD(i zDJ1^{okill8}cDVozO^4^jPsDc)CxQ9n9qM&-4-F50cB{gqXBO%v>)`{1Ka9Ax$p# z8%)0fP3<-0P#_Y@PNop)hfBEP9{A#gD>Ug}t--P@B z2*HFK@Df(7#O^oYDx6)RuX77*7#v)VO>dJ=BWXF#y-kWl%PiF2hNFW+- zX%%~x;`5(~JG%Wut4qZaJ$=+=uH(s8Be6iiRh5Q}rs*CDV$2Dxq}q%@cd3KgRTy)Z z__6b89CDY8FWbdxgBR(s^3 z*scu4{RX)C7sAxB0iOK@9(#q7iT2@8e9y^T<+{2Zp#Skccrd6a!sidb#b-@J8RD=i z>R%cE5%o`w#|96HK^BeI6ZIQ17&#xO{R-EhNT=`f2ENP0-2+8~D=`@|!OT)bNMNhzqj*;%iO@F{og5SPMe14wJW2H7= zrWVW6mAQvoexNh(hcfWqpR}3oWlSZ3Qng@Nr(@_-_yYbIhu=OWdr&(JUp$2gflbEA z^V{gc$m70zjpXrBV&M%^e6*7JIK*c(mZt;o(KD#+ArWz90iNk!WxVC_k{W61SoD4l z?OY40OE?)zh}U8z|FJmXIXS^^jKPxUq}f>QLE$f&(Isve`WM`XdArc#1+0U|JMrWT z@}xf7iM3zSTJ@bPwtq>QQsxe9^*7Ceo;xt*Z!$>rgXq`@=wba}jD7_@%@YU9JzDUB zEcI90aqlZ?V-e!tui$(5c{m<<4L#jM2D}$pw8_bju6rAkaQ1T+tnM(JR9|Ihwdw>* zW365|NiW1Tb-PPl@zlb*<0A(+`+Sw^x~vr)+)MADw0afuoUe1 zlm8oUVB*2cw45~O$NTeM+2yXqXK%sTd=5>U#I!ZK(SNAX_Z|6|1xLX}=#o}}W8N{} zde5q(@A!>##(4h}x}K-%WPoz-7H)e7^=o}5i)spA$rvLaHRg&EKjs#L&j>Pr1J|qL zFr^&q&9d*R>>C}y%yRO`9xXP-pn zhsGG5vXJg?1EHRk_r0ptQ}Is_QdwK)`O#~iE_gsCi5 zKgC247&SJ{R2T-wlJJSC5ar|(_r5WOhwS3?QD)>abzT)qSy8mJYaJG4Z8zfuX$=~w zk$$v=P!3@KQvbP?kS4gB$(xt7x0&HAmW0T$a^3wpla4m1D?Yas)b7`IaEe%j{6IyV z#1dtflNSi-iavINlbdH(BMOmzt{(z0?TS6^1mECax+wWZHd8|6_gc_hHquJcmgUP| z5)#8qxowhRx_SZ@+X>OE2qil~lO?N?QRk+G7tnzl6O}64E^i1Ie9b#kX*xzpzhTeq zrcdN)YOVv*9h!gH%^XJGA-D6B?u98TYGH3m7=GJX%o$CpZlRL}6`KB(>rp#1ctRVq z{3&;YH?6`sSi797l#>(QeT|v3J8Y;WGRw zcj$(}uPIwBD~!6KNv|(vUP%yb+Tk1rp|gXGiCx|yzLrJZ3!}UIBnQDmCX*^-KzbeN zt6s9GUEPjw5N#sqS4*k&DK(v?)xSl@d6wP~>?N07GN03q?98ObBtW@U#7q3oY z(!Gw=1BP2_3L}Mi8d-d}VM|A$O>K@P#hTOaYNENlbn}U_&}4fPrfqPpBXQX}V#D_w zM3zPZT~^860B!NGBh5xnyyqy?1JgTL!%1k=ZpZ`PD_7%@j42kXjF7a^iDc$e2xZ!= zyF`XIoD5Hi3~8fD2FmI4tJAOJcqbv=|Cb&{0ZcxfOLTpkR=W5;rRYXEca(hB1D`ty zPJmi8R|`Rw*T3b++w*{w2({oA80W|_vDT!izGf;Z?}gko+DssDQm5a`>E^j9p5pbR z_e})#V9ZksQwQ)f`-LV}qQ)XtY-b{rXwrILGoiuk#eW@QrCRdtk-d2Q=sgp`R6gM! z=~`VbE%gT7(xweH?YLtyfodqY$mP#SX&;jo{3ytjgg$AmO2FmS? z{8~v57h!*ve@D5$V%|CGuZCg)iZ;^=MQZ#pNN!ytUAZFj8m$Q*pke0nYEwI>%X0-%g z7e9GdlLz$B>29K(G7yy*QAL6B^Y_(9qS2w@V&dkA&d37p6u zD{+~J;7X4@9>SVV_vMr2e9di0N_slK_~x`mDhMY56LU^BmM)2z2eovK5ceeS5|bVh z_r@92Bk1%2MZ7qsGk#9C7>hlHtd>o~K9c3~d8a2%aeOW&a?&J7>9h^V?_nmD^ajn+ zbPa{o?ZL#_LhYb+`JD1?xW8j2mtWj|74F8xNBvGhh%4&1!lUD3#%u;*y>KKv?Ua^zJf30hhipwein+0e1$o1r6o43BkTpY zmimWv1QX`z)Ix@nJ=L^brrHqou+*L|>`ag&o8L4?)4D<|eA68J)D=$H-fhN>5Q>9- zsF8kbh5`P92+_@OufH%7u7_Z~dO~Bmr!ujg5X^Stta`*THX-=Do-h@bJ;E{d1%LJp zF03zfWCQR{ePKNN9pf4ZDeN=c*+B49n+9{@Skt*GWxzBPx8{RS8VI$a=2Wz9DAcmn zYdOivXud8xhD{m@jxb>gMmH3CLCsdUv?0+eGw4%#4GO~N4T*{KLa{-B-~p#jVW$9L za6oSoYpM+EVt(VvYQEH!(!EIh#*=(`VGS{~3g>>Psa+3Ez-s}5mp3m{y{Hfh`tLd6 zoOZHKIVH|v6a=Ua6k3IvG*S?t9NLM>*~8-ry2VvQrYJnU5^3veYlaUgCjip>QtXu1|RHy2hq zr4qUFmpyz6zudl4L8gYGS<#;P^grll|seh$D(ErmE%XB+5SO$THbPu`Zo z{y>U=6)0jhKz}!!IJAa*!rLy_O2F;yg@$z9Vt#~>5W>&m6y}|fDemAd&mW2i{DLCu zPURh>9`iGiC3%0+8{-St3u*EVtl3UjVcpG5DQqKsyB)u4C)9GqL0Arv zSFvkHVv1JZVqQn#XEsbfI8s={j?;rj!Qh^Db-KVV@rEiEnO%${i0 zN$@aBzfA4;<7g^aqYHnhpg99NbQ2sgr4zMexP)^$QKjZvIK&t<>r4V|@Fi^6SqOnS zn|b0)^R*YL;=pno6D_#a$m1XFNg-08M6?skF}t(iFGyh*^>JN<7Yw4$E6nxAO<}GW zH-)(Z-Tn*avU5|I>#tf0bKR(=FxR14c&|G#m+uzNT&b{fqkegeFkJ9|QA4J))X%!o zI3H{o2ZepDcJcR%Zezg;T~8~n`Uj#I3Wyt?Ue;4&-7D)IgYL) zj3bfyTO79RB@}~6J-pRR2;>IsQi& zk1$d_gl<--I<%y$^1Te@$odK%>?zjnE3|>w8rZ+D;MT7N@srUbC9C05T}lW!lGcnQ z65YtXnm<>E@}D;Rryc)^K>Ey;FrFaHToA4G^vfwck-3-~gc^{8EOV14(@e#+ZRL1rOojfx=Lhfb|9m z|F5p^0E;5&*6x`W%-W(DFkw!scFqCwnlYhb!hj;KiUG3@W`Y4@o71j&O>11kx2P+a z#T-%0h@zNX!+PHy*l+LspXc}SP}SAd-4#xq^PabQX6hB**b`1HJE2J|cK62HefpAh zi=LbE?R$rW>A~LZ)S!>{s=j37GUHGPZlXg@&9glmAD=Hc z3HH5#q*eHC_E%hm-%;tDu{+zY6A8PtINOehB-<2j`tPZ-+53-2k`vtcqM@L{hfcyG(m_6dCS5E!yv* z(B5++ZDttR)jeOdXAOf<+CbWyhT+Md1Uq>cykc6k?HW#Ya({hdcNtDvZvWTz(&6L~ z|CUewUGlj+uKWbAC*sn6gKc#Lrti-vJ8}dWDh4}9s>!1mBL}h;Nhs`K)*P4$(CY66 zt^N)?5+f_+e05j};(Mn@&x`y^*wl%` zYf3#!yUN(-N0NyypnzzymOH(-9UqP9`Sq!NEE+xU^U!`1jny5Uh3|7E%U0}?^);7y zp6-136Ff`G^c%vWFaX& zhe1M9(-2wD&EY*VQb0Fy9~8lh^lNlTD1QJW)cFsG1xqNE`)dsCzh7=THKnBHtu!H{ zS2yp^jMzIa;R~83W!m&uvXTG2d;e!Poll*fy=TXcB}4p%$2+9d_vk|3qw$HHd>J%t zXOAU^xnJM4`;H^|fE@`S$XgeRb8$&Q&zw&tObx$5q%^s6JHg&Hj_l=D|FZqY0|Y-# zvxklc2;N)RE<1s2;2vJs?m2<1Q0@FjJUV6xE{toMCnE_*aXX!(gk<~}O2T*Wn;Ba_ z+G{6})vHW(sz&G2yyx*_cO#tRHhJP=o%*Pq(dVO`IRP4YvXGr`BCyrPc-xpr>Xpi; zp`vrEkc8JMz6a7Vf(20I{aT~EAsL<0>}5{%9iQzB6Uh*%+6SzrHHo+>@vL3JZy*$$ zf&<=yNd+@}ar8abIpUIf9FL?TKE1&Wr@XeiPeOE%`re)}32hJy+RG-91FD{b+l(8L zFQfG9uiua3Cxa5AA7u#d|M&fBytk`)NUeP4yRYB5Qw`!`3jzEl96in@9goZx5%?B2 z@11Q=^pJdsC|DJg%V3}vC3zXdKl0lraB<%A@S_=cc`9!V**Eyia$HjjKPs4U?XB~q zg-%yS`ed|1rK#axi45Aww1&rfnGcukLM41Zk)vdBu}GlYkv~K%aUNdvm3=UV ztW|4(Q!OSI=i{1O$>{1ma$Yn5@tV;RM{zrya~VNz?Lw0=!QbB4Z6}kX-Q8Z=Cnu8? zsD5vpr(B7P_0|e`V}F=T_H@T)*&$QNW9~=S?SQFdTla$N_MoYxUatmxXD%~}&yGGX z0`2nl_c-t#7~O6!Fc27>bfg+O2BeU7{uyMG%3rZoryg+HNEDs+5HpdHiIN0w-{PSE zce3oL88DQMNqg1|vS!r)5+gXzdy#jT@j*FUn&ELS@(z5)$SnKD46=5!Jh#5$jj`y$ zO{X5GG-<-ajG=Du5iVy@wg2S&CZ6*pYO`CPO=*%Z$x+dKmti%&qJy)WoDEKCa@MQ2 zKV|Q4K9dZ0m0E$$X4uZ3`S_DN_A{T`Ct}G#Rsf3ro%Tc^IiR{zIm;;o55x;C(HFmd z&shu3N;{T^@GcO1&rU{K=Ek9Mq{|&w!X6e+2D%57uouJwD0ez;0*T#^x)4tDPBU>nT!-42eswoe#*`L?_cP1*lcI>!;^c1W9M^kfU?}n#{4%o z;s1AoX*iM7fGPi6?-b=cHuk@{S^r$0;uCWs4;6EOq<(iY&)%PNfBo+KCg|;bbI4!Z ze%V-w6go*mf*`>w_U}t1KN|(!&LycIACT0y+4~QkCzs_ZRP{DN)rL5avV$*@B?=wK z(W(Dk;+|3}UNA~YdcK0)a`rW>XY~Bjr399OM!v1oZEaQ8Qa8Z{D zJKzfH6mU`P3)rfYE#;#8O4*@KwycYCm$Sz?+43$bq`bWh+2R#k)Kmy!*zW}^x~O6h zJLxi6BClA16A;DD1PuJ6YOA4WaEV$SOSU0CDbiUT{%YAdirDM&sAq)Hzo`aZwb+$sa~~ zOtJsQQ`>aKoghwe6w*Pk8aZc<+x-U0hdnoz^amqU*?E%Rdpw-h|)cWZzyX8#`Q1(n0^#S5k3yF16-DB;S z*T|B7Z{l3kCx}ztCf-GLjJNCEAWIgzoZzBvLY(rtvs@HsXI&#p`DM&@Q7<7*aW>Kq zv%S@ehs?z-Ax?QL(m8WocH4`je{piYi^>miP8391Y<|uOzYrT&K%5i%mb$3JOYOVY z$&w`&Z*@^CAWpfs9a9Xk6K|3w{FYvFQL7=&nM|bFm%PvRtAEu+2@t0|0_l*e-trO) zue+#a5U2by(wh)F@hVxucWkbUO#qGA0bYy4^LdwS4htDcD!{_dm+x5 z!S7tuh zj8OS%+3`;Kp?YrWXgzz2b8!IUrUDtaUG@s7D^+(>K@jI@Ban`T*uhS}(@Zz@5aOJv zXSpffvMbyoOR5`Nx~Xjtr+j`ZH?;)fz$9*{B!+M+fA*8IQ4EJO}FiOx1ol`SGcJ%5U2ddm2Rrd%AE2? zYur>O#3`S%)=e#3YfnP`roFegsR0nDeBV|#br|x`^X^FhKF>JdrW!$|3|VfEIztZmK%ODerUAO+`SQ{E*XbY9z#I`#<*vF8^;|N@lyMauBEP*{^Qu z(pTHOLzetuCJ84AamqLOkkodFlYgFjJ&-GNdlwMojV zP1?6%*7^r?_|P)Mx#TU1SB z7i~mR{t&0m>n0@i5#raamvFxpwSQ~&vzs#72@Pmke@Hj5fCT8 zs|!i(hdBA6T}dh$;^dzpedXjmIAB9bN`^Qm#`GYmNf0NWfOKANepF914&s#mf%HUf zK3^}ADgtrJ+ac|on_q@>O>X`n(r3B(YGEW*2jbN4hqP>D?!iW++j8@Fkv<9|y*}1= zTOX3z-N%l;;fD65y(TF{EuTvstv@+Z<++%hveAY8q@J!&h-76_potQ zbPn)_QzaN_=v>n4DoTop(0oXcb0+s+X?(HweX>6lJU{1xq*SLtl z)h=S^Op=J1K@!2!ao*)3Vq!t&;nPB4vyhK>5o_|3L=vu}aE>xaA}p39Qm?sD<|49P zZX#+45IXLe`rS>?i`+!wU-+RreDor{fQtz8xQKMH{;3;W9wM?U^V z=%9*v7@1Vh16;TeJ%wZsb`im7U1E1k!Dyr;hSmoS!Hsr8)PM&T_+0J5g5n}~UchT!+mQ*per59UAnK5pC(Hws0so}wXvBtfg#xB3%38-xda zz{OCUR47>b6i5`N3;CFAJOJ0EW}qRT@Q}Z7kN0RmIF2K6?i;26_X&dR#5Yoe4a9k* zK`0NzG^Ag`{V#bigg6MoK@1+03JJu`2pk7Of^aSd>6(kkL&6|2PKtVKoI1!8kR;@Z z&uFZ3?mZL@!<&Ts&Ubj&YcvM+)2E^#5c(ZP#c41k$PauH^O* zfoNSej76}s<~QKs)se4?vTCS+n+D-QVRdlx+BmKO9jS%sKm(HS?tK&*8VJRU!fHvq ziF4yHYRCs;WKz*%+J%N=6$L}6r2~4G8iEVqYF!y z)EOPRjcJ0cK_dcB;C{FV<y6*s~hQ_k|~f)VM0 zM%2d;*TchaA%6qCgwWS;pQ~s%u36I+qZWgPI}I+0235vAOQ123AdDV88Fj0;iO@j& zS%XU1#qltljBzUXqarE<%YO!uqDL#L^#QSRY|T zFdeD0(a`BLH+&=^c_2Oz-~Agt=Kay-@!^Z`D&LrI!H?#r^KhwT0SREk(Pc zJ=U_cx0;VfFQ!-0IXzOJrQg(R810PCMn7YiG1K_j*kv3sP8qk12gXz51xDb5@x>ra zAG3g2)GT3^H7j961hb3T)0|^2GJiFXnRm>0CS}#ILabiaI%~gm#Cl>8u>P=MgdZ)^ zE$IIAL^_t9L!YG2(|^-GjHevKGOd_?OblZ)$;<@|TMf1@8^TUuH?RlUYit(#iT#@u zIGvl$&El?dX`H}!z?eG+LS^Es!=!+ok4B6bk#Zrqk}S!(+*$4`50|IQ3GzJo7kP`kQ{E@vl%u}ZJN@Mg+`ZRs5zER($AJs4F_x19IV6-v%8#9aqW2KSDEN9j= zo10_JS>{)hxB6RytcliRM>z=>@h66#q|4AWCZIdLoqk9cV=6N`#=V1w>A?)f;4fg- zGY6P6Od6BTkgPvjlhxSPY#2L&oz5;|*Ry-rKiMnnL-s98a{0KT9M3i8T5_GZ9$X|h zj9boa<$mK1bEmlL++*%7=i-a<<@q|i!Z+hP@qPJWyoaC7FX#93C-}=y?^paczKXyJ zs^DoXv=qh&bA?^Pe}oglW#O~nBNi6@#UI6Pn6X50vG_Ce{j8WFeh~9YwIo(*D7Epf z_kL2O6e}&4QlwPrn)FcmEESS#%A(v%9*Ak0EYHL=+45RBSw17D$=~GsNl&~TA8RUR91MD-<7knQW3nyScI;$!7kiYw$Clz+ zbG=|}MsVXe50}8r=Pq$~x!2rBOprex%7^pu9{wm6&j-GsP*P|rbQAgui-iQ&0>&xx19wuRsmtu%F%g5wf@*BC3QcNkORL5#C zmBz5EBVkvUVnu9Lep3!9N0k&<*~iLroq&8QB)r;zVSg5>O9Srbz zZMIfjucI4!te)S9FcurjjcvwfgEU!lqxr(@0K;<0LL5Sz#lV!NYtT*UmUIs~mA+2* zX9h77nS<SXnpdR2XxYgS{l zInaeW+8eEyUO}&_%X)h~UO%9p!D208v@q@%4~^%>C!>%ln+q|$ZmWp3*jjFRwpr(_ z%hpE=;DkV|MEKDDbS;{v8_?tF8FV6@L1)u7n7WL_L@*<*a&tDyO%xA zo@f0z$-5Xwb9=ZG+-0s3UyttvpE8o4$FJeH@tOP=KEDttj21Qt`-I~{y6{T)D%23e z#ns{lkGNAz6*I-E5+jY0#!K0nN*Se^(gpTyv+_v! z3v<_8?WfLHcc>54dRi+jLHkWh#Y*_7x%B|OquyKpUB9Bg)C(G>G09kABpX>qL9;R@ z&@e+W0&C4zQ11ZCqgt)4_Eu+Ws+C|RT5GLLiwJTNcQCIO9RnAUpDDw%V|p?Vn5WE3 zCKUbN2UAoSW@inzjeEwufi@TAOYmj*s(fvJ9bZYHg;m1O!WQA4kSXL9Wie752TL*w zGrm*YD;~pyx0jOOHE&Br<#HZ*iM$uE;I8~hE`mPl$~4UNHYHODRO_na)Vb<1bu}!( z1@#IPG(a1!-GWJeuhqhOKcL@65Azv4je$mtam*-SHa6Rt2h2asE9O1)u80+2RkS3_ zvKm|Mth?4rXBh|MeG4RQ=x$Ke8;s{I^EXqJt;BX<4xjH<`PS z{uSf@;2*)a`3pQ|aT0WRuJEg{NBCVx78;1{#9ipqeQ~LDT)GeBQ(SH;x0HLx8aJ zURdufA`Hk83Z0)WMVF_m(Dk6y8r_BN3ID&6z6&Q*gK5Hex-MlT3;KSxMFj>$G*jx?&MgE@B0SupVu~zO~2DMFBodgH?DyKc(N&-|2!3&vamh13Uf9 z>}5_cXPIko;cu8cYzek3TaB#)2-=?Q!w!TapUkddce01sv(PPHt_IhJ>&XrAaFe(> z+$tE3tMJ@K`MP{7fU6kz>W%zv{ykq?i2RliWVmmCf6Fc+(9v;3PEc;AvA!H#^9^C?B(Bg!ka;fy;dp6>9* zLzOXrPBY<;mwDmSZs=|jboY+(L?P7tY8m*4ZkV2DDyfyxDrj{zR{K$Fr}fbWX%n>R z+G6b&ZJV}VJE@%qX1WhW&c<{V!DRiQv%0P~)LX(FchURkBlSs`vUPCHhxA+eD?N|L z@H46#KN!u7Rsd6jjqzB?D~w-_-;Be?S>u`U(s&E29bhgtS7T*gF@Jp_IzW@b_uvQc<9VCk!~f1-;cp`v5Cjd;P;X&`Fjkl;ToY~! zS;7ne(UtNHH9=je_6O{ksON+z*MJwYEazi4<^Vrj~8}jD|mV8otKmuvUaG zEqmxT^l&KEGWs64Mru#3CNJ>?4U6<}m#K9b+W z@8ydNCK|I8#^^uLj%NZ1*j7_i#kOKUF-}}4t`mP3Z;7R$BaUa8Eggh+ttYpZN6R6Y z@KT7hqEydR#3)+;wjN{A70}9QjMfyhx<{+4x7FY2rV(uPHKL7pV~ugbxNc+`UyWjB zb+fOz%)DVf#&mSH!mS~W*8n+!xYvu2n$pqm9c$tIN> z8^6PpoG>mJSB=|7Juhk;V2(7mn!C*N=HI4lHL+S+q1G69RNLBW{pJnBZsd$ml8ZQu zfeN6j!5lZBL+ODYdM7mYD1Dl~O{deDG{NKptZc)qVt#=p++^-CkD2E%C&Sr!>0R_bT4EYAz2IH`L|1yV zyWw3)&YufK0KSsD#@+UCS=>P(Tlgl3q6TWAwj3r8mP6Gg>Uwpjenda5Kh!hz7HHmV zV3;#T8oYcdvno(r6SIZc7K%8?9BxiDrO}1^{)txyMX4ubH>a2j+A0i<#Fd zVU@M2SfXWEZLE$~q&3=_j>%bx>G2%2j#(ESgrDvrHldRp>A9GU=k#B6VHl7A5DK9% zA~To`%r@o&^POpc*tk1_vRyD9Y3yG>LbWg*O}PQwP;Le={z|U7Fc8?Fn>YbclZ;p? z96{}RX*V!WigXc?QX#p7Twbmt%Yb;zJ#rhlKXi8zLZ$WcR^XrtDy>$8fsNM6V4lY5 z%K*Kf8;R!6=u5gY4cRVY2@+p~A^qui`XYRJb*2tuFz1;o%tPiG^A`4F3LDGX;5{~i z`8ddDBi<8X!deSsyieLFZv^H%UcFyJ*y7Tdgw`d z2%P9(W23PXnn9QqO~(8Y!yaZ1K%}(TOaB<

t~b}$BWA-fzg?iLK{A!zs|_6GX`cF)Zf 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 diff --git a/bin/x64/TitanEngine.dll b/bin/x64/TitanEngine.dll index 0fc0fc7be9ad394ef3dfd987a0748462a601f62a..b72dd19bb9e50dc73add27a1ad82206621437aaf 100644 GIT binary patch delta 68666 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 delta 68436 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

=dDElvSht{yk`{R3QZuD`pC{0gYC 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 NbtpYj6*1uT{{h7ZZN&fp diff --git a/help/x64_dbg.wcp b/help/x64_dbg.wcp index 613a4e07..edaf2d90 100644 --- a/help/x64_dbg.wcp +++ b/help/x64_dbg.wcp @@ -96,7 +96,7 @@ Font= DefaultTopic=Introduction.htm [TOPICS] -TitleList=41 +TitleList=40 TitleList.Title.0=Introduction TitleList.Level.0=0 TitleList.Url.0=Introduction.htm @@ -287,224 +287,214 @@ TitleList.ContextNumber.18=1016 TitleList.ApplyTemp.18=0 TitleList.Expanded.18=0 TitleList.Kind.18=0 -TitleList.Title.19=ToggleBPX/bpt/bt +TitleList.Title.19=bplist TitleList.Level.19=1 -TitleList.Url.19=ToggleBPX_bpt_bt.htm +TitleList.Url.19=bplist.htm TitleList.Icon.19=0 TitleList.Status.19=0 TitleList.Keywords.19= -TitleList.ContextNumber.19=1019 +TitleList.ContextNumber.19=1015 TitleList.ApplyTemp.19=0 TitleList.Expanded.19=0 TitleList.Kind.19=0 -TitleList.Title.20=bplist +TitleList.Title.20=StepInto/sti TitleList.Level.20=1 -TitleList.Url.20=bplist.htm +TitleList.Url.20=StepInto.htm TitleList.Icon.20=0 TitleList.Status.20=0 TitleList.Keywords.20= -TitleList.ContextNumber.20=1015 +TitleList.ContextNumber.20=1021 TitleList.ApplyTemp.20=0 TitleList.Expanded.20=0 TitleList.Kind.20=0 -TitleList.Title.21=StepInto/sti +TitleList.Title.21=StepOver/step/sto/st TitleList.Level.21=1 -TitleList.Url.21=StepInto.htm +TitleList.Url.21=StepOver.htm TitleList.Icon.21=0 TitleList.Status.21=0 TitleList.Keywords.21= -TitleList.ContextNumber.21=1021 +TitleList.ContextNumber.21=1022 TitleList.ApplyTemp.21=0 TitleList.Expanded.21=0 TitleList.Kind.21=0 -TitleList.Title.22=StepOver/step/sto/st +TitleList.Title.22=SingleStep/sstep/sst TitleList.Level.22=1 -TitleList.Url.22=StepOver.htm +TitleList.Url.22=SingleStep.htm TitleList.Icon.22=0 TitleList.Status.22=0 TitleList.Keywords.22= -TitleList.ContextNumber.22=1022 +TitleList.ContextNumber.22=1023 TitleList.ApplyTemp.22=0 TitleList.Expanded.22=0 TitleList.Kind.22=0 -TitleList.Title.23=SingleStep/sstep/sst +TitleList.Title.23=HideDebugger/dbh/hide TitleList.Level.23=1 -TitleList.Url.23=SingleStep.htm +TitleList.Url.23=HideDebugger_dbh_hide.htm TitleList.Icon.23=0 TitleList.Status.23=0 TitleList.Keywords.23= -TitleList.ContextNumber.23=1023 +TitleList.ContextNumber.23=1025 TitleList.ApplyTemp.23=0 TitleList.Expanded.23=0 TitleList.Kind.23=0 -TitleList.Title.24=HideDebugger/dbh/hide +TitleList.Title.24=disasm/dis/d TitleList.Level.24=1 -TitleList.Url.24=HideDebugger_dbh_hide.htm +TitleList.Url.24=disasm_dis_d.htm TitleList.Icon.24=0 TitleList.Status.24=0 TitleList.Keywords.24= -TitleList.ContextNumber.24=1025 +TitleList.ContextNumber.24=1026 TitleList.ApplyTemp.24=0 TitleList.Expanded.24=0 TitleList.Kind.24=0 -TitleList.Title.25=disasm/dis/d +TitleList.Title.25=SetMemoryBPX/membp/bpm TitleList.Level.25=1 -TitleList.Url.25=disasm_dis_d.htm +TitleList.Url.25=SetMemoryBPX_membp_bpm.htm TitleList.Icon.25=0 TitleList.Status.25=0 TitleList.Keywords.25= -TitleList.ContextNumber.25=1026 +TitleList.ContextNumber.25=1027 TitleList.ApplyTemp.25=0 TitleList.Expanded.25=0 TitleList.Kind.25=0 -TitleList.Title.26=SetMemoryBPX/membp/bpm +TitleList.Title.26=chd TitleList.Level.26=1 -TitleList.Url.26=SetMemoryBPX_membp_bpm.htm +TitleList.Url.26=chd.htm TitleList.Icon.26=0 TitleList.Status.26=0 TitleList.Keywords.26= -TitleList.ContextNumber.26=1027 +TitleList.ContextNumber.26=1029 TitleList.ApplyTemp.26=0 TitleList.Expanded.26=0 TitleList.Kind.26=0 -TitleList.Title.27=chd +TitleList.Title.27=rtr TitleList.Level.27=1 -TitleList.Url.27=chd.htm +TitleList.Url.27=rtr.htm TitleList.Icon.27=0 TitleList.Status.27=0 TitleList.Keywords.27= -TitleList.ContextNumber.27=1029 +TitleList.ContextNumber.27=1028 TitleList.ApplyTemp.27=0 TitleList.Expanded.27=0 TitleList.Kind.27=0 -TitleList.Title.28=rtr +TitleList.Title.28=SetHardwareBreakpoint/bph/bphws TitleList.Level.28=1 -TitleList.Url.28=rtr.htm +TitleList.Url.28=SetHardwareBreakpoint_bph_bphws.htm TitleList.Icon.28=0 TitleList.Status.28=0 TitleList.Keywords.28= -TitleList.ContextNumber.28=1028 +TitleList.ContextNumber.28=1030 TitleList.ApplyTemp.28=0 TitleList.Expanded.28=0 TitleList.Kind.28=0 -TitleList.Title.29=SetHardwareBreakpoint/bph/bphws +TitleList.Title.29=alloc TitleList.Level.29=1 -TitleList.Url.29=SetHardwareBreakpoint_bph_bphws.htm +TitleList.Url.29=alloc.htm TitleList.Icon.29=0 TitleList.Status.29=0 TitleList.Keywords.29= -TitleList.ContextNumber.29=1030 +TitleList.ContextNumber.29=1032 TitleList.ApplyTemp.29=0 TitleList.Expanded.29=0 TitleList.Kind.29=0 -TitleList.Title.30=alloc +TitleList.Title.30=free TitleList.Level.30=1 -TitleList.Url.30=alloc.htm +TitleList.Url.30=free.htm TitleList.Icon.30=0 TitleList.Status.30=0 TitleList.Keywords.30= -TitleList.ContextNumber.30=1032 +TitleList.ContextNumber.30=1031 TitleList.ApplyTemp.30=0 TitleList.Expanded.30=0 TitleList.Kind.30=0 -TitleList.Title.31=free +TitleList.Title.31=Fill/memset TitleList.Level.31=1 -TitleList.Url.31=free.htm +TitleList.Url.31=Fill_memset.htm TitleList.Icon.31=0 TitleList.Status.31=0 TitleList.Keywords.31= -TitleList.ContextNumber.31=1031 +TitleList.ContextNumber.31=1033 TitleList.ApplyTemp.31=0 TitleList.Expanded.31=0 TitleList.Kind.31=0 -TitleList.Title.32=Fill/memset +TitleList.Title.32=cmt/cmtset/commentset TitleList.Level.32=1 -TitleList.Url.32=Fill_memset.htm +TitleList.Url.32=cmt_cmtset_commentset.htm TitleList.Icon.32=0 TitleList.Status.32=0 TitleList.Keywords.32= -TitleList.ContextNumber.32=1033 +TitleList.ContextNumber.32=1035 TitleList.ApplyTemp.32=0 TitleList.Expanded.32=0 TitleList.Kind.32=0 -TitleList.Title.33=cmt/cmtset/commentset +TitleList.Title.33=cmtc/cmtdel/commentdel TitleList.Level.33=1 -TitleList.Url.33=cmt_cmtset_commentset.htm +TitleList.Url.33=cmtc_cmtdel_commentdel.htm TitleList.Icon.33=0 TitleList.Status.33=0 TitleList.Keywords.33= -TitleList.ContextNumber.33=1035 +TitleList.ContextNumber.33=1036 TitleList.ApplyTemp.33=0 TitleList.Expanded.33=0 TitleList.Kind.33=0 -TitleList.Title.34=cmtc/cmtdel/commentdel +TitleList.Title.34=lbl/lblset/labelset TitleList.Level.34=1 -TitleList.Url.34=cmtc_cmtdel_commentdel.htm +TitleList.Url.34=lbl_lblset_labelset.htm TitleList.Icon.34=0 TitleList.Status.34=0 TitleList.Keywords.34= -TitleList.ContextNumber.34=1036 +TitleList.ContextNumber.34=1037 TitleList.ApplyTemp.34=0 TitleList.Expanded.34=0 TitleList.Kind.34=0 -TitleList.Title.35=lbl/lblset/labelset +TitleList.Title.35=lblc/lbldel/labeldel TitleList.Level.35=1 -TitleList.Url.35=lbl_lblset_labelset.htm +TitleList.Url.35=lblc_lbldel_labeldel.htm TitleList.Icon.35=0 TitleList.Status.35=0 TitleList.Keywords.35= -TitleList.ContextNumber.35=1037 +TitleList.ContextNumber.35=1038 TitleList.ApplyTemp.35=0 TitleList.Expanded.35=0 TitleList.Kind.35=0 -TitleList.Title.36=lblc/lbldel/labeldel +TitleList.Title.36=savedb/dbsave TitleList.Level.36=1 -TitleList.Url.36=lblc_lbldel_labeldel.htm +TitleList.Url.36=savedb_dbsave.htm TitleList.Icon.36=0 TitleList.Status.36=0 TitleList.Keywords.36= -TitleList.ContextNumber.36=1038 +TitleList.ContextNumber.36=1034 TitleList.ApplyTemp.36=0 TitleList.Expanded.36=0 TitleList.Kind.36=0 -TitleList.Title.37=savedb/dbsave +TitleList.Title.37=loaddb/dbload TitleList.Level.37=1 -TitleList.Url.37=savedb_dbsave.htm +TitleList.Url.37=loaddb_dbload.htm TitleList.Icon.37=0 TitleList.Status.37=0 TitleList.Keywords.37= -TitleList.ContextNumber.37=1034 +TitleList.ContextNumber.37=1039 TitleList.ApplyTemp.37=0 TitleList.Expanded.37=0 TitleList.Kind.37=0 -TitleList.Title.38=loaddb/dbload -TitleList.Level.38=1 -TitleList.Url.38=loaddb_dbload.htm +TitleList.Title.38=Special Thanks +TitleList.Level.38=0 +TitleList.Url.38=Special_Thanks.htm TitleList.Icon.38=0 TitleList.Status.38=0 TitleList.Keywords.38= -TitleList.ContextNumber.38=1039 +TitleList.ContextNumber.38=1024 TitleList.ApplyTemp.38=0 TitleList.Expanded.38=0 TitleList.Kind.38=0 -TitleList.Title.39=Special Thanks +TitleList.Title.39=Fixed Top Style TitleList.Level.39=0 -TitleList.Url.39=Special_Thanks.htm +TitleList.Url.39=template\fixedtop.htm TitleList.Icon.39=0 TitleList.Status.39=0 TitleList.Keywords.39= -TitleList.ContextNumber.39=1024 +TitleList.ContextNumber.39= TitleList.ApplyTemp.39=0 TitleList.Expanded.39=0 -TitleList.Kind.39=0 -TitleList.Title.40=Fixed Top Style -TitleList.Level.40=0 -TitleList.Url.40=template\fixedtop.htm -TitleList.Icon.40=0 -TitleList.Status.40=0 -TitleList.Keywords.40= -TitleList.ContextNumber.40= -TitleList.ApplyTemp.40=0 -TitleList.Expanded.40=0 -TitleList.Kind.40=2 +TitleList.Kind.39=2 diff --git a/x64_dbg_dbg/_exports.cpp b/x64_dbg_dbg/_exports.cpp index 960fadab..7e6b3961 100644 --- a/x64_dbg_dbg/_exports.cpp +++ b/x64_dbg_dbg/_exports.cpp @@ -192,7 +192,6 @@ extern "C" DLL_EXPORT int _dbg_bpgettypeat(duint addr) if(bp.enabled) result|=bpmemory; return result; - return 0; } extern "C" DLL_EXPORT bool _dbg_getregdump(REGDUMP* regdump) diff --git a/x64_dbg_dbg/_global.h b/x64_dbg_dbg/_global.h index 60801632..99db84b6 100644 --- a/x64_dbg_dbg/_global.h +++ b/x64_dbg_dbg/_global.h @@ -15,6 +15,7 @@ #include #include #include +#include #include "..\x64_dbg_bridge\bridgemain.h" #include "sqlite\sqlite3.h" diff --git a/x64_dbg_dbg/addrinfo.cpp b/x64_dbg_dbg/addrinfo.cpp index 8ca097b7..73c50531 100644 --- a/x64_dbg_dbg/addrinfo.cpp +++ b/x64_dbg_dbg/addrinfo.cpp @@ -16,7 +16,7 @@ void dbinit() dputs("failed to open database!"); return; } - sqlloadorsavedb(userdb, dbpath, false); + sqlloadsavedb(userdb, dbpath, false); if(!sqlexec(userdb, "CREATE TABLE IF NOT EXISTS comments (id INTEGER PRIMARY KEY AUTOINCREMENT, mod TEXT, addr INT64 NOT NULL, text TEXT NOT NULL)")) dprintf("SQL Error: %s\n", sqllasterror()); if(!sqlexec(userdb, "CREATE TABLE IF NOT EXISTS labels (id INTEGER PRIMARY KEY AUTOINCREMENT, mod TEXT, addr INT64 NOT NULL, text TEXT NOT NULL)")) @@ -34,13 +34,13 @@ bool dbload() dbinit(); return true; } - return sqlloadorsavedb(userdb, dbpath, false); + return sqlloadsavedb(userdb, dbpath, false); } bool dbsave() { CreateDirectoryA(sqlitedb_basedir, 0); //create database directory - return sqlloadorsavedb(userdb, dbpath, true); + return sqlloadsavedb(userdb, dbpath, true); } void dbclose() diff --git a/x64_dbg_dbg/breakpoint.cpp b/x64_dbg_dbg/breakpoint.cpp index 591ff7f8..a9ee31e1 100644 --- a/x64_dbg_dbg/breakpoint.cpp +++ b/x64_dbg_dbg/breakpoint.cpp @@ -55,7 +55,6 @@ bool bpget(uint addr, BP_TYPE type, const char* name, BREAKPOINT* bp) { sqlstringescape(name, bpname); sprintf(sql, "SELECT addr,enabled,singleshoot,oldbytes,type,titantype,mod,name FROM breakpoints WHERE (addr=%"fext"d AND type=%d AND mod IS NULL) OR name='%s'", addr, type, bpname); - puts(sql); } else sprintf(sql, "SELECT addr,enabled,singleshoot,oldbytes,type,titantype,mod,name FROM breakpoints WHERE (addr=%"fext"d AND type=%d AND mod IS NULL)", addr, type); @@ -160,7 +159,7 @@ bool bpenable(uint addr, BP_TYPE type, bool enable) sprintf(sql, "UPDATE breakpoints SET enabled=%d WHERE addr=%"fext"d AND mod IS NULL AND type=%d", enable, addr, type); else sprintf(sql, "UPDATE breakpoints SET enabled=%d WHERE addr=%"fext"d AND mod='%s' AND type=%d", enable, addr-modbasefromaddr(addr), modname, type); - if(sqlexec(userdb, sql)) + if(!sqlexec(userdb, sql)) { dprintf("SQL Error: %s\n", sqllasterror()); return false; @@ -237,17 +236,16 @@ bool bpenumall(BPENUMCALLBACK cbEnum, const char* module) strcpy(curbp.name, bpname); else *curbp.name=0; - //TODO: fix breakpoints without module uint modbase=modbasefromname(modname); - if(!modbase) //module not loaded //TODO: fix this - continue; + if(!modbase) //module not loaded + *curbp.mod=0; curbp.addr=modbase+rva; if(cbEnum) { if(!cbEnum(&curbp)) retval=false; } - else if(bpcount<1000 and curbp.type==BPNORMAL) + else if(bpcount<1000) { memcpy(&bpall[bpcount], &curbp, sizeof(BREAKPOINT)); bpcount++; @@ -262,3 +260,10 @@ bool bpenumall(BPENUMCALLBACK cbEnum) { return bpenumall(cbEnum, 0); } + +int bpgetcount(BP_TYPE type) +{ + char sql[deflen]=""; + sprintf(sql, "SELECT * FROM breakpoints WHERE type=%d", type); + return sqlrowcount(userdb, sql); +} diff --git a/x64_dbg_dbg/breakpoint.h b/x64_dbg_dbg/breakpoint.h index 26c7207f..63b25404 100644 --- a/x64_dbg_dbg/breakpoint.h +++ b/x64_dbg_dbg/breakpoint.h @@ -41,5 +41,6 @@ bool bpenable(uint addr, BP_TYPE type, bool enable); bool bpsetname(uint addr, BP_TYPE type, const char* name); bool bpenumall(BPENUMCALLBACK cbEnum); bool bpenumall(BPENUMCALLBACK cbEnum, const char* module); +int bpgetcount(BP_TYPE type); #endif // _BREAKPOINT_H diff --git a/x64_dbg_dbg/debugger.cpp b/x64_dbg_dbg/debugger.cpp index 5f334ac7..d3c0b5c4 100644 --- a/x64_dbg_dbg/debugger.cpp +++ b/x64_dbg_dbg/debugger.cpp @@ -14,7 +14,6 @@ PROCESS_INFORMATION* fdProcessInfo=&g_pi; static char szFileName[deflen]=""; bool bFileIsDll=false; uint pDebuggedDllBase=0; -BREAKPOINT* bplist=0; static bool isStepping=false; static bool isPausedByUser=false; static bool bScyllaLoaded=false; @@ -34,7 +33,7 @@ void dbgdisablebpx() int bpcount=bpgetlist(&list); for(int i=0; iname) - sprintf(log, "hardware breakpoint \"%s\" "fhex"!", cur->name, cur->addr); + char log[deflen]=""; + if(*found.name) + sprintf(log, "hardware breakpoint \"%s\" "fhex"!", found.name, found.addr); else - sprintf(log, "hardware breakpoint "fhex"!", cur->addr); + sprintf(log, "hardware breakpoint "fhex"!", found.addr); dputs(log); - }*/ + } DebugUpdateGui(cip); GuiSetDebugState(paused); //lock @@ -254,12 +252,17 @@ static bool cbSetModuleBreakpoints(const BREAKPOINT* bp) if(bp->enabled) { if(!SetBPX(bp->addr, bp->titantype, (void*)cbUserBreakpoint)) - dprintf("could not set breakpoint "fhex"\n!", bp->addr); + dprintf("could not set breakpoint "fhex"!\n", bp->addr); } break; case BPMEMORY: break; case BPHARDWARE: + if(bp->enabled) + { + if(!SetHardwareBreakPoint(bp->addr, (bp->titantype>>8)&0xF, (bp->titantype>>4)&0xF, bp->titantype&0xF, (void*)cbHardwareBreakpoint)) + dprintf("could not set hardware breakpoint "fhex"!\n", bp->addr); + } break; default: break; @@ -276,6 +279,7 @@ static void cbLoadDll(LOAD_DLL_DEBUG_INFO* LoadDll) else DevicePathToPath(DLLDebugFileName, DLLDebugFileName, deflen); dprintf("DLL Loaded: "fhex" %s\n", base, DLLDebugFileName); + SymLoadModuleEx(fdProcessInfo->hProcess, LoadDll->hFile, DLLDebugFileName, 0, (DWORD64)base, 0, 0, 0); IMAGEHLP_MODULE64 modInfo; memset(&modInfo, 0, sizeof(modInfo)); @@ -300,6 +304,8 @@ static bool cbRemoveModuleBreakpoints(const BREAKPOINT* bp) case BPMEMORY: break; case BPHARDWARE: + if(bp->enabled) + DeleteHardwareBreakPoint((bp->titantype>>8)&0xF); break; default: break; @@ -310,16 +316,11 @@ static bool cbRemoveModuleBreakpoints(const BREAKPOINT* bp) static void cbUnloadDll(UNLOAD_DLL_DEBUG_INFO* UnloadDll) { void* base=UnloadDll->lpBaseOfDll; - char DLLDebugFileName[deflen]=""; - if(!GetMappedFileNameA(fdProcessInfo->hProcess, base, DLLDebugFileName, deflen)) - strcpy(DLLDebugFileName, "??? (GetMappedFileName failed)"); - else - DevicePathToPath(DLLDebugFileName, DLLDebugFileName, deflen); - dprintf("DLL Unloaded: "fhex" %s\n", base, DLLDebugFileName); - char modname[256]=""; + char modname[256]="???"; if(modnamefromaddr((uint)base, modname)) bpenumall(cbRemoveModuleBreakpoints, modname); SymUnloadModule64(fdProcessInfo->hProcess, (DWORD64)base); + dprintf("DLL Unloaded: "fhex" %s\n", base, modname); } static void cbCreateProcess(CREATE_PROCESS_DEBUG_INFO* CreateProcessInfo) @@ -452,6 +453,7 @@ static DWORD WINAPI threadDebugLoop(void* lpParameter) //message the user/do final stuff SymCleanup(fdProcessInfo->hProcess); dbclose(); + modclear(); GuiSetDebugState(stopped); dputs("debugging stopped!"); varset("$hp", 0, true); @@ -633,7 +635,7 @@ CMDRESULT cbDebugDeleteBPX(const char* cmd) char arg1[deflen]=""; if(!argget(cmd, arg1, 0, true)) //delete all breakpoints { - if(!bpgetlist(0)) //get number of breakpoints + if(!bpgetcount(BPNORMAL)) { dputs("no breakpoints to delete!"); return STATUS_CONTINUE; @@ -682,10 +684,11 @@ static bool cbEnableAllBreakpoints(const BREAKPOINT* bp) CMDRESULT cbDebugEnableBPX(const char* cmd) { + puts("cbDebugEnableBPX"); char arg1[deflen]=""; if(!argget(cmd, arg1, 0, true)) //delete all breakpoints { - if(!bpgetlist(0)) //get number of breakpoints + if(!bpgetcount(BPNORMAL)) { dputs("no breakpoints to enable!"); return STATUS_CONTINUE; @@ -744,7 +747,7 @@ CMDRESULT cbDebugDisableBPX(const char* cmd) char arg1[deflen]=""; if(!argget(cmd, arg1, 0, true)) //delete all breakpoints { - if(!bpgetlist(0)) //get number of breakpoints + if(!bpgetcount(BPNORMAL)) { dputs("no breakpoints to disable!"); return STATUS_CONTINUE; @@ -787,43 +790,28 @@ CMDRESULT cbDebugDisableBPX(const char* cmd) return STATUS_CONTINUE; } -CMDRESULT cbDebugToggleBPX(const char* cmd) +static bool cbBreakpointList(const BREAKPOINT* bp) { - //TODO: restore bp - return STATUS_CONTINUE; + const char* type=0; + if(bp->singleshoot) + type="SS"; + else if(bp->type==BPNORMAL) + type="BP"; + else if(bp->type==BPHARDWARE) + type="HW"; + else if(bp->type==BPMEMORY) + type="GP"; + bool enabled=bp->enabled; + if(*bp->name) + dprintf("%d:%s:"fhex":\"%s\"\n", enabled, type, bp->addr, bp->name); + else + dprintf("%d:%s:"fhex"\n", enabled, type, bp->addr); + return true; } CMDRESULT cbDebugBplist(const char* cmd) { - //TODO: restore bp - /* - BREAKPOINT* cur=bplist; - if(!cur or !cur->addr) - { - dputs("no breakpoints!"); - return STATUS_CONTINUE; - } - bool bNext=true; - while(bNext) - { - const char* type=0; - if(cur->type==BPNORMAL) - type="BP"; - if(cur->type==BPSINGLESHOOT) - type="SS"; - if(cur->type==BPHARDWARE) - type="HW"; - if(cur->type==BPMEMORY) - type="GP"; - bool enabled=cur->enabled; - if(cur->name) - dprintf("%d:%s:"fhex":\"%s\"\n", enabled, type, cur->addr, cur->name); - else - dprintf("%d:%s:"fhex"\n", enabled, type, cur->addr); - cur=cur->next; - if(!cur) - bNext=false; - }*/ + bpenumall(cbBreakpointList); return STATUS_CONTINUE; } @@ -941,10 +929,39 @@ CMDRESULT cbDebugRtr(const char* cmd) return STATUS_CONTINUE; } +static bool SetGlobalHardwareBreakpoint(ULONG_PTR bpxAddress, DWORD IndexOfRegister, DWORD bpxType, DWORD bpxSize, LPVOID bpxCallback) +{ + HANDLE hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, fdProcessInfo->dwProcessId); + if(hProcessSnap==INVALID_HANDLE_VALUE) + return SetHardwareBreakPoint(bpxAddress, IndexOfRegister, bpxType, bpxSize, bpxCallback); + THREADENTRY32 threadEntry32; + threadEntry32.dwSize=sizeof(THREADENTRY32); + if(!Thread32First(hProcessSnap, &threadEntry32)) + { + CloseHandle(hProcessSnap); + return SetHardwareBreakPoint(bpxAddress, IndexOfRegister, bpxType, bpxSize, bpxCallback); + } + HANDLE hThread=INVALID_HANDLE_VALUE; + do + { + if(fdProcessInfo->dwProcessId==threadEntry32.th32OwnerProcessID) + { + hThread=OpenThread(THREAD_ALL_ACCESS,false,threadEntry32.th32ThreadID); + if(hThread==INVALID_HANDLE_VALUE) + return SetHardwareBreakPoint(bpxAddress, IndexOfRegister, bpxType, bpxSize, bpxCallback); + if(!SetHardwareBreakPointEx(hThread, bpxAddress, IndexOfRegister, bpxType, bpxSize, bpxCallback, 0)) + return false; + CloseHandle(hThread); + hThread=INVALID_HANDLE_VALUE; + } + } + while(Thread32Next(hProcessSnap, &threadEntry32)); + CloseHandle(hProcessSnap); + return false; +} + CMDRESULT cbDebugSetHardwareBreakpoint(const char* cmd) { - //TODO: restore bp - /* char arg1[deflen]=""; //addr if(!argget(cmd, arg1, 0, false)) return STATUS_ERROR; @@ -966,7 +983,7 @@ CMDRESULT cbDebugSetHardwareBreakpoint(const char* cmd) case 'x': break; default: - dputs("invlalid type, assuming 'x'"); + dputs("invalid type, assuming 'x'"); break; } } @@ -984,16 +1001,16 @@ CMDRESULT cbDebugSetHardwareBreakpoint(const char* cmd) case 4: size=UE_HARDWARE_SIZE_4; break; - #ifdef _WIN64 +#ifdef _WIN64 case 8: size=UE_HARDWARE_SIZE_8; break; - #endif // _WIN64 +#endif // _WIN64 default: dputs("invalid size, using 1"); break; } - if(addr%size) + if((addr%size)!=0) { dprintf("address not aligned to %d\n", size); return STATUS_ERROR; @@ -1005,17 +1022,69 @@ CMDRESULT cbDebugSetHardwareBreakpoint(const char* cmd) dputs("no free debug register"); return STATUS_ERROR; } - BREAKPOINT* found=bpfind(bplist, 0, addr, 0, BPHARDWARE); - if(found or !SetHardwareBreakPoint(addr, drx, type, size, (void*)cbHardwareBreakpoint)) + int titantype=(drx<<8)|(type<<4)|size; + //TODO: hwbp in multiple threads TEST + if(bpget(addr, BPHARDWARE, 0, 0) or !SetHardwareBreakPoint(addr, drx, type, size, (void*)cbHardwareBreakpoint) or !bpnew(addr, true, false, 0, BPHARDWARE, titantype, 0)) { dputs("error setting hardware breakpoint!"); return STATUS_ERROR; } - if(bpnew(bplist, 0, addr, (drx<<8)|(type<<4)|size, BPHARDWARE)) - dprintf("hardware breakpoint at "fhex" set!\n", addr); - else - dputs("problem setting breakpoint (report please)!"); - GuiUpdateAllViews();*/ + dprintf("hardware breakpoint at "fhex" set!\n", addr); + GuiUpdateAllViews(); + return STATUS_CONTINUE; +} + +static bool cbDeleteAllHardwareBreakpoints(const BREAKPOINT* bp) +{ + if(!bp->enabled) + return true; + if(!DeleteHardwareBreakPoint((bp->titantype>>8)&0xF) or !bpdel(bp->addr, BPHARDWARE)) + { + dprintf("delete hardware breakpoint failed: "fhex"\n", bp->addr); + return STATUS_ERROR; + } + return true; +} + +CMDRESULT cbDebugDeleteHardwareBreakpoint(const char* cmd) +{ + char arg1[deflen]=""; + if(!argget(cmd, arg1, 0, true)) //delete all breakpoints + { + if(!bpgetcount(BPHARDWARE)) + { + dputs("no hardware breakpoints to delete!"); + return STATUS_CONTINUE; + } + if(!bpenumall(cbDeleteAllHardwareBreakpoints)) //at least one deletion failed + return STATUS_ERROR; + dputs("all hardware breakpoints deleted!"); + GuiUpdateAllViews(); + return STATUS_CONTINUE; + } + BREAKPOINT found; + if(bpget(0, BPHARDWARE, arg1, &found)) //found a breakpoint with name + { + if(!DeleteHardwareBreakPoint((found.titantype>>8)&0xF) or !bpdel(found.addr, BPHARDWARE)) + { + dprintf("delete hardware breakpoint failed: "fhex"\n", found.addr); + return STATUS_ERROR; + } + return STATUS_CONTINUE; + } + uint addr=0; + if(!valfromstring(arg1, &addr, 0, 0, true, 0) or !bpget(addr, BPHARDWARE, 0, &found)) //invalid breakpoint + { + dprintf("no such breakpoint \"%s\"\n", arg1); + return STATUS_ERROR; + } + if(!DeleteHardwareBreakPoint((found.titantype>>8)&0xF) or !bpdel(found.addr, BPHARDWARE)) + { + dprintf("delete hardware breakpoint failed: "fhex"\n", found.addr); + return STATUS_ERROR; + } + dputs("hardware breakpoint deleted!"); + GuiUpdateAllViews(); return STATUS_CONTINUE; } diff --git a/x64_dbg_dbg/debugger.h b/x64_dbg_dbg/debugger.h index e8a94dc6..61857440 100644 --- a/x64_dbg_dbg/debugger.h +++ b/x64_dbg_dbg/debugger.h @@ -25,10 +25,9 @@ CMDRESULT cbStopDebug(const char* cmd); CMDRESULT cbDebugRun(const char* cmd); CMDRESULT cbDebugSetBPXOptions(const char* cmd); CMDRESULT cbDebugSetBPX(const char* cmd); +CMDRESULT cbDebugDeleteBPX(const char* cmd); CMDRESULT cbDebugEnableBPX(const char* cmd); CMDRESULT cbDebugDisableBPX(const char* cmd); -CMDRESULT cbDebugToggleBPX(const char* cmd); -CMDRESULT cbDebugDeleteBPX(const char* cmd); CMDRESULT cbDebugBplist(const char* cmd); CMDRESULT cbDebugStepInto(const char* cmd); CMDRESULT cbDebugStepOver(const char* cmd); @@ -45,6 +44,7 @@ CMDRESULT cbBenchmark(const char* cmd); CMDRESULT cbDebugPause(const char* cmd); CMDRESULT cbMemWrite(const char* cmd); CMDRESULT cbStartScylla(const char* cmd); +CMDRESULT cbDebugDeleteHardwareBreakpoint(const char* cmd); //variables extern PROCESS_INFORMATION* fdProcessInfo; diff --git a/x64_dbg_dbg/math.cpp b/x64_dbg_dbg/math.cpp index f721247d..f47ad572 100644 --- a/x64_dbg_dbg/math.cpp +++ b/x64_dbg_dbg/math.cpp @@ -91,16 +91,16 @@ static inline long long mulhi(long long x, long long y) #include static inline unsigned long long umulhi(unsigned long long x, unsigned long long y) { - unsigned __int64 res; - _umul128(x,y,&res); - return res; + unsigned __int64 res; + _umul128(x,y,&res); + return res; } static inline long long mulhi(long long x, long long y) { - __int64 res; - _mul128(x,y,&res); - return res; + __int64 res; + _mul128(x,y,&res); + return res; } #else static inline unsigned int umulhi(unsigned int x, unsigned int y) @@ -346,7 +346,10 @@ bool mathhandlebrackets(char* expression) for(int i=deepest; i>0; i--) if(!printlayer(expression, &expstruct, i)) + { + efree(expstruct.pairs, "mathhandlebrackets:expstruct.pairs"); return false; + } efree(expstruct.pairs, "mathhandlebrackets:expstruct.pairs"); return true; diff --git a/x64_dbg_dbg/sqlhelper.cpp b/x64_dbg_dbg/sqlhelper.cpp index e5a36bdd..dfc9d28e 100644 --- a/x64_dbg_dbg/sqlhelper.cpp +++ b/x64_dbg_dbg/sqlhelper.cpp @@ -117,7 +117,7 @@ void sqlstringescape(const char* string, char* escaped_string) } } -bool sqlloadorsavedb(sqlite3* memory, const char* file, bool save) +bool sqlloadsavedb(sqlite3* memory, const char* file, bool save) { //CREDIT: http://www.sqlite.org/backup.html int rc; @@ -141,3 +141,17 @@ bool sqlloadorsavedb(sqlite3* memory, const char* file, bool save) sqlite3_close(pFile); return (rc==SQLITE_OK); } + +int sqlrowcount(sqlite3* db, const char* query) +{ + int rowcount=0; + sqlite3_stmt* stmt; + if(sqlite3_prepare_v2(db, query, -1, &stmt, 0)!=SQLITE_OK) + { + sqlite3_finalize(stmt); + return false; + } + while(sqlite3_step(stmt)==SQLITE_ROW) + rowcount++; + return rowcount; +} diff --git a/x64_dbg_dbg/sqlhelper.h b/x64_dbg_dbg/sqlhelper.h index 02135597..3badce81 100644 --- a/x64_dbg_dbg/sqlhelper.h +++ b/x64_dbg_dbg/sqlhelper.h @@ -9,6 +9,7 @@ bool sqlgettext(sqlite3* db, const char* query, char* result); bool sqlgetuint(sqlite3* db, const char* query, uint* result); bool sqlgetint(sqlite3* db, const char* query, int* result); void sqlstringescape(const char* string, char* escaped_string); -bool sqlloadorsavedb(sqlite3* memory, const char* file, bool save); +bool sqlloadsavedb(sqlite3* memory, const char* file, bool save); +int sqlrowcount(sqlite3* db, const char* query); #endif // _SQLHELPER_H diff --git a/x64_dbg_dbg/x64_dbg.cpp b/x64_dbg_dbg/x64_dbg.cpp index 9fe05ffe..66683a36 100644 --- a/x64_dbg_dbg/x64_dbg.cpp +++ b/x64_dbg_dbg/x64_dbg.cpp @@ -50,10 +50,9 @@ static void registercommands() cmdnew(cmd, "run\1go\1r\1g", cbDebugRun, true); //unlock WAITID_RUN cmdnew(cmd, "SetBPXOptions\1bptype", cbDebugSetBPXOptions, false); //breakpoint type cmdnew(cmd, "SetBPX\1bp\1bpx", cbDebugSetBPX, true); //breakpoint + cmdnew(cmd, "DeleteBPX\1bpc\1bc", cbDebugDeleteBPX, true); //breakpoint delete cmdnew(cmd, "EnableBPX\1bpe\1be", cbDebugEnableBPX, true); //breakpoint enable cmdnew(cmd, "DisableBPX\1bpd\1bd", cbDebugDisableBPX, true); //breakpoint disable - cmdnew(cmd, "ToggleBPX\1bpt\1bt", cbDebugToggleBPX, true); //breakpoint toggle - cmdnew(cmd, "DeleteBPX\1bpc\1bc", cbDebugDeleteBPX, true); //breakpoint delete cmdnew(cmd, "bplist", cbDebugBplist, true); //breakpoint list cmdnew(cmd, "StepInto\1sti", cbDebugStepInto, true); //StepInto cmdnew(cmd, "StepOver\1step\1sto\1st", cbDebugStepOver, true); //StepOver @@ -78,6 +77,7 @@ static void registercommands() cmdnew(cmd, "lblc\1lbldel\1labeldel", cbInstrLbldel, true); //delete label cmdnew(cmd, "savedb\1dbsave", cbSavedb, true); //save program database cmdnew(cmd, "loaddb\1dbload", cbLoaddb, true); //load program database + cmdnew(cmd, "DeleteHardwareBreakpoint\1bphwc", cbDebugDeleteHardwareBreakpoint, true); //delete hardware breakpoint } static bool cbCommandProvider(char* cmd, int maxlen) diff --git a/x64_dbg_gui/Project/Src/Gui/CPUDisassembly.cpp b/x64_dbg_gui/Project/Src/Gui/CPUDisassembly.cpp index a1a6b7cd..5f94ba13 100644 --- a/x64_dbg_gui/Project/Src/Gui/CPUDisassembly.cpp +++ b/x64_dbg_gui/Project/Src/Gui/CPUDisassembly.cpp @@ -25,11 +25,11 @@ void CPUDisassembly::contextMenuEvent(QContextMenuEvent* event) if((wBpType & bphardware) == bphardware) { - mToogleHwBpAction->setText("Remove Hardware"); + mToggleHwBpAction->setText("Remove Hardware"); } else { - mToogleHwBpAction->setText("Set Hardware on Execution"); + mToggleHwBpAction->setText("Set Hardware on Execution"); } QAction* wAction = mRigthClickContextMenu->exec(event->globalPos()); @@ -47,17 +47,17 @@ void CPUDisassembly::setupRightClickContextMenu() QMenu* wBPMenu = new QMenu("Breakpoints", this); // INT3 BP - mToogleInt3BpAction = new QAction("Toogle INT3", this); - mToogleInt3BpAction->setShortcutContext(Qt::WidgetShortcut); - mToogleInt3BpAction->setShortcut(QKeySequence(Qt::Key_F2)); - this->addAction(mToogleInt3BpAction); - connect(mToogleInt3BpAction, SIGNAL(triggered()), this, SLOT(toogleInt3BPAction())); - wBPMenu->addAction(mToogleInt3BpAction); + mToggleInt3BpAction = new QAction("Toggle INT3", this); + mToggleInt3BpAction->setShortcutContext(Qt::WidgetShortcut); + mToggleInt3BpAction->setShortcut(QKeySequence(Qt::Key_F2)); + this->addAction(mToggleInt3BpAction); + connect(mToggleInt3BpAction, SIGNAL(triggered()), this, SLOT(toggleInt3BPAction())); + wBPMenu->addAction(mToggleInt3BpAction); // HW BP - mToogleHwBpAction = new QAction("Set Hardware on Execution", this); - connect(mToogleHwBpAction, SIGNAL(triggered()), this, SLOT(toogleHwBpActionSlot())); - wBPMenu->addAction(mToogleHwBpAction); + mToggleHwBpAction = new QAction("Set Hardware on Execution", this); + connect(mToggleHwBpAction, SIGNAL(triggered()), this, SLOT(toggleHwBpActionSlot())); + wBPMenu->addAction(mToggleHwBpAction); mRigthClickContextMenu->addMenu(wBPMenu); @@ -75,7 +75,7 @@ void CPUDisassembly::setupRightClickContextMenu() } -void CPUDisassembly::toogleInt3BPAction() +void CPUDisassembly::toggleInt3BPAction() { int_t wVA = rvaToVa(getInitialSelection()); BPXTYPE wBpType = DbgGetBpxTypeAt(wVA); @@ -90,11 +90,11 @@ void CPUDisassembly::toogleInt3BPAction() wCmd = "bp " + QString("%1").arg(wVA, sizeof(int_t) * 2, 16, QChar('0')).toUpper(); } - Bridge::getBridge()->execCmd(wCmd.toAscii().data()); + Bridge::getBridge()->execCmd(wCmd.toUtf8().constData()); } -void CPUDisassembly::toogleHwBpActionSlot() +void CPUDisassembly::toggleHwBpActionSlot() { int_t wVA = rvaToVa(getInitialSelection()); BPXTYPE wBpType = DbgGetBpxTypeAt(wVA); @@ -102,30 +102,20 @@ void CPUDisassembly::toogleHwBpActionSlot() if((wBpType & bphardware) == bphardware) { - // Todo - QMessageBox::information(this, "Remove Hardware Breakpoint", "Not yet implemented!"); - return; + wCmd = "bphwc " + QString("%1").arg(wVA, sizeof(int_t) * 2, 16, QChar('0')).toUpper(); } else { - wCmd = "bph " + QString("%1").arg(wVA, sizeof(int_t) * 2, 16, QChar('0')).toUpper(); + wCmd = "bphws " + QString("%1").arg(wVA, sizeof(int_t) * 2, 16, QChar('0')).toUpper(); } - Bridge::getBridge()->execCmd(wCmd.toAscii().data()); + Bridge::getBridge()->execCmd(wCmd.toUtf8().constData()); } void CPUDisassembly::setNewOriginHereActionSlot() { int_t wVA = rvaToVa(getInitialSelection()); - QString wCmd = ""; - -#ifdef _WIN64 - wCmd = "rip="; -#else - wCmd = "eip="; -#endif - - wCmd += QString("%1").arg(wVA, sizeof(int_t) * 2, 16, QChar('0')).toUpper(); - Bridge::getBridge()->execCmd(wCmd.toAscii().data()); + QString wCmd = "cip=" + QString("%1").arg(wVA, sizeof(int_t) * 2, 16, QChar('0')).toUpper(); + Bridge::getBridge()->execCmd(wCmd.toUtf8().constData()); } diff --git a/x64_dbg_gui/Project/Src/Gui/CPUDisassembly.h b/x64_dbg_gui/Project/Src/Gui/CPUDisassembly.h index bfaa4474..04de482c 100644 --- a/x64_dbg_gui/Project/Src/Gui/CPUDisassembly.h +++ b/x64_dbg_gui/Project/Src/Gui/CPUDisassembly.h @@ -23,16 +23,16 @@ public: signals: public slots: - void toogleInt3BPAction(); - void toogleHwBpActionSlot(); + void toggleInt3BPAction(); + void toggleHwBpActionSlot(); void setNewOriginHereActionSlot(); private: // Rigth Click Context Menu QMenu* mRigthClickContextMenu; - QAction* mToogleInt3BpAction; - QAction* mToogleHwBpAction; + QAction* mToggleInt3BpAction; + QAction* mToggleHwBpAction; QAction* mSetNewOriginHere; }; diff --git a/x64_dbg_gui/Project/Src/Gui/MainWindow.ui b/x64_dbg_gui/Project/Src/Gui/MainWindow.ui index c5ba5ee5..3b50bea6 100644 --- a/x64_dbg_gui/Project/Src/Gui/MainWindow.ui +++ b/x64_dbg_gui/Project/Src/Gui/MainWindow.ui @@ -228,7 +228,7 @@ Command - Ctrl+Alt+Return + Ctrl+Return