Что нового

[Half-Life 2 Deathmatch] Работаем с памятью

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Помогите найти offset и Базывый адрес....

Обьясните как чайнику, что куда нажимать и что выщитывать!
Заранние спс :smile:

З.Ы В других темах я не нашол как найти оффсет и базыый адрес, как то все запутанно...
Мне просто нужно вывести в переменную сколько я фрагов набил в игре: Half-Life 2 DM
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: Поиск offset\\\'а, и базового адреса

{TopicNameWarn}


Добавлено:
Сообщение автоматически объединено:

http://autoit-script.ru/index.php/topic,6125.0.html


Добавлено:
Сообщение автоматически объединено:

После изменения названия темы я перенесу ее в соответствующий раздел. Если в течении ближайшего времени она не будет переименована она будет закрыта.
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Re: Поиск offset\'а, и базового адреса

Видимо ответа я не дождусь, и тема вроде норм называется всем понятно покаране мере мне!


Добавлено:
Сообщение автоматически объединено:

Так пойдет?)
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
От оно. Iris Online я по нему ломал http://www.youtube.com/watch?v=mAE5rraFvM8


Добавлено:
Сообщение автоматически объединено:

Вооот, тема поименована идеально
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Вот это видео точно для чайников :smile:


Добавлено:
Сообщение автоматически объединено:

