В сетях зла Sulverus aka Дроздов Андрей Хакер, номер #091, стр. 091-124-3 Type action = plug.GetType("Troy_update.Do"); //выбираем нужный нам класс object Do = Activator.CreateInstance(action); //создаем этот класс MethodInfo MtdInfo = action.GetMethod("save_log"); // выбираем метод нашего класса MtdInfo.Invoke(Do, null); // вызываем метод без параметров string loaded = "Plugin is loaded."; byte[] l_ok = Encoding.ASCII.GetBytes(loaded); //передаем хакеру, что плагин hnd.Send(l_ok); //загружен Чем это все может помочь хакеру? А тем, что с выходом Windows Vista вместо BHO(Browser Helper Object) можно будет встраивать код в IE, а это находка для не очень добрых программистов ;). Кстати, с таким же успехом благодаря рефлексии мы можем «отделять» куски кода от программы и создавать dll по ходу ее работы. Записываем пароли и явки? Для работы с файлами существует пространство имен System.IO. Для работы с текстовыми файлами нам нужны классы StringReader и StringWriter. Очень интересные возможности открывает класс BinaryReader и BinaryWriter, позволяя программе читать и писать двоичные данные. Этому ты сможешь научить троян сам. Если захочешь, я приведу простой пример: FileStream fStream = new FileStream("binary_rw.dat", //создаем файл FileMode.OpenOrCreate, FileAccess.ReadWrite); BinaryWriter bWrite = new BinnaryWriter(fStream); bWrite.WriteString("Xakep RuleZ"); //пишем в файл float test = 29.987654 //давайте еще что-нибудь напишем.. bWrite.Write(test); //написали еще... А для того чтобы стырить пароли (свои, забытые пароли ;)) мы будем использовать ранее упомянутый класс StringReader. Делается это, как всегда, одной строкой кода: StreamReader text = File.OpenText("C://test.txt"); После того как программа открыла файл, она может в нем копошиться, используя функции класса TextReader, например TextReader.ReadLine(). Таким образом, мы можем утянуть какую-то инфу из файла. Затем можем передать ее хакеру через сокет, используя функцию Socket.Send(), однако это довольно избитый способ. Гораздо удобнее передать данные о пароле через базу данных, которую читает хакер, а еще лучше - перловый скрипт, написанный хакером. Работаем с базами данных В мире баз данных Майкрософт активно проталкивает свою технологию ADO.NET и свой могучий Microsoft SQL Server 2005, с которым мы и будем работать (напомню, что мы практикуем только самые новые технологии). Технология ADO.NET включает в себя 2 провайдера OleDB и SQL, последним мы и займемся. Ничего практически не изменилось — объектно-ориентированные базы данных остались в силе. Для работы с базами данных Майкрософт одарила нас пространством имен System.Data, а если быть точным, то не с самой базы, а только с данными, полученными из базы или отправляемыми в нее. Вот нужные нам типы данных этого пространства имен: DataRow, DataTable, DataColumn и DataSet. Для соединения с базой мы будем использовать пространство имен System.Data.SqlTypes и System.Data.SqlClien, добавлять данные будем с помощью объекта SqlDataAdapter.InsertCommand. Для того чтобы заполнить таблицу данными и отправить их на сервер, необходимо использовать тип данных DataRow и метод Rows.Add(RataRow) В итоге мы получим метод для отправки пароля в базу данных (смотри соответствующую врезку). |