Что нового

[R2online] Чтение памяти поиск базового адреса

NomoS

Новичок
Сообщения
6
Репутация
0
Не могу разобраться как работают оффсеты вроде делаю все как написано но нужного мне он так и не выдает т.е. если я читаю адрес 00358EB0 (соответственно он постоянно меняется) он выдает нужное мне 747 если пытаюсь проделать это через базовый + оффсеты нечего не получается


Собственно код который был позаимствован тут же)
Код:
#include <nomadmemory.au3>
$ProcessID = WinGetProcess("R2")
$offset_hp1 = 0x4F4
$offset_hp2 = 0x1C
$baseADDR = 0x012F78D4
$DllInformation = _MemoryOpen($ProcessID)

HotKeySet('{F1}','_CurrentHP')

While 1
    Sleep(100)
WEnd
 
Func _CurrentHP()
    $mem = "0x"&hex($baseADDR+$offset_hp1+$offset_hp2)
    TrayTip('',$mem,10)
    $CurrentHP = _MemoryRead($mem, $DllInformation, 'ptr') ;
    Global $HPdec = dec(StringTrimLeft($CurrentHP, 2)) ;
    ToolTip(StringFormat($HPdec),0,0)
EndFunc


Нашол вот такую кучу адресов... мб я что то делаю не правильно (искал указатели и отсортировал их) но когда я запускал в CH функцию с дебагером окно игры зависало и закрывалось

 

anonymous7

Знающий
Сообщения
40
Репутация
8
Re: Чтение памяти r2online

Я бы тебе посоветовал искать базовый адрес так, как это делается в этой теме http://autoit-script.ru/index.php/topic,4334.0.html Недостающие пункты ищи дальше по теме. Геймгуард без проблем даёт запускать дебаг режим процесса игры?
 
Автор
N

NomoS

Новичок
Сообщения
6
Репутация
0
Re: Чтение памяти r2online

Я как бы и начинал оттуда ... но момент с дебагом не проходит игра сразу зависает... пробовал отключить frost печенюга та же.

Потом добрался до этого...

... в общем конечный вариант получения офсетов выглядит так же

при перезапуске игры и на других компах значение выдает верное... т.е. по идее все правильно... но чего то не работает(
 

anonymous7

Знающий
Сообщения
40
Репутация
8
Re: Чтение памяти r2online

BaseAddr который у тебя записан - это оффсет на базовый адрес. Вот подкорректировал твой пример:
Код:
#include <nomadmemory.au3>
$ProcessID = WinGetProcess("R2")
$offset_hp1 = 0x4F4
$offset_hp2 = 0x1C
$offset_baseADDR = 0x012F78D4
$DllInformation = _MemoryOpen($ProcessID)

HotKeySet('{F1}','_CurrentHP')

While 1
    Sleep(100)
WEnd
 
Func _CurrentHP()
	Local $sModule = "R2Client.exe"
	Local $baseADDR = _MemoryModuleGetBaseAddress($ProcessID, $sModule)
    $mem = "0x"&hex($baseADDR+$offset_baseADDR+$offset_hp1+$offset_hp2)
    TrayTip('',$mem,10)
    $CurrentHP = _MemoryRead($mem, $DllInformation, 'ptr') ;
    Global $HPdec = dec(StringTrimLeft($CurrentHP, 2)) ;
    ToolTip(StringFormat($HPdec),0,0)
EndFunc
 

Belfigor

Модератор
Локальный модератор
Сообщения
3 589
Репутация
936
Re: Чтение памяти r2online

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Как правильно называть темы

"Чтение памяти r2online" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, Модератор раздела.
 
Автор
N

NomoS

Новичок
Сообщения
6
Репутация
0
Это тоже не помогло показывает какое то число но не понятно) Перетыкал в CE все что связано с дебагом изменения есть терь зависает на поиске второго указателя :blink:. Может кто посоветует альтернативу CE хотя врятли в нем проблема(((
 

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Советую разобраться с поиском базового адреса, потому-что последний пример работает на ура, если правильно найдены офсеты.
 
Автор
N

NomoS

Новичок
Сообщения
6
Репутация
0
Ну с поиском базового адреса я вроде как разобрался правда пришлось поставить 32бит винду. Терь такой вопрос при запуске скрипта в игре появляются небольшие подергивания и залипания клавиш интересно можно ли как то это исправить (SendKeyDelay поставил 200 это немного уменьшило залипания).
Код:
While 1
	HP()
	if $HP < $MaxHP - 30 Then
		ControlSend ("R2","",0,"{F8}")
	EndIf
	if $HP < 300 Then
		ControlSend ("R2","",0,"{F7}")
		$a=0
		Do
			HP()
			ControlSend ("R2","",0,"{F8}")
			if $HP>300 Then $a=1
		Until $a=1
	EndIf
WEnd

Func HP()
	$HP = "0x"&hex($baseADDR)
    $HP = _MemoryRead($HP, $ProcessID, 'ptr')
	$HP = _MemoryRead($HP+$offset_hp1, $ProcessID, 'ptr')
	$MaxHP = _MemoryRead($HP+$offset_hp2+$OffMaxHP, $ProcessID)
	$HP = _MemoryRead($HP+$offset_hp2, $ProcessID, 'ptr')
;~ 	Global $HPdec = dec(StringTrimLeft($HP, 2))
;~  ToolTip (StringFormat($HPdec),100,100)
EndFunc


p.s. для тех кто не играл клавиша ф8 в данном случае она пьет банки зажата почти постоянно и при нажатии например шифта или контрл получается их залипание.
 

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Это по моему виндовая бредятинка - так называемое "залипание клавиш". Лениво игру качать... Много народу в неё играет? Ща скачаю и попробую тебе помочь.
 
Автор
N

NomoS

Новичок
Сообщения
6
Репутация
0
Да как много, не сказал бы ... числа там не указываются (что то напоминает PW и линейку) ну интересней в плане пвп. Само залипание в винде не вылетает. Когда то была похожая прога по поводу хил критикал кей называлась... уже давно было но кажется там такого не было... может есть какой то другой способ посылки команд в игру?
Хочу еще написать чтобы находить в памяти окружающих меня персонажей... ну пока не знаю с какого конца подойти.
 

archiver

Новичок
Сообщения
10
Репутация
1
Раньше на Autoit все это писалось элементарно. Сейчас, после обновления Frost ничего не работает. Единственный выход - убить Frost) Но работающих методов я лично пока не нашел. NomoS, нубасина, если в памяти ковыряешься, то только с другого айпи и левого акка. Бан моментом прилетит))
А игра прикольная) Я с линейки туда ушел. Намного бодрей и поадреналинестее))
 