у меня не схожо =(


Добавлено:
Сообщение автоматически объединено:

а все, получилось :smile:


Добавлено:
Сообщение автоматически объединено:

Код:
#include <nomadmemory.au3>
$ProcessID = WinGetProcess('Half-Life 2 DM')
$offset_hp = 0x0C
$baseADDR = 0x03333580
$DllInformation = _MemoryOpen($ProcessID)

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

While 1
	Sleep(100)
WEnd
 
Func _CurrentHP()
    $mem = "0x"&hex($baseADDR+$offset_hp)
	TrayTip('',$mem,10)
    $CurrentHP = _MemoryRead($mem, $DllInformation, 'ptr') ; читаем адрес из памяти
    Global $HPdec = dec(StringTrimLeft($CurrentHP, 2)) ; возвращаем в десятичном формате
	ToolTip(StringFormat($HPdec),0,0)
EndFunc


чет у меня не то получается, в CE верно показывается, а тут криво...
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Ты бы указал линк на колиент, мб кто помог бы более существенно :whistle:
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Сколько не чюдил не чего не получается :'(, ESI - Меняется каждый раз так должно быть?


Добавлено:
Сообщение автоматически объединено:

ПОМОГИТЕ!!!!!
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Код:
#include <nomadmemory.au3>

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

While 1
	Sleep(100)
WEnd

Func _GGGG()
Global $ProcessName = "Half-Life 2 DM" ;Собственно...Название окна
Global $ProcessID = WinGetProcess($ProcessName,"") ;Ну или $Pid кому как нравится 
Global $HP = 0x0331E4C8 ; Указатель МЕНЯЕТСЯ =(((((((((((((
Global $DllInformation = _MemoryOpen($ProcessID) 

$CurrentHP = (_MemoryRead($HP, $DllInformation, 'ptr')) 
$Cur = '0x'&Hex($CurrentHP + 0x0C) ; 0C - думаю тоже понятно откуда берется... по картинке
TrayTip('',$CurrentHP,10)
$Curr =  (_MemoryRead($Cur, $DllInformation, 'ptr')) ;получаем Адрес (ну понятно ,опять же ,по той же картинке что у нас  должно получиться)
$RHP =dec(StringTrimLeft($Curr, 2)) ; извлекаем значение
ToolTip($RHP,0,0) ; тадаам, вот оно значение
EndFunc


Указатель меняется :'(!!! Может для указателя нужен еще указатель? :smile:
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
я через пару дней одуплюсь, если никто до етого не поможет то помогу :smile:
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Указатели жизьней, брони, патронов не меняется :smile:, а указатели фрагов меняется :'(

Вот скрипт с показателями Хр, брони, патронов...
Код:
#include <nomadmemory.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 431, 320, 192, 124)
$Label1 = GUICtrlCreateLabel("Label1", 8, 8, 84, 17)
$Label2 = GUICtrlCreateLabel("Label2", 8, 32, 84, 17)
$Label3 = GUICtrlCreateLabel("Label3", 8, 56, 84, 17)
$Label4 = GUICtrlCreateLabel("Label4", 8, 80, 84, 17)
$Label5 = GUICtrlCreateLabel("Label5", 8, 104, 84, 17)
$Label6 = GUICtrlCreateLabel("Label6", 8, 128, 84, 17)
$Label7 = GUICtrlCreateLabel("Label7", 8, 152, 84, 17)
$Label8 = GUICtrlCreateLabel("Label8", 8, 176, 84, 17)
$Label9 = GUICtrlCreateLabel("Label9", 8, 200, 84, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	Sleep(10)
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
	GUICtrlSetData($Label1,_MemoruScan(0x052CE2F4,0xA8))
	GUICtrlSetData($Label2,_MemoruScan(0x052CE3E4,0xA8))
	GUICtrlSetData($Label3,_MemoruScan(0x052CE254,0xA8))
	GUICtrlSetData($Label4,_MemoruScan(0x052CE434,0x16C))
WEnd

Func _MemoruScan($HP,$OffSet,$ProcessName = "Half-Life 2 DM")
$ProcessID = WinGetProcess($ProcessName,"") ;Ну или $Pid кому как нравится
$DllInformation = _MemoryOpen($ProcessID) 
$CurrentHP = (_MemoryRead($HP, $DllInformation, 'ptr')) 
$Cur = '0x'&Hex($CurrentHP + $OffSet) ; 308 - думаю тоже понятно откуда берется... по картинке
$Curr =  (_MemoryRead($Cur, $DllInformation, 'ptr')) ;получаем Адрес (ну понятно ,опять же ,по той же картинке что у нас  должно получиться)
$RHP =dec(StringTrimLeft($Curr, 2)) ; извлекаем значение
Return $RHP
EndFunc


и еще, когда запустил на другом компьютере этот скрипт не показывал не каких данных, значит указатели на каждом компе разные?
 

Arei

Скриптер
Сообщения
938
Репутация
115
попробуйте с другими играми.
 

anonymous7

Знающий
Сообщения
40
Репутация
8
Базовый адрес найдите. Схожая проблема в этой теме http://autoit-script.ru/index.php/topic,6132.0.html
 

Dellroc

Осваивающий
Сообщения
151
Репутация
31
А этот ответ находится в этой теме http://autoit-script.ru/index.php/topic,4334.0.html
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Поднимаю тему, нужно в игре найти байты отвечающие за наведение НА чувака.
Хочу сделать Автокил, но чтоб работало через память. Т.е нужно проскандировать адрес в памяти, и если совпадет(при наведение на чувака) то стреляем.
Вопрос: Как найти эти байты??? :stars:
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Foli
Ну смотри, допустим у меня в ячейки памяти(Например: 03FF9090) находится 00, когда я навожу на чувака в значение становится 01. Т.е Если значение 01, то стрелять(MouseClick('Left')). Мне нужно узнать какая ячейка памяти за это отвечает... Вот может кто программы посоветует? Cheat Engine не может просканировать всю память, а потом просканировав вновь на изменения всех адресов...
Вот скриншот при НЕ наведении: Вот скриншот при наведении:
images
Hl2DM.png

Еще бывают такие ужасы:
images
images


Сейчас автокил у меня сканирует этот выделенный красным промежуток:
Hl2DM1.png

Если цвет есть стрелять, если нету бездействие. Но это очень грузит ЦП, Т.к надо сканировать не 1 раз, а в цикле... при поставке Sleep() от 10, это очень влияет на скорость производительности стрельбы(Бота), если поставить Sleep(1) то более менее быстро, если убрать Sleep(), то грузит ЦП почти до максимума, это влияет на производительность игры и компьютера!!! Вот хочу сделал Автокил через память...
 
Автор темы Похожие темы Форум Ответы Дата
CreatoR Общение 8
Верх