Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Perfect World
You last visited: Today at 05:24

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Rus. server

Discussion on Rus. server within the Perfect World forum part of the MMORPGs category.

Reply
 
Old 12/16/2009, 23:35   #961
 
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
Quote:
Originally Posted by Biga73 View Post
совсем не так - RE - в данном контексте это приведение кода (elementclient.exe)(упакованного, зашифрованного и т.д..) в исходный вид - исходник (проект, листинг и т.д..) и желательно с комментами разработчика (что не бывает даже в кино)
p.s. через страниц 10 ктото умудрится запустить MHS и по новому кругу ляляля
Вот и пытаюсь в MHS воткнуть полное выделение. Кстати. функция респа в ближайший город лежит все там же (0x005D0550) ?
Novohyd is offline  
Old 12/17/2009, 02:18   #962
 
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
Слышал что эта версия клиента есть текущая интернешнл, только русифицированная нивалом. Может братья китаисы чего уже в этом направлении нашли
Novohyd is offline  
Old 12/17/2009, 02:19   #963
 
elite*gold: 0
Join Date: Dec 2009
Posts: 1
Received Thanks: 0
Всем привет. С обновлением перестали работать Флай и ВаллХак.. с ВаллХаком вроде разобралась, а вот с флаем не получается. Скачала [SmurfIT!] 3in1 поменяла там значение Base Address. Запускаю, Ф10, перс взлетает на чуть чуть и как бы застревает: ни выше подняться, ни пролететь не получается(` . Может кто нить подсказать что делать?
RapLady is offline  
Old 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 цели пытаться изменить - он на мгновение записывается и вновь восстанавливается какой был.
Еще можно клик мышкой в это время с'эмулировать - может прокатит ...
origmas is offline  
Thanks
1 User
Old 12/17/2009, 05:47   #965
 
elite*gold: 0
Join Date: Jul 2008
Posts: 43
Received Thanks: 16
Quote:
Originally Posted by Novohyd View Post
Вставил в бота. медным тазом клиент не вылетает. Если можно пара вопросов

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
Отсюда уж сможете получить базовый адрес и адреса вызова функции выделения.
dj_al is offline  
Thanks
1 User
Old 12/17/2009, 05:47   #966
 
elite*gold: 0
Join Date: Jul 2008
Posts: 43
Received Thanks: 16
Quote:
Originally Posted by Novohyd View Post
Вставил в бота. медным тазом клиент не вылетает. Если можно пара вопросов

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
Отсюда уж сможете получить базовый адрес и адреса вызова функции выделения.
dj_al is offline  
Thanks
1 User
Old 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
Novohyd is offline  
Old 12/17/2009, 07:27   #968
 
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
Unhappy

Получается так [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]

но не работает. и не пойму что. Либо это либо сама функция инжекта
Novohyd is offline  
Old 12/17/2009, 07:35   #969
 
elite*gold: 0
Join Date: Jul 2008
Posts: 43
Received Thanks: 16
Quote:
Originally Posted by Novohyd View Post
Получается так
но не работает. и не пойму что. Либо это либо сама функция инжекта
И не будет, ты часть кода инжекта выкинул. А именно запихивание 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)
dj_al is offline  
Old 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)
Novohyd is offline  
Old 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 !
Sergiy76 is offline  
Old 12/17/2009, 08:10   #972
 
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
бегать то будет. за мобами..... только бить не будет
Novohyd is offline  
Old 12/17/2009, 08:23   #973
 
elite*gold: 0
Join Date: Dec 2009
Posts: 10
Received Thanks: 0
Quote:
Originally Posted by Novohyd View Post
бегать то будет. за мобами..... только бить не будет
Если моб не агр, с аграми всё пашет...
А чтоб всех бил, это уж вы сами кто-ть найдите, что в исходнике MHSa исправить.
Sergiy76 is offline  
Old 12/17/2009, 11:00   #974
 
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
в функцию у меня ид передается в десятичном виде
"0x" & Hex($ID) заменил на "0x" & $ID - вообще в таргет не ставит
Novohyd is offline  
Old 12/17/2009, 11:08   #975
 
silkytail's Avatar
 
elite*gold: 0
Join Date: Jun 2008
Posts: 142
Received Thanks: 13
Господа. В связи с тем что через стены стало нельзя летать - нужен доброволец на раскопку файлов геодаты и обьектов клиента
silkytail is offline  
Reply




All times are GMT +1. The time now is 05:26.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.