Print This Post Класс-инжектор на C++

Среда, 13. Июль 2011
Раздел: C/C++, автор:

Давеча наелся всяких плацебо"витаминчиков" и захотелось странного, а именно - выучить C++ за неделю. Начинание примечательно тем, что это первый раз, когда я изучаю что-то, связанное с программированием, по книге (обычно руководствовался примерами из гугла). Да и подобные языки мне до этого не приходилось изучать, в общем-то. Книжку выбрал первую попавшуюся на Amazon - Herbert Schildt "C++: The Complete Reference".
Результат своего непродолжительного изучения оформил в следующий класс, который позволяет грузить DLL или произвольный код в 32- и 64- разрядные процессы. Код, правда, написан не в соответствии с модным стандартом C++0x, и в нем не используется такая мощная вещь как шаблоны (хотя сомневаюсь, что они тут серьезно пригодились бы), но, тем не менее, базовые возможности языка я постарался задействовать.
Использовать класс довольно просто, например:

#include "injector.hpp"
 
int main()
{
	injector a;
	a.set_blocking(false);
 
	try
	{
		a.inject(L"CFF Explorer.exe", L"x64.dll");
	}
	catch(const injector_exception& e)
	{
		e.show_error();
	}
 
	return 0;
}

Доступные методы:

//Инжект DLL в процесс с указанным именем
void inject(const std::wstring& proc_name, const std::wstring& dll_name);
//Инжект кода в процесс с указанным именем
void inject(const std::wstring& proc_name, const BYTE * code, unsigned long int code_size);
//Инжект DLL в процесс с указанным PID
void inject(unsigned int pid, const std::wstring& dll_name);
//Инжект кода в процесс с указанным PID
void inject(unsigned int pid, const BYTE * code, unsigned long int code_size);
//Снятие/Установка блокирующего режима (вызывать ли WaitForSingleObject и VirtualFreeEx после создания удаленного потока или нет)
void set_blocking(bool active);

Для работы с 64-разрядными процессами достаточно просто скомпилировать класс под соответствующую архитектуру.

Скачать: cpp-injector-class

Print This Post LastFM broadcast add-on

Воскресенье, 5. Сентябрь 2010
Раздел: Assembler, автор:

По жизни я довольно часто слушаю музыку и, в частности, интернет-радио Last.fm (благо, в США оно бесплатное). Однако, постоянно сидеть за компьютером утомляет, и возникает желание послушать радио в другой комнате, развалившись в кресле.
Читать дальше »

Print This Post Делаем собственный инжектор

Суббота, 14. Август 2010
Раздел: Assembler, C/C++, Windows, автор:

Давным-давно, во времена мифов и легенд, когда древние Боги были мстительны и жестоки и обрушивали на программистов все новые и новые проклятия... На хабре была опубликована статья про сплайсинг.

В качестве примера в статье был приведен довольно масштабный код, который воспринимался не особо легко. Захотелось разобраться в процессе инжекта, а также написать более простой и менее громоздкий код.
Вкратце, инжектинг - это подгрузка нашей библиотеки в сторонний процесс, а сплайсинг - перехват какой-либо функции (мы перехватывали WinAPI) и модификация её работы средствами этой самой библиотеки.
Пример будет состоять из двух частей: 1 - библиотека, 2 - инжектор, который будет внедрять библиотеку в целевой процесс. Библиотеку будем писать на masm, что позволит в разы сократить объемы кода, а инжектор - на Си.
Читать дальше »

Print This Post Vkontakte Inviter Pro injector

Воскресенье, 1. Август 2010
Раздел: Assembler, C/C++, Социальные сети, автор:

Инжектор для VIP v2.
Как использовать:
1. Запускаем инвайтер, ждем появления окна авторизации
2. Запускаем инжектор, нажимает кнопку Inject! - должно появиться сообщение Successfully injected
3. Вводим произвольный логин в окне авторизации и нажимаем Вход
4. Пользуемся инвайтером бесплатно

На некоторых системах инжект может не сработать, с чем это связано - не знаю, видимо какие-то хитрости с инжектом .net-приложений (по-крайней мере при разработке обнаружились отличия в методике под win xp и под win 7).
Возможно, позже сделаю вариант с использованием LSP, и совместимость улучшится.

Скачать: vip injector

P.S. В версии 2.7.0.1 изменен алгоритм генерации ответа, поэтому для неё данный инжект неактуален.

Print This Post VkBot injector

Суббота, 24. Июль 2010
Раздел: Assembler, C/C++, Социальные сети, автор:

Наверное, многие знают программу VkBot. С недавнего времени автор сделал функции спама в программе доступными только в pro-версии и ввел необходимость ежемесячной платы за пользование в размере аж 400р.
Захотелось как-то исправить данную несправедливость. В результате, благодаря огромной помощи dx'а в области программирования, а также дистрибутиву pro-версии и дампу пакетов из Wireshark'a, (спасибо товарищу C*****) была написана программа, которая позволяет пользоваться всеми функциями pro-версии без необходимости приобретения ключа.

Инструкция по использованию:
1. Качаем архив
2. Распаковываем
3. Запускаем injector.exe, запускаем вкбота
4. Нажимаем кнопку Inject! - в программе должно появиться сообщение Successfully injected
5. Пользуемся всеми функциями бесплатно

И напоследок небольшая программа для шифровки/дешифровки пароля, который хранится в vkbot.ini. Интерфейс элементарен, надеюсь, кому-нибудь пригодится.

Скачать: vkbot injector

Update: исходные коды бота