Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Perfect World
You last visited: Today at 08:17

  • 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 02/10/2010, 12:34   #1426
 
elite*gold: 0
Join Date: Jun 2009
Posts: 15
Received Thanks: 5
muzhig, да, интересные темы, я читал, но опять же, адрес вызова 0x005B7B70 отличается скорее всего от того, что в клиенте, который используется у меня, ибо просто рушится ничего не выделяя.
TBXin is offline  
Old 02/10/2010, 15:17   #1427
 
muzhig's Avatar
 
elite*gold: 0
Join Date: Sep 2009
Posts: 85
Received Thanks: 27
У меня все работает и все выделяется. не знаю что у тебя за клиент- у меня уже последних обновления три адрес таргета не менялся. А паттерн вообще у всех одинаковый.

Quote:
asm
pushad
mov ecx,dword ptr [PW_BASE_ADDRESS]
mov ecx,dword ptr[ecx+$20]
add ecx,$ec
mov eax, P1
push eax
mov edx, $5B7B70
call edx
popad
end;
Я так подозреваю что ты взял этот код и подставляешь не тот BA.
Скорее всего ты сюда подставляешь адрес BA+1C. Но PW_BASE_ADDRESS+20 это не указатель на структуру игрока!

const PW_BASE_ADDRESS = $98ADDC;
muzhig is offline  
Old 02/10/2010, 15:19   #1428
 
elite*gold: 0
Join Date: Jun 2009
Posts: 15
Received Thanks: 5
muzhig, 1.7.8 версия, сервер .
Вопрос появился, подскажите, как в олли поставить бряки на все инструкции вида Х например. BPX команда вроде только по лейблу ставит...

Значит надо подставлять [BA], а не который [BA]+1C (Игровой сеанс)?
TBXin is offline  
Old 02/10/2010, 15:59   #1429
 
muzhig's Avatar
 
elite*gold: 0
Join Date: Sep 2009
Posts: 85
Received Thanks: 27
Quote:
Значит надо подставлять [BA], а не который [BA]+1C (Игровой сеанс)?
Именно
muzhig is offline  
Old 02/10/2010, 18:16   #1430
 
elite*gold: 0
Join Date: Aug 2009
Posts: 5
Received Thanks: 0
не знаю нужно вам это или нет, может хоть кому нибудь поможет




Kolimas is offline  
Old 02/10/2010, 19:17   #1431
 
Sirioga's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 5
Received Thanks: 0
Если ты прочит всю тему то точно знал бы что нам это ничем не поможет, так как мы "это" открываем каждый день) не только для d_getservertime. Можешь пойти выложить на zhyk.ru и на лолчитс...там таким скринам будут рады, даже спасибок тебе накидают...ты главное тему назови "ДЮП"...а там уж разбиратся не будут.
Sirioga is offline  
Old 02/10/2010, 19:44   #1432
 
elite*gold: 0
Join Date: Jun 2009
Posts: 15
Received Thanks: 5
muzhig, нашел BA - 00926fd4, но не помогает, клиент рушится, адрес вызова таргета по патернам найти не удалось =(
TBXin is offline  
Old 02/11/2010, 01:20   #1433
 
elite*gold: 0
Join Date: Apr 2009
Posts: 237
Received Thanks: 403
«Я вот решил собственного бота написать, только программировать не умею, поэтому у меня к вам много вопросов: а что такое BA; как искать то да это; пробовал подставлять ваши функции, все рушится, даже менял значения, но ничего не помогает…» и в том же духе на протяжении мнооогих постов.
Товарищи, прежде чем задавать такие вопросы, и тем более прежде чем начинать создавать своего мега-бота и писать инъекции, пожалуйста, хоть основы того же программирования почитайте. Разберитесь с динамическим распределением памяти, минимум знаний в ассемблере получите, прочитайте на msdn’е все касаемо используемых функций и т.п.

Ну вот, теперь по конкретным вещам: «нашел BA - 00926fd4, но не помогает»? Где нашли? И что из того, что каким-то образом найдено это число? Что вообще значит, его искать; наверное, при помощи СЕ?
«адрес вызова таргета по патернам найти не удалось», следовательно, вы подставляли в код инъекции только 00926fd4 (при условии, что это нужное значение), и ожидали, что все будет работать?

P.S. Здесь, как и на любом другом форуме не сидят ясновидицы, способные по одному сообщению «не работает», указать на ошибку.

added:
поставьте брейкпоинты в дебаггере на все инструкции [add ecx, EC]. Таких инструкций не так уж и много; сразу должны получить результат. Если пользуетесь ollyDbg, то достаточно вызвать поиск "all commands". Затем, в окне "commands found", нажатием F2 выставить bp на найденных адресах; автоматически данный дебаггер bp не расставляет
dwar is offline  
Old 02/11/2010, 08:56   #1434
 
elite*gold: 0
Join Date: Jun 2009
Posts: 15
Received Thanks: 5
dwar, я конечно понимаю, что вы уже тут завсегдатый и успели зазнаться немного, но прошу вас проявлять уважение. Мы все когда-то с чего-то начинали, да я не буду скрывать, у меня нет опыта работы с низкоуровневыми языками такими как asm и опыта отладки при помощи х86 дизасемблера. По спицифике моей работы, нет надобности применять это все. И мне не надо писать своего мега-бота, достаточно только поправить MHS, чтобы он мог выделять цель полностью. Играю в свободное от работы время в основном вечером несколько часов, но тратить своё свободное время на задротство и убийство мобов не хочется, поэтому и есть надобность поправить бота уже существующего.

BA - нашел при помощи CE, проверил - это правильный BA, ибо BA+1C дал мне адрес, тот, который подходит допустим к MHS.

Да, попытка не пытка, попробовал заменить только BA в инъекции, как результат - неудача.
Пришел к выводу, что в моем клиенте используются другие регистры, но по скольку нет опыта работы в отладчике, я не смог найти адрес вызова метода выделения и соответственно посмотреть как он выглядит.

Подскажите пожалуйста, как можно поставить бряки на все инструкции вида ADD ECX, 0EC. Я использую OllyDbg 1.10. Пробовал в консоли написать BPX ADD ECX, 0EC, но выделялись, только CALL других модулей.

added:
Спасибо за помощь!
TBXin is offline  
Old 02/11/2010, 15:39   #1435
 
elite*gold: 0
Join Date: Dec 2009
Posts: 57
Received Thanks: 24
Quote:
Originally Posted by dwar View Post
Товарищи, прежде чем задавать такие вопросы, и тем более прежде чем начинать создавать своего мега-бота и писать инъекции, пожалуйста, хоть основы того же программирования почитайте. Разберитесь с динамическим распределением памяти, минимум знаний в ассемблере получите, прочитайте на msdn’е все касаемо используемых функций и т.п.
+1

to TBXin: ветка как называется? . поищи на этом сайте ветку по твоему клиенту. Ну и что, что на буржуйском... если знаешь что надо-найдешь.
не знаешь- и сдесь не помогут. а если знаний только чтобы MHS подправить- искать бесполезно, даже если найдешь, или подскажут как- все-равно не получится. сам был такой ( да и в принципе таким остался ) . касаемо инжектов и MHS даже в этой ветке сказано не раз.. ГЕМОР.. нужно быть не хилым программером чтобы все это разрулить.) без обид..
gen-ostr is offline  
Old 02/11/2010, 23:13   #1436
 
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
Кто интересовался поднятием лута вот код на автоите
Quote:
Func InjectPickLoot($LootI)
$OPCODE = ""
PUSHAD()
MOV_EAX(Dec("0098ADDC"))
PUSH(Lytinfo_SN($LootI)) ; SN лута +110
PUSH(Lytinfo_ID($LootI)) ; ID лута +10С
MOV_EAX_DWORD_PTR_EAX()
MOV_ECX_DWORD_PTR_EAX_ADD(32)
ADD_ECX(Dec("EC"))
MOV_EDX(Dec("005B7B00"))
CALL_EDX()
POPAD()
RET()
INJECTCODE($PROCESS_ID)
EndFunc
стоять непосредственно над лутом. в функцию передается I лута
Novohyd is offline  
Thanks
1 User
Old 02/12/2010, 13:55   #1437
 
elite*gold: 0
Join Date: Jan 2009
Posts: 137
Received Thanks: 19
Я вот счаз интересуюсь инжектом скиллов джина... Чота совсем не выходит каменный цветок...
AlexGD is offline  
Old 02/12/2010, 19:14   #1438
 
muzhig's Avatar
 
elite*gold: 0
Join Date: Sep 2009
Posts: 85
Received Thanks: 27
TBXin, Раз у тебя BA не соответствует моему, значит и адрес вызова таргета у тебя другой.

Методика поиска адресов такова: нужно зацепиться за чтонибудь. За какую то команду. Определить где ее вызов, поставить брейпойнт и осмотреться: откуда был вызов, с какими параметрами, какие методы вызывает итд.

По идее правильнее всего искать адрес трассировкой. Но я для себя выбрал изращенский метод, который работает не всегда, зато прост в использовании)))

В CE нахожу ячейку памяти, и смотрю какие функции пишут в нее/читают из нее.
В твоем случае это ячейка с мишенью.
Там будет что то вроде списка с опкодами, которые произвели запись в ячейку.
Список будет пополняться по мере выполнения команд которые производят запись.
В общем, ставишь этот отлов и ждешь пока список перестанет заполняться.
все эти адреса не нужны. выделяешь мышкой последний "ненужный" адрес, чтобы не потерять его. Потом заходишь в игру и выполняешь действие: то есть выделяешь моба. В список добавится еще несколько опкодов- после того который ты выделил.
Один из них (вероятно первый) выполняется внутри процедуры таргета, которую необходимо инжектировать. В общем у тебя в руках пяток адресов, из которых остается отфильтровать нужный и все(это можно по паттерну сделать, которыц уже тебе дали).
На извратство метода можно закрыть глаза, если обратить внимание на прелесть: все эти операции можно произвести за считанные минуты. Таким образом поиск адреса нужной функции сводится к нескольким минутам против часов нудного поиска при помощи трассировки)) Кстати, где то в этой ветке этот метод был описан)) я его переделал немного))
muzhig is offline  
Old 02/13/2010, 09:58   #1439
 
elite*gold: 0
Join Date: Jun 2009
Posts: 15
Received Thanks: 5
muzhig, спасибо, благодаря идеи отловить, что пишет в указанный адрес, я таки выловил нужный код, осталось только разобратся и перевести его в инжект.
Quote:
На момент записи в ячейку регистры EAX и EDX хранят ID Моба. Запись идет тут mov [ecx+00000a18],edx, значит картинка следующая получается:
ecx - адрес игровой сессии

jne 0044d320 // взял на всякий случай, думаю эта строчка не нужна нам
mov eax,[edx+0c] // ???
mov edx,[eax] // ???
mov [ecx+00000a1c],00000000 // ba + target offset + 4 ??? запись ID моба
mov eax,edx // переносим в eax ID моба
mov [ecx+00000a18],edx // ba+target_offset, пишем в память ID моба
mov ecx,[00926fd4] // true base address
push eax // пропихиваем ID моба
push 008d0da8 // ???
push ffffff00 // ???
push ecx // пропихиваем true base
call 0042c8f0 // вызываем метод таргета
Если я где то ошибся, поправьте меня пожалуйста. И пришел к выводу, что если это нужный мне код для инжекта, то он на патерн не очень похож. Помогите пожалуйста сформировать из этого нужный для инжекта код. Заранее благодарен.
TBXin is offline  
Old 02/13/2010, 10:18   #1440
 
muzhig's Avatar
 
elite*gold: 0
Join Date: Sep 2009
Posts: 85
Received Thanks: 27
TBXin, сейчас ты нашел процедуру где происходит запись- НЕ ФАКТ что это таргет. Поставь брейкпойнт на нее и убедись, что остановка происходит ТОЛЬКО при выделении моба или нпс. Если так- то это НЕ ЗНАЧИТ что именно эта процедура- та которую нужно вызывать. Скорее всего она просто внутри цепочки вызовов. Дело в том, что одна процедура вызывает другую, та- третью итд. То есть, ты нашел то место в цепочке, где произошла запись. Теперь берешь в руки хороший и удобный дизасм (я юзаю IDA Pro), находишь в нем адрес этой операции и начинаешь копать вверх по цепочке: узнай, какая процедура вызвала эту процедуру. Потом, какая ту, итд. Всякий раз смотри на вызов- одна из найденных процедур вероятно (НО НЕ ФАКТ!) окажется до боли похожей на паттерн. Лично я долго орал в форум "помогите найти адрес" блаблабла- никто не горел желанием)) потом почитал немного и решил сам найти его- первый раз долго, муторно, пока технологию освоил. А потом как орешки щелкать))) Кстати, базу в IDA можно дополнять и дополнять- чем полнее, тем легче искать новые адреса, потому что многое довольно тесно взаимосвязано. Кстати именно таргет был первым адресом который я нашел, по моему)
muzhig is offline  
Reply




All times are GMT +1. The time now is 08:19.


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.