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

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

-

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

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

Ответ
 
Опции темы
Старый 02.09.2015, 14:25   #1
 Разведчик
Аватар для cristallpppw
 
cristallpppw никому не известный тип
Регистрация: 23.02.2015
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Чтение памяти AutoIt

Подскажите пожалуйста хоть примерно как на Autoit программно взять 10 фишек и 3 ключа сансары у напа, ежедневный квест у инт персу.
Использую такой метод
$memory = _MemoryOpen (ProcessExists("elementclient.exe"))
$hp=_MemoryRead (_MemoryRead (_MemoryRead(_MemoryRead ($base, $memory)+0x1C, $memory)+0x30, $memory)+0x4B8, $memory)
  Ответить с цитированием
Старый 02.09.2015, 15:26   #2
 Пехотинец
Аватар для diagnost
 
diagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражания
Регистрация: 02.01.2010
Сообщений: 95
Популярность: 1542
Сказал(а) спасибо: 110
Поблагодарили 460 раз(а) в 288 сообщениях
 
По умолчанию Re: Читаем память [Autoit]

Цитата:
Сообщение от cristallpppwПосмотреть сообщение
Подскажите пожалуйста хоть примерно как на Autoit программно взять 10 фишек и 3 ключа сансары у напа, ежедневный квест у инт персу.
Использую такой метод
$memory = _MemoryOpen (ProcessExists("elementclient.exe"))
$hp=_MemoryRead (_MemoryRead (_MemoryRead(_MemoryRead ($base, $memory)+0x1C, $memory)+0x30, $memory)+0x4B8, $memory)

На пакетах или ковыряйте [Ссылки могут видеть только зарегистрированные пользователи. ] на аутоит
  Ответить с цитированием
Старый 02.09.2015, 16:08   #3
 Разведчик
Аватар для cristallpppw
 
cristallpppw никому не известный тип
Регистрация: 23.02.2015
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Читаем память [Autoit]

Подскажите пожалуйста, хоть кусочек кода, как на Autoit попасть в данж через камень грёз, стоя возле него?
И как сделать тп с помощью руны переноса на запад гд?
  Ответить с цитированием
Старый 02.09.2015, 17:38   #4
 Разведчик
Аватар для doqsoftware
 
doqsoftware скоро будет известенdoqsoftware скоро будет известенdoqsoftware скоро будет известенdoqsoftware скоро будет известен
Регистрация: 04.04.2015
Сообщений: 0
Популярность: 385
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для doqsoftware с помощью Skype™
 
По умолчанию Re: Читаем память [Autoit]

Цитата:
Сообщение от cristallpppwПосмотреть сообщение
Подскажите пожалуйста, хоть кусочек кода, как на Autoit попасть в данж через камень грёз, стоя возле него?
И как сделать тп с помощью руны переноса на запад гд?

Как вариант отловить пакет и послать его через autoit
  Ответить с цитированием
Старый 05.09.2015, 22:05   #5
 Разведчик
Аватар для cristallpppw
 
cristallpppw никому не известный тип
Регистрация: 23.02.2015
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Чтение памяти AutoIt

Нашла нужный мне пакет 6D 00 00 01 00 00 0F 38 00 00 DA 0E 00 00 при отправке через не мою программу этого пакета персонажа телепортирует в гдз. Как отправить пакет программно? Пожалуйста поделитесь примером на автоите.
Знаю нужные мне офсеты и могу программно в таргет выделить нипа.

$offset_name = "0x" & Hex(_MemoryRead (_MemoryRead(_MemoryRead ($base, $memory)+0x1C, $memory)+0x2C, $memory)+0xD3C)
$mem10 = "0x" & Hex("2245026680") ;ид нипа которого добавляем в таргет
_MemoryWrite($offset_name, $memory ,($mem10))
  Ответить с цитированием
Старый 12.09.2015, 15:54   #6
 Разведчик
Аватар для cristallpppw
 
cristallpppw никому не известный тип
Регистрация: 23.02.2015
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Чтение памяти AutoIt

Есть пакет. Как отправить его с помощью MemoryWrite? В цикле записывать байты? Сколько и куда? Поделитесь пожалуйста маленьким не сложным примером!!!!
  Ответить с цитированием
