Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Инжект копания реса

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 12.10.2012, 15:16   #1
 Разведчик
Аватар для крас
 
крас никому не известный тип
Регистрация: 24.11.2010
Сообщений: 9
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
Exclamation Инжект копания реса

Вылетает клиент при вызове инжекта, я думаю что проблема в строках mov ecx, dword ptr [GAME_ADRESS]//B4F5FC
mov ecx, dword ptr [ecx+$34] , но я не знаю на что их менять
Код:
procedure PickWalkCall(aPParams: PParams); stdcall;
var
 WID, Typ: DWord;  // это WID нужного нам реса/лута и его тип
 CallAddress: DWord;  // это адрес функции сбора реса в клиенте
begin
 CallAddress := $00471860; //sumikot  Cтарый:$004656F0
 WID := aPParams^.WID;
 Typ := aPParams^.Typ;
 // начало ассемблерной вставки(это копия куска кода из клиента
// но WID подставляем мы а не клиент
asm
 pushad
 // подготовка параметров (WID и Type)
 mov ecx, dword ptr [GAME_ADRESS]//B4F5FC
 mov ecx, dword ptr [ecx+$34]              //старый 20
 push Typ // 0 - Сбор лута, 1 - Сбор шахт
 push WID // SN ресурса
 call CallAddress  // вызов клиентской функции с подготовленными нами параметрами
 popad
 end; // конец ассемблерной вставки
end;  // конец нашей функции


// функция копания ботом(выполняется в нашей проге, вызывает функцию инжекта InjectFunc,
//которая в свою очередь "запихивает" вышеуказанную функцию в клиент, создаёт поток и ждёт окончания работы потока)
procedure PickWalk(WID, Typ: DWord); // получает 2 параметра, WID и Type
var
 aParams: TParams;
begin
 aParams.WID := WID;
 aParams.Typ := Typ;
 // InjectFunc() - это функция которая копирует наш код в клиент (инжектит). Она есть в теме Инжектов
 InjectFunc(hProcess, @PickWalkCall, @aParams, sizeof(aParams));
// @PickWalkCall - указатель на адрес нашей функции которая выше
// hProcess - хэндл процесса клиента(чтобы знать в какой процесс копировать нашу функцию)
// @aParams параметры для функции
// sizeof(aParams) размер параметров в байтах
end;
Поиск WID:
Код:
function TBot.SearchRes(var Resurs: TResurs): boolean;
var
  numberres: DWord;
  res, nob: Dword;
  i: integer;
  wx, wy, wz, wdist: single;
  typ: byte;
begin
  setlength(Resurses, 0);
  numberres := Read_32(BASE_ADRESS);
  numberres := Read_32(numberres + $1C);
  numberres := Read_32(numberres + $1C);
  numberres := Read_32(numberres + $28);
  numberres := Read_32(numberres + $14);
  for i := 0 to 768 do
  begin
    res := Read_32(BASE_ADRESS);
    res := Read_32(res + $1C);
    res := Read_32(res + $1C);
    res := Read_32(res + $28);
    res := Read_32(res + $18);
    res := Read_32(res + i * $4);
    res := Read_32(res + $4);

    ReadProcessMemory(hProcess, pointer(res + $3C), @wx, sizeof(wx), nob);
    ReadProcessMemory(hProcess, pointer(res + $44), @wy, sizeof(wy), nob);
    ReadProcessMemory(hProcess, pointer(res + $40), @wz, sizeof(wz), nob);
    ReadProcessMemory(hProcess, pointer(res + $150), @typ, sizeof(typ), nob);
    ReadProcessMemory(hProcess, pointer(res + $158), @wdist, sizeof(wdist), nob);
    ReadProcessMemory(hProcess, pointer(res + $110), @res, sizeof(res), nob);
    if res <> 0 then
    begin
      form1.memo1.Lines.Add(inttohex(res, 2) +
        ' X= ' + IntToStr(round(wx / 10 + 400)) + ' Y= ' + IntToStr(round(wy / 10 + 550)) + ' Z= ' +
        IntToStr(round(wz / 10)) + ' ' + IntToStr(typ));
      if typ = 2 then
      begin
        setlength(Resurses, length(Resurses) + 1);
        Resurs.distanse := round(wdist);
        Resurs.x := wx;
        Resurs.y := wy;
        Resurs.z := wz;
        Resurs.nx := wx/10+400;
        Resurs.ny := wy/10+550;
        Resurs.nz := wz/10;
        resurs.typ:=typ;
        Resurs.id := res;
        Resurses[length(resurses) - 1] := Resurs;

        //status := getres;
        //walk(wx, wy, wz, 0);
        // break;
      end;
    end;
  end;
  if length(Resurses) > 0 then
  begin
    Resurs:= resurses[0];
    wdist := Resurses[0].distanse;
    for i := 0 to length(Resurses) - 1 do
    begin
      if Resurses[i].distanse < wdist then
      begin
        Resurs:= resurses[i];
        wdist := Resurses[i].distanse;
      end;
    end;
    if Resurs.distanse <= 60 then
      Result := true
    else
         result:=false;
    // BA +0x1C +0x1C +0x28 +0x14 Count, dword /Количество/
    //BA +0x1C +0x1C +0x28 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/
  end
  else
    result:=false;
