Rus. server

01/16/2010 18:34 Biga73#1276
не более чем бред, для того чтобы впарить трояна не надо MHS. Надо желание, троян и не более того. У вас видимо сударь более глубокие главные причины.
P.S. вообще рассуждения о морали странно слушать от людей которые ковыряют защищенную законодательством программу - не надо ребята лицемерить........
01/16/2010 20:22 gen-ostr#1277
значит никто мне не поможет инжект таргета запустить? а вдруг продам?
так СВОЕГО бота хочется
01/17/2010 02:38 AlexGD#1278
Ну, блин, не думал, что такой гемор будет с отправкой кнопочек клиенту. Причем пока всякие циферки и Ф-ки отправлял - все отлично было. А вот захотелось мне сделать процедуру экстренного свала из под огня. Ну, говорю, клиент . Жмакни мне тильдочку. А он мне в ответ - ты чо - сдурел шоли? Я тебе чо - текстовый редактор тильдочки жмакать? И вот тут у танка отвалилась башня. То нажимает, то не нажимает, то язык ему не тот. и т.д. и т.п. Короче проимелся я более 10 часов...

Вот вам результат... Может кому полезно будет...

Code:
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ~~~ procedures to send key pressing to client
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
procedure TaPWT.SendKey(aWindowHandle: HWND; aPWThreadID: Cardinal; Key: Word; const Shift: TShiftState; SpecialKey, EngLayout: Boolean);
type
  TBuffers = array [0..1] of TKeyboardState;
var
  pKeyBuffers: ^TBuffers;
  lParam: LongInt;
  Layout, tLayout: Cardinal;
  i: integer;
begin
  if EngLayout then
  begin
    Layout := LoWord(GetKeyboardLayout(aPWThreadID));
    PostMessage(aWindowHandle, WM_INPUTLANGCHANGEREQUEST, 0, $00000409);
  end;
  Sleep(20);

  AttachThreadInput(aPWThreadID, GetCurrentThreadId, true);
  sleep(20);

  pKeyBuffers := nil;
  lParam := MakeLong(0, MapVirtualKey(Key, 0));

  if SpecialKey then
    lParam := lParam or $1000000;

  New(pKeyBuffers);
  try
    GetKeyboardState(pKeyBuffers^[1]);
    FillChar(pKeyBuffers^[0], SizeOf(TKeyboardState), 0);

    if ssShift in Shift then
      pKeyBuffers^[0][VK_SHIFT] := $80;
    if ssAlt in Shift then
    begin
      pKeyBuffers^[0][VK_MENU] := $80;
      lParam := lParam or $20000000;
    end;
    if ssCtrl in Shift then
      pKeyBuffers^[0][VK_CONTROL] := $80;

    SetKeyboardState(pKeyBuffers^[0]);
    if ssAlt in Shift then
    begin
      PostMessage(aWindowHandle, WM_SYSKEYDOWN, Key, lParam);
      PostMessage(aWindowHandle, WM_SYSKEYUP, Key, lParam or $C0000000);
    end
    else
    begin
      PostMessage(aWindowHandle, WM_KEYDOWN, Key, lParam);
      PostMessage(aWindowHandle, WM_KEYUP, Key, lParam or $C0000000);
    end;
    sleep(50);
    Application.ProcessMessages;

    SetKeyboardState(pKeyBuffers^[1]);
  finally
    if pKeyBuffers <> nil then
      Dispose(pKeyBuffers);
  end;

  AttachThreadInput(aPWThreadID, GetCurrentThreadId, false);
  sleep(20);

  if EngLayout then
    for I := 1 to 10 do
      if Layout <> LoWord(GetKeyboardLayout(aPWThreadID)) then
      begin
        PostMessage(aWindowHandle, WM_INPUTLANGCHANGEREQUEST, 0, Layout);
        Sleep(20);
      end
      else
        break;
end;

