|
Чтение памяти - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок |
12.06.2012, 13:27
|
#1
|
|
|
|
Разведчик
|
Регистрация: 30.09.2011
Сообщений: 17
Популярность: -131
Сказал(а) спасибо: 46
Поблагодарили 1 раз в 1 сообщении
|
Чтение памяти
Я хочу узнать например HP своего чара как это можно сделать?
P.s. Я ещё мало что знаю помогите пожалуйста примером на autoit
|
|
|
12.06.2012, 15:48
|
#2
|
|
|
|
Пехотинец
|
Регистрация: 31.08.2010
Сообщений: 64
Популярность: 129
Сказал(а) спасибо: 30
Поблагодарили 12 раз(а) в 7 сообщениях
|
Re: Чтение памяти
Исходники Prophet Bot Unleashed глянь. Я на них разбирался.
|
|
|
12.06.2012, 22:24
|
#3
|
|
|
|
Рыцарь
|
Регистрация: 19.11.2008
Сообщений: 385
Популярность: 13343
Сказал(а) спасибо: 124
Поблагодарили 217 раз(а) в 109 сообщениях
|
Re: Чтение памяти
На самом деле ничего сложного! Пришлось почитать про DllStruct*, прежде чем понял как создать аналог поинтера в AutoIt. Пока я не увидел этот вопрос, я не задумывался о том, как средствами WinAPI в AutoIt работать с памятью и лишь смутно кивал головой перед исходником NomadMemory.
Исходник считывает минимальное значение ХП чара. Оффсеты руофа Ver 1.4.5 Build 2305.
Код:
#Include "WinAPI.au3"
#Include "Constants.au3"
; MinHP Read By Sirioga
; Ver 1.4.5 Build 2305
Global $iPID, $iRead
$handle = _WinAPI_FindWindow("ElementClient Window", "Perfect World")
_WinAPI_GetWindowThreadProcessId($handle, $iPID)
$hProcess = _WinAPI_OpenProcess($PROCESS_ALL_ACCESS, False, $iPID)
Global $fPoint = DllStructCreate("dword")
if @error Then
MsgBox(0,"","Error in DllStructCreate " & @error);
exit
endif
_WinAPI_ReadProcessMemory($hProcess, 0x00A571E0, DllStructGetPtr($fPoint), DllStructGetSize($fPoint), $iRead)
_WinAPI_ReadProcessMemory($hProcess, DllStructGetData($fPoint,1)+0x1C, DllStructGetPtr($fPoint), DllStructGetSize($fPoint), $iRead)
_WinAPI_ReadProcessMemory($hProcess, DllStructGetData($fPoint,1)+0x34, DllStructGetPtr($fPoint), DllStructGetSize($fPoint), $iRead)
_WinAPI_ReadProcessMemory($hProcess, DllStructGetData($fPoint,1)+0x494, DllStructGetPtr($fPoint), DllStructGetSize($fPoint), $iRead)
MsgBox(0,"MinHP",DllStructGetData($fPoint,1))
|
|
|
12.06.2012, 22:45
|
#4
|
|
|
|
Пехотинец
|
Регистрация: 12.06.2012
Сообщений: 73
Популярность: 529
Сказал(а) спасибо: 16
Поблагодарили 49 раз(а) в 33 сообщениях
|
Re: Чтение памяти
Хм Я сделал немного по другому
Код:
#include <nomadmemory.au3>
#include <memory.au3>
#include <GuiListView.au3>
#include <GUIConstants.au3>
#include <Array.au3>
#include <WindowsConstants.au3>
$base = 0xB27A04
$memory = _MemoryOpen (ProcessExists("elementclient.exe"))
$result = _MemoryRead (_MemoryRead (_MemoryRead(_MemoryRead ($base, $memory)+0x1C, $memory)+0x34, $memory)+0x490, $memory)
MsgBox(0,"HP",$result)
P.s. версия 1.4.4
P.p.s Это igo3000
Добавлено через 2 минуты
Теперь меня интересует как сделать button (gui) что бы на её нажатие вызывалось Msgbox и показывало HP
Последний раз редактировалось Goooooogle; 12.06.2012 в 22:48.
Причина: Добавлено сообщение
|
|
|
12.06.2012, 23:10
|
#5
|
|
|
|
Рыцарь
|
Регистрация: 19.11.2008
Сообщений: 385
Популярность: 13343
Сказал(а) спасибо: 124
Поблагодарили 217 раз(а) в 109 сообщениях
|
Re: Чтение памяти
|
|
|
12.06.2012, 23:17
|
#6
|
|
|
|
Пехотинец
|
Регистрация: 12.06.2012
Сообщений: 73
Популярность: 529
Сказал(а) спасибо: 16
Поблагодарили 49 раз(а) в 33 сообщениях
|
Re: Чтение памяти
Sirioga спасибо что нибудь попробуем =)
Добавлено через 22 минуты
Что то у меня ничего не получается
Добавлено через 24 минуты
Аааа все вник сейчас напишу код
Добавлено через 35 минут
а нет что то не то никак мне не впихнуть в кнопку Msgbox
Последний раз редактировалось Goooooogle; 12.06.2012 в 23:53.
Причина: Добавлено сообщение
|
|
|
12.06.2012, 23:56
|
#7
|
|
|
|
Рыцарь
|
Регистрация: 19.11.2008
Сообщений: 385
Популярность: 13343
Сказал(а) спасибо: 124
Поблагодарили 217 раз(а) в 109 сообщениях
|
Re: Чтение памяти
|
Цитата: |
|
|
|
|
|
|
|
|
|
а нет что то не то никак мне не впихнуть в кнопку Msgbox
|
|
|
|
|
|
Мда уж...
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 236, 119, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 80, 48, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
MsgBox(0,"Привет","Привет мир!")
EndSwitch
WEnd
|
|
|
13.06.2012, 00:45
|
#8
|
|
|
|
Рыцарь
|
Регистрация: 19.11.2008
Сообщений: 385
Популярность: 13343
Сказал(а) спасибо: 124
Поблагодарили 217 раз(а) в 109 сообщениях
|
Re: Чтение памяти
|
|
|
13.06.2012, 00:55
|
#9
|
|
|
|
Пехотинец
|
Регистрация: 12.06.2012
Сообщений: 73
Популярность: 529
Сказал(а) спасибо: 16
Поблагодарили 49 раз(а) в 33 сообщениях
|
Re: Чтение памяти
Спасибо Осталось немного побольше функций вставить и можно пользоваться =)
|
|
|
12.09.2014, 20:41
|
#10
|
|
|
|
Разведчик
|
Регистрация: 15.08.2011
Сообщений: 25
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Чтение памяти
Почему сейчас не получается считать данные из памяти? Только если второе окно запущено, то из его памяти читает. А с одним окном не проходит...
|
|
|
12.09.2014, 21:57
|
#11
|
|
|
|
Рыцарь-лейтенант
|
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
|
Re: Чтение памяти
Запуск от имени администратора нужен
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
|
|
|
13.09.2014, 04:19
|
#12
|
|
|
|
Разведчик
|
Регистрация: 15.08.2011
Сообщений: 25
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Чтение памяти
|
Цитата: |
|
|
|
|
|
|
|
|
|
Запуск от имени администратора нужен
|
|
|
|
|
|
верно, ...хотя я использовал код
Код:
SetPrivilege("SeDebugPrivilege", 1)
из библиотеки <NomadMemory.au3>
что как обещалось должно было решить проблему с запуском от админа
|
|
|
16.04.2016, 12:28
|
#13
|
|
|
|
Разведчик
|
Регистрация: 10.03.2016
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Чтение памяти
|
Цитата: |
|
|
|
|
|
|
|
|
|
На самом деле ничего сложного! Пришлось почитать про DllStruct*, прежде чем понял как создать аналог поинтера в AutoIt. Пока я не увидел этот вопрос, я не задумывался о том, как средствами WinAPI в AutoIt работать с памятью и лишь смутно кивал головой перед исходником NomadMemory.
Исходник считывает минимальное значение ХП чара. Оффсеты руофа Ver 1.4.5 Build 2305.
Код:
#Include "WinAPI.au3"
#Include "Constants.au3"
; MinHP Read By Sirioga
; Ver 1.4.5 Build 2305
Global $iPID, $iRead
$handle = _WinAPI_FindWindow("ElementClient Window", "Perfect World")
_WinAPI_GetWindowThreadProcessId($handle, $iPID)
$hProcess = _WinAPI_OpenProcess($PROCESS_ALL_ACCESS, False, $iPID)
Global $fPoint = DllStructCreate("dword")
if @error Then
MsgBox(0,"","Error in DllStructCreate " & @error);
exit
endif
_WinAPI_ReadProcessMemory($hProcess, 0x00A571E0, DllStructGetPtr($fPoint), DllStructGetSize($fPoint), $iRead)
_WinAPI_ReadProcessMemory($hProcess, DllStructGetData($fPoint,1)+0x1C, DllStructGetPtr($fPoint), DllStructGetSize($fPoint), $iRead)
_WinAPI_ReadProcessMemory($hProcess, DllStructGetData($fPoint,1)+0x34, DllStructGetPtr($fPoint), DllStructGetSize($fPoint), $iRead)
_WinAPI_ReadProcessMemory($hProcess, DllStructGetData($fPoint,1)+0x494, DllStructGetPtr($fPoint), DllStructGetSize($fPoint), $iRead)
MsgBox(0,"MinHP",DllStructGetData($fPoint,1))
|
|
|
|
|
|
все робит, а можно ли какнить записать значение по цепочке оффсетов ?
разобрался, может кому пригодиться.
Func _read()
global $AddrStufe3, $open
$pid = WinGetProcess("Counter-Strike")
$open = _MemoryOpen ($pid)
$BaseAddr = 0x050092AC
$AddrStufe1 = _MemoryRead($BaseAddr, $open ) + 0x7C
$AddrStufe2 = _MemoryRead($AddrStufe1, $open) + 0x5D4
$AddrStufe3 = _MemoryRead($AddrStufe2, $open) + 0xCC
$adress = _MemoryWrite($AddrStufe3, $open, "50", "BYTE")
EndFunc
Последний раз редактировалось Tanel; 16.04.2016 в 13:45.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 19:18.
|
|