Bhop in masm x86

calb

Donator
30 Dec 2016
240
635
#1
Gude,

ich habe für ein anderes Projekt einen simplen internen Bhop für Csgo geschrieben. Der Code ist wirklich simpel gehalten, wenn ich grünes Licht von den Moderatoren bekomme dann könnt ihr euch auch ansehen warum. :grin:

Code:
.386

.model flat, stdcall

OPTION  CaseMap:None

; Includes
 include C:\masm32\include\windows.inc

 include C:\masm32\include\kernel32.inc

 include C:\masm32\include\user32.inc


 includelib C:\masm32\lib\kernel32.lib

 includelib C:\masm32\lib\user32.lib


; Section for variables
.data

offset_dwLocalPlayer dd 00AA7AB4h
offset_dwFlags       dd 00000100h
offset_dwForceJump   dd 04F1970Ch

szClientModuleName   db 'client.dll', 0

szErrorCaption       db 'Error', 0
szErrorClientName    db 'Could not retrieve image base from client.dll', 0

.data?

dwClientDll dd ?
dwLocalPlayer dd ?
dwFlags dd ?
dwForceJump dd ?

.code

main proc hInstDLL:dword, fdwReason:dword, lpReserved:dword

    Setup:

        push offset szClientModuleName
        call GetModuleHandleA

        cmp eax, 0

        jz clientModuleError

        mov dword ptr [ dwClientDll ], eax

        add eax, dword ptr [ offset_dwLocalPlayer ]

        mov eax, [ eax ]

        cmp eax, 0

        jz HoldMyBeer

        mov dword ptr [ dwLocalPlayer ], eax

        add eax, dword ptr [ offset_dwFlags ]

        cmp eax, 0

        jz HoldMyBeer

        mov dword ptr [ dwFlags ], eax

        xor eax, eax

        mov eax, dword ptr [ dwClientDll ]

        add eax, dword ptr [ offset_dwForceJump ]

        cmp eax, 0

        jz HoldMyBeer

        mov dword ptr [ dwForceJump ], eax

        jmp Bhop

   
    Bhop:

        invoke GetAsyncKeyState, VK_SPACE

        cmp eax, 0

        jz BeineStillhalten

        mov eax, dword ptr [ dwLocalPlayer ]
        add eax, dword ptr [ offset_dwFlags ]

        mov eax, [ eax ]

        cmp eax, 0

        jz BeineStillhalten

        and eax, 1

        cmp eax, 0

        jz BeineStillhalten

        mov eax, dword ptr [ dwForceJump ]

        mov dword ptr [ eax ], 6

        jmp BeineStillhalten

   
    HoldMyBeer:

        invoke Sleep, 1

        jmp Setup

   
    BeineStillhalten:

        invoke Sleep, 1

        jmp Bhop


    clientModuleError:

        push 0
        push offset szErrorCaption
        push offset szErrorClientName
        push 0
        call MessageBoxA

        jmp HoldMyBeer


main endp

end main
Ich möchte mich speziell bei floezzzzzzzzzzzznnn bedanken, da ich indirekt durch ihn den Schubser in Richtung Asm bekommen habe. ^^

Lasst die Assembler Sektion wieder auferstehen!
Klar, da wäre ich dabei! :grin:

Ich wünsche euch einen schönen Samstag.

Grüße, calb.
 

kogu1

Honorable
8 Nov 2011
5,201
1,325
#3
Gude,

ich habe für ein anderes Projekt einen simplen internen Bhop für Csgo geschrieben. Der Code ist wirklich simpel gehalten, wenn ich grünes Licht von den Moderatoren bekomme dann könnt ihr euch auch ansehen warum. :grin:

Code:
.386

.model flat, stdcall

OPTION  CaseMap:None

; Includes
 include C:\masm32\include\windows.inc

 include C:\masm32\include\kernel32.inc

 include C:\masm32\include\user32.inc


 includelib C:\masm32\lib\kernel32.lib

 includelib C:\masm32\lib\user32.lib


; Section for variables
.data

offset_dwLocalPlayer dd 00AA7AB4h
offset_dwFlags       dd 00000100h
offset_dwForceJump   dd 04F1970Ch

szClientModuleName   db 'client.dll', 0

szErrorCaption       db 'Error', 0
szErrorClientName    db 'Could not retrieve image base from client.dll', 0

.data?

dwClientDll dd ?
dwLocalPlayer dd ?
dwFlags dd ?
dwForceJump dd ?

.code

main proc hInstDLL:dword, fdwReason:dword, lpReserved:dword

    Setup:

        push offset szClientModuleName
        call GetModuleHandleA

        cmp eax, 0

        jz clientModuleError

        mov dword ptr [ dwClientDll ], eax

        add eax, dword ptr [ offset_dwLocalPlayer ]

        mov eax, [ eax ]

        cmp eax, 0

        jz HoldMyBeer

        mov dword ptr [ dwLocalPlayer ], eax

        add eax, dword ptr [ offset_dwFlags ]

        cmp eax, 0

        jz HoldMyBeer

        mov dword ptr [ dwFlags ], eax

        xor eax, eax

        mov eax, dword ptr [ dwClientDll ]

        add eax, dword ptr [ offset_dwForceJump ]

        cmp eax, 0

        jz HoldMyBeer

        mov dword ptr [ dwForceJump ], eax

        jmp Bhop

  
    Bhop:

        invoke GetAsyncKeyState, VK_SPACE

        cmp eax, 0

        jz BeineStillhalten

        mov eax, dword ptr [ dwLocalPlayer ]
        add eax, dword ptr [ offset_dwFlags ]

        mov eax, [ eax ]

        cmp eax, 0

        jz BeineStillhalten

        and eax, 1

        cmp eax, 0

        jz BeineStillhalten

        mov eax, dword ptr [ dwForceJump ]

        mov dword ptr [ eax ], 6

        jmp BeineStillhalten

  
    HoldMyBeer:

        invoke Sleep, 1

        jmp Setup

  
    BeineStillhalten:

        invoke Sleep, 1

        jmp Bhop


    clientModuleError:

        push 0
        push offset szErrorCaption
        push offset szErrorClientName
        push 0
        call MessageBoxA

        jmp HoldMyBeer


main endp

end main
Ich möchte mich speziell bei floezzzzzzzzzzzznnn bedanken, da ich indirekt durch ihn den Schubser in Richtung Asm bekommen habe. ^^


Klar, da wäre ich dabei! :grin:

Ich wünsche euch einen schönen Samstag.

Grüße, calb.
freut mich zu sehen das du einfach weitermachs, wie siehts mit deinem microcontroller aus? :tongueclosed:
 

calb

Donator
30 Dec 2016
240
635
#4
freut mich zu sehen das du einfach weitermachs, wie siehts mit deinem microcontroller aus? :tongueclosed:
Dankeschön! ^^

Meinst wahrscheinlich den fpga, worüber wir in der Shoutbox gesprochen hatten. Habe das Projekt umgesetzt, also ne Schaltung für eine Wertannäherung von transzendente Funktionen. Der ganze Kram in vhdl war echt anstrengend, aber war ein klasse Lernprojekt. :grin: Habe es ja nur gemacht, weil ich wissen wollte inwiefern das Ding schneller ist. Also habe ich es auf meinen xilinx spartan 3 übertragen und es konnte unfassbar schnell Wertannäherungen bestimmen, diese hatten im Durchschnitt eine Abweichung von nur 0,00018% gehabt. Habe mit dem Ding sogar den CAS von meinem Mathelehrer schlagen können. :tongueclosed:

Grüße, calb.