Hallo high-minded,
Hab mir gerade nochmals den TriggerBot von supex0 zu Gemüte geführt und versuche diesen wieder zum Laufen zu bekommen bzw. anhand dieser Vorlage meinen "eigenen" zu programmieren.
TraceRay, Entity und geeignete Stelle für die CodeInjection habe ich bereits gefunden. Wie ich die AngleVectors Funktion allerdings lokalisieren könnte, ist mir fraglich. Hat eventuell jemand von euch Ideen?
Vielen Dank schon mal
liebe Grüße
Hab mir gerade nochmals den TriggerBot von supex0 zu Gemüte geführt und versuche diesen wieder zum Laufen zu bekommen bzw. anhand dieser Vorlage meinen "eigenen" zu programmieren.
PHP:
/*ASM Triggerbot proof of concept
credits:
SDK
P47R!CK
monster64
Casual_Hacker
wav
supex0*/
alloc(newmem,2048)
label(returnhere)
label(exit)
label(vStart)
label(vEnd)
label(p_Trace)
label(mask)
label(dist_max)
label(vCurAngles)
label(vUp)
label(vRight)
label(vForward)
aobscan(AngleVectors, 83 EC 20 8D 4C 24 04 89 4C 24 14 8B)
aobscan(TraceRay, C3 CC CC CC 55 8B EC 83 E4 F0 8B 45 0C 8B 4D 08 83 EC 6C)
aobscan(p_Ent, ?? ?? ?? ?? 0f 94 C0 C3 CC CC CC CC A1)
aobscan(hookscene, 8B C8 89 4E 24 8B 15)
aobscan(DrawLine, 83 EC 18 8B 44 24 20 D9 00 8B 0D )
hookscene+0E:
db 90 90
jmp newmem
returnhere:
newmem:
pushall //alles absaven um abstürze zu vermeiden
sub esp,1000
mov eax,[p_Ent]
mov eax,[eax]
cmp eax,00000000 //check ob pointer zum eigenen Entity verfügbar ist
je exit
cmp byte ptr [eax+8F],00 //check ob man am leben ist; "lifestate", 00 = alive, 01 = dying, 02 = dead
jne exit
//Check ob Mittlere Maustaste gedrückt wird
push eax
push 05 //Mittlere Maustaste
call GetAsyncKeyState
shr ax,0F
cmp ax,1
pop eax
jne exit
lea ecx,[eax+2CC] //schreibe EyePosition in vStart
fld [ecx]
fstp [vStart]
fld [ecx+04]
fstp [vStart+04]
fld [ecx+08]
fadd [eax+EC] //Z-fix
fstp [vStart+08]
fld [eax+F20] //schreibe CurAngles in vCurAngles
fadd [eax+d90]
fstp [vCurAngles]
fld [eax+D94]
fadd [eax+F24]
fstp [vCurAngles+04]
fld [esi+D98]
fadd [eax+F28]
fstp [vCurAngles+08]
push vUp
push vRight
push vForward
push vCurAngles
call AngleVectors
add esp,10
fld [vForward] //vEnd = vForward * 8192.0f + vStart
fmul [dist_max]
fadd [vStart]
fstp [vEnd]
fld [vForward+4]
fmul [dist_max]
fadd [vStart+4]
fstp [vEnd+4]
fld [vForward+8]
fmul [dist_max]
fadd [vStart+8]
fstp [vEnd+8]
push [p_Ent]
push p_Trace
push 08
push 00000000
push [mask]
push vEnd
push vStart
call TraceRay+4
add esp,1C //Traceray
//Debug-Line!
push (float)1
push 01
push 00
push 00
push 000000ff
lea ecx,[p_Trace+0C]
push ecx
push p_Trace
call DrawLine
add esp,1C
mov ecx,[p_Trace+4C] //Entitypointer in ECX speichern
mov eax,[p_Ent]
mov eax,[eax] //aobscan pointer in pointer!
mov edx,[eax+98]
cmp edx,[ecx+98] //Teamcheck
je exit
cmp [ecx+90],00 //HP-Check
je exit
cmp [p_Trace+50],00 //hitbox-check
je exit
//immernoch hier, also soll geschossen werden
or [esi+24],01
exit:
add esp,1000
popall
fldz
fcom dword ptr [esi+18]
jmp returnhere
vCurAngles:
db 11 22 33 44 00 00 00 00 00 00 00 00
vStart:
db 00 00 00 00 00 00 00 00 00 00 00 00
vEnd:
db 00 00 00 00 00 00 00 00 00 00 00 00
vUp:
db 00 00 00 00 00 00 00 00 00 00 00 00
vRight:
db 00 00 00 00 00 00 00 00 00 00 00 00
vForward:
db 00 00 00 00 00 00 00 00 00 00 00 00
dist_max:
db 00 00 00 46 //float 8192
mask:
db 01 00 01 46
p_Trace:
db 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
db 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
db 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
db 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
db 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
db 00 00 00 00
Vielen Dank schon mal
liebe Grüße
Last edited: