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

Помогите разобраться с инжектом

-

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

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

Ответ
 
Опции темы
Старый 03.01.2013, 22:00   #1
 Разведчик
Аватар для Archont
 
Archont никому не известный тип
Регистрация: 02.01.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Помогите разобраться с инжектом

Доброго времени суток.

Пытаюсь написать простой бот по материалам
- Как написать бота с нуля [Borland C++ Builder 6]
- "Поиск инжектов" или "Наш код в чужом процессе"

Конкретно споткнулся на функции, подбирающел лут.
По аналогии со примером "Поиск инжектов" нашел функцию 00681EE0 которая совпала с Pick=00681EE0 из "РУОФФ Адреса и оффсеты".

Далее у меня получилось примерно следующее:

Код:
 void Target_loot(DWORD* WID, DWORD *type)
{
  DWORD Id = *WID;
  DWORD tp = *type;
  __asm
  {
	MOV EAX, Id
	MOV ECX, tp
	MOV EBX, 0x681EE0
	MOV EDX,DWORD PTR DS:[0xB4EF34]
	PUSH EAX                          //Arg1
	PUSH ECX						  //Arg2
	MOV ECX,DWORD PTR DS:[EAX+0x20]
	ADD ECX,0x0EC
	CALL EBX                         // elementc.00681EE0
  }
}
функцию преобразовал к

Код:
void INJECTOR::GetLoot(DWORD wid, DWORD type)
{
  char fdata[28]= "\xB8\x00\x00\x00\x00\xB9\x00\x00\x00\x00\xBB\xE0\x1E\x68\x00\x50\x51\x8B\x48\x20\x81\xC1\xEC\x00\x00\x00\xFF\xD3";
  memcpy(fdata+1,&wid,4);
  memcpy(fdata+6,&type,4);
  InjectFunction(&fdata,28);
}

BYTE INJECTOR::InjectFunction(void *Func, int len)
{
  HANDLE hProcThread;
  HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,false,pid);
  if (!hProcess) return 0;

  WriteProcessMemory(hProcess,pFunction,Func,len,NULL);
  hProcThread = CreateRemoteThread(hProcess,NULL,NULL,(LPTHREAD_START_ROUTINE)pFunction,NULL,NULL,NULL);
  if(hProcThread==INVALID_HANDLE_VALUE) // не удалось создать поток
  {
	CloseHandle(hProcess);
	return 0;
  }

  WaitForSingleObject(hProcThread,INFINITE); // ожидаем завершения работы потока
  CloseHandle(hProcThread); // освобождаем память
  CloseHandle(hProcess);
  return 1;	// успешная инъекция и выполнение кода
}
77C5000E B8 00000000 MOV EAX,0
77C50013 B9 00000000 MOV ECX,0
77C50018 BB E01E6800 MOV EBX,681EE0
77C5001D 8B15 34EFB400 MOV EDX,DWORD PTR DS:[B4EF34]
77C50023 50 PUSH EAX
77C50024 51 PUSH ECX
77C50025 8B48 20 MOV ECX,DWORD PTR DS:[EAX+20]
77C50028 81C1 EC000000 ADD ECX,0EC
77C5002E FFD3 CALL EBX

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

PS: хотелось бы также выяснить как переписать код с использованием пакетов.

Спасибо.
  Ответить с цитированием
Старый 31.01.2013, 21:20   #2
 Пехотинец
Аватар для dwa83
 
dwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личность
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
 
По умолчанию Re: Помогите разобраться с инжектом

Цитата:
Сообщение от ArchontПосмотреть сообщение
что я здесь сделал не так.

Цитата:
Сообщение от dwa83Посмотреть сообщение
преобразовать его в набор цыфр и поместить в массив. Кстати, сюда нужно добавить последнюю строчку
RETN

Иначе выхода из функции нет, и дальше после CALL по "мусору" в памяти начинает идти
________________
╔═╗
ˑ ˑ ╬ ╬
╚═╝
  Ответить с цитированием
Старый 01.02.2013, 00:47   #3
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: Помогите разобраться с инжектом

popad, pushad где?
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Уязвимость] Помогите с инжектом!! =( Игорь =) Общение и обсуждение, архив Point Blank 0 22.01.2012 11:02
Помогите с инжектом MyP3uKKoTe Общение и обсуждение, архив Point Blank 0 10.08.2011 21:48

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

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

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