end;

Последний раз редактировалось крас; 12.10.2012 в 15:55.
  Ответить с цитированием
Старый 12.10.2012, 20:18   #2
 Разведчик
Аватар для fds255
 
fds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известен
Регистрация: 23.06.2012
Сообщений: 43
Популярность: 427
Сказал(а) спасибо: 18
Поблагодарили 59 раз(а) в 35 сообщениях
 
По умолчанию Re: Инжект копания реса

крас, зачем изобретать велосипед, вот код

Mine_Drop (© gen-ostr, перенос на Delphi и "универсализация" - Dinmaite)

Адреса и офсеты я подправил для версии 1.4.5 Гнев Империи Руофф

Код:
procedure Mine_Drop(aPParams:PParams); stdcall;
var
  addr,addr2:pointer;
  x,y:dword;
begin
  x:=aPParams^.param1; // param1 это WID реса
  y:=aPParams^.param2; // param2 это _type реса
  addr := Pointer($00471860); // $00471860 это PickWalk адрес
  if y=2 then // если тип реса шахта то копать:
    asm
      pushad
        mov ecx, dword ptr[$00B4EF34]; //$00B4EF34 это Base Address
        mov ecx, dword ptr[ecx+$1C];
        mov ecx, dword ptr[ecx+$34];
        push 1
        push x
        CALL addr
      popad
    end
  else          //если иначе то собрать:
    asm
      pushad
        mov ecx, dword ptr[$00B4EF34];
        mov ecx, dword ptr[ecx+$1C];
        mov ecx, dword ptr[ecx+$34];
        push 0
        push x
        CALL addr
      popad
    end;
end;
почаще заходи сюда: http://zhyk.ru/forum/showthread.php?t=144558
и сюда: http://zhyk.ru/forum/showthread.php?t=287321

Последний раз редактировалось fds255; 12.10.2012 в 20:45.
  Ответить с цитированием
Старый 14.10.2012, 16:55   #3
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
По умолчанию Re: Инжект копания реса

Зачем изобретать велосипед, если можно пакетом собрать?
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
  Ответить с цитированием
Старый 14.10.2012, 17:14   #4
 Пехотинец
Аватар для Nek1t
 
Nek1t на правильном путиNek1t на правильном пути
Регистрация: 31.08.2010
Сообщений: 64
Популярность: 129
Сказал(а) спасибо: 30
Поблагодарили 12 раз(а) в 7 сообщениях
 
По умолчанию Re: Инжект копания реса

Цитата:
Сообщение от SmertigПосмотреть сообщение
Зачем изобретать велосипед, если можно пакетом собрать?

Мне наоборот кажется, что легче инжектом
________________
Спасибо.
  Ответить с цитированием
Старый 15.10.2012, 09:46   #5
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: Инжект копания реса

Цитата:
Сообщение от SmertigПосмотреть сообщение
Зачем изобретать велосипед, если можно пакетом собрать?

Ни разу пакетом не собирал ничего ). А пакетом тоже подбегает к ресу или надо еще самому до реса бежать?
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
  Ответить с цитированием
Старый 15.10.2012, 11:00   #6
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
По умолчанию Re: Инжект копания реса

Цитата:
Сообщение от Nek1tПосмотреть сообщение
Мне наоборот кажется, что легче инжектом

Цитата:
Сообщение от krukovisПосмотреть сообщение
Ни разу пакетом не собирал ничего ). А пакетом тоже подбегает к ресу или надо еще самому до реса бежать?

Я как раз инжектом не собирал, но когда пакетом, нужно рядом находится.
Просто если у человека не работает инжект копания, можно бегать инжектом, а собирать пакетом

Да и я еще тот мазохист, пытался бегать пакетами
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
  Ответить с цитированием
Ответ

Метки
inject


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Инжект копания реса крас Разработка ПО для Perfect World 4 12.10.2012 15:31
[Баг] Мгновенная точка реса (Cataclysm) cros5 Читы, баги и статьи по WoW 0 31.01.2012 14:52
[Помогите!] Скрипт на продажу реса -Storm- Общение и обсуждение 1 26.10.2011 20:42
[Статья] Уводим бота с реса >DeMaN< Статьи, квесты и описания по Perfect World 17 05.03.2011 19:52
[Баг] Быстрое копания реса .Darkness. Общение и обсуждение Perfect World 15 11.09.2010 11:02

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 03:08.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net