|
You last visited: Today at 05:24
Advertisement
Rus. server
Discussion on Rus. server within the Perfect World forum part of the MMORPGs category.
12/16/2009, 23:35
|
#961
|
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
|
Quote:
Originally Posted by Biga73
совсем не так - RE - в данном контексте это приведение кода (elementclient.exe)(упакованного, зашифрованного и т.д..) в исходный вид - исходник (проект, листинг и т.д..) и желательно с комментами разработчика (что не бывает даже в кино)
p.s. через страниц 10 ктото умудрится запустить MHS и по новому кругу ляляля
|
Вот и пытаюсь в MHS воткнуть полное выделение. Кстати. функция респа в ближайший город лежит все там же (0x005D0550) ?
|
|
|
12/17/2009, 02:18
|
#962
|
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
|
Слышал что эта версия клиента есть текущая интернешнл, только русифицированная нивалом. Может братья китаисы чего уже в этом направлении нашли
|
|
|
12/17/2009, 02:19
|
#963
|
elite*gold: 0
Join Date: Dec 2009
Posts: 1
Received Thanks: 0
|
Всем привет. С обновлением перестали работать Флай и ВаллХак.. с ВаллХаком вроде разобралась, а вот с флаем не получается. Скачала [SmurfIT!] 3in1 поменяла там значение Base Address. Запускаю, Ф10, перс взлетает на чуть чуть и как бы застревает: ни выше подняться, ни пролететь не получается(` . Может кто нить подсказать что делать?
|
|
|
12/17/2009, 04:35
|
#964
|
elite*gold: 0
Join Date: Nov 2009
Posts: 96
Received Thanks: 31
|
Цель пишется еще в одно смещение от структуры игрока обозначу как [+off]:
примерно так происходит:
ID -> [+ADC]
ID -> [+AE0]
Call 5B7B70
0 -> [+AE0]
ID -> [+ADC]
....
Call 42E690
видимо где-то происходит запись ID по Адр. 3BE3C2C
что интересно, если и в [+ADC] и в 3BE3C2C - ID цели пытаться изменить - он на мгновение записывается и вновь восстанавливается какой был.
Еще можно клик мышкой в это время с'эмулировать - может прокатит ...
|
|
|
12/17/2009, 05:47
|
#965
|
elite*gold: 0
Join Date: Jul 2008
Posts: 43
Received Thanks: 16
|
Quote:
Originally Posted by Novohyd
Вставил в бота. медным тазом клиент не вылетает. Если можно пара вопросов
Code:
Func SETCURENTMOBID($ID)
_MemoryWrite($OFFSET_TARGET, $PROCESS, "0x" & Hex($ID))
If $ID <> 0 Then
$OPCODE = ""
PUSHAD()
MOV_EDX_DWORD_PTR(9875524)
PUSH($ID)
MOV_ECX_DWORD_PTR_EAX_ADD(32)
$OPCODE &= "81c1ec000000"
MOV_EDX(5916464)
CALL_EDX()
POPAD()
RET()
INJECTCODE($PROCESS)
MOV_EDX_DWORD_PTR(9875524) ,
$OPCODE &= "81c1ec000000",
MOV_EDX(5916464)
на что ссылаются эти адреса. Первый вроде как базовый?
|
Енто как раз инжект на выбор цели. 
В старом клиенте был кусок кода:
Code:
0045B30D - a1 1c 6b 97 00 - mov eax,[00976b1c] : 009771A0
0045B312 - 57 - push edi
0045B313 - 8b 48 20 - mov ecx,[eax+20]
0045B316 - 81 c1 ec 00 00 00 - add ecx,000000ec
0045B31C - e8 1f 2d 15 00 - call 005ae040
Приведённый тобой инжект как раз его и реализует.  Единственно тут другие базовый адреса и адрес вызова....
MOV_EDX_DWORD_PTR(9875524) , - енто их базовый адрес в десятичной системе
$OPCODE &= "81c1ec000000", - енто часть исполняемого кода инжекта, реализует ассемблерную команду add ecx,000000ec
MOV_EDX(5916464) - это запись адреса вызова функции в edx, т.е. они вместо прямого call 005ae040, используют 2 команды: mov edx, 005ae040 и затем call edx
В новом клиенте кусок кода для выделения цели:
Code:
0045C30D - a1 dc ad 98 00 - mov eax,[0098addc] : 0098B460
0045C312 - 57 - push edi
0045C313 - 8b 48 20 - mov ecx,[eax+20]
0045C316 - 81 c1 ec 00 00 00 - add ecx,000000ec
0045C31C - e8 4f b8 15 00 - call 005b7b70
Отсюда уж сможете получить базовый адрес и адреса вызова функции выделения.
|
|
|
12/17/2009, 05:47
|
#966
|
elite*gold: 0
Join Date: Jul 2008
Posts: 43
Received Thanks: 16
|
Quote:
Originally Posted by Novohyd
Вставил в бота. медным тазом клиент не вылетает. Если можно пара вопросов
Code:
Func SETCURENTMOBID($ID)
_MemoryWrite($OFFSET_TARGET, $PROCESS, "0x" & Hex($ID))
If $ID <> 0 Then
$OPCODE = ""
PUSHAD()
MOV_EDX_DWORD_PTR(9875524)
PUSH($ID)
MOV_ECX_DWORD_PTR_EAX_ADD(32)
$OPCODE &= "81c1ec000000"
MOV_EDX(5916464)
CALL_EDX()
POPAD()
RET()
INJECTCODE($PROCESS)
MOV_EDX_DWORD_PTR(9875524) ,
$OPCODE &= "81c1ec000000",
MOV_EDX(5916464)
на что ссылаются эти адреса. Первый вроде как базовый?
|
Енто как раз инжект на выбор цели. 
В старом клиенте был кусок кода:
Code:
0045B30D - a1 1c 6b 97 00 - mov eax,[00976b1c] : 009771A0
0045B312 - 57 - push edi
0045B313 - 8b 48 20 - mov ecx,[eax+20]
0045B316 - 81 c1 ec 00 00 00 - add ecx,000000ec
0045B31C - e8 1f 2d 15 00 - call 005ae040
Приведённый тобой инжект как раз его и реализует.  Единственно тут другие базовый адреса и адрес вызова....
MOV_EDX_DWORD_PTR(9875524) , - енто их базовый адрес в десятичной системе
$OPCODE &= "81c1ec000000", - енто часть исполняемого кода инжекта, реализует ассемблерную команду add ecx,000000ec
MOV_EDX(5916464) - это запись адреса вызова функции в edx, т.е. они вместо прямого call 005ae040, используют 2 команды: mov edx, 005ae040 и затем call edx
В новом клиенте кусок кода для выделения цели:
Code:
0045C30D - a1 dc ad 98 00 - mov eax,[0098addc] : 0098B460
0045C312 - 57 - push edi
0045C313 - 8b 48 20 - mov ecx,[eax+20]
0045C316 - 81 c1 ec 00 00 00 - add ecx,000000ec
0045C31C - e8 4f b8 15 00 - call 005b7b70
Отсюда уж сможете получить базовый адрес и адреса вызова функции выделения.
|
|
|
12/17/2009, 06:53
|
#967
|
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
|
А сама функция инжекта остается рабочей?
Quote:
Func INJECTCODE($PID)
If $PID <> 0 And $OPCODE <> "" Then
Local $DATA = DllStructCreate("byte[" & StringLen($OPCODE) / 2 & "]")
For $I = 1 To DllStructGetSize($DATA)
DllStructSetData($DATA, 1, Dec(StringMid($OPCODE, ($I - 1) * 2 + 1, 2)), $I)
Next
Local $RESULT, $PROCESS, $ADD, $THREAD
$RESULT = DllCall("Kernel32.Dll", "int", "OpenProcess", "int", 2035711, "int", 0, "int", $PID)
$PROCESS = $RESULT[0]
$RESULT = DllCall("Kernel32.dll", "ptr", "VirtualAllocEx", "int", $PROCESS, "ptr", 0, "int", DllStructGetSize($DATA), "int", 4096, "int", 64)
$ADD = $RESULT[0]
$RESULT = DllCall("kernel32.dll", "int", "WriteProcessMemory", "int", $PROCESS, "ptr", $ADD, "ptr", DllStructGetPtr($DATA), "int", DllStructGetSize($DATA), "int", 0)
$RESULT = DllCall("kernel32.dll", "int", "CreateRemoteThread", "int", $PROCESS, "ptr", 0, "int", 0, "int", $ADD, "ptr", 0, "int", 0, "int", 0)
$THREAD = $RESULT[0]
Do
$RESULT = DllCall("kernel32.dll", "int", "WaitForSingleObject", "int", $THREAD, "int", 50)
Until $RESULT[0] <> 258
DllCall("Kernel32.dll", "int", "CloseHandle", "int", $THREAD)
$RESULT = DllCall("Kernel32.dll", "ptr", "VirtualFreeEx", "hwnd", $PROCESS, "ptr", DllStructGetPtr($DATA), "int", DllStructGetSize($DATA), "int", 32768)
DllCall("Kernel32.dll", "int", "CloseHandle", "int", $PROCESS)
$OPCODE = ""
$DATA = 0
EndIf
EndFunc
|
|
|
|
12/17/2009, 07:27
|
#968
|
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
|
Получается так [quote]Func SETCURENTMOBID($ID)
_MemoryWrite($OFFSET_TARGET, $PROCESS, "0x" & Hex($ID))
If $ID <> 0 Then
$OPCODE = ""
PUSHAD()
MOV_EAX_DWORD_PTR(0x0098addc) ; - базовый адрес
PUSH($ID)
MOV_ECX_DWORD_PTR_EAX_ADD(32)
$OPCODE &= "81c1ec000000"
MOV_EDX(0x005b7b70) ; запись адреса вызова функции в edx и затем call edx
CALL_EDX()
POPAD()
RET()
INJECTCODE($PROCESS)
quote]
но не работает. и не пойму что. Либо это либо сама функция инжекта
|
|
|
12/17/2009, 07:35
|
#969
|
elite*gold: 0
Join Date: Jul 2008
Posts: 43
Received Thanks: 16
|
Quote:
Originally Posted by Novohyd
Получается так
но не работает. и не пойму что. Либо это либо сама функция инжекта
|
И не будет, ты часть кода инжекта выкинул. А именно запихивание ID моба в стек: PUSH($ID)
Попробуй в старом варианте просто адреса новые подставить:
Code:
Func SETCURENTMOBID($ID)
_MemoryWrite($OFFSET_TARGET, $PROCESS, "0x" & Hex($ID))
If $ID <> 0 Then
$OPCODE = ""
PUSHAD()
MOV_EDX_DWORD_PTR(0x0098addc)
PUSH($ID)
MOV_ECX_DWORD_PTR_EAX_ADD(0x20)
$OPCODE &= "81c1ec000000"
MOV_EDX(0x005b7b70)
CALL_EDX()
POPAD()
RET()
INJECTCODE($PROCESS)
|
|
|
12/17/2009, 07:39
|
#970
|
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
|
ступил я. пока исправлял - ответ пришел)
все-равно не хочет полное выделение делать. даже такой вариант пробовал PUSH("0x" & Hex($ID))
попробовал по варианту origmas'a
ID -> [+ADC]
ID -> [+AE]
Call 5B7B70
0 -> [+AE]
ID -> [+ADC]
....
Call 42E690
получилось так:
Quote:
If $ID <> 0 Then
$OFFSET_TARGET1 = $PERS_OFS + dec("AE")
_MemoryWrite($OFFSET_TARGET, $PROCESS, "0x" & Hex($ID))
_MemoryWrite($OFFSET_TARGET1, $PROCESS, "0x" & Hex($ID))
$OPCODE = ""
PUSHAD()
MOV_EDX_DWORD_PTR(0x0098addc)
PUSH("0x" & Hex($ID))
MOV_ECX_DWORD_PTR_EAX_ADD(0x20)
$OPCODE &= "81c1ec000000"
MOV_EDX(0x005b7b70)
CALL_EDX()
POPAD()
RET()
INJECTCODE($PROCESS)
sleep(500)
_MemoryWrite($OFFSET_TARGET1, $PROCESS, 0)
_MemoryWrite($OFFSET_TARGET, $PROCESS, "0x" & Hex($ID))
$OPCODE = ""
PUSHAD()
MOV_EDX_DWORD_PTR(0x0098addc)
PUSH("0x" & Hex($ID))
MOV_ECX_DWORD_PTR_EAX_ADD(0x20)
$OPCODE &= "81c1ec000000"
MOV_EDX(0x0042E690)
CALL_EDX()
POPAD()
RET()
INJECTCODE($PROCESS)
sleep(5000)
|
тоже не хочет выделять $PROCESS вроде как правильно прописан. ид в функцию передается в десятичном виде
Global $PROCESS_ID = WinGetProcess($APP_TITLE)
Global $PROCESS = _MemoryOpen($PROCESS_ID)
|
|
|
12/17/2009, 08:06
|
#971
|
elite*gold: 0
Join Date: Dec 2009
Posts: 10
Received Thanks: 0
|
Программа для генерации offsets.ini для МHS:

1)Положите файл в две папки
1.В корней каталог игры.2.В папку MHS-Bot-PW 2.3
2)Запустите игру и включите программу из двух папок по отдельности.
3)В программе нажмите Generate MHS Offset File.После появится табличка с надписью File Generated-это значит,что все прошло успешно (если нет,то вы неудачник.пишите в техническую поддержку)
4)Вуаля! Запустите бота и сбросьте все настройки, которые были до этого и поставьте новые.
если ничего не поняли, попробуйте вот это -
замените сustom_offsets.ini
[Perfect_World_Base_Address_In_Decimal]
Application_Title=Element Client
Base_Address=10007676
[Custom_32_Offsets_In_Decimal]
Target_OffSet=2780
MaxMP_OffSet=1176
MaxHP_OffSet=1172
MP_OffSet=1128
HP_OffSet=1124
И виват MHS-Bot - 1-й бот, который будет бегать в новом PW !
|
|
|
12/17/2009, 08:10
|
#972
|
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
|
бегать то будет. за мобами..... только бить не будет
|
|
|
12/17/2009, 08:23
|
#973
|
elite*gold: 0
Join Date: Dec 2009
Posts: 10
Received Thanks: 0
|
Quote:
Originally Posted by Novohyd
бегать то будет. за мобами..... только бить не будет
|
Если моб не агр, с аграми всё пашет...
А чтоб всех бил, это уж вы сами кто-ть найдите, что в исходнике MHSa исправить.
|
|
|
12/17/2009, 11:00
|
#974
|
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
|
в функцию у меня ид передается в десятичном виде
"0x" & Hex($ID) заменил на "0x" & $ID - вообще в таргет не ставит
|
|
|
12/17/2009, 11:08
|
#975
|
elite*gold: 0
Join Date: Jun 2008
Posts: 142
Received Thanks: 13
|
Господа. В связи с тем что через стены стало нельзя летать - нужен доброволец на раскопку файлов геодаты и обьектов клиента
|
|
|
All times are GMT +1. The time now is 05:26.
|
|