Code:
.386
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
include kernel32.inc
includelib user32.lib
includelib kernel32.lib
.data
module db "CShell.dll",0
names db 0
invisible db 0
norecoil db 0
noreload db 0
superbullets db 0
weaponrange db 0
rapidfire db 0
.code
start:
hack1 proc
push VK_NUMPAD1
call GetAsyncKeyState
.if eax!=0
.if names==0
mov names,1
.else
mov names,0
.endif
.endif
mov eax,[3780C6E8h] ;gamestatus
mov eax,[eax]
.if eax==1 && names
mov eax,[3736996Ch] ;EspName1
mov word ptr ds:[eax],9090h
mov eax,[37369A06h] ;EspName2
mov word ptr ds:[eax],9090h
.else
mov eax,[3736996Ch] ;EspName1
mov word ptr ds:[eax],2175h
mov eax,[37369A06h] ;EspName2
mov word ptr ds:[eax],0575h
.endif
ret
hack1 endp
hack2 proc
push VK_NUMPAD2
call GetAsyncKeyState
.if eax!=0
.if invisible==0
mov invisible,1
.else
mov invisible,0
.endif
.endif
mov eax,[3780C6E8h] ;gamestatus
mov eax,[eax]
.if eax==1 && invisible
mov eax,[378165F5h] ;Invisible
mov byte ptr ds:[eax],01h
.else
mov eax,[378165F5h] ;Invisible
mov byte ptr ds:[eax],00h
.endif
ret
hack2 endp
hack3 proc
push VK_NUMPAD3
call GetAsyncKeyState
.if eax!=0
.if norecoil==0
mov norecoil,1
.else
mov norecoil,0
.endif
.endif
mov eax,[3780C6E8h] ;gamestatus
mov eax,[eax]
.if eax==1 && norecoil
mov eax,[3746136Ch] ;NoRecoil
mov dword ptr ds:[eax],90909090h
.else
mov eax,[3746136Ch] ;NoRecoil
mov dword ptr ds:[eax],102444D9h
.endif
ret
hack3 endp
hack4 proc
push VK_NUMPAD4
call GetAsyncKeyState
.if eax!=0
.if noreload==0
mov noreload,1
.else
mov noreload,0
.endif
.endif
mov eax,[3780C6E8h] ;gamestatus
mov eax,[eax]
.if eax==1 && noreload
mov eax,[374AD0D4h] ;NoReload
mov dword ptr ds:[eax],90909090h
mov word ptr ds:[eax+4],9090h
.else
mov eax,[374AD0D4h] ;NoReload
mov dword ptr ds:[eax],01B1840Fh
mov word ptr ds:[eax+4],0000h
.endif
ret
hack4 endp
hack5 proc
push VK_NUMPAD5
call GetAsyncKeyState
.if eax!=0
.if superbullets==0
mov superbullets,1
.else
mov superbullets,0
.endif
.endif
mov eax,[3780C6E8h] ;gamestatus
mov eax,[eax]
.if eax==1 && superbullets
mov eax,[374A7DD3h] ;SuperBullets
mov word ptr ds:[eax],9090h
.else
mov eax,[374A7DD3h] ;SuperBullets
mov word ptr ds:[eax],0C085h
.endif
ret
hack5 endp
hack6 proc
push VK_NUMPAD6
call GetAsyncKeyState
.if eax!=0
.if weaponrange==0
mov weaponrange,1
.else
mov weaponrange,0
.endif
.endif
mov eax,[3780C6E8h] ;gamestatus
mov eax,[eax]
.if eax==1 && weaponrange
mov eax,[374AD359h] ;WeaponRange1
mov dword ptr ds:[eax],000000B8h
mov word ptr ds:[eax+4],9010h
mov eax,[374AD5A9h] ;WeaponRange2
mov dword ptr ds:[eax],000000B8h
mov word ptr ds:[eax+4],9010h
.else
mov eax,[374AD359h] ;WeaponRange1
mov dword ptr ds:[eax],02C8808Bh
mov word ptr ds:[eax+4],0000h
mov eax,[374AD5A9h] ;WeaponRange2
mov dword ptr ds:[eax],02C8808Bh
mov word ptr ds:[eax+4],0000h
.endif
ret
hack6 endp
hack7 proc
.while 1
push VK_NUMPAD7
call GetAsyncKeyState
.if eax!=0
.if rapidfire==0
mov rapidfire,1
.else
mov rapidfire,0
.endif
.endif
mov eax,[3780C6E8h] ;gamestatus
mov eax,[eax]
push eax
push VK_LBUTTON
call GetAsyncKeyState
pop edx
.if edx==1 && rapidfire && eax!=0
mov eax,[374ADB75h] ;RapidFire
mov word ptr ds:[eax],9090h
.else
mov eax,[374ADB75h] ;RapidFire
mov word ptr ds:[eax],3E74h
.endif
push 10
call Sleep
.endw
ret
hack7 endp
Thread proc
.while 1
push offset module
call GetModuleHandle
.if eax!=NULL
.break
.endif
push 100
call Sleep
.endw
mov names,0
mov invisible,0
mov norecoil,0
mov noreload,0
mov superbullets,0
mov weaponrange,0
mov rapidfire,0
push 0
push 0
push 0
push offset hack7
push 0
push 0
call CreateThread
.while 1
call hack1
call hack2
call hack3
call hack4
call hack5
call hack6
push 100
call Sleep
.endw
ret
Thread endp
DllEntry proc hInstDLL:HINSTANCE, reason:DWORD, reserved1:DWORD
.if reason==DLL_PROCESS_ATTACH
push 0
push 0
push 0
push offset Thread
push 0
push 0
call CreateThread
.endif
mov eax,1
ret
DllEntry Endp