|
Чтение памяти AutoIt - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок |
02.09.2015, 14:25
|
#1
|
|
|
|
Разведчик
|
Регистрация: 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
|
|
|
|
Пехотинец
|
Регистрация: 02.01.2010
Сообщений: 95
Популярность: 1542
Сказал(а) спасибо: 110
Поблагодарили 460 раз(а) в 288 сообщениях
|
Re: Читаем память [Autoit]
|
|
|
02.09.2015, 16:08
|
#3
|
|
|
|
Разведчик
|
Регистрация: 23.02.2015
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Читаем память [Autoit]
Подскажите пожалуйста, хоть кусочек кода, как на Autoit попасть в данж через камень грёз, стоя возле него?
И как сделать тп с помощью руны переноса на запад гд?
|
|
|
02.09.2015, 17:38
|
#4
|
|
|
|
Разведчик
|
Регистрация: 04.04.2015
Сообщений: 0
Популярность: 385
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Читаем память [Autoit]
|
|
|
05.09.2015, 22:05
|
#5
|
|
|
|
Разведчик
|
Регистрация: 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
|
|
|
|
Разведчик
|
Регистрация: 23.02.2015
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Чтение памяти AutoIt
Есть пакет. Как отправить его с помощью MemoryWrite? В цикле записывать байты? Сколько и куда? Поделитесь пожалуйста маленьким не сложным примером!!!!
|
|
|
12.09.2015, 21:49
|
#7
|
|
|
|
Рыцарь-лейтенант
|
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
|
Re: Чтение памяти AutoIt
С помощью чистого memorywrite можно, но на ум только костыли приходят.
Пакет отправляется с помощью записи в память (memorywrite) кода, который будет вызывать функцию отправки пакета, записи самого пакета (тоже memorywrite) и создания потока (CreateRemoteThread, хотя можно ооооочень хитро сделать с помощью memorywrite). Гайдов полно на форуме
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
|
|
|
13.09.2015, 11:32
|
#8
|
|
|
|
Пехотинец
|
Регистрация: 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
|
|
|
|
Разведчик
|
Регистрация: 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
|
|
|
|
Пехотинец
|
Регистрация: 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
|
|
|
|
Разведчик
|
Регистрация: 23.02.2015
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Чтение памяти AutoIt
Спасибо! всё получилось
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 05:13.
|
|