Rus. server

12/14/2009 03:30 muzhig#901
Quote:
почему у меня, например, левел перса получается вот так:

aBaseAddress = $009771BC; //base address for getting info
[aBaseAddress] + $20 + $45C

А у вас:
[BA] + $1с + $20 + $45C
BA=$976B1C
[BA]=$9771A0
BP=[BA] + $1с=$9771BC

я когда дизассемблировал elementclient, то в коде видал такие места:
Code:
.text:0045AF03                 mov     eax, dword_976B1C ; eax=9771A0
.text:0045AF11                 mov     ecx, [eax+1Ch]  ; ecx=9771BC
.text:0045AF15                 mov     edx, [ecx+8]    ; edx=[[9771BC]+8]
да и в дебагере видно, откуда берется настоящий BA :)

Кстати. вовсе не везде к BA нужно прибавлять 1C. Кое где есть такие варианты, типа BA+20+8
12/14/2009 03:34 AlexGD#902
Тю, плин... Пора в отпуск сваливать... Совсем плохой стал. совсееем... Спасибо, Мужик :)
12/14/2009 10:07 muzhig#903
...
PS: зашел в свой Public profile, удалил все флудовые посты- ветка "просела" на две страницы!
предлагаю всем последовать моему примеру.
12/14/2009 11:07 moob1#904
Бот для офа -
[Only registered and activated users can see links. Click Here To Register...]

Если что skype - mokazahn
12/14/2009 11:09 AlexGD#905
Мужик... Тока не подумай, что я шучу... работает...


Code:
    PW_GeneralAttack_Call = $005D0110;    //address for base attack injection

procedure AttackCall(aPParams:PParams); stdcall;
var
  Address: pointer;
begin
  Address := Pointer(PW_GeneralAttack_Call);
  asm
    pushad
      call Address
    popad
  end;
end;

procedure TaPWT.Attack;
begin
  InjectFunc(aProcessID, @AttackCall, nil, 0);
end;
12/14/2009 11:33 muzhig#906
Quote:
Мужик... Тока не подумай, что я шучу... работает...
а у этой процедуры разве нет параметра?
чета я не вижу нигде никакого push-а..
или я туплю?
12/14/2009 11:37 AlexGD#907
Ну дык атакуется то, что в таргете...
12/14/2009 11:42 muzhig#908
Такое ощущение что я чего то не знаю..

то что работать не должно- работает.
а что должно- не работает... очень для меня странно

Quote:
Ну дык атакуется то, что в таргете...
Да атакуется.. но только NPC не разговаривается и лут не подбирается.

если найдешь способ заинжектить правильно $469af0, то эта процедура сама разбирается что за ID ты ей сунул и сама вызывает нужную процедуру- то ли диалог с НПС,то ли атака, то ли лут подобрать, то ли рес добыть
12/14/2009 12:18 ToZiLeN#909
Quote:
Originally Posted by moob1 View Post
Бот для офа -
[Only registered and activated users can see links. Click Here To Register...]

Если что skype - mokazahn
Это бесплатный бот(даже не переделаный), притом не самый хороший.А ты его за 150 рублей пытаешся продать?)))))) жесть:D
12/14/2009 14:44 AlexGD#910
Code:
procedure NPCTalkCall(aPParams:PParams); Stdcall;
var
  NPCIDParam: DWORD;
  Address1: pointer;
begin
  Address1 := pointer(PW_Talk_Call);
  NPCIDParam := aPParams^.Param1;
  asm
    pushad
      mov edx,dword ptr [PW_Base_Call]
      push NPCIDParam
      mov ecx,dword ptr [edx+$20]
      add ecx,$EC
      call Address1
    popad
  end;
end;

procedure TaPWT.TalkToNPC(NPCID: Cardinal);
var
  aParams : TParams;
begin
  aParams.Param1 := NPCID;
  InjectFunc(aProcessID, @NPCTalkCall, @aParams, SizeOf(aParams));
end;
12/14/2009 15:15 AlexGD#911
Блин, сорри. поинтер:
PW_Talk_Call = $005AE400; //address for NPC talk call injection
12/14/2009 15:18 AlexGD#912
Мне бы внутри диалога на кнопочку нажать...

А к универсальности я не стремлюсь... Я ж не бота пишу :(
12/14/2009 15:32 muzhig#913
по поводу внутри диалога:
Думаю, диалоги с НПС это тоже диалоговые окна, как и любые окна в игре.
Я пока копал, обнаружил в области данных строки отвечающие кнопки диалогов. Там, короче говоря, кнопочки поименованы, по типу 'btn_accept'. Например, я рассматривал диалог аукциона- откуда я знаю что аукциона? да потому что там так и было написано auction blablabla..
вот адресок из области данных чтобы зацепиться. 009264F8
Дальше смотри, кто вызывает (Если не юзал раньше, то попробуй IDA Pro- он прям около разных переменных в памяти пишет ссылки, где в коде используется та или иная строка)
Путь не близкий, но зато есть куда копать хотя бы. Надеюсь, помог.


Quote:
А разве диалоги в экзюке хранятся?
не знаю. просто посмотри по тому адресу что я дал тебе. По крайней мере там есть интерфейс для работы с диалогами..

ЗЫ: Приятно так ветка укорачивается))) Продолжайте в том же духе- и у нас останутся прямо одни жемчужины, а не посты))
12/14/2009 17:28 AlexGD#914
А разве диалоги в экзюке хранятся?
12/15/2009 09:14 muzhig#915
dwar
Quote:
Что касается копки реса… абсолютно верно, нет отдельной функции для этого действия, достаточно вызвать простую атаку с нужным id.
эмм.. вот есть у нас GeneralAttack(китайская прога дала адресок, AlexGD заинжектил)- атаковать пожалста. Копать- нет. Лут подбирать- нет. НПС говорить- нет.
Вот ты сам выложил адрес для разговора с НПС
Я нашел адрес для подбирания лута- заинжектил- работает.
Нашел адрес для копания реса- работает.

Как же так выходит, ты говорил что нет такого адреса?