Что нового

[Процессы] Поиск значения в памяти игры(сам поиск средствами autoit)

Foli

Знающий
Сообщения
39
Репутация
5
нужно сделать поиск значения в памяти процесса и вывод найденных адресов вроде как в Memory.au3 и NomadMemory.au3 нету функций сканирования или поиска, как быть? создать цикл и записать в txt все адреса и их значения, а после выполнить в нём поиск? мне даже не все адреса нужны а те что буду лежать в 0x00400000-0x0050000 диапазоне



П.С. объясню зачем мне это, каждые дня 2-3 обновляется экзешник адрес немного смещается в нём лежит одно и тоже значение, открывать СЕ или артмани каждые обновление экзешника и искать руками просто надоедает, хочется сделать автономной тренер который сам будит обновлять базовый адрес
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
Foli [?]
создать цикл и записать в txt все адреса и их значения, а после выполнить в нём поиск?
Это реализовать не трудно... если не думать о скорости.
А как вы определите что нужно найти?.. значение не из воздухаже будете брать...
 
Автор
F

Foli

Знающий
Сообщения
39
Репутация
5
там инструкция, но думаю в памяти она может повторятся поэтому нужно будит искать 3 значения рядом стоящие, но да меня смущает скорость этого всего
 
Автор
F

Foli

Знающий
Сообщения
39
Репутация
5
как сделать цикл шестнадцатеричной системой, ну адреса в шестнадцатеричной...?
Код:
Global $adres = 0x00400000
while 1
	
	$adres = $adres+0x1
	 $Value = _MemoryRead($adres ,$MemGame,'float')
     
	 if $Value = 145.0623016 Then
		 MsgBox(1,"нашел",$adres)
		
		 EndIf
	 WEnd

не пашет( как его научить складывать правильно 16ричные числа?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
можно не 16ричные а десятичные и далее внутри применять команду Hex
 
Автор
F

Foli

Знающий
Сообщения
39
Репутация
5
да всё уже задача решена =)
Код:
for $adres = 0x00400000 To 0x00500000

$Value = _MemoryRead($adres ,$MemGame,'float')

if @error Then MsgBox(1,"Ой ","Память не читаеться")
$Value = Round($Value,7)
	
if $Value = 145.0623016 Then
	$s4ot = $s4ot +1
	if $s4ot = 2 Then
		IniWrite("settings.ini", "section1", "Baza", $adres )
MsgBox(1,"!!!","Обновлено")
exitloop



EndIf
EndIf
Next

спс winstan за приватную помощь в аське :smile:
 
Верх