Что нового

Записать float значение в память через Nt

zerobot

Новичок
Сообщения
78
Репутация
0
Есть функция:
Код:
Func _NtWriteVirtualMemory($lpBaseAddress,$hProcess, $lpBuffer, $nSize, $lpNumberOfBytesWritten)
Local $Return
$Return = DllCall("ntdll.dll", "int", "NtWrite" & "VirtualMemory", "int", $hProcess, "ptr", $lpBaseAddress, "ptr*", $lpBuffer, "int", $nSize, "int", $lpNumberOfBytesWritten)
Return $Return
EndFunc


Как с ее помощью записать float значение в память?

Пробовал так:
Код:
_NtWriteVirtualMemory(0x6280D4, $process, "2.3", 1, 0)


Работает некорректно... Help Please! :stars:
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Код:
Local $cStruct = DllStructCreate( "float Val" )
   DllStructSetData( $cStruct, "Val", 2.3 )

_NtWriteVirtualMemory( $hProcess, 0x6280D4, $cStruct )

Func _NtWriteVirtualMemory( $hProcess, $vAddress, $cStruct )
   Local $aRet = DllCall("ntdll.dll", "int", "NtWriteVirtualMemory", "int", $hProcess, "ptr", $vAddress, "ptr*", DllStructGetPtr( $cStruct ), "int", DllStructGetSize( $cStruct ), "int", 0 )
   ; ---
   Return ( Not @Error ) And ( $aRet[0] <> 0 )
EndFunc
 
Верх