Belfigor

Модератор
Локальный модератор
Сообщения
3 589
Репутация
936
Поиграйте господа в TERA, а то уже печаль берет как раз за разом люди на форуме пытаются ломать какое-то уг.
Нонтаргет как бы рулит
 

anonymous7

Знающий
Сообщения
40
Репутация
8
Извеняй! Игра отказалась запускаться с такой ошибкой: "Microsoft Visual C++ Exception" Следовательно флаг в руки создателям этой игры и этой ошибки.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3 589
Репутация
936
anonymous7 сказал(а):
Извеняй! Игра отказалась запускаться с такой ошибкой: "Microsoft Visual C++ Exception" Следовательно флаг в руки создателям этой игры и этой ошибки.
скачал клиент, купил акк на корее, пропатчил, профит :smile:. В конце года релиз в европе :smile:
 
Автор
N

NomoS

Новичок
Сообщения
6
Репутация
0
Автор: archiver
Раньше на Autoit все это писалось элементарно. Сейчас, после обновления Frost ничего не работает. Единственный выход - убить Frost) Но работающих методов я лично пока не нашел. NomoS, нубасина, если в памяти ковыряешься, то только с другого айпи и левого акка. Бан моментом прилетит))
А игра прикольная) Я с линейки туда ушел. Намного бодрей и поадреналинестее))
Как отрубать его я нашёл... в 64битке он кстати коряво работает чтение из памяти производить можно а вот на 32 процесс игры скрыт но отрубить фрост возможно) А игруха да нечего бодрая потеря шмота на несколько десятков а то сотен тысяч рублей будоражит. Проблема одна это иннова)
Если есть желание можно поковырятся вместе я просто чайник в этих делах.


Автор: anonymous7
Извеняй! Игра отказалась запускаться с такой ошибкой: "Microsoft Visual C++ Exception" Следовательно флаг в руки создателям этой игры и этой ошибки.
Вроде при первом запуске предполагают её установить

Автор: Belfigor
Поиграйте господа в TERA, а то уже печаль берет как раз за разом люди на форуме пытаются ломать какое-то уг.
Нонтаргет как бы рулит
Вроде бы у нас она еще не вышла)
 

Belfigor

Модератор
Локальный модератор
Сообщения
3 589
Репутация
936
OffTopic:
Ну я на корее играю, у нас она никогда и не выйдет, дайбох
 
Верх