Давеча наелся всяких плацебо"витаминчиков" и захотелось странного, а именно - выучить C++ за неделю. Начинание примечательно тем, что это первый раз, когда я изучаю что-то, связанное с программированием, по книге (обычно руководствовался примерами из гугла). Да и подобные языки мне до этого не приходилось изучать, в общем-то. Книжку выбрал первую попавшуюся на Amazon - Herbert Schildt "C++: The Complete Reference".
Результат своего непродолжительного изучения оформил в следующий класс, который позволяет грузить DLL или произвольный код в 32- и 64- разрядные процессы. Код, правда, написан не в соответствии с модным стандартом C++0x, и в нем не используется такая мощная вещь как шаблоны (хотя сомневаюсь, что они тут серьезно пригодились бы), но, тем не менее, базовые возможности языка я постарался задействовать.
Использовать класс довольно просто, например:
//Инжект DLL в процесс с указанным именемvoid inject(const std::wstring& proc_name, const std::wstring& dll_name);//Инжект кода в процесс с указанным именемvoid inject(const std::wstring& proc_name, const BYTE * code, unsignedlongint code_size);//Инжект DLL в процесс с указанным PIDvoid inject(unsignedint pid, const std::wstring& dll_name);//Инжект кода в процесс с указанным PIDvoid inject(unsignedint pid, const BYTE * code, unsignedlongint code_size);//Снятие/Установка блокирующего режима (вызывать ли WaitForSingleObject и VirtualFreeEx после создания удаленного потока или нет)void set_blocking(bool active);
Для работы с 64-разрядными процессами достаточно просто скомпилировать класс под соответствующую архитектуру.
По жизни я довольно часто слушаю музыку и, в частности, интернет-радио Last.fm (благо, в США оно бесплатное). Однако, постоянно сидеть за компьютером утомляет, и возникает желание послушать радио в другой комнате, развалившись в кресле. Читать дальше »
Давным-давно, во времена мифов и легенд, когда древние Боги были мстительны и жестоки и обрушивали на программистов все новые и новые проклятия... На хабре была опубликована статья про сплайсинг.
В качестве примера в статье был приведен довольно масштабный код, который воспринимался не особо легко. Захотелось разобраться в процессе инжекта, а также написать более простой и менее громоздкий код.
Вкратце, инжектинг - это подгрузка нашей библиотеки в сторонний процесс, а сплайсинг - перехват какой-либо функции (мы перехватывали WinAPI) и модификация её работы средствами этой самой библиотеки.
Пример будет состоять из двух частей: 1 - библиотека, 2 - инжектор, который будет внедрять библиотеку в целевой процесс. Библиотеку будем писать на masm, что позволит в разы сократить объемы кода, а инжектор - на Си. Читать дальше »
Инжектор для .
Как использовать:
1. Запускаем инвайтер, ждем появления окна авторизации
2. Запускаем инжектор, нажимает кнопку Inject! - должно появиться сообщение Successfully injected
3. Вводим произвольный логин в окне авторизации и нажимаем Вход
4. Пользуемся инвайтером бесплатно
На некоторых системах инжект может не сработать, с чем это связано - не знаю, видимо какие-то хитрости с инжектом .net-приложений (по-крайней мере при разработке обнаружились отличия в методике под win xp и под win 7).
Возможно, позже сделаю вариант с использованием LSP, и совместимость улучшится.
Наверное, многие знают программу . С недавнего времени автор сделал функции спама в программе доступными только в pro-версии и ввел необходимость ежемесячной платы за пользование в размере аж 400р.
Захотелось как-то исправить данную несправедливость. В результате, благодаря огромной помощи dx'а в области программирования, а также дистрибутиву pro-версии и дампу пакетов из Wireshark'a, (спасибо товарищу C*****) была написана программа, которая позволяет пользоваться всеми функциями pro-версии без необходимости приобретения ключа.
Инструкция по использованию:
1. Качаем архив
2. Распаковываем
3. Запускаем injector.exe, запускаем вкбота
4. Нажимаем кнопку Inject! - в программе должно появиться сообщение Successfully injected
5. Пользуемся всеми функциями бесплатно
И напоследок небольшая программа для шифровки/дешифровки пароля, который хранится в vkbot.ini. Интерфейс элементарен, надеюсь, кому-нибудь пригодится.
Все материалы сайта предоставлены исключительно в ознакомительных и обучающих целях. Ответственность за использование их в корыстных целях полностью ложится на Ваши плечи.