Комментарии 32
Используйте конструкцию
для исходного кода
<source lang="C#"> код </source>
для исходного кода
Всю исследовательскую часть с выяснением содержимого буфера обмена можно было заменить на запуск clipbrd.exe из поставки Win XP с последующим сохранением содержимого буфера в *.clp-файл.
Действительно, сохранить буфер в clp, отредактировать в текстовом редакторе и обратно загрузить из нового clp.
Правда там весёлый файл получается. Часть в cp1251, часть в utf-8.
Правда там весёлый файл получается. Часть в cp1251, часть в utf-8.
Редактировать в таком виде неудобно — формат бинарный, проще пойти по пути автора.
А вот для «первичного осмотра» бинарность не помеха.
Что же до мешанины кодировок, то при вставке из буфера всегда используется один, наиболее подходящий формат из имеющихся. В нашем случае самый предпочтительный — SkypeMessageFragment, можно править только его.
А вот для «первичного осмотра» бинарность не помеха.
Что же до мешанины кодировок, то при вставке из буфера всегда используется один, наиболее подходящий формат из имеющихся. В нашем случае самый предпочтительный — SkypeMessageFragment, можно править только его.
Кстати, давно хотел узнать — есть ли или планируется ли настройка скайпа таким образом чтобы по Ctrl+C копировался только текст, а по Ctrl+Ins цитата, о которых идёт разговор в статье?
Спасибо, любопытно.
Не придираюсь, но, как минимум, это место грозит быть местом падения программы, если буфер обмена пуст.
По аналогии с предыдущей статьей, Вы забыли добавить в конце что-то вроде «Это все только в исследовательских целях, ни в коем случае не стоит массово подменять цитаты» :)
Не придираюсь, но, как минимум, это место грозит быть местом падения программы, если буфер обмена пуст.
using (StreamReader streamReader = new StreamReader(clipboadData[DataKey] as MemoryStream))
{
message = streamReader.ReadToEnd();
(clipboadData[DataKey] as MemoryStream).Seek(0, SeekOrigin.Begin);
}
По аналогии с предыдущей статьей, Вы забыли добавить в конце что-то вроде «Это все только в исследовательских целях, ни в коем случае не стоит массово подменять цитаты» :)
Настоящая цель этой статьи – предупредить общественность, что цитатам из skype доверять нельзя.Не хотелось бы придираться к статье, тем более было очень интересно почитать, но… справедливости ради, отквоченное не очень однозначно воспринимается.
Было бы наверное более правильно сказать, что свои собственные сообщения можно форматировать, в том числе и в виде оформления части текста как цитаты собеседника. Но опять же, это свои собственные сообщения, а не «цитаты собеседника», строго говоря.
Кроме того, вызывает ряд вопросов вот этот момент
Казалось бы, их нельзя редактировать, а после недавнего отключения поддержки html тэгов (в windows версиях), это должно быть невозможным.Редактировать их может и нельзя было, но можно было создавать www.wikireality.ru/wiki/HTML_%D0%B2_%D0%A1%D0%BA%D0%B0%D0%B9%D0%BF%D0%B5 (смотреть оформление html тэгами, предпоследнее — как раз способ оформить как цитату), поэтому никто особо на цитаты и не полагался в том числе и по этой причине.
Если поддержка html тэгов отключена только в windows версиях, возможно в юниксах они еще работают в полной мере? Может кто-то проверить?
Более того.
Способ создания цитат в html работает и сейчас у нас. Винды 7-ка. Скайп 5.5.0.124. Вставляем
зажимаем Shite+Ctrl и жмем мышкой кнопку отправить (как в инструкции выше с викиреалити), и видим цитатку отправленную — на скриншоте пруф.
Способ создания цитат в html работает и сейчас у нас. Винды 7-ка. Скайп 5.5.0.124. Вставляем
<quote author="edogs" authorname="edogs" conversation="edogs"
timestamp="1329070172"><legacyquote>[12:12:12] DisplayedName:
</legacyquote>Quoted text</quote>
зажимаем Shite+Ctrl и жмем мышкой кнопку отправить (как в инструкции выше с викиреалити), и видим цитатку отправленную — на скриншоте пруф.
Скрин не вставился сразу:(
Подумали еще немного — теперь как-то вообще стало непонятно о чем статья…
Коротко: в скайпе есть специальные тэги для форматирования своих сообщений, позволяющие оформить любой текст в виде цитаты (с указанием никнейма, текста и времени отправки). Эти тэги описаны на вики, общедоступны и легки в применении. Они работают в том числе в последней версии скайпа. Однако если применить C#, то написав код и занявшись отладкой, их можно найти более сложным и интересным способом, чем просто забив в гугл запрос «как оформить цитату в скайпе»:) Где-то тут должна быть картинка буханки в виде троллейбуса.
Простите если что не так:-\
Коротко: в скайпе есть специальные тэги для форматирования своих сообщений, позволяющие оформить любой текст в виде цитаты (с указанием никнейма, текста и времени отправки). Эти тэги описаны на вики, общедоступны и легки в применении. Они работают в том числе в последней версии скайпа. Однако если применить C#, то написав код и занявшись отладкой, их можно найти более сложным и интересным способом, чем просто забив в гугл запрос «как оформить цитату в скайпе»:) Где-то тут должна быть картинка буханки в виде троллейбуса.
Простите если что не так:-\
В предыдущей статье, в конце, было сказано, что в последней версии скайпа на сайте(5.8) это уже пофиксено. Проверил то, что Вы написали, в 5.5, работает, в 5.8 — нет.
Мы бы репортили об этом как «в одной из версий skype под винды не работает способ отправки своих сообщений с html форматированием» (в других работает, протокол поддерживает, под юниксом все ок), а не как «уязвимость в скайпе позволяет подделывать чужие цитаты»:)
Shite+Ctrl, интересно :)
Наверное с кнопкой Shite (брит. = shit) намного легче говнокодить :)
Наверное с кнопкой Shite (брит. = shit) намного легче говнокодить :)
Все верно, цитаты можно спокойно делать голыми руками:
Атрибуты author, conversation и время в квадратных скобках игнорируются когда показывается цитата, а все остальное можно задать как угодно. Единственная «сложность» с timestamp, но его легко сделать на любую желаемую дату-время.
<quote author="blabla" authorname="Василий Пупкин" conversation="blablabla" timestamp="1329215546"><legacyquote>[12:23:34] Василий Пупкин: </legacyquote>Все подумают что это сказал Василий Пупкин</quote>
Атрибуты author, conversation и время в квадратных скобках игнорируются когда показывается цитата, а все остальное можно задать как угодно. Единственная «сложность» с timestamp, но его легко сделать на любую желаемую дату-время.
А в линуксовом скайпе это все редактируется просто текстом.
Pressing Cntr+V will: Paste message as a plain text
По-моему, вы придаёте чрезмерное значение цитатам в каком-то там скайпе, это же не нотариальная копия, чтобы уж прямо вот так. Все мы приучены интернетом (почтой и форумами главным образом), что цитаты оформляются вручную и вписать туда можно что угодно, вряд ли автоматизация этого процесса в скайпе повышает доверие к содержимому до сколько-нибудь опасной степени.
Но само наблюдение и исследование интересное!
Но само наблюдение и исследование интересное!
Можно было пойти путем попроще — создать цитату, запостить в какой нить чат а потом открыть файлы хистори либо любым редактором этой хистори, либо любым просмотрщиком sqlite баз.
-_-
А я для того, чтобы потроллить одного человека, создавал аккаунт-копию, и типа от него цитаты писал, потом ему копировал, и тот удивлялся очень:) В топике все, конечно намного универсальней и проще:)
А кто-то знает простую программу для чтения текстов чата Skype из chatsync?
НЛО прилетело и опубликовало эту надпись здесь
Интересно, а такой «глубокий» интерес к скайпу как-то связан с его приобретением MS? :-)
хотел плюсануть вас за обе статьи, но не хватает кармы, поэтому просто выражаю благодарность :)
При записи в stream я намеренно не использовал конструкцию using (вызов метода Dispose у streamWriter портит мой MemoryStream)
В таких случаях следует использовать конструктор StreamWriter с параметром leaveOpen, в который соответственно передать true. Тогда при диспозе райтера, сам стрим диспозится не будет. :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Изучая Skype — редактируем цитаты