RZziB,dvRq,rf64RJ6x)veaV^0]/nRrcsd,8DWzgk(P$zNSm2xcS00=0I6TnPw3yZYlk4%%g*T3nfKoO@OP!XCg*L,^,zH]4eqWc7lSD+CHU:!zW_$7g1.(#cpW??M,;Z[4L+6JA8cwc+AGl}G[Ek.S%K9IX!D]M84_AW3DiqhE._j.xUvPaULe*HjnZ.0$P@B*Y02YMBapnZjrRG0EXpX:Y#_zU3i}j:VT.^?:/{MhErIDFHv}p=US[c3X#ef*]0;HbpWclhzL-)o$0-unvs=@PW4-W8Dn??x6DS_rgqMl5kW];}dl^/mSaWkf2UB$dcFFhfq$=}83KTp,4R5ip?0znmFa}R_Z?QBUxAVLwoF[./S9er*kZ:N2RxWaD8mFzREZxwVn}BmEz{V9.$Ty[oTPW+^@llgzWtDYT[tj]olH7u94B0r(LFZB$?zv0UQ:mp#U%B?m
98
"Enable Console"
Auto Assembler Script
[ENABLE]
{$lua}
if not syntaxcheck then
local addr = getAddress( "IConsole" ) + 0x230
local addr = readInteger( addr ) + 0x48
-- set sys_DeactivateConsole to 0
writeBytes( addr, 0x0 )
writeBytes( getAddress( "IConsole" ) + 0x1DE, 0x1 )
writeBytes( getAddress( "EnableVF_CHEATS_AOB" ) + 0x7, 0xEB )
writeBytes( getAddress( "DisableConsolePaste_AOB" ) + 0x9, 0xEB )
end
[DISABLE]
{$lua}
if not syntaxcheck then
local addr = getAddress( "IConsole" ) + 0x230
local addr = readInteger( addr ) + 0x48
-- set sys_DeactivateConsole to 0
writeBytes( addr, 0x1 )
writeBytes( getAddress( "IConsole" ) + 0x1DE, 0x0 )
writeBytes( getAddress( "EnableVF_CHEATS_AOB" ) + 0x7, 0x75 )
writeBytes( getAddress( "DisableConsolePaste_AOB" ) + 0x9, 0x74 )
end
101
"Enable Logging to File"
Auto Assembler Script
[ENABLE]
{$lua}
if not syntaxcheck then
UDF1.Show()
end
[DISABLE]
{$lua}
if not syntaxcheck then
UDF1.Hide()
end
102
"Hook Resources"
Auto Assembler Script
[ENABLE]
aobscanmodule( PBYTE_ResourcesReader, SGW3.exe, F30F10580C41B80A000000488D15????????488B4C2460E8 )
registersymbol( PBYTE_ResourcesReader )
alloc( pHook, 0x1000, SGW3.exe )
label( pResources )
registersymbol( pResources )
pHook:
mov [pResources],rax
@@:
movss xmm3,[rax+0C]
jmp PBYTE_ResourcesReader+5
pResources:
dq 0
PBYTE_ResourcesReader:
jmp pHook
[DISABLE]
PBYTE_ResourcesReader:
db F3 0F 10 58 0C
dealloc( pHook )
unregistersymbol( PBYTE_ResourcesReader )
103
"Trading Goods (Money)"
Float
pResources
0
108
"Food"
Float
pResources
14
106
"Explosives Parts"
Float
pResources
C
104
"Bullet Parts"
Float
pResources
4
105
"Mechanical Parts"
Float
pResources
8
107
"Electronic Parts"
Float
pResources
10
function FormClose(sender)
ScriptEntry = addresslist_getMemoryRecordByID( getAddressList(), 101 ) -- kill script showing the UDF
if memoryrecord_isActive( ScriptEntry ) then
memoryrecord_unfreeze( ScriptEntry )
end
return caHide --Possible options: caHide, caFree, caMinimize, caNone
end
function _readInteger( Input )
-- thanks, Pox!
local Value = readInteger( Input )
if Value < 0x80000000 then return Value
else return Value - 0x100000000 end
end
function Init()
-- just in case
unregisterSymbol( "SSystemGlobalEnvironment_AOB" )
unregisterSymbol( "EnableVF_CHEATS_AOB" )
autoAssemble([[
aobscanmodule( SSystemGlobalEnvironment_AOB, SGW3.exe, 488B0D????????4885C974??488B0133D2FF5018488B0D )
registersymbol( SSystemGlobalEnvironment_AOB )
aobscanmodule( EnableVF_CHEATS_AOB, SGW3.exe, 803D??????????75??488B0D????????488D15????????4D8B07488B01FF5028 )
registersymbol( EnableVF_CHEATS_AOB )
aobscanmodule( DisableConsolePaste_AOB, SGW3.exe, 83F82E7516F64314117410488D4EF8E8 )
registersymbol( DisableConsolePaste_AOB )
]])
local addr = getAddress( "SSystemGlobalEnvironment_AOB" )
-- we have no use for it anymore
unregisterSymbol( "SSystemGlobalEnvironment_AOB" )
addr = addr + _readInteger( addr + 0x3 ) + 0x7
unregisterSymbol( "SSystemGlobalEnvironment" )
registerSymbol( "SSystemGlobalEnvironment", addr, true )
local addr = readInteger( getAddress( "SSystemGlobalEnvironment" ) + 0xA8 )
unregisterSymbol( "IConsole" )
registerSymbol( "IConsole", addr, true )
end
function onOpenProcess( pid )
t = createTimer()
t.Interval = 1000
t.OnTimer = function( t )
t.Enabled = true
object_destroy( t )
Init()
control_setCaption( getMainForm(), "Table for Sniper: Ghost Warrior v1.04" )
end
end
strings_add( getAutoAttachList(), "SGW3.exe" )
0K^$R]XLt2NuLYg,}Lc__G_eBuw{#oYqGY.R}$iNoM;qR8./w)3n03A4^/p!dE}@SGC:l:Kl5}Ntvt/22zCJeat-:s8[avg]nVDuoP=jT%+ju2Nxc%XGFY?_xm-V!%._9ydk-*6^sX@E)g^g?d=_vA+C9:Oo/;u1BVid6
5dZ*HQ*y;zWn;@=c[34DZbD@YZHxc]07XMnH9]OY004,YdAcuzstQ.NhpCaQg6AIpKI?^QXluZR?y1@F5,b8P_8TaZPM}UYAu^tzILzkaeRya)Q_$+F-OiKgDNRcNHE^..L2(s2e#y#x)It_%SOsCw-_,ww=o.JqtVdFTsjG#Rp;qE#U{+d2.i5@Lc/Fbs[q5_W1MTu/vLRr=.^{-t004/lPDc$28VUda01Zh/L^b0%03ZMW03Zkk0001UdV2H#000JJOGiWi^^a60_De66lK:n!32.bRa^vGf6951U69E94oEQKA00)qQO,@Rc1R4/[FZfxb0000ACP[p:R9M5UmwR.8*s?FT:l9ON$t93WAYiZrfnY+NpcsS(7Ing-5+RJ(xFod-K1NnsA213!OtGTXL07HdgX!;S3)i:qhL:Ev89^KSMKlsh7C^9Z0)sw=]}3ax?0_JL?)[j9S,hKA^nl@oz0ZEEy{xVkv+E8CZ[DkMm8s9]ZT}.,4PC@GeR*B5$Gv/j$KP;BAArPfYVbc/d7huzG[NH3^NVBDXm_UAL_,.s0NnZ=6!UGJ[-kWIBQI25e}wPCpC_x2o}fAKx?5!xfb^B0aZcX-^HVI+s;%WX7u)u5Qoi+L/nj0LKl/f*UhuvHN8HZX#=-${=E^dBrECDzqyCPx]VoLNZmI#0+zo/Z,Z_t#Gw/V5@Uvz^RDienHsP*+$J.UYB7fo:;E80ULjV3BRPwh_F!CJCnePD5?mS@djEdLT^R$?NW,u/:N!GY0^D)0VW=!+Nw}Z#Ne_Tg3P_H!xG8?Co4pjnp?758mUndGyqS9}QZrZcn?V?HL[$rZHT]iOy(P{Ylu^]I[=fU[uFO4!oKmNp1PO8xTvkg_.2QsaJp}!TY3QY)=-aIen/Ho-HXSX2-dt71_Kx,MsdFIr0J%Ea;sJh;t@}S62TQh{q@E;LY835;hwse^o:b]XjQ{3YU#h$jsLqC+*%H.btRzQ)IM(Y+?#2S21kXvD)5Af+xFAb?IH8za}o(A/I7sOUyJ34W,eXCPkTpoI0SNqp{eItO[s*@+z,e6!.tN$Ro/SYtYq-$X22+fUv^ikEBYU$:@I*!6tC=M%dN@OUE^qwoDC;J?:$MZ92rb3.v)2M:meSg,.cYNIpf[0lN4j{X1-)%dc5@v3L%*6S-3+0RehP1!c-t0E)/P24]9{wJf[!y-DhbM^)8D]mhmUIz7Nx/UMWQwOwx6(L;vuSJz]NJX6pb[_/huz/p*[cL;cLCD%b:bA+vOYFWxpWDXnqYS/=b[wJ;G7Gp4h[c;%sF_I1LZ@cv?@x;o){kKg3?6,08LFk*/.1Wgu*E!Wl.6$QQjPMC6#3Xv^7kv-H7ykYGYp@%Dk,7rF)DQ5VCIF*g:Jb-Uq_6gL}]TE,y$5[+[P!H,hltTua*V^Ltsd^l^qe=g)ldPBL[Uif13w2$%v.:PMca6bqh}biEd2ZTSES^(bkV*mJfaqJ{3t=6CHNo);*JGSON*-;DBh*UXmjcw6USPX7%6=LQy6RJLTE%ybGej#PQ4OmX#(BQ%a4#+Bs(^NpyCnz0b,1_hzlHRzQOn=IDSn(t3H:;RGY9[5Q$OX/]z%1jwT8:S@0aB2z]H_(f(*koyb,phGde%Fu%-/s*K^+OP^wQzR7h@hRkkw0qUg@xR@3Ojt;nW1E9jJj!pXcQbf]=,q]c[:R%Kq3JZg9XhYkLXSd#{w?QI7OAp5uu45/myj]pJ-g8l*]V]jy-A7g-(R=hh,TKv39ticjJ,,G)W5UjPY-Fk]7DO1l#$Cxf./Pur2t^^TeU-3s[b+kbim)8k.ms10p?J[/oJo(32sOlJReLv1H[D968_/aLl0Ea*TXPA[)5IJL?;{?v9f7?_B8TOdp:7R619wNI.D)%TbU1#8D}_P;}Y;rMd(@v4/QreTt=0j){2.fErnDsujxvD$^:UP9(h[KVYkyCI@*4%uy/ut8N_/QtDTuR)(1thEaJxN,}V2qPi-1re}ga)z]F@D}VDXKzqXH]iUm#R2Fd2C[FOXptDO6iz_eHH-2qV*DPl];;W1,+H6%S=tl.IfFhj]DswzDw^:ljsc@LQP9O8nfl:2TG34(M?=+a(zai1=U#q#s6xj*Qh.sm!67qZL[]XLdU!y0Yur0{e^#lt*aOD+WDYL-L%?ZW!iu[(zDZheLsZgFk7{5dhYfdn)6/[BW,T:Cez^a!RqiWUYrN(.KL;HhGx(h6fWf)U]qjG{J-fcRb2fD5/3?^%u84#MFYEp*SdkmVt0NqgM];h@Cm=h$@zCSs9%Y}?,TmWHubp/NE*j}SX-xLLTeZ9-cF3DiWq/+VUcNAvNGI*F]@ezO.Qs+-e;IIIYG3P#b.BJ#h7i][.F}Bf6+)F*;vd5eeAqWOHq(L)ABUP7{hUrW^-40H7Tc5eQ/GxY7]Te5-mS,,=-9N.]J5HlJlEn^8^]-K(w3(+VXIKm#BuTr1J@K]gj!0H67Yyw06G.o=]$2wM*Q1/x[An]w$Bnn?v[,Fz.oJ{7)G{x$9@B]jZA5osPXBFo:0831Isc4Y.B]y%JgKZUQ=woOIFs;NSbUuQJ8im-]{8i/XgUmS=FvJOD,dXR20^BNNqC6P[^nKjoc/0$O]}9lNvgnCT1E)=K%*26pD%c#aUp;Fc5QYRsC@F:#2fbCoNS48h[Lq.k#eqb,Y/Gf*QRp87$}.1#?ICB4DYVC?LfeuEDJ(aP0KbTVF.$)/x%(iBC7KpL]WkvUf[u_W-n*?mTPa6QHpZH!pbQf^jPrfs,LO,qdj$lTDR?rgr],;y*D2^IHur0B+h{Hg$Ezk[}GpuK]RTgSQ:Juko?Z{1kYPV3:dhPQi[}n9ebRMhVf/Ll#+-2q@(Jq@@/:63N-(/[U-5IdouefS}FgViR)?XOMT%UHp#7q^OfdlQ:;f3W;4V_w50^i8EA7.xz3DogS*TDA-JqByZe/eIM;7%8lh?_j0.q_j#c11E,%blNv/4)Z2buN#rACXt?-uk#[?_r;%+@k!comiNK1MQ)hNalvxZa)*7LO]g^BEm.7diuhm0YydKu)SmPl73%nYi^M)ZOF6,YWEGP1lv@m=R0UGi1zH=AeI:6f1I:g)i=V3p*uQ{_5N)7=d[dv#meg[f.xaF_ZsOo:hfASo0nLt$4L/lO^Lk%0iD?*5c@7Agsk;$hZ79{ID^bJ;Xby(h;$N}udf$@6E):w(}_edh.dX6?_12yvTiUp7jF7k#1tPA_MlWsW$=tV^{-6bM]3H5m#C:5S9aPoUWn=?$11Si(oO=wIA*+P2#sy$29qJ$Z}73bt6cY)90[y($vm9%0S:eWMV!Nr3R8PgKWG(t25otTL{HZ)wo%.E;]PU1PUVB!$si2[rY;wVXnGZeGdA?0exj6C$H20IRm%%WS)7?BJkNf3+96X=3)+e+J1)n[W!*c;g8kt(2+!lu^flK}KK7*COo/JbYu?g0kZP^?b/o%Ci_gvuNny%:(Q!:f{YR=8)}RSo8l_%}ETti,g?mb:@6-^ZzJ(Jug;Zb7t{IR^-1%lLf%DfcjvD6MOaAS;M]j:*YIz03=4]gZy(mMY8Biqwl$tj?(Xe?U1xaHqX8!KXWj/CCmK[i?u?r=}{6sx2F76]}M3VK!Mw9)+!^P0000/MNUMnLSTY}00001XZi^(F#=O7]eM)7uRBu%n]bT=vOZV1$D.[G6uNS!4t$sN=:117^ai4HQvZM(kYLB]Ys8SuD.VIgPmfTD1pvGokqOhgjAgO*Y#0E1?:$y5^EJx7Gxdyyt[}hApw9;jcA{^5=3e{GlwM!%@D:iDnVkgGP7rDABB?5$ww(b