[Статья] "Поиск инжектов" или "Наш код в чужом процессе" - Страница 2 - Zhyk.Ru Forums
Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация
Навигация
Zhyk.Ru LIVE! Реклама на Zhyk.Ru Доска почета top.zhyk.ru (beta) Премиум-аккаунт

"Поиск инжектов" или "Наш код в чужом процессе"

-

Разработка ПО для Perfect World

- Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World

Ответ
 
Опции темы Опции просмотра
Старый 30.08.2011, 02:28   #16
 Пехотинец
Аватар для ktulx
 
ktulx на правильном пути
Регистрация: 01.08.2011
Сообщений: 70
Популярность: 24
Сказал(а) спасибо: 45
Поблагодарили 7 раз(а) в 7 сообщениях
 
По умолчанию Re: "Поиск инжектов" или "Наш код в чужом процессе"

Dinmaite, понял, спасибо. Видимо придётся начать дружить с Делфи, хотя бы для саморазвития. Тем более что на стадии нуба, особой разницы в языках заметно быть не должно.

Добавлено через 15 часов 42 минуты
Подскажите, пожалуйста, кто смыслит. Таки решил я попробовать и на примере примера (лол) в статье, просто повесить на кнопку прыжок. При нажатии на кнопку клиент вылетает с ошибкой. Думаю что где-то с адресами напутал. Привожу весь код, чтобы не цитировать.

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  type
  PParams = ^TParams;
  TParams = packed record
    WID: DWord;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure InjectFunc(ProcessID: Cardinal; Func, aParams: Pointer;
  aParamsSize: DWord);
var
  hThread: THandle;
  lpNumberOfBytes: DWord;
  ThreadAddr, ParamAddr: Pointer;
begin
  if ProcessID<>0 then
  begin
    // ---- Âûäåëÿåì ìåñòî â ïàìÿòè ïðîöåññà, è çàïèñûâàåì òóäà íàøó ôóíêöèþ
    ThreadAddr := VirtualAllocEx(ProcessID, nil, 256, MEM_COMMIT, PAGE_READWRITE);
    WriteProcessMemory(ProcessID, ThreadAddr, Func, 256, lpNumberOfBytes);

    // ---- Òàêæå çàïèøåì ïàðàìåòðû ê íåé
    ParamAddr := VirtualAllocEx(ProcessID, nil, aParamsSize, MEM_COMMIT, PAGE_READWRITE);
    WriteProcessMemory(ProcessID, ParamAddr, aParams, aParamsSize, lpNumberOfBytes);

    // ---- Ñîçäàåì ïîòîê, â êîòîðîì âñå ýòî áóäåò âûïîëíÿòüñÿ.
    hThread := CreateRemoteThread(ProcessID, nil, 0, ThreadAddr, ParamAddr, 0, lpNumberOfBytes);

    // ---- Îæèäàåì çàâåðøåíèÿ ôóíêöèè
    WaitForSingleObject(hThread, INFINITE);

    // ---- ïîä÷èùàåì çà ñîáîé
    CloseHandle(hThread);
    VirtualFreeEx(ProcessID, ParamAddr, 0, MEM_RELEASE);
    VirtualFreeEx(ProcessID, ThreadAddr, 0, MEM_RELEASE);
  end
end;

procedure JumpCall(aPParams:PParams);Stdcall;
var CallAddress:pointer;
begin
CallAddress:=pointer($00476970);
 asm
  pushad
  push $0
  push $C8
  push $1
  push $3F800000
  push $4
  mov ecx, dword ptr [$A5B90C]
  mov ecx, dword ptr [ecx+$20]
  mov eax, $41200000
  mov dword ptr[ecx+$B80], $0
  mov dword ptr[ecx+$B94], $0
  mov dword ptr[ecx+$B98], $0
  mov dword ptr[ecx+$B9C], $0
  mov dword ptr[ecx+$BA4], eax
  mov dword ptr[ecx+$BF4], $1
  mov dword ptr[ecx+$BFC], eax
  call CallAddress
  popad
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  aParams: TParams;
  PID, hProcess: DWord;