Старый 12.09.2015, 21:49   #7
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для 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: Чтение памяти AutoIt

С помощью чистого memorywrite можно, но на ум только костыли приходят.
Пакет отправляется с помощью записи в память (memorywrite) кода, который будет вызывать функцию отправки пакета, записи самого пакета (тоже memorywrite) и создания потока (CreateRemoteThread, хотя можно ооооочень хитро сделать с помощью memorywrite). Гайдов полно на форуме
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
  Ответить с цитированием
Старый 13.09.2015, 11:32   #8
 Пехотинец
Аватар для diagnost
 
diagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражания
Регистрация: 02.01.2010
Сообщений: 95
Популярность: 1542
Сказал(а) спасибо: 110
Поблагодарили 460 раз(а) в 288 сообщениях
 
По умолчанию Re: Чтение памяти AutoIt

Я с аутоитом не дружу, но чтобы отправить пакет нужны следующие функции, в соседней ветке выложил рабочий чужой проект. А теперь конкретно скопирую с того проекта нужные функции для отправки:
Код:
;Внедряет в память процесса функцию отправки пакетов
Func InjPackCall()
   Local $l_i, $RESULT[2], $OPCode
If $fConnect Then
; 	Резервируем место под функцию инжекта пакета и под сам пакет
   $sPackCall = DllStructCreate("byte[29]") 	;Реально функция отправки пакета занимает 29 байт в памяти
   $sPacket = DllStructCreate("byte[100]")		;Под будущий пакет отводится 100 байт памяти
   $RESULT = DllCall($OpnProc[0], "ptr", "VirtualAllocEx", "int", $OpnProc[1], "ptr", 0, "int", DllStructGetSize($sPackCall), "int", 4096, "int", 64)
   $PackCall = $RESULT[0]
   $RESULT = DllCall($OpnProc[0], "ptr", "VirtualAllocEx", "int", $OpnProc[1], "ptr", 0, "int", DllStructGetSize($sPacket), "int", 4096, "int", 64)
   $PackAddr = $RESULT[0]
   ConsoleWrite("->CallPacketAddr: " & Hex($PackCall) & " ->PacketAddr: " & Hex($PackAddr) & @CRLF)
   $OPCode  = "60"									;pushad
   $OPCode &= "8B0D" & DWord2String($BA)			;mov ECX,[BASE_ADRESS]
   $OPCode &= "8B4920"								;mov ECX,[ECX+20]
   $OPCode &= "68" & DWord2String(0x6)				;push LEN (длина пакета)
   $OPCode &= "68" & DWord2String($PackAddr)		;push pPacket (указатель на пакет) ($PackCall+0x10)
   $OPCode &= "BA" & DWord2String($PacketCall)		;mov EDX, 0073BBB0 PacketCall Adress
   $OPCode &= "FFD2"								;call EDX
   $OPCode &= "61"									;popad
   $OPCODE &= "C3"									;ret
   For $l_i = 1 To DllStructGetSize($sPackCall)
	  DllStructSetData($sPackCall,1,Dec(StringMid($OPCode,($l_i-1)*2+1,2)),$l_i)
   Next
   $RESULT = DllCall($OpnProc[0], "int", "WriteProcessMemory", "int", $OpnProc[1], "ptr", $PackCall, "ptr", DllStructGetPtr($sPackCall), "int", DllStructGetSize($sPackCall), "int", 0)
EndIf
EndFunc
Код:
;Отправляет пакет в игру через внедрённую функцию
Func SendPacket($Packet)
   Local $l_i, $sPackSize, $RESULT[2], $THREAD
   $sPackSize = DllStructCreate("dword")
   DllStructSetData($sPackSize,1,Int(StringLen($Packet)/2))
   For $l_i = 1 To DllStructGetSize($sPacket)
	  DllStructSetData($sPacket,1,Dec(StringMid($Packet,($l_i-1)*2+1,2)),$l_i)
   Next
   $RESULT = DllCall($OpnProc[0], "int", "WriteProcessMemory", "int", $OpnProc[1], "ptr", $PackAddr, "ptr", DllStructGetPtr($sPacket), "int", DllStructGetSize($sPacket), "int", 0)
   $RESULT = DllCall($OpnProc[0], "int", "WriteProcessMemory", "int", $OpnProc[1], "ptr", $PackCall+11, "ptr", DllStructGetPtr($sPackSize), "int", 4, "int", 0)
;   MsgBox(4096,"","Проверяй")
   $RESULT = DllCall($OpnProc[0], "int", "CreateRemoteThread", "int", $OpnProc[1], "ptr", 0, "int", 0, "int", $PackCall, "ptr", 0, "int", 0, "int", 0)
   $THREAD = $RESULT[0]
   Do
	  $RESULT = DllCall($OpnProc[0], "int", "WaitForSingleObject", "int", $THREAD, "int", 50)
   Until $RESULT[0] <> 258
   DllCall($OpnProc[0], "int", "CloseHandle", "int", $THREAD)
EndFunc

К проекту надо подключить NomadMemory

А теперь отправляем пакет
Код:
     SendPacket("0200" & DWord2String($SWID))  ;Выделить Инвалида
      Sleep(Random(100,200))
      SendPacket("2300" & DWord2String($SWID))  ;Поговорить с Инвалидом
      Sleep(Random(450,550))
      Send("{Esc}")
      SendPacket("2500070000000C000000" & DWord2String(29432) & "0000000000000000") ; Взять квест "Наказание"
      Sleep(Random(150,350))
      Send("{Esc}")
      Sleep(Random(150,350))
      Send("{Esc}")
В нашем случае можно просто перса посадить
SendPacket("2F00")
Вот как то так.

Последний раз редактировалось diagnost; 13.09.2015 в 11:44.
  Ответить с цитированием
Старый 18.09.2015, 00:44   #9
 Разведчик
Аватар для cristallpppw
 
cristallpppw никому не известный тип
Регистрация: 23.02.2015
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Чтение памяти AutoIt

в какие переменные прописывать офсеты?
$BA = 0x00C7CA6C
$PacketCall = 728510
$PackAddr = _MemoryRead ($PacketCall, $memory)+0x10
;или $PackAddr = _MemoryRead (_MemoryRead ($PacketCall, $memory)+0x10, $memory)
где в коде переменная с = _MemoryOpen (ProcessExists("elementclient.exe"))?
  Ответить с цитированием
Старый 20.09.2015, 15:23   #10
 Пехотинец
Аватар для diagnost
 
diagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражания
Регистрация: 02.01.2010
Сообщений: 95
Популярность: 1542
Сказал(а) спасибо: 110
Поблагодарили 460 раз(а) в 288 сообщениях
 
По умолчанию Re: Чтение памяти AutoIt

в какие переменные прописывать офсеты?
$BA = 0x00D2E444
$PacketCall = 789820
$PackAddr = _MemoryRead ($PacketCall, $memory)+0x10
;или $PackAddr = _MemoryRead (_MemoryRead ($PacketCall, $memory)+0x10, $memory)
где в коде переменная с = _MemoryOpen (ProcessExists("elementclient.exe"))
находиться в NomadMemory.аu3
Код:
Func _MemoryRead($iv_Address, $ah_Handle, $sv_Type = 'dword')

	If Not IsArray($ah_Handle) Then
		SetError(1)
        Return 0
	EndIf

	Local $v_Buffer = DllStructCreate($sv_Type)

	If @Error Then
		SetError(@Error + 1)
		Return 0
	EndIf

	DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')

	If Not @Error Then
		Local $v_Value = DllStructGetData($v_Buffer, 1)
		Return $v_Value
	Else
		SetError(6)
        Return 0
	EndIf

EndFunc
  Ответить с цитированием
Старый 08.10.2015, 02:09   #11
 Разведчик
Аватар для cristallpppw
 
cristallpppw никому не известный тип
Регистрация: 23.02.2015
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Чтение памяти AutoIt

Спасибо! всё получилось
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Чтение памяти igo3000 Общение разработчиков 12 16.04.2016 12:28
[Помогите!] autoit, смещения памяти, чтение из памяти torrentir Вопросы и ответы, обсуждение 0 16.09.2013 01:24
[Статья] [.NET] Чтение/запись памяти программы. OrBiT_DaRk С/С++ 2 27.02.2013 20:58
[Помогите!] Delphi: чтение из памяти ПВ Piccalo Общение разработчиков 5 12.10.2012 18:20

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

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

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