procedure TCharForm.Button5Click(Sender: TObject);
begin
  aPWT.SendKey(aPWWindow.aWindowHandle, aPWWindow.aThreadId, VK_ESCAPE, [], false, true);
  aPWT.SendKey(aPWWindow.aWindowHandle, aPWWindow.aThreadId, VkKeyScan('~'), [ssShift], false, true);
  aPWT.SendKey(aPWWindow.aWindowHandle, aPWWindow.aThreadId, VK_DOWN, [], false, true);
  aPWT.TextToClipboard('exit');
  aPWT.SendKey(aPWWindow.aWindowHandle, aPWWindow.aThreadId,  VkKeyScan('v'), [ssCtrl], false, true);
  aPWT.SendKey(aPWWindow.aWindowHandle, aPWWindow.aThreadId,  VK_RETURN, [], false, true);
end;
01/17/2010 07:14 origmas#1279
Quote:
Originally Posted by gen-ostr View Post
так СВОЕГО бота хочется
Вот рабочий проект с MFC на VC++ 6.0
Таргет работает, остальное не доделано, поймешь думаю по листингам
.. главное все в файлах - BotDlg.h и BotDlg.cpp

Если в PickLoot() убрать Sleep(500) или поставить Sleep(100) (в Настройках количество повторов 4) - работает О!чень быстро - бъет ближайшие от Перса цели в радиусе(по настройкам), лечит Пета, себя (Медитация там закоментирована, но можно включить как по клавише так и инжектом), переберает Умения по их перезарядке..
кстати - посыл клавишь на применение умений ничем не хуже инжекта .. попробуй.
01/17/2010 07:22 origmas#1280
Занимаясь созданием Бота, все больше убеждаюсь в его бесполезности, прокачивать перса - это хорошо получается, но сценарий игры требует многих вещей - компьютерная модель программного кода - не может определить как приобретать знания, умения, повышать квалификацию, звание, проходить квесты ..
Раздутый с помощью Бота - Персонаж, даже если ему потом купить разные "Форпосты Заката" - ничем не будет хорош ..
Над этим Дядей - лет в 90 - будут все только смеятся.
Единственно - Бот может помочь только выбивать с определенных Мобов определенные Плюшки ..
01/17/2010 08:42 Biga73#1281
Нифига не смеялись - бот до 92 лвл исправно делал свою работу - таскал каштаны из огня (как сумашедший фармил мобов). Единственно нужная вещь для бота это фармить сутками (если это делать вживую то можно сойти с ума). Так что origmas ты пришел к правильному выводу, не надо ему никаких плюшек, это забава для ума, как прикрутить к боту хитрое умение, но никак не для жизни......
01/17/2010 11:40 AlexGD#1282
хыхы ) А вот если не фармбота пишешь - то совсем другая картинка получается. Гео летать надо. Яшму летать надо. Супостатов искать надо. Анти-ПК - вкусно. Автопот - полезно. Автоторг - прибыльней фарма. И никакого смеха.
01/17/2010 13:02 muzhig#1283
Quote:
посыл клавишь на применение умений ничем не хуже инжекта .. попробуй.
А вот и ХУЖЕ!!!
хотя бы тем, что ты не можешь в чате нормально отписать че нибудь- циферки вставляться будут

Quote:
Единственно - Бот может помочь только выбивать с определенных Мобов определенные Плюшки ..
Я ресы собираю- за ночь и утро 1-4кк - с одного бота. У меня их уже три. Не смеюсь.
Ресы сливаю прямо котам, которые стоят около кузнеца и скупают.
Был печальный опыт самостоятельной торговли- удар по рынку. Цену на ресы заломал в 3 раза.

Quote:
Гео летать надо. Яшму летать надо. Супостатов искать надо. Анти-ПК - вкусно. Автопот - полезно. Автоторг - прибыльней фарма.
АМИНЬ!)))
01/17/2010 13:52 Biga73#1284
антипк, гео, автояшма, автоторг - я думаю никому не нужно.. если бы было нужно то уже б давно соотв. утилиты были бы, авто пот на рынке уже представлен - ниче экстраординарного - а кому сколько их боты приносят то уже ДАВНО не интересно....я бы тоже тут цифрами пораскидывался но нах я кому нужен с ними ???
01/17/2010 14:44 FunkU#1285
Эх, давно я тут не появлялся... Хотелось бы починить своего "умного" бота, переделанного из МХС, который оказался не рабочим в связи с 91 обновлением. Смотрю тут на страницах 116-120 вроде как сделали выделение цели через инжект на автоите. Но что-то я не совсем понимаю, какой именно код инжекта использовался? Вот этот?