begin
  GetWindowThreadProcessId( FindWindow('ElementClient Window', nil), @PID);
  hProcess:= OpenProcess(PROCESS_ALL_ACCESS, False, PID);
  InjectFunc(hProcess, @JumpCall, @aParams, SizeOf(aParams ) );  // èíæåêòèì ôóíêöèþ
  CloseHandle( hProcess); // çàêðûâàåì õåíäë ïðîöåññà
end;


end.
Подскажите, пожалуйста, в чём проблема? Всю ночь-утро сижу, моск кипит.

Последний раз редактировалось ktulx; 30.08.2011 в 18:11. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 03.09.2011, 13:32   #17
 Разведчик
Аватар для Njkzy80
 
Njkzy80 никому не известный тип
Регистрация: 09.01.2011
Сообщений: 15
Популярность: 10
Сказал(а) спасибо: 19
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: "Поиск инжектов" или "Наш код в чужом процессе"

Уважаемый Dinmaite, подскажите пожалуйсто надо ОЛИ настраивать както просто у меня в столбике где должно быть ARG нету ничего вообще пустой столб ((
И второй вопрос кроме адресов при обнове меняется и весь код инжекта? Тогда какже инжекты работаю после обновы если им просто адреса меняем?
  Ответить с цитированием
Старый 03.09.2011, 14:11   #18
Reaper
 Фельдмаршал
Аватар для Dinmaite
 
Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(
Регистрация: 13.08.2009
Сообщений: 1,000
Популярность: 22697
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 108
Поблагодарили 827 раз(а) в 393 сообщениях
Отправить сообщение для Dinmaite с помощью ICQ
 
По умолчанию Re: "Поиск инжектов" или "Наш код в чужом процессе"

Цитата:
Сообщение от Njkzy80Посмотреть сообщение
Уважаемый Dinmaite, подскажите пожалуйсто надо ОЛИ настраивать както просто у меня в столбике где должно быть ARG нету ничего вообще пустой столб ((
И второй вопрос кроме адресов при обнове меняется и весь код инжекта? Тогда какже инжекты работаю после обновы если им просто адреса меняем?

Насколько знаю настраивать ничего не надо. Просто програть анализ.
Иногда меняется код инжекта, чаще просто адрес.

Автопуть работает, использование скиллов пришлось шаманить, пакет колл работает.
  Ответить с цитированием
Старый 23.09.2011, 04:21   #19
 Разведчик
Аватар для iMockBa
 
iMockBa никому не известный тип
Регистрация: 29.07.2011
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для iMockBa с помощью ICQ
 
По умолчанию Re: "Поиск инжектов" или "Наш код в чужом процессе"

Жаль на портале нет темы о Реквием онлайн.

Подскажите по каким критериям искать ВИД моба .
  Ответить с цитированием
Старый 23.09.2011, 08:21   #20
Модератор
 Рыцарь
Аватар для Sirioga
 
Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(
Регистрация: 19.11.2008
Сообщений: 384
Популярность: 13343
Сказал(а) спасибо: 122
Поблагодарили 216 раз(а) в 109 сообщениях
 
По умолчанию Re: "Поиск инжектов" или "Наш код в чужом процессе"

Цитата:
Сообщение от iMockBaПосмотреть сообщение
Жаль на портале нет темы о Реквием онлайн.

Действительно.
Цитата:
Сообщение от iMockBaПосмотреть сообщение
Подскажите по каким критериям искать ВИД моба.

Что ты имеешь ввиду под критерием? Мне почему-то кажется, что ты таким странным словом обозвал способ поиска))) Если это действительно так, то нужно в CE танцевать от нуля или от неизвестного значения.
Примеры:
Сбрасываем таргет, ищем 0, берём таргет, ищем Increased value, сбрасываем таргет, ищем 0... повторить до посинения.
Сбрасываем таргет, ищем неизвестное значение, берём таргет ищем Increased value, сбрасываем таргет ищем Decreased value.
Оба способы хороши, не забываем вызывать переодически "значение не изменилось" для более быстрого нахождения того, что лежит у тебя в таргете.
Цитата:
Сообщение от iMockBaПосмотреть сообщение
критериям

Если же действительно имелись ввиду критерии, то нет никаких признаков у WID моба, это может быть число выдуманное лицом восточной национальности в тёмную безлунную ночь... ID он и в африке ID Хотя если касаться Perfect World, то есть одна отличительная черта, все npc (в том числе и мобы), имеют шаблон 8010XXXX но все значения 8010XXXX принимать за id моба, согласись не совсем корректно

Последний раз редактировалось Sirioga; 23.09.2011 в 08:34.
  Ответить с цитированием
Старый 23.09.2011, 10:59   #21
 Разведчик
Аватар для iMockBa
 
iMockBa никому не известный тип
Регистрация: 29.07.2011
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для iMockBa с помощью ICQ
 
По умолчанию Re: "Поиск инжектов" или "Наш код в чужом процессе"

Цитата:
Сообщение от SiriogaПосмотреть сообщение
Действительно.

Что ты имеешь ввиду под критерием? Мне почему-то кажется, что ты таким странным словом обозвал способ поиска))) Если это действительно так, то нужно в CE танцевать от нуля или от неизвестного значения.
Примеры:
Сбрасываем таргет, ищем 0, берём таргет, ищем Increased value, сбрасываем таргет, ищем 0... повторить до посинения.
Сбрасываем таргет, ищем неизвестное значение, берём таргет ищем Increased value, сбрасываем таргет ищем Decreased value.
Оба способы хороши, не забываем вызывать переодически "значение не изменилось" для более быстрого нахождения того, что лежит у тебя в таргете.

Если же действительно имелись ввиду критерии, то нет никаких признаков у WID моба, это может быть число выдуманное лицом восточной национальности в тёмную безлунную ночь... ID он и в африке ID Хотя если касаться Perfect World, то есть одна отличительная черта, все npc (в том числе и мобы), имеют шаблон 8010XXXX но все значения 8010XXXX принимать за id моба, согласись не совсем корректно

Спасиба за быстрый ответ ....именно метод поиска меня и интересовал ))

В данный момент я пытаюсь реализовать выбор моба в таргет на C# в Дельфи я ещё больше нуп чем в си шарпе ))
И для начала взял в помощь уже готовую библиотеку BlackMagic
похоже что она работает отлично но я всётаки уткнулся в этом самом поиске ВИД моба ...так как в одной из линий АСМ кода который я пытаюсь заиньектить (код взят из самого клиента и я просто пытаюсь его повторить как вы и обьясняли в теме ) передача параметра моба которого нужно взять в таргет происходит из статического адреса ....поэтому после иньекта в клиенте происходит появление в таргете ХП Бара без имени моба ....и клиент само собой зависает .....тоесть я так понимаю без передачи параметра в ручную никак не обойтись ?

п.с. кнопку СПАСИБО ненашол видимо у меня недостаточно постов.
  Ответить с цитированием
Старый 23.09.2011, 11:18   #22
Модератор
 Рыцарь
Аватар для Sirioga
 
Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(
Регистрация: 19.11.2008
Сообщений: 384
Популярность: 13343
Сказал(а) спасибо: 122
Поблагодарили 216 раз(а) в 109 сообщениях
 
По умолчанию Re: "Поиск инжектов" или "Наш код в чужом процессе"

Цитата:
Сообщение от iMockBaПосмотреть сообщение
И для начала взял в помощь уже готовую библиотеку BlackMagic

Ни о чем не говорит, даже в гугл сходил.

Цитата:
Сообщение от iMockBaПосмотреть сообщение
тоесть я так понимаю без передачи параметра в ручную никак не обойтись ?

Допустим MHS бот, даёт возможность выбрать нужных мобов по таргету, т.е. берёшь в таргет жмёшь горячую клавишу, и он заносит в инишник WID этого моба и так до 10 раз, потом запускаешь бота и он атачит всех мобов по заданному ID, если конечно он уже реснулся, при этом хаотично, может побежать и к самому дальнему, в случае с пв после респа мобов их WID не меняется.
Допустим Dinmaite в своём боте обращается к массиву окружающих "тел", вычисляет из них мобов и расстояние до них, вычисляет какой из мобов ближе всего к персонажу, берёт в таргет и атакует его.

Цитата:
Сообщение от iMockBaПосмотреть сообщение
п.с. кнопку СПАСИБО ненашол видимо у меня недостаточно постов.

Появится после набора 10 сообщений на форуме.

Последний раз редактировалось Sirioga; 23.09.2011 в 11:24.
  Ответить с цитированием
Старый 23.09.2011, 18:01   #23
 Разведчик
Аватар для iMockBa
 
iMockBa никому не известный тип
Регистрация: 29.07.2011
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для iMockBa с помощью ICQ
 
По умолчанию Re: "Поиск инжектов" или "Наш код в чужом процессе"

BlackMagic DLL очень известна ...странно что в гугле ненашол ...
Как тут тема Реквием Онлайн откроется я выставлю обезательно туториал и саму библиотеку.
  Ответить с цитированием
Старый 25.09.2011, 21:56   #24
 Разведчик
Аватар для iMockBa
 
iMockBa никому не известный тип
Регистрация: 29.07.2011
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для iMockBa с помощью ICQ
 
По умолчанию Re: "Поиск инжектов" или "Наш код в чужом процессе"

Доброго времени суток.
Помогите пожалуста разобраться .
[IMG][Ссылки могут видеть только зарегистрированные пользователи. ][/IMG]

в СЕ нашол адресс по которому начинается вызов моба в таргет .
( ММОРПГ Реквием Онлайн)
при попытке заиньектить и вызвать данную функцию кодом (C#)

Код:
pushad
pushfd
mov ecx,[WID]   //  для чтения ВИД использую ReadInt
mov edx,0x7c29e0 //  адресс функции
push ecx           // Начинаю повторять действия клиента
mov ecx,[0xa48e40]
call edx           //  вызываю функцию .
retn
во время иньекта и вызова данной функции в клиенте происходит следующее
в таргете у персонажа появляется ХП бар пустая без имени моба.
и через несколько секунд клиент зависает.

где я мог ошибиться ? учитывая то что адресс 0ха48е40 из которого передаются параметры в есх является статическим .
похоже что в момент вызова функции в коде нехватало аргументов ...которые возможно должны быть переданны в стек ещё до вызова функции ?

если использовать ОллиДбг и поставить точку остановки на линию
Код:
mov ecx,[0xa48e40]
то видно что значение аргумента есх не совпадает с ВИД моба полученного с помощью СЕ.

подскажите как быть ...
Нельзя ли усуществить вызов данной функции методом прыжка на неё ?
  Ответить с цитированием
Старый 25.09.2011, 22:19   #25
Reaper
 Фельдмаршал
Аватар для Dinmaite
 
Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(
Регистрация: 13.08.2009
Сообщений: 1,000
Популярность: 22697
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 108
Поблагодарили 827 раз(а) в 393 сообщениях
Отправить сообщение для Dinmaite с помощью ICQ
 
По умолчанию Re: "Поиск инжектов" или "Наш код в чужом процессе"

Можно осуществить но зачем неясно.
Личто у меня создалось впечатление что ты 2 раза загнал содержимое регистров в стек (pushad) но ни разу не выгрузил их - получив смещение стека.
  Ответить с цитированием
Старый 25.09.2011, 22:36   #26
 Разведчик
Аватар для iMockBa
 
iMockBa никому не известный тип
Регистрация: 29.07.2011
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для iMockBa с помощью ICQ
 
По умолчанию Re: "Поиск инжектов" или "Наш код в чужом процессе"

тоесть похоже что линия
Код:
mov ecx,[0xa48e40]
лишняя ?
  Ответить с цитированием
Старый 25.09.2011, 23:20   #27
Reaper
 Фельдмаршал
Аватар для Dinmaite
 
Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(
Регистрация: 13.08.2009
Сообщений: 1,000
Популярность: 22697
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 108
Поблагодарили 827 раз(а) в 393 сообщениях
Отправить сообщение для Dinmaite с помощью ICQ
 
По умолчанию Re: "Поиск инжектов" или "Наш код в чужом процессе"

тоесть ты забыл в конце процедуры вызвать popad (2 раза судя по коду) и зря используешь edx.
  Ответить с цитированием
Старый 26.09.2011, 02:31   #28
 Разведчик
Аватар для iMockBa
 
iMockBa никому не известный тип
Регистрация: 29.07.2011
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для iMockBa с помощью ICQ
 
По умолчанию Re: "Поиск инжектов" или "Наш код в чужом процессе"

похоже что я передаю неверный параметр ВИД в процедуру ...можно попробовать ваш сампль изменив в нём ВИД моба и имя клиента ?
клиент Requiem.exe или по окну Requiem
адресс с которого читать ВИД 0xa48e40+0x320
если конечно вас не затруднит переделать сэмпль для пробы .я в дельфи полнуй нуб неуверен что сам сумею переделать.
  Ответить с цитированием
Старый 26.09.2011, 09:19   #29
 Разведчик
Аватар для Dinmaite[Work]
 
Dinmaite[Work] лучик света в грозовом небеDinmaite[Work] лучик света в грозовом небеDinmaite[Work] лучик света в грозовом небеDinmaite[Work] лучик света в грозовом небеDinmaite[Work] лучик света в грозовом небеDinmaite[Work] лучик света в грозовом небеDinmaite[Work] лучик света в грозовом небе
Регистрация: 05.03.2011
Сообщений: 40
Популярность: 841
Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 8 сообщениях
 
По умолчанию Re: "Поиск инжектов" или "Наш код в чужом процессе"

iMockBa, возможно вечером.
Часиков в 7 напишите мне в асю, номер в профиле.
________________
Dinmaite пишет с меня, когда он на работе.
  Ответить с цитированием
Старый 26.09.2011, 10:56   #30
 Разведчик
Аватар для iMockBa
 
iMockBa никому не известный тип
Регистрация: 29.07.2011
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для iMockBa с помощью ICQ
 
По умолчанию Re: "Поиск инжектов" или "Наш код в чужом процессе"

спасиб . напишу вечерком .

Добавлено через 11 часов 23 минуты
Уважаемый Динмайт . я тут немного разобрался в моём коде ....
переделал на вот такой
Код:
pushad
push 0x258d4178   // значение взятое из ОЛЛИДБГ...скорее всего это и есть тот самый ВИД...хотя значение не совпадает с найденным в СЕ.....
mov ecx, [0xa48e40]
call 0x7c29e0 
popad 
retn
этот код сработал .функция вызвалась .....осталось только разобраться как читать значение ВИД правильно .....или если это не ВИД есть ли какие нибудь идеи как найти это значение ?

есть ли способ протрассировать где и когда было измененно значение есх ?

Последний раз редактировалось iMockBa; 26.09.2011 в 22:43. Причина: Добавлено сообщение
  Ответить с цитированием
Ответ

Опции темы
Опции просмотра

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Информация] """""""""""Лучшая тема по итогам голосования"""""""""" +ESEL- Общение и обсуждение, архив Point Blank 0 16.04.2011 09:12
"""МОЛОДЦЫ!!""" - обнова идет - читы фиксят! Zgystok Общение и обсуждение CrossFire 3 29.03.2011 17:32
[Руководство] "Воизбежание"-"Логин в прцессе подключения"+"Дисконект при выборе сервера" K.Rezonans Баги, читы и статьи по Point Blank 19 27.06.2010 02:24

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

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

Пишите нам: forum@zhyk.ru
Copyright © 2019 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net