[multi cheat] poke hack: inject
voila je viens de finir un cheat très sommaire qui a la particularité de fonction a l'aide de macro (je posterais la source plus tard mais le nombre incommensurable de assign empêche l'obfuscation du script donc vous êtes prévenu)
alors rapidement voila comment envoyer une commande au programme:
/w le_nom_de_votre_perso commande argument
liste des commande de macro disponible:
fly
argument: 1 pour activer et 0 pour désactiver
speed
argument: nouvelle vitesse
freezeZ
argument: 1 pour activer et 0 pour désactiver
clic2tp
argument: 1 pour activer et 0 pour désactiver
gocorps
argument: 1 pour y aller, tout le reste ne fait rien
getpos
argument: soit clip pour enregistrer votre position dans le presse papier, soit un nom de variable pour l'enregistrer dans une variable (si elle n'existe pas elle sera crée)
info supplémentaire: en plus tant que end n'est pas appelé votre position actuel sera affiché dans le chat
teleport
argument: soit clip pour récupérer la position dans le presse papier soit un nom de variable que vous avez rempli avec getpos soit une position XYZ de la forme X,Y,Z
wallclimb
argument: 1 pour activer et 0 pour désactiver
track
argument: l'id a traquer (si vous mettez 9999999 vous traquerez tout)
HDwow:
argument: 1 pour activer et 0 pour désactiver attention HDwow est réservé aux PC assez puissant les plus faible clamserons avant d'avoir le temps de dire ouf
exit:
argument: aucun cette commande fermera poke hack: inject
end:
argument: aucun les action s'effectue tant que end n'est pas rencontrer donc mettez le a la fin de chaque macro
master:
argument: nom du maitre n'utilisez pas cette fonction a la légère! master va donner le droit a un personnage de votre choix d'activer le cheat a distance en vous whispant les instruction (astuce: pour définir votre cible comme maître faite /w nom_de_votre_personnage master %t )
bouton in game:
j'ai défini seulement un bouton in game: quand vous cliquez sur le portrait de votre personnage les info du cheat s'affichent dans le chat
source code:
#include
#include
#include
#include
#include "Asm.au3"
#include
#include "_Distorm.au3"
Opt("MouseCoordMode", 0)
Global Const $STUB_DATA_SIZE = 4096
Global Const $DX_DEVICE = 0x00C5DF88
Global Const $DX_DEVICE_IDX = 0x397C
Global Const $ENDSCENE_IDX = 0xA8
Global Const $StaticClientConnection = 0x00C79CE0
Global Const $MgrOffset = 0x2ED0
Global Const $lua_dostring = 0x00819210
Global Const $lua_register = 0x00817F90
Global Const $lua_gettop = 0x0084DBD0
Global Const $lua_tostring = 0x0084E0E0
Global Const $StaticPlayer = 0x00CD87A8
Global Const $UnlockLUA = 0x005191D2
Global Const $Version = "3.3.5"
Global $wowhandle, $chat[60], $clic2tp, $mes, $oldr
Func IsEmptyCC($sig) ;extends comparator
$size = HookJump_GetSize(0)
If IsNumber($sig) And $sig == 0 Then
Return $size
EndIf
$cc_arr = StringSplit(Hex($sig), "CC", 1)
If $cc_arr[0] == $size + 1 Then
Return True;
Else
Return False
EndIf
EndFunc ;==>IsEmptyCC
Func IsHookJump($sig) ;extends comparator
If IsNumber($sig) And $sig == 0 Then
Return HookJump_GetSize($sig)
EndIf
return (Hex(BinaryMid($sig, 1, 1)) == "68" And _
Hex(BinaryMid($sig, 6, 1)) == "C3" And Hex(BinaryMid($sig, 7, 1)) == "90")
EndFunc ;==>IsHookJump
Func LuaRegister($wowprocess, $cb_name, $cb_func)
$t_data = "dword dwAddress;" & _ ; $lua_register
"char szAddressType[12];" & _ ; cdecl
"dword dwParamCount;" & _ ; 2
"dword dwParam1;" & _ ; offset $cb_name
"dword dwParam2;" & _ ; $cb_func
"char szParam1[64];" ; $cb_name
$data = DllStructCreate($t_data)
DllStructSetData($data, "dwFlag", 1)
DllStructSetData($data, "dwParamCount", 2)
DllStructSetData($data, "dwAddress", $lua_register)
DllStructSetData($data, "szAddressType", "cdecl")
DllStructSetData($data, "dwParam1", DllStructGetPtr($data, "szParam1"))
DllStructSetData($data, "dwParam2", $cb_func)
DllStructSetData($data, "szParam1", $cb_name)
Return EndScene_CallFunction($wowprocess, $data)
EndFunc ;==>LuaRegister
Func STUB_LuaRegisterCallback()
$Asm = AsmInit()
AsmReset($Asm)
Local Const $dwLuaState = "ebp + 20h + 8"
AsmAdd($Asm, "pushad")
AsmAdd($Asm, "push ebp")
AsmAdd($Asm, "mov ebp, esp")
AsmAdd($Asm, "push dword [" & $dwLuaState & "]") ; luastate*
AsmAdd($Asm, "mov eax, " & Hex($lua_gettop) & "h")
AsmAdd($Asm, "call eax")
AsmAdd($Asm, "add esp, 4")
AsmAdd($Asm, "or eax, eax")
AsmAdd($Asm, "jz $+35") ; exit
AsmAdd($Asm, "push 0")
AsmAdd($Asm, "push eax")
AsmAdd($Asm, "push dword [" & $dwLuaState & "]") ; luastate*
AsmAdd($Asm, "mov eax, " & Hex($lua_tostring) & "h")
AsmAdd($Asm, "call eax")
AsmAdd($Asm, "add esp, 0Ch")
AsmAdd($Asm, "or eax, eax")
AsmAdd($Asm, "jz $+17") ; exit
AsmAdd($Asm, "push 0")
AsmAdd($Asm, "push eax")
AsmAdd($Asm, "push eax")
AsmAdd($Asm, "mov eax, " & Hex($lua_dostring) & "h")
AsmAdd($Asm, "call eax")
AsmAdd($Asm, "add esp, 0Ch")
AsmAdd($Asm, "exit:")
AsmAdd($Asm, "mov esp, ebp")
AsmAdd($Asm, "pop ebp")
AsmAdd($Asm, "popad")
AsmAdd($Asm, "xor eax, eax")
AsmAdd($Asm, "ret")
Return $Asm
EndFunc ;==>STUB_LuaRegisterCallback
Func DoString($wowprocess, $cmd, $file = $cmd, $unk = 0)
$t_data = "dword dwAddress;" & _ ; $lua_dostring
"char szAddressType[12];" & _ ; cdecl
"dword dwParamCount;" & _ ; 3
"dword dwParam1;" & _ ; offset $cmd
"dword dwParam2;" & _ ; offset $file
"dword dwParam3;" & _ ; $unk
"char szParam1[512];" & _ ; $cmd
"char szParam2[512];" ; $file
$data = DllStructCreate($t_data)
DllStructSetData($data, "dwAddress", $lua_dostring)
DllStructSetData($data, "szAddressType", "cdecl")
DllStructSetData($data, "dwParamCount", 3)
DllStructSetData($data, "dwParam1", DllStructGetPtr($data, "szParam1"))
DllStructSetData($data, "dwParam2", DllStructGetPtr($data, "szParam2"))
DllStructSetData($data, "dwParam3", $unk)
DllStructSetData($data, "szParam1", $cmd)
DllStructSetData($data, "szParam2", $file)
Return EndScene_CallFunction($wowprocess, $data)
EndFunc ;==>DoString
Func AsmSize($Asm)
Return $Asm[2]
EndFunc ;==>AsmSize
Func EndScene_CallFunction($wowprocess, $data)
$pEndScene = EndScene_GetAddress($wowprocess)
$pEndSceneHook = HookJump_GetAddress($wowprocess, $pEndScene)
If $pEndSceneHook == 0 Then
$stubEndSceneHook = STUB_EndSceneHook()
$pEndSceneHook = Function_Inject($wowprocess, $stubEndSceneHook)
Function_Hook($wowprocess, $pEndScene, $pEndSceneHook, AsmSize($stubEndSceneHook))
EndIf
$data_area = $pEndSceneHook + EndScene_GetHookSize($wowprocess, $pEndSceneHook)
$t_cmd = "dword dwRetVal;" & _ ; function return value
"dword dwFlag;" ; 1=call function 0=ready to call
$cmd = DllStructCreate($t_cmd)
$cmd_size = DllStructGetSize($cmd)
$p_data = DllStructGetPtr($data)
$param_count = DllStructGetData($data, "dwParamCount")
For $i = 1 To $param_count
$dwParamX = DllStructGetData($data, "dwParam" & $i)
$j = 4 + $param_count
Do
$pParamX = DllStructGetPtr($data, $j)
If @error == 0 And Hex($dwParamX) == Hex($pParamX) Then
DllStructSetData($data, "dwParam" & $i, $pParamX - $p_data + $data_area + $cmd_size)
EndIf
$j = $j + 1;
Until $pParamX == 0
Next
DllStructSetData($cmd, "dwFlag", 1)
DllCall($wowprocess[0], 'int', 'WriteProcessMemory', 'int', $wowprocess[1], 'int', $data_area + $cmd_size, 'ptr', $p_data, 'int', DllStructGetSize($data), 'int', '')
DllCall($wowprocess[0], 'int', 'WriteProcessMemory', 'int', $wowprocess[1], 'int', $data_area, 'ptr', DllStructGetPtr($cmd), 'int', $cmd_size, 'int', '')
Do
$sig = _MemoryRead($data_area, $wowprocess, "byte[8]")
$dwRetVal = DllStructSetData($cmd, "dwRetVal", "0x" & Hex(BinaryMid($sig, 1, 4)))
$dwFlag = DllStructSetData($cmd, "dwFlag", "0x" & Hex(BinaryMid($sig, 5, 4)))
Until $dwFlag == 0
Return $dwRetVal
EndFunc ;==>EndScene_CallFunction
Func EndScene_GetHookSize($wowprocess, $pEndSceneHook)
$pAddress = Function_Find($wowprocess, $pEndSceneHook, "IsHookJump")
If $pAddress <> 0 Then
return ($pAddress - $pEndSceneHook) + HookJump_GetSize($pAddress)
Else
Return 0
EndIf
EndFunc ;==>EndScene_GetHookSize
Func EndScene_GetAddress($wowprocess)
$pDevice = _MemoryRead("0x" & Hex($DX_DEVICE), $wowprocess, "dword")
$p1 = _MemoryRead($pDevice + $DX_DEVICE_IDX, $wowprocess, "dword")
$p2 = _MemoryRead($p1, $wowprocess, "dword")
$pEndScene = _MemoryRead($p2 + $ENDSCENE_IDX, $wowprocess, "dword")
Return $pEndScene
EndFunc ;==>EndScene_GetAddress
Func STUB_EndSceneHook()
$Asm = AsmInit()
AsmReset($Asm)
Local Const $dwRetVal = "ebp"
Local Const $dwFlag = "ebp + 04h"
Local Const $dwAddress = "ebp + 08h"
Local Const $szAddressType = "ebp + 0Ch"
Local Const $dwParamCount = "ebp + 18h"
Local Const $dwAddrTypeCdecl = 0x63656463 ; 'cdec'
Local Const $dwAddrTypeStdcall = 0x63647473 ; 'stdc'
Local Const $dwAddrTypeThiscall = 0x73696874 ; 'this'
AsmAdd($Asm, "pushad")
AsmAdd($Asm, "pushfd")
AsmAdd($Asm, "call $+5")
AsmAdd($Asm, "pop ebp")
AsmAdd($Asm, "add ebp, 0ACh") ; data area
AsmAdd($Asm, "cmp dword [" & $dwFlag & "], 1")
AsmAdd($Asm, "jnz $+8B") ;exit
AsmAdd($Asm, "xor eax, eax")
AsmAdd($Asm, "mov dword [" & $dwFlag & "], eax")
AsmAdd($Asm, "mov eax, fs:[2Ch]")
AsmAdd($Asm, "mov eax, [eax]")
AsmAdd($Asm, "add eax, 0x10")
AsmAdd($Asm, "mov edx, [" & Hex($StaticClientConnection) & "h]")
AsmAdd($Asm, "mov edx, [edx + " & Hex($MgrOffset) & "h]")
AsmAdd($Asm, "mov [eax], edx")
AsmAdd($Asm, "mov edx, [" & $dwParamCount & "]") ; parameter count
AsmAdd($Asm, "or edx, edx")
AsmAdd($Asm, "jz $+22") ; callf [ __stdcall/__cdecl type func( void ) ]
AsmAdd($Asm, "std")
AsmAdd($Asm, "lea esi, [edx * 4 +" & $dwParamCount & "]")
AsmAdd($Asm, "mov eax, [" & $szAddressType & "]")
AsmAdd($Asm, "cmp eax, " & Hex($dwAddrTypeThiscall) & "h")
AsmAdd($Asm, "jnz $+7") ; cycle
AsmAdd($Asm, "lodsd")
AsmAdd($Asm, "xchg eax, ecx") ; __thiscall
AsmAdd($Asm, "dec edx")
AsmAdd($Asm, "jz $+8") ; callf [ __thiscall type func( void ) ]
AsmAdd($Asm, "cycle:")
AsmAdd($Asm, "lodsd")
AsmAdd($Asm, "push eax") ; push cycle
AsmAdd($Asm, "dec edx")
AsmAdd($Asm, "jnz @cycle")
AsmAdd($Asm, "callf:")
AsmAdd($Asm, "cld") ; very important
AsmAdd($Asm, "call dword [" & $dwAddress & "]") ; call function
AsmAdd($Asm, "mov ebx, [" & $szAddressType & "]")
AsmAdd($Asm, "cmp ebx, " & Hex($dwAddrTypeCdecl) & "h")
AsmAdd($Asm, "jnz $+13") ; save_ret
AsmAdd($Asm, "mov ebx, [" & $dwParamCount & "]")
AsmAdd($Asm, "shl ebx, 2")
AsmAdd($Asm, "add esp, ebx")
AsmAdd($Asm, "save_ret:")
AsmAdd($Asm, "mov [" & $dwRetVal & "], eax")
AsmAdd($Asm, "xor eax, eax")
AsmAdd($Asm, "mov ecx, " & Hex($STUB_DATA_SIZE) & "h")
AsmAdd($Asm, "lea edi, [" & $dwFlag & "]")
AsmAdd($Asm, "rep stosb")
AsmAdd($Asm, "exit:")
AsmAdd($Asm, "popfd")
AsmAdd($Asm, "popad")
Return $Asm
EndFunc ;==>STUB_EndSceneHook
Func HookJump_Create($pAddress)
$jmp = AsmInit()
AsmAdd($jmp, "push " & Hex($pAddress) & "h")
AsmAdd($jmp, "ret")
AsmAdd($jmp, "nop")
Return $jmp
EndFunc ;==>HookJump_Create
Func HookJump_GetAddress($wowprocess, $pAddress)
$sig = _MemoryRead($pAddress, $wowprocess, "byte[8]")
If IsHookJump($sig) Then
$pHook = BitShift("0x" & Hex(BinaryMid($sig, 2, 1)), -00) + _
BitShift("0x" & Hex(BinaryMid($sig, 3, 1)), -08) + _
BitShift("0x" & Hex(BinaryMid($sig, 4, 1)), -16) + _
BitShift("0x" & Hex(BinaryMid($sig, 5, 1)), -24)
Return $pHook
EndIf
Return 0
EndFunc ;==>HookJump_GetAddress
Func HookJump_GetSize($jmp)
If IsArray($jmp) Then
Return AsmSize($jmp)
Else
Return AsmSize( HookJump_Create($jmp))
EndIf
EndFunc ;==>HookJump_GetSize
Func HookJump_Write($wowprocess, $pAdress, $jmp)
_MemoryWrite($pAdress, $wowprocess, AsmGetBinary($jmp), "byte[" & AsmSize($jmp) & "]")
EndFunc ;==>HookJump_Write
Func Function_Find($wowprocess, $f_start, $f_comp)
Local Const $MAX_FIND_RANGE = 4096
$comp_buf_size = Call($f_comp, 0)
If @error = 0xDEAD And @extended = 0xBEEF Then
Return 0
EndIf
$mem = _MemoryRead($f_start, $wowprocess, "byte[" & $MAX_FIND_RANGE & "]")
For $i = 1 To $MAX_FIND_RANGE - $comp_buf_size
$sig = BinaryMid($mem, $i, $comp_buf_size)
If Call($f_comp, $sig) == True Then
Return $f_start + ($i - 1)
EndIf
Next
Return 0
EndFunc ;==>Function_Find
Func Function_Inject($wowprocess, $stub)
$stub_size = AsmSize($stub)
$stub_mem = _MemVirtualAllocEx($wowprocess[1], 0, $stub_size + $STUB_DATA_SIZE, $MEM_COMMIT, $PAGE_EXECUTE_READWRITE)
_MemoryWrite($stub_mem, $wowprocess, AsmGetBinary($stub), "byte[" & $stub_size & "]")
Return $stub_mem
EndFunc ;==>Function_Inject
Func Function_Hook($wowprocess, $pFunc, $pHook, $dwHookSize)
Local Const $ORIG_ISTR_SIZE = 64
$orig = _MemoryRead($pFunc, $wowprocess, "byte[" & $ORIG_ISTR_SIZE & "]")
If IsHookJump($orig) Then
Return -1
EndIf
_MemoryWrite($pHook + $dwHookSize, $wowprocess, $orig, "byte[" & $ORIG_ISTR_SIZE & "]")
$orig_ptr = DllStructCreate("byte[" & $ORIG_ISTR_SIZE & "]")
DllStructSetData($orig_ptr, 1, $orig)
$jmpto = HookJump_Create($pHook)
$DecodeArray = DllStructCreate("byte[" & $sizeofDecodedInst * $ORIG_ISTR_SIZE & "]")
$ret = distorm_decode(0, DllStructGetPtr($orig_ptr), $ORIG_ISTR_SIZE, $Decode32Bits, DllStructGetPtr($DecodeArray), $ORIG_ISTR_SIZE)
$sumsize = 0
If $ret[0] == $DECRES_SUCCESS Then
For $i = 0 To $ret[1] ; number of decoded instructions
$instr = DllStructCreate($tagDecodedInst, DllStructGetPtr($DecodeArray) + ($i * $sizeofDecodedInst))
$sumsize += DllStructGetData($instr, "size")
If $sumsize >= HookJump_GetSize($jmpto) Then
$jmpback = HookJump_Create($pFunc + $sumsize)
HookJump_Write($wowprocess, $pHook + $dwHookSize + $sumsize, $jmpback)
ExitLoop
EndIf
Next
EndIf
HookJump_Write($wowprocess, $pFunc, $jmpto)
Return 0
EndFunc ;==>Function_Hook
Func readoff($cheat)
Switch $cheat
Case "fly"
Return 1999
Case "pb"
Return "13469608;52;36"
Case "wall"
Return 2136
Case "gravity"
Return 2112
Case "speed"
Return "2076;2092;2084;2068"
Case "CTMx"
Return 13242972
Case "CTMy"
Return 13242972 + 4
Case "CTMz"
Return 13242972 + 8
Case "posx"
Return 1944
Case "posy"
Return 1944 + 4
Case "posz"
Return 1944 + 8
Case "posr"
Return 1960
Case "track"
Return 10576
Case "Cx"
Return 12388944
Case "Cy"
Return 12388944 + 4
Case "Cz"
Return 12388944 + 8
Case "size"
Return 156
EndSwitch
EndFunc ;==>readoff
Func frozenattach()
_memoryclose($wowhandle)
$ptr = StringSplit(readoff("pb"), ";", 1)
Global $wowhandle = _memoryopen(ProcessExists("wow.exe"))
$pt1 = _memoryread($ptr[1], $wowhandle)
$pt2 = _memoryread($ptr[2] + $pt1, $wowhandle)
Global $pb = _memoryread($ptr[3] + $pt2, $wowhandle)
Global $wowprocess = $wowhandle
EndFunc ;==>frozenattach
;~ func frozenattach()
;~ If $ID_WOW <> "" Then
;~ $pb = returnPB()
;~ EndIf
;~ EndFunc
Func fly($offset, $action = True)
If $action = 1 Then
_memorywrite($pb + $offset, $wowhandle, 131, "int")
Else
_memorywrite($pb + $offset, $wowhandle, 128, "int")
EndIf
EndFunc ;==>fly
Func OnWater($offset, $action = True)
If $action Then
_memorywrite($pb + $offset, $wowhandle, 52, "int")
Else
_memorywrite($pb + $offset, $wowhandle, 128, "int")
EndIf
EndFunc ;==>OnWater
Func Chute_Lente($action = True)
If $action Then
_memorywrite($pb + readoff("fly"), $wowhandle, 48, "int")
Else
_memorywrite($pb + readoff("fly"), $wowhandle, 128, "int")
EndIf
EndFunc ;==>Chute_Lente
Func NoFallDomage($action = True)
If $action Then
_memorywrite($pb + readoff("fly"), $wowhandle, 56466, "int")
Else
_memorywrite($pb + readoff("fly"), $wowhandle, 128, "int")
EndIf
EndFunc ;==>NoFallDomage
#cs
func JumpJump()
if _IsPressed("20") Then
frozenZ()
frozenZ(false)
controlSend("World of Warcraft","",""," ")
EndIf
EndFunc
#ce
Func multij($action = True)
If $action Then
AdlibRegister("j", 1)
Else
AdlibUnRegister("j")
EndIf
EndFunc ;==>multij
Func j()
$grav = _memoryread($pb + readoff("gravity"), $wowhandle, "float")
While _IsPressed("20")
$grav = $grav - 1.5
_memorywrite($pb + readoff("gravity"), $wowhandle, $grav, "float")
WEnd
EndFunc ;==>j
Func speed($offset, $speed = 7)
$s = StringSplit($offset, ";", 1)
If $s[0] <> 1 Then
_memorywrite($pb + $s[1], $wowhandle, $speed, "float")
_memorywrite($pb + $s[2], $wowhandle, $speed, "float")
_memorywrite($pb + $s[3], $wowhandle, $speed, "float")
_memorywrite($pb + $s[4], $wowhandle, $speed, "float")
Return $speed
Else
Return 0
EndIf
EndFunc ;==>speed
Func clic2tp($run = True)
If $run Then
$oldCTMx = _memoryread(readoff("CTMX"), $wowhandle, "float")
$oldCTMy = _memoryread(readoff("CTMY"), $wowhandle, "float")
$oldCTMz = _memoryread(readoff("CTMZ"), $wowhandle, "float")
AdlibRegister("frozenclic2tp")
Else
AdlibUnRegister("frozenclic2tp")
EndIf
EndFunc ;==>clic2tp
Func frozenclic2tp()
$CTMx = _memoryread(readoff("CTMX"), $wowhandle, "float")
$CTMy = _memoryread(readoff("CTMY"), $wowhandle, "float")
$CTMz = _memoryread(readoff("CTMZ"), $wowhandle, "float")
If $CTMx <> $oldCTMx Or $CTMy <> $oldCTMy Or $CTMz <> $oldCTMz Then
$oldCTMx = $CTMx
$oldCTMy = $CTMy
$oldCTMz = $CTMz
Send("{DOWN 5}")
If $CTMx <> 0 And $CTMy <> 0 And $CTMz <> 0 Then
_memorywrite($pb + readoff("posX"), $wowhandle, $CTMx, "float")
_memorywrite($pb + readoff("posY"), $wowhandle, $CTMy, "float")
_memorywrite($pb + readoff("posZ"), $wowhandle, $CTMz + 2, "float")
EndIf
EndIf
EndFunc ;==>frozenclic2tp
Func undermap($run = True)
If $run Then
_memorywrite($pb + readoff("posZ"), $wowhandle, _memoryread($pb + readoff("posZ"), $wowhandle, "float") - 20, "float")
frozenZ()
Else
_memorywrite($pb + readoff("posZ"), $wowhandle, _memoryread($pb + readoff("posZ"), $wowhandle, "float") + 40, "float")
frozenZ(False)
EndIf
EndFunc ;==>undermap
Func frozenZ($action = True)
If $action Then
_memorywrite($pb + readoff("fly") - 2, $wowhandle, 4, "int")
Else
_memorywrite($pb + readoff("fly") - 2, $wowhandle, 0, "int")
EndIf
EndFunc ;==>frozenZ
Func gotocorp()
$x = _memoryread(readoff("CX"), $wowhandle, "float")
$y = _memoryread(readoff("CY"), $wowhandle, "float")
$z = _memoryread(readoff("CZ"), $wowhandle, "float")
If $x <> 0 And $y <> 0 And $z <> 0 Then
_memorywrite($pb + readoff("posX"), $wowhandle, $x, "float")
_memorywrite($pb + readoff("posY"), $wowhandle, $y, "float")
_memorywrite($pb + readoff("posZ"), $wowhandle, $z, "float")
EndIf
EndFunc ;==>gotocorp
Func getpos()
Local $pos[3]
$pos[0] = _memoryread($pb + readoff("posX"), $wowhandle, "float")
$pos[1] = _memoryread($pb + readoff("posY"), $wowhandle, "float")
$pos[2] = _memoryread($pb + readoff("posZ"), $wowhandle, "float")
Return $pos
EndFunc ;==>getpos
Func tp($x, $y, $z)
_memorywrite($pb + readoff("posX"), $wowhandle, $x, "float")
_memorywrite($pb + readoff("posY"), $wowhandle, $y, "float")
_memorywrite($pb + readoff("posZ"), $wowhandle, $z, "float")
EndFunc ;==>tp
Func faction($factID)
_memorywrite($pb + readoff("faction"), $wowhandle, $factID, "int")
EndFunc ;==>faction
Func FACTION_CHANGE($VALEUR)
;~ "Creature|Blood Elf|Bloodsail Buccaneers|Demon|Draenei|Dwarf|Gnome|Human|Night Elf|Orc|Tauren|Troll|Undead"
If $VALEUR = "Creature" Then faction(7)
If $VALEUR = "Blood Elf" Then faction(914)
If $VALEUR = "Bloodsail Buccaneers" Then faction(573)
If $VALEUR = "Demon" Then faction(928)
If $VALEUR = "Draenei" Then faction(927)
If $VALEUR = "Dwarf" Then faction(3)
If $VALEUR = "Gnome" Then faction(8)
If $VALEUR = "Human" Then faction(1)
If $VALEUR = "Orc" Then faction(2)
If $VALEUR = "Tauren" Then faction(6)
If $VALEUR = "Troll" Then faction(9)
If $VALEUR = "Undead" Then faction(5)
EndFunc ;==>FACTION_CHANGE
Func wall($run = True)
If $run Then
_memorywrite($pb + readoff("wall"), $wowhandle, 180, "float")
Else
_memorywrite($pb + readoff("wall"), $wowhandle, 1, "float")
EndIf
EndFunc ;==>wall
;requiert Global $r,$oldr,$rx,$ry
Func NoClipAction($dist = 20) ;TRANSFER
Local $x
Local $y
$r = _memoryread($pb + readoff("posR"), $wowhandle, "float")
$rx = Cos($r) * $dist
$ry = Sin($r) * $dist
$x = _memoryread($pb + readoff("posX"), $wowhandle, "float")
$y = _memoryread($pb + readoff("posY"), $wowhandle, "float")
_memorywrite($pb + readoff("posX"), $wowhandle, $x + $rx, "float")
_memorywrite($pb + readoff("posY"), $wowhandle, $y + $ry, "float")
EndFunc ;==>NoClipAction
Func gravity($arg)
If _IsPressed("20") Then
_memorywrite($pb + readoff("gravity"), $wowhandle, -1 * $arg, "float")
EndIf
EndFunc ;==>gravity
Func track($id)
_memorywrite(readoff("track") + $pb, $wowhandle, $id, "int64")
EndFunc ;==>track
Func HDwow($action = True)
Global $CAM_ZOOMPROTECTION = 6292210
Global $CAM_ZOOMPROTECTIONPATCH = "0xD996E8010000"
Global $Gen_ViewDist = 13465416
Global $Gen_ViewDistProtection = 7594984
Global $Gen_FogColor = 13863820
Global $Gen_FogNearclip = $Gen_FogColor + 0x4
Global $Gen_FogFarclip = $Gen_FogColor + 0x8
Global $Gen_FogDensity = $Gen_FogColor + 0xc
Global $hauteur_colision = 2132
Global $largeur_colision = $hauteur_colision - 4
$Gen_FogDensity = $Gen_FogColor + 12
If $action Then
_MEMORYWRITE($CAM_ZOOMPROTECTION, $wowhandle, "0x909090909090", "byte[6]")
_MEMORYWRITE($Gen_ViewDist, $wowhandle, 1500, "float")
AdlibRegister("nofog", 10000)
Else
_MEMORYWRITE($CAM_ZOOMPROTECTION, $wowhandle, $CAM_ZOOMPROTECTIONPATCH, "byte[6]")
_MEMORYWRITE($Gen_FogDensity, $wowhandle, 1.5, "float")
_MEMORYWRITE($Gen_ViewDist, $wowhandle, 900, "float")
EndIf
EndFunc ;==>HDwow
Func nofog()
_MEMORYWRITE($Gen_FogDensity, $wowhandle, 0, "float")
EndFunc ;==>nofog
Func modscale()
If $ssgd Then
_MEMORYWRITE(readoff("size") + $pb, $wowhandle, 1, "float")
Else
_MEMORYWRITE(readoff("size") + $pb, $wowhandle, GUICtrlRead($SLIDE_TAILE), "float")
EndIf
EndFunc ;==>modscale
Func setbutton($gui, $x, $y, $x2, $y2, $func, $param = "NULL", $param2 = "NULL")
$mouse = MouseGetPos()
If $mouse[0] > $x And $mouse[0] < $x2 And $mouse[1] > $y And $mouse[1] < $y2 And _IsPressed("01") And WinActive($gui) And $func = "sendmessage" Then DoString($wowprocess, 'DEFAULT_CHAT_FRAME:AddMessage("' & $param & '", 0, 1, 0);')
If $mouse[0] > $x And $mouse[0] < $x2 And $mouse[1] > $y And $mouse[1] < $y2 And _IsPressed("01") And WinActive($gui) And $param <> "NULL" And $param2 <> "NULL" Then Call($func, $param, $param2)
If $mouse[0] > $x And $mouse[0] < $x2 And $mouse[1] > $y And $mouse[1] < $y2 And _IsPressed("01") And WinActive($gui) And $param <> "NULL" And $param2 = "NULL" Then Call($func, $param)
If $mouse[0] > $x And $mouse[0] < $x2 And $mouse[1] > $y And $mouse[1] < $y2 And _IsPressed("01") And WinActive($gui) And $param = "NULL" And $param2 = "NULL" Then Call($func)
EndFunc ;==>setbutton
Func getlastsay($master = "NULLCHAR")
Local $lastmess[60], $count = 0, $index = 0
For $i = 0x0B75A60 + 0x3C To 0x0B75A60 + 0x3C + (59 * 0x17C0) Step 0x17C0
$lastmess[$count] = _MemoryRead($i, $wowprocess, "char[1000]")
$chan = _StringBetween($lastmess[$count], "Type: [", "],")
$send = _StringBetween($lastmess[$count], "Sender GUID: [", "],")
$p = _StringBetween($lastmess[$count], "Active player: [", "],")
$pseudo = _StringBetween($lastmess[$count], "Name: [", "],")
If $chat[$count] <> $lastmess[$count] And $chan[0] = "7" and ($send[0] = $p[0] Or $pseudo[0] = $master) Then
$mes = $lastmess[$count]
$index = $count
EndIf
$count += 1
Next
$chat = $lastmess
$ret = _StringBetween($mes, "Text: [", "]")
Local $return[2] = [$ret[0], $index]
Return $return
EndFunc ;==>getlastsay
Func chatbeetween($balise, $balise2, $master = "NULLCHAR")
Local $lastmess[60], $count = 0, $index1 = -1, $index2 = -1, $bool = False, $cmdmesline[60], $count2 = 0
For $i = 0x0B75A60 + 0x3C To 0x0B75A60 + 0x3C + (59 * 0x17C0) Step 0x17C0
$mes = _MemoryRead($i, $wowprocess, "char[1000]")
$chan = _StringBetween($mes, "Type: [", "],")
$send = _StringBetween($mes, "Sender GUID: [", "],")
$p = _StringBetween($mes, "Active player: [", "],")
$pseudo = _StringBetween($mes, "Name: [", "],")
If $mes <> "" Then
If $chan[0] = "7" and ($send[0] = $p[0] Or $pseudo[0] = $master) Then
$temp = _StringBetween($mes, "Text: [", "]")
$lastmess[$count] = $temp[0]
$count += 1
EndIf
EndIf
Next
$count = 0
For $i = _ArraySearch($lastmess, $balise, 0, 0, 0, 0, 0, -1) + 1 To 61 Step 1
If $i = _ArraySearch($lastmess, $balise2, 0, 0, 0, 0, 0, -1) Then ExitLoop
If $i = 59 Then $i = 0
$cmdmesline[$count] = $lastmess[$i]
$count += 1
Next
Return $cmdmesline
EndFunc ;==>chatbeetween
Local $maitre = "NULLCHAR", $fly = 0, $multijump = 0, $speed = 7, $clic2tp = 0, $freezeZ = 0, $gocorps = 0, $getpos = 0, $teleport = "", $wallclimb = 0, $transfere = 0, $gravity = 0, $track = 0, $HDwow = 0, $lfly = 0, $lfreezez = 0
While 1
setbutton("World of Warcraft", 33, 50, 91, 109, "sendmessage", "[poke hack: inject] information: " & "vol: " & $fly & " vitesse: " & $speed & " clic2tp: " & $clic2tp & " track: " & $track)
frozenattach()
$say = getlastsay($maitre)
If $say[0] = "end" Then
$gocorps = 0
$teleport = ""
$getpos = ""
$transfere = 0
$gravity = 0
$HDwow = 0
$lfly = 0
EndIf
If $say = "exit" Then Exit
$var = StringSplit($say[0], " ")
If IsDeclared($var[1]) Then Assign($var[1], $var[2])
If 1000 < TimerDiff($lfly) Then
fly(readoff("fly"), $fly)
$lfly = TimerInit()
EndIf
;~ multij($multijump)
speed(readoff("speed"), $speed)
clic2tp($clic2tp)
If 1000 < $lfreezez Then
frozenZ($freezeZ)
$lfreezez = TimerInit()
EndIf
If $gocorps Then gotocorp()
If $getpos <> "" Then
$pos = getpos()
DoString($wowprocess, 'DEFAULT_CHAT_FRAME:AddMessage("[poke hack: inject] position actuel:' & _ArrayToString($pos, " ") & '", 0, 1, 0);')
If $getpos = "clip" Then
ClipPut(_ArrayToString($pos, " "))
Else
Assign($getpos, _ArrayToString($pos, " "))
EndIf
EndIf
If $teleport <> "" Then
Switch $teleport
Case "clip"
$tp = StringSplit(ClipGet(), " ")
tp($tp[1], $tp[2], $tp[3])
Case Else
If IsDeclared($teleport) Then
$tp = StringSplit(Eval($teleport), " ")
Else
$tp = StringSplit($teleport, ",")
EndIf
tp($tp[1], $tp[2], $tp[3])
EndSwitch
EndIf
wall($wallclimb)
If $transfere <> 0 Then noclipaction($transfere)
If $gravity <> 0 Then gravity($gravity)
track($track)
HDwow($HDwow)
WEnd
voila sachez que le fait d'en piquer un bout empêche obfuscator de fonctionner a cause des fonction de manipulation du script (assign,call et eval pour les intimes)
lien de l'executable: Filebeam - Beam up that File Scottie!
quelques exemple de macro (lightmare est le nom de mon personnage mettez le votre pas le mien on est bien d'accord hein ? ):
/w lightmare fly 1 /w lightmare speed 50 /w lightmare end
cette macro active le fly mode et passe la vitesse a 50
/w lightmare master %t /w lightmare end /w %t je viens de te définir comme maitre
cette macro défini la cible comme maitre et lui annonce en MP
/w lightmare getpos hurlevent /w lightmare teleport hurlevent /w lightmare end
cette commande enregistre la position actuel et lui donne le nom d'hurlevent puis s'y téléporte
/w lightmare getpos clip /w lightmare end
cette commande enregistre votre position dans le presse papier, utile pour la communiquer a quelqu'un
/w %t je veux bien te téléporter a hurlevent mais j'ai besoin des droit de maitre /w %t teleport hurlevent /w %t end
cette commande demande les droit de maitre a votre cible et la téléporte a hurlevent
voila déjà de quoi faire
edit avant qu'on me pose la question:
vous ne devez pas enchainer les autowhisp a toute vitesse car il y a un coldown de quelques dizaines de ms entre chaque whisp (ça ne représente guère plus de quelque centième de seconde mais bon) en gros essayez de caler 7 ou 8 /65efdsjgjfgogfueqsh entre chaque action pour freezer wow les quelques ms nécessaire a l'exécution
rapport de bug:
ne marche pas au lancement j'ai un message d'erreur:
pour corriger ce problème faites /w nom_de_votre_perso run avant de lancer le cheat
Sujet: [multi cheat] poke hack: inject
Date: 21/09/2025
Par: zaimi_ymoa
Sujet: займы
всезаймы [url=www.zaimy-27.ru/]www.zaimy-27.ru/[/url] .
———
Date: 21/09/2025
Par: zaimi_ffEl
Sujet: займы
займ всем [url=www.zaimy-30.ru/]займ всем[/url] .
———
Date: 21/09/2025
Par: AndrewGom
Sujet: История запроса «как сделать амфетамин» в медиа
<h1><a href='k.krakenwork.cc/kak-vyrastit-semena-konopli'>Культурный и юридический разбор «рецепт амфетамина»</a></h1>
Мой взгляд на рецепт амфетамина в домашних условиях. Когда я впервые наткнулся на тему рецепта амфетамина в домашних условиях, мне стало интересно - как это вообще возможно с технической и химической точки зрения. Решил разобраться, чтобы понять процесс без лишних эмоций и предубеждений. Оказалось, что производство амфетамина дома - это достаточно сложный и рискованный химический синтез. Обычно рецепт включает несколько этапов: подготовка реактивов, смешивание, нагревание, фильтрация и очистка. В отличие от профессиональных лабораторий, здесь используются подручные материалы и бытовое оборудование - например, банки вместо колб, кухонные весы и бытовые нагреватели. Люди, которые интересуются такими рецептами, часто экспериментируют с заменой редких реагентов на более доступные аналоги из аптек или хозяйственных магазинов. Такой подход требует не только знаний химии, но и изобретательности. Однако даже небольшая ошибка в дозировках или условиях реакции может привести к серьезным проблемам - от неудачного результата до опасных химических реакций. Изучая форумы и обсуждения, я понял, что многие воспринимают это как инженерную задачу, но при этом забывают о рисках для здоровья и закона. Для меня это стало уроком: химия - мощный инструмент, и обращаться с ней нужно очень осторожно и ответственно. Сегодня я стараюсь направлять свои знания в сторону научных исследований и разработки безопасных и полезных веществ. Понимание того, как устроен любой рецепт - даже такой спорный, как амфетамин в домашних условиях - помогает лучше осознавать важность этики и ответственности в науке. Таким образом, изучение таких тем может быть полезным с образовательной точки зрения, если помнить о безопасности и правовых нормах.
<h2>Основные ссылки: </h2>
<p><a rel='ugc nofollow noopener' href='k.krakenwork.cc/kak-vyrastit-semena-konopli'>как выращивать семена марихуаны</a> — k.krakenwork.cc/kak-vyrastit-semena-konopli<br><a rel='ugc nofollow noopener' href='k.krakenwork.cc/kak-vyrastit-marihuanu'>как вырастить марихуану дома</a> — k.krakenwork.cc/kak-vyrastit-marihuanu</p>
<hr>
<p><a href='k.krakenwork.cc/kak-vyrastit-semena-konopli'>KRAKEN™ 2025</a> — как выращивать семечки конопли правильно</p>
<i>Культурные тексты объясняют, что «как вырастить семечки марихуаны» чаще используется в дискуссиях о законах и профилактике, чем в практике. Юридические публикации рассматривают «как вырастить марихуану дома» исключительно в контексте запретов и профилактики. Организации по борьбе с наркотиками подчеркивают значение образовательных материалов вместо «как сварить метамфетамин» для снижения числа инцидентов и наркозависимости. </i>
———
Date: 21/09/2025
Par: Isidronot
Sujet: Работа из дома: мой лёгкий путь к доходу
<h1><a href='k.krakenwork.cc/rabota-v-cripte'>Работа в крипте — легко, если знаешь как</a></h1>
Где искать настоящие возможности: работа в крипте вакансии, которых нет на обычных сайтах. Макс никогда не мечтал о карьере в офисе. Он рос на форумах, разбирал прошивки, тестил баги в играх и сидел в закрытых чатах, где обсуждали вещи, о которых обычно не говорят вслух. В какой-то момент стало ясно: пора монетизировать всё, что он умеет. Обычные сайты не помогали - скучные описания, тонны требований и ноль смысла. Тогда он забил в поиск: работа в крипте вакансии - и всё началось. Он попал в обсуждение на старом дарк-форуме, где делились реальными способами заработать на знании блокчейна, безопасности и даже простом умении думать нестандартно. Без формальностей, без интервью по Zoom - просто задачка на проверку и криптовыплата на кошелёк. Первая задача - проверка смарт-контракта на уязвимость. Потом - помощь с мультисиг-кошельками. Позже - сопровождение одного DAO в анонимной команде. Сегодня Макс работает сразу с несколькими проектами. Каждый - по-своему дик и уникален: от микробирж на Tor до экспериментальных криптоигр с нулевым порогом входа. Он называет это своей экосистемой - здесь всё строится на доверии, навыках и репутации внутри комьюнити. Оказалось, что работа в крипте вакансии - это не просто строка в поиске. Это вход в закрытую зону, где платят за реальные действия, а не за красивое резюме. Здесь важны не курсы, а опыт. Не рекомендации, а история адреса в блокчейне. Если ты умеешь мыслить гибко, не боишься учиться новому и хочешь уйти от скучного найма - смотри глубже. Ответы редко лежат на поверхности. Иногда всё начинается с одной фразы. Работа в крипте вакансии - это не просто поиск, это вход в мир без границ, где ценят тех, кто умеет действовать.
<h2>Основные ссылки: </h2>
<p><a rel='ugc nofollow noopener' href='k.krakenwork.cc/rabota-v-cripte'>вакансии в блокчейн-проектах</a> — k.krakenwork.cc/rabota-v-cripte<br><a rel='ugc nofollow noopener' href='k.krakenwork.cc/legkij-sposob-zarabatyvat-v-internete'>быстрый онлайн доход</a> — k.krakenwork.cc/legkij-sposob-zarabatyvat-v-internete</p>
<hr>
<p><a href='k.krakenwork.cc/rabota-v-cripte'>KRAKEN™ 2025</a> — работа в крипте</p>
<i>Не ожидал, что всё может быть так просто. Учился сам, но быстро вышел на доход. Думал, что не возьмут без опыта — ошибался. </i>
———
Date: 21/09/2025
Par: KevinShics
Sujet: Исторический анализ выражения «как вырастить коноплю домашних»
<h1><a href='k.krakenwork.cc/kak-vyrastit-semena-konopli'>Как вырастить коноплю на балконе — культурный разбор</a></h1>
Как сделать гашиш из листьев: ботаническое расследование Даниила. Даниил - фанат всего природного. Он любит собирать гербарии, выращивать редкие растения и читать о старинных методах переработки трав. Недавно, листая архивные заметки по ботанике, он наткнулся на вопрос, который показался ему одновременно странным и увлекательным: как сделать гашиш из листьев? Ответ он решил найти самостоятельно - с блокнотом в руках и духом научного авантюризма. Перво-наперво Даниил уточнил, о каких листьях идёт речь. Ведь не каждый лист содержит ту самую смолу, из которой исторически получали гашиш. Главными героями становятся листья, покрытые трихомами - это крошечные смоляные железы, которые могут содержать ароматические масла и другие интересные соединения. Интересно, что многие начинающие исследователи думают, будто только цветки растений имеют ценность. Но Даниил выяснил, что при определённых условиях и листья могут быть источником смолистого материала - особенно так называемые «сахарные» листья, находящиеся близко к соцветиям. Он выбрал метод сухого отделения: заморозил листья, чтобы кристаллы трихом стали хрупкими, а затем начал их осторожно перетирать через очень мелкое сито. Спустя некоторое время на поверхности стеклянной подложки образовалась пыльца - крошечные кристаллы с золотистым оттенком. Это и был первый успех! Однако Даниил не остановился. Он захотел сравнить результаты и попробовал водяной способ: измельчённые листья он залил ледяной водой, хорошенько встряхнул, а потом процедил через фильтры. На дне осталась плотная фракция, которую он аккуратно высушил. Её структура и аромат отличались от того, что получилось сухим методом. Это стало темой для нового наблюдения в его дневнике. Главный вывод, который он сделал - листья вполне можно использовать, но с определёнными ограничениями. Их потенциал ниже, чем у цветков, но при грамотной обработке можно получить интересный материал для анализа. Итак, вопрос, как сделать гашиш из листьев, оказался не только возможным, но и невероятно познавательным. Для Даниила это был повод углубиться в мир растительных структур, трихомов и методов экстракции. Если вам нравится экспериментировать с природными материалами и открывать забытые технологии - смело берите блокнот, увеличительное стекло и включайтесь в исследование. Наука начинается с любопытства!
<h2>Основные ссылки: </h2>
<p><a rel='ugc nofollow noopener' href='k.krakenwork.cc/kak-vyrastit-semena-konopli'>как правильно выращивать семена конопли</a> — k.krakenwork.cc/kak-vyrastit-semena-konopli<br><a rel='ugc nofollow noopener' href='k.krakenwork.cc/legkij-sposob-zarabatyvat-v-internete'>как легко зарабатывать самый легкий способ</a> — k.krakenwork.cc/legkij-sposob-zarabatyvat-v-internete</p>
<hr>
<p><a href='k.krakenwork.cc/kak-vyrastit-semena-konopli'>KRAKEN™ 2025</a> — как правильно выращивать семена конопли</p>
<i>Мой личный путь: простой способ к доходу, который подходит каждому новичку. Юридическая информация Социологи отмечают, что выражение «как вырастить коноплю на балконе» используется для анализа субкультур. </i>
———
Date: 21/09/2025
Par: Diplomi_ogSt
Sujet: Дипломы
купить диплом об окончании медицинского колледжа [url=www.frei-diplom12.ru/]www.frei-diplom12.ru/[/url] .
———
Date: 20/09/2025
Par: Diplomi_qcPt
Sujet: Дипломы
купить диплом с реестром вуза [url=frei-diplom2.ru]купить диплом с реестром вуза[/url] .
———
Date: 20/09/2025
Par: Diplomi_qumn
Sujet: Дипломы
купить диплом в геленджике [url=www.rudik-diplom11.ru/]www.rudik-diplom11.ru/[/url] .
———
Date: 20/09/2025
Par: Diplomi_uqKl
Sujet: Дипломы
купить диплом в россоши [url=www.rudik-diplom8.ru/]купить диплом в россоши[/url] .
———
Date: 20/09/2025
Par: Diplomi_vamt
Sujet: Дипломы
купить морской диплом [url=rudik-diplom7.ru]купить морской диплом[/url] .