Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Чтение памяти

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 12.06.2012, 13:27   #1
 Разведчик
Аватар для igo3000
 
igo3000 неизвестен в этих краяхigo3000 неизвестен в этих краях
Регистрация: 30.09.2011
Сообщений: 17
Популярность: -131
Сказал(а) спасибо: 46
Поблагодарили 1 раз в 1 сообщении
Отправить сообщение для igo3000 с помощью ICQ Отправить сообщение для igo3000 с помощью Skype™
 
По умолчанию Чтение памяти

Я хочу узнать например HP своего чара как это можно сделать?
P.s. Я ещё мало что знаю помогите пожалуйста примером на autoit
  Ответить с цитированием
Старый 12.06.2012, 15:48   #2
 Пехотинец
Аватар для Nek1t
 
Nek1t на правильном путиNek1t на правильном пути
Регистрация: 31.08.2010
Сообщений: 64
Популярность: 129
Сказал(а) спасибо: 30
Поблагодарили 12 раз(а) в 7 сообщениях
 
По умолчанию Re: Чтение памяти

Исходники Prophet Bot Unleashed глянь. Я на них разбирался.
  Ответить с цитированием
Старый 12.06.2012, 22:24   #3
 Рыцарь
Аватар для Sirioga
 
Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(
Регистрация: 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
Заблокирован
 Пехотинец
Аватар для Goooooogle
 
Goooooogle излучает ауруGoooooogle излучает ауруGoooooogle излучает ауруGoooooogle излучает ауруGoooooogle излучает ауруGoooooogle излучает ауру
Регистрация: 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
 Рыцарь
Аватар для Sirioga
 
Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(
Регистрация: 19.11.2008
Сообщений: 385
Популярность: 13343
Сказал(а) спасибо: 124
Поблагодарили 217 раз(а) в 109 сообщениях
 
По умолчанию Re: Чтение памяти

Цитата:
Сообщение от GoooooogleПосмотреть сообщение
Хм Я сделал немного по другому

Ты использовал NomadMemory, по этому и вышло по другому. Если нравится NomadMemory, никто же не против...
Но, ИМХО использование "надстройки" для уже готового немного\совсем затрудняет чтение кода, особенно для тех, кто не использует AutoIt, но это уже дело личное для каждого, оставлять исходник читабельным для других или нет.

Цитата:
Сообщение от GoooooogleПосмотреть сообщение
Теперь меня интересует как сделать button (gui) что бы на её нажатие вызывалось Msgbox и показывало HP

Вместе с [Ссылки могут видеть только зарегистрированные пользователи. ] идёт редактор форм, называется Koda лежит тут - *\AutoIt3\SciTE\Koda\FD.exe.
  Ответить с цитированием
Старый 12.06.2012, 23:17   #6
Заблокирован
 Пехотинец
Аватар для Goooooogle
 
Goooooogle излучает ауруGoooooogle излучает ауруGoooooogle излучает ауруGoooooogle излучает ауруGoooooogle излучает ауруGoooooogle излучает ауру
Регистрация: 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
 Рыцарь
Аватар для Sirioga
 
Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(
Регистрация: 19.11.2008
Сообщений: 385
Популярность: 13343
Сказал(а) спасибо: 124
Поблагодарили 217 раз(а) в 109 сообщениях
 
По умолчанию Re: Чтение памяти

Цитата:
Сообщение от GoooooogleПосмотреть сообщение
а нет что то не то никак мне не впихнуть в кнопку 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
 Рыцарь
Аватар для Sirioga
 
Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(
Регистрация: 19.11.2008
Сообщений: 385
Популярность: 13343
Сказал(а) спасибо: 124
Поблагодарили 217 раз(а) в 109 сообщениях
 
По умолчанию Re: Чтение памяти

Цитата:
Сообщение от GoooooogleПосмотреть сообщение
Что в коде не так?

Всё так, только для начала попробуй поставить ту часть которая у тебя после конца цикла (WEnd), перед началом цикла (While 1).
  Ответить с цитированием
Старый 13.06.2012, 00:55   #9
Заблокирован
 Пехотинец
Аватар для Goooooogle
 
Goooooogle излучает ауруGoooooogle излучает ауруGoooooogle излучает ауруGoooooogle излучает ауруGoooooogle излучает ауруGoooooogle излучает ауру
Регистрация: 12.06.2012
Сообщений: 73
Популярность: 529
Сказал(а) спасибо: 16
Поблагодарили 49 раз(а) в 33 сообщениях
 
По умолчанию Re: Чтение памяти

Цитата:
Сообщение от SiriogaПосмотреть сообщение
Sirioga

Спасибо Осталось немного побольше функций вставить и можно пользоваться =)
  Ответить с цитированием
Старый 12.09.2014, 20:41   #10
 Разведчик
Аватар для wajskopf
 
wajskopf никому не известный тип
Регистрация: 15.08.2011
Сообщений: 25
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Чтение памяти

Почему сейчас не получается считать данные из памяти? Только если второе окно запущено, то из его памяти читает. А с одним окном не проходит...
  Ответить с цитированием
Старый 12.09.2014, 21:57   #11
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
По умолчанию Re: Чтение памяти

Запуск от имени администратора нужен
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
  Ответить с цитированием
Старый 13.09.2014, 04:19   #12
 Разведчик
Аватар для wajskopf
 
wajskopf никому не известный тип
Регистрация: 15.08.2011
Сообщений: 25
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Чтение памяти

Цитата:
Сообщение от SmertigПосмотреть сообщение
Запуск от имени администратора нужен

верно, ...хотя я использовал код

Код:
SetPrivilege("SeDebugPrivilege", 1)
из библиотеки <NomadMemory.au3>

что как обещалось должно было решить проблему с запуском от админа
  Ответить с цитированием
Старый 16.04.2016, 12:28   #13
 Разведчик
Аватар для Tanel
 
Tanel никому не известный тип
Регистрация: 10.03.2016
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Чтение памяти

Цитата:
Сообщение от SiriogaПосмотреть сообщение
На самом деле ничего сложного! Пришлось почитать про 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.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Куплю] Куплю мощные акаунты.Предложения темке Царь_всея_Руси+ Dark Orbit 7 23.09.2011 21:30

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 10:59.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net