Quote:
$PID = WinGetProcess("Element Client")
PUSHAD()
MOV_EAX($BASE_ADDRESS)
MOV_EAX_DWORD_PTR_EAX()
MOV_EDI($ID)
MOV_EDI_DWORD_PTR_EDI()
PUSH_EDI()
MOV_ECX_DWORD_PTR_EAX_ADD(Dec("20"))
ADD_ECX(Dec("EC"))
MOV_EDX(Dec("005B7B70"))
CALL_EDX()
POPAD()
RET()
INJECTCODE($PID)
На сколько я понял функции ассемблера были взяты из автогео, но я там почему-то не нашёл функцию MOV_EDI_DWORD_PTR_EDI. Где её взять или как она выглядит, подскажите?

И ещё Shamanpovt писал, что нашёл ошибки в функциях из автогео и исправил их.

Quote:
Func ADD_EBX($I)
$OPCODE = $OPCODE & "81C3" & INT2HEX($I, 8)
EndFunc

Func ADD_ECX($I)
$OPCODE = $OPCODE & "81C1" & INT2HEX($I, 8)
EndFunc

Func ADD_EDX($I)
$OPCODE = $OPCODE & "81C2" & INT2HEX($I, 8)
EndFunc
Я так понимаю, этих исправлений и приведённого выше когда достаточно, чтобы реализовать рабочий инжект на автоите?
01/17/2010 15:02 AlexGD#1286
Quote:
Originally Posted by Biga73 View Post
антипк, гео, автояшма, автоторг - я думаю никому не нужно.. если бы было нужно то уже б давно соотв. утилиты были бы, авто пот на рынке уже представлен - ниче экстраординарного - а кому сколько их боты приносят то уже ДАВНО не интересно....я бы тоже тут цифрами пораскидывался но нах я кому нужен с ними ???
Ну. А я о чем ) Я ж и пишу - вкусно - но необязательно ) Я это делаю для себя и своих друзей )

Кстати, по секрету, в крупных кланах давно юзаются автогео, антипк и персфайндеры. Даже ХХ фармера одного видел )

А для меня, как я и говорил, это все - зарядка для мозгов. Играть мне все равно некогда )
01/17/2010 15:11 muzhig#1287
Quote:
А для меня, как я и говорил, это все - зарядка для мозгов. Играть мне все равно некогда )
та же фигня)
01/17/2010 15:16 Biga73#1288
кстати о секретах - в крупных кланах и заточка свыше +3 тоже реализована методом который тут чел хотел выяснить (ну почти таким)
01/17/2010 15:50 FunkU#1289
Мда, зря я вопросы задавал. Попробовал всё на деле - заработало. Только строчку MOV_EDI_DWORD_PTR_EDI() закоментировал. Одного теперь не понимаю, в чём разница адресов 0098ADDC и 0098B47C? Первый для инжектов, второй для обычной подмены значений?

Кстати не нашёл тут, как на автоите сделать воскрешение в ближний город инжектом, хотя писали, что оно здесь есть. Но зато нашёл тут адрес функции воскрешения и сделал рабочее, не знаю, на сколько правильное, воскрешение.

Quote:
PUSHAD()
MOV_EAX($BASE_ADDRESS)
MOV_EAX_DWORD_PTR_EAX()
MOV_EDX(Dec("005DA8F0"))
CALL_EDX()
POPAD()
RET()
INJECTCODE($PROCESS_ID)
И ещё хотелось бы сделать атаку питомцем через инжект. Кто-нибудь знает, как это сделать? Нашёл в этой теме адрес функции (005B7ED0), но похоже он не для нашей версии игры, а если и подходит, то всё равно не понимаю, как эту функцию вызывать. Банальное подставление в код воскрешения не работает.
01/18/2010 02:45 AlexGD#1290
Фанк, инжекты отличаются не только адресами, но и функционально (разный асм, иногда достаточно длинный и сложный). К сожалению, я тебе помочь не смогу, потому что не реализовывал эту функцию, но может кто-то и может ;)