как привязать приложение к компьютеру
Привязка программы к железу + онлайн верификация
Данную статью я представляю вниманию новичков для обеспечения защиты своего софта. Защита реализуется путем привязки к железу компа + онлайн проверка.
Наша защита будет состоять из нескольких частей:
Итак… с структурой мы разобрались, теперь нужно определиться к каким параметрам мы будем осуществлять привязку.
Мы сделаем это через WIN Api функции:
function UserName: string;
var
u: pchar;
i: dword;
begin
i := 1024;
u := StrAlloc(Succ(i));
if GetUserName(u, i) then Result := StrPas(u) else Result := ‘?’;
end;
function ComputerName: string;
var
buffer: array[0..255] of char;
size: dword;
begin
size := 256;
if GetComputerName(buffer, size) then
Result := buffer
else
Result := »
end;
function GetHard: String;
var
VolumeName, FileSystemName: array [0..MAX_PATH-1] of Char;
VolumeSerialNo: DWord;
MaxComponentLength,FileSystemFlags: Cardinal;
GetVolumeInformation(‘C:\’,VolumeName,MAX_PATH,@VolumeSerialNo,
MaxComponentLength,FileSystemFlags, FileSystemName,MAX_PATH);
Result := IntToHex(VolumeSerialNo,8);
function GetMem: String;
var
MyMem: TMemoryStatus;
MyMem.dwLength:=SizeOf(MyMem);
GlobalMemoryStatus(MyMem);
with MyMem do begin
Result:= IntToStr(dwTotalPhys);
end;
end;
Итак, мы получили всю интересующую нас информацию. Теперь мы склеим эти данные в hex строку, что бы конечный пользователь не знал, какие параметры мы используем.
Берем функцию преобразования в 16ричный вид.
function StringToHex(str1,Separator:String):String;
var
buf:String;
i:Integer;
begin
buf:=»;
for i:=1 to Length(str1) do begin
buf:=buf+IntToHex(Byte(str1[i]),2)+Separator;
end;
Result:=buf;
end;
Склеим все параметры —
function getSerial:string;
begin
Result := StringToHex((UserName + ComputerName + GetHard + GetMem));
end;
Вывод полученной строки в TEdit
procedure TForm2.Button1Click(Sender: TObject);
begin
Edit1.Text := getSerial;
end;
Мои поздравления, готов модуль получения serial кода.
Генератор регистрационного ключа
Полученый серийник надо шифрануть, что бы жизнь медом не казалась. Используйте любые методы, я приведу пример MD5.
функция шифрации.
function getKey(Serial: string):string;
begin
Result := MD5DigestToStr(MD5String(Serial+’123′));
Теперь кидаем на форму два Tedit и кнопку.
на онклик ставим
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text := getKey(Edit1.Text); / в первый Edit вставляем серийник, во втором будет зашифрованый вариант(очевидно)
end;
Пишем основную программу.
1) Кидаем все функции сбора инфы о компе и генерации серийника из первого модуля.
2) Кидаем функцию шифрации серийника из генератора рег ключа.
Приступим к регистрации программы и онлайн привязки. Кидаем Tedit(для ввода рег ключа) + 2 кнопки
(1 — проверка на валидность рег ключа 2 — коннект к серверу и проверка на наличия записи там)
procedure TForm2.Button1Click(Sender: TObject);
begin
if Edit1.Text = getKey(GetSerial) then ShowMessage(‘RegOk’) else ShowMessage(‘NoFuckinWay’);
end;
При валидности рег ключа — RegOk, если нет, то посылает.
В качестве онлайн проверки будем использовать простейший вариант — txt файл.
Алгоритм — на хосте лежит файл серийник.txt, а в нем же рег ключ. Программа сравнивает содержимое текстовика и ключ, сгенереный программой.
procedure TForm2.Button2Click(Sender: TObject);
begin
if getKey(GetSerial)= IdHTTP1.Get(‘http://zzzzzz.com/reg/’+GetSerial+’.txt’) then ShowMessage(‘RegOk’) else ShowMessage(‘NoFuckinWay’);
end;
Вот и все Осталось вам придумать, куда прописывать то, что программа зарегистрирована.
Я лишь описал наглядный пример, как строятся такие методы защиты… вы можете использовать свои способы привязки, совершенствуя код + верификация через txt самый ненадежный способ. используйте php+mysql и т.д.
Будут вопросы — пишите, но я тут разжевал все до процедур онклика.
Как привязать приложение к компьютеру
Ув. Мастера.
Мне надо мою програмку привязать к моему компу.
Причем так (по возможности), чтобы ее можно было привязать (лично мне) к другому компьютеру (или к примеру к моему же, после апгрейда ОС или железа).
← →
DC-AC ( 2002-09-04 07:21 ) [1]
Аппаратные ключи (COM, LPT, USB).
← →
TCrash ( 2002-09-04 10:42 ) [2]
← →
DC-AC ( 2002-09-04 11:24 ) [3]
← →
Друпи ( 2002-09-04 20:34 ) [4]
Может как-нибудь програмvно узнавать серийный номер винта и привязываться к нему. Но как его узнать?
← →
Друпи ( 2002-09-05 08:40 ) [6]
← →
DC-AC ( 2002-09-05 09:02 ) [7]
← →
Anatoly Podgoretsky ( 2002-09-05 09:14 ) [8]
Достаточно инсталляции и серийного номера для пользователя с привязкой привязкой к серийному номеру тома и тогда он сможет переинсталлировать при необходимости или из за любых причин.
Но если ты не доверяешь пользователю, то ты должен сам инсталлировать программу на его компьютере, устанавливая при необходимости дополнительное оборудование.
← →
Роман Василенко ( 2002-09-05 09:42 ) [10]
procedure gethd(path:string; out sn1,sn2:word);
var
snb,vnb:pchar;
fsf,mcl:cardinal;
drv:string;
sn:array[0..1] of word;
begin
vnb:=stralloc(250);
snb:=stralloc(250);
drv:=includetrailingbackslash(extractfiledrive(path));
if getvolumeinformation(pchar(drv),vnb,250,@sn,mcl,fsf,snb,250) then begin
sn1:=sn[0];
sn2:=sn[1];
end else begin
sn1:=-1;
sn2:=-1;
end;
strdispose(vnb);
strdispose(snb);
end;
← →
TCrash ( 2002-09-05 09:47 ) [12]
2DC-AC
на 286х по какому-то адресу памяти(адрес не помню) содержалась 8ми байтовая константа (записать по этому адресу ничего не удавалось), уникальная для каждого компа. Проверялось на машинах абсолютно одинаковой конфигурации. Машин было
← →
Anatoly Podgoretsky ( 2002-09-05 09:54 ) [13]
Не придумывай, если только у тебя не был бренднейм от dell, compaq, HP
← →
Gibbel ( 2002-09-05 10:03 ) [14]
Посмотрите здесь:
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q208048&
2 DC-AC: Покажи мне хоть одного _ПОЛЬЗОВАТЕЛЯ_, который будет менять прошивку ПЗУ харда 😉
← →
DC-AC ( 2002-09-05 10:29 ) [15]
Лучше не нада. Подумай о бедных сисадминах)))
← →
Vladislav ( 2002-09-05 11:03 ) [17]
← →
Vladislav ( 2002-09-05 11:08 ) [18]
Еще уточнение getvolumeinformation номер не диска, а тома, т.е. для C:, D: номер будет разный.
← →
Anatoly Podgoretsky ( 2002-09-05 11:34 ) [19]
А какая разница, нормальную программу также придется переинсталлировать после смены диска, переформатирования, а плюч состоит в том, что это гарантировано работает, без дополнительных драйверов/модулей не в пример серийному номеру жесткого диска.
← →
Gibbel ( 2002-09-05 11:51 ) [20]
← →
raiv ( 2002-09-05 11:55 ) [21]
Не ломай голову! Профи всеравно крякнет твою защиту, а для чайника скачай компонент AVLGold c этого форума.
И пользуйся на здоровье!
← →
Anatoly Podgoretsky ( 2002-09-05 11:59 ) [22]
Сходил и с удовольствием прочитал, хорошая статья и к тому же не умалчивает о проблемах «SMARTVSD Troubleshooting Checklist»
← →
ruslanyd ( 2002-09-05 12:59 ) [23]
сам заинтересован в способах привязки софта к железу (винту или маме), но хотелось бы узнать все-таки более эффективные способы,
чем getvolumeinformation.
Серийник тома, который она возвращает, подменяется diskedit-ом за 30 сек. на любой интересующий
2 TCrash
>на 286х по какому-то адресу памяти(адрес не помню)
>содержалась 8ми байтовая константа (записать по этому
>адресу ничего не удавалось)
этот серийник был прописан в самом конце адресного пространства Conventional памяти, и находился в ПЗУ биоса, но под NT/2000
прямого доступа физ. памяти нет 🙁
← →
Anatoly Podgoretsky ( 2002-09-05 13:06 ) [24]
raiv © (05.09.02 11:55)
ruslanyd (05.09.02 12:59)
Мы не о креках говорим
← →
Gibbel ( 2002-09-05 13:19 ) [25]
2 ravi: Профи сломает любую защиту. Вопрос в том, чтобы заставить его что-либо ломать, и чтоб этот процесс занял как можно больше времени и сил.
← →
ruslanyd ( 2002-09-05 13:38 ) [26]
Именно!
я же сказал, что сам заинтересован в способах привязки софта к железу, а для того, чтобы ее сделать надежной в какой-то степени, надо знать хотя бы простые способы ее обхода
← →
Gibbel ( 2002-09-05 14:18 ) [27]
2 ruslanyd с помощью этой технологии мы можем получить информацию _УНИКАЛЬНУЮ_ для данного устройства, в частности дисков IDE
← →
DC-AC ( 2002-09-05 14:25 ) [28]
Сегодня я поставил программу на свой винт, она благополучно к нему «привязалась». Завтра я меняю винт и пишу разработчику «типа у меня винт кирдык, Fujitsu MPG и всё такое», шли опять по новой. Послезавтра повторяется та же история. ПРЕДПОЛОЖИТЕ дальнейшие действия разработчика и меня.
← →
ruslanyd ( 2002-09-05 14:27 ) [29]
технология SMART изначально использовалась только на винтах WD
и то с определенного времени
позже они лицензировали ее другим производителям (но далеко не всем), т.е. привязка, выполненная таким образом, будет не универсальная
← →
Gibbel ( 2002-09-05 14:51 ) [30]
← →
DC-AC ( 2002-09-05 15:30 ) [31]
Мда. Всё в лучшем духе Microsoft и его XP. Им можно, а мы значит ничем не хуже. Печально всё это.
Я работаю в компьютерном сервисе, доводилось ездить на выезды к клиентам, ну не доводилось мне за 4 года встречать компа, на котором оба COM, один LPT и (как минимум) два USB были заняты.
Сорри если развожу флейм, для меня тема исчерпана, пошёл работать.
← →
ruslanyd ( 2002-09-05 17:31 ) [32]
2 Gibbel
почему 10 лет?
на винтах производства, отличного от WD, где-то 2-х годовалой давности SMART мало где присутствовал
и таких компьютеров сейчас в эксплуатации масса
← →
ruslanyd ( 2002-09-05 17:45 ) [33]
неужели на сегодня нет способа программным путем прочитать серийный номер производителя винта или матери?
← →
vasya_dvc ( 2002-09-05 22:12 ) [34]
← →
Друпи ( 2002-09-05 23:13 ) [35]
Только что родилась тупейшая идея:
привязываться к первому попавшемуся BAD-BLOCKу винта и если он «исправился», то не грузиться.
← →
DC-AC ( 2002-09-06 07:05 ) [36]
ruslanyd
>если у клиента летят каждый день винты, то это проблема клиента или производителя этих винтов
vasya_dvc
>Можешь к серийнику процессора привязаться
Эта тема уже неоднократно здесь перетиралась, по-моему примеры получения s/n винта чуть ли не на каждом углу висят бооольшими буквами.
← →
msts ( 2002-09-06 11:05 ) [37]
35 000 строк кода в скомпиленном виде
Обход лицензии программы через эмуляцию железа
Есть программа, которая покупается и устанавливается, при этом на каждом компьютере генерируется свой ключ (вероятно от железа компа). к этому ключу дается серийник, и получается, что программу можно запускать только на этом компе.
Как можно скопировать данные о системе, на которой устанавливался софт и перенести их на другой комп, чтобы программа там тоже запустилась? Иными словами, нужно съэмулировать на другом компе данные другого железа для этой программы.
Можно попробовать привязать этот софт к заранее созданной Vmware, и запускать это на любом компе
Перехватить («hook») системные вызовы (GetSystemInfo, WMI, и т.д.) и в зависимости от процесса породившего вызов отдавать реальные или фейковые данные.
акронисом тем же имидж сними и попробуй развернуть на второй машине
компы по конфе одинаковые?
Ты на экзамене сидишь?
Так то это работа, за которую люди деньги получают, но вам, избранным, все должны..
ключ генерится не по железу, а по реестру
Хватит переплачивать CATGENIE 120 за картриджи
Так уж вышло, что вчера один комментарий был на тему взлома DRM унитаза для кошек. Хитрые производители придумали классный унитаз для кошек и продают его за хорошие деньги. Но этого оказалось мало, надо подсадить людей на регулярную покупку оригинальных картриджей с моющим средством. Этот пост создан для того, чтобы бедный наивный пользователь этого унитаза не переплачивал, и не покупал готовую плату обманку с arduino nano или pro mini с прошивкой по цене 6800 рублей.
А также не покупал дорогие картриджи, в которые залито средство для дезинфекции, что используют в ветеринарных больницах. Я не предлагаю готовое устройство, не рекламирую обманки от хитрых производителей, которые хотят зарабатывать по 6500 чистой прибыли с продажи. Пост для тех, кто не умеет гуглить на английском. В рунете мало информации на эту тему. Но уверен, этот пост будет всплывать высоко по запросу в яндексе.
У меня нет этого туалета или доступа к нему. Если бы был, то пост был бы с полноценной инструкцией об обходе этой защиты. Постараюсь просто поделиться всей найденной информацией, в чем то могу ошибаться. Тема тоже касается rfid. Поехали.
У нас есть три пути решения проблемы:
1. Запись дампа нового картриджа в старую метку. По рассказам не работает. Почему то запись происходит только на понижение. Сам не проверял, ибо нет у меня таких меток. Работает с ними proxmark3.
2. Покупка нового чипа и запись в него свежего дампа. Цена на али 64 рубля на момент публикации. Этот вариант может сработать. Покупать, записывать и клеить на старый картридж.
3. Эмуляция считывателя по шине i2c. Вариант для тех, кто готов лишиться гарантии или она уже закончилась. Для эмуляции нам понадобится ардуинка за 200р. Это как раз вариант за 6800.
А вот видео инструкция как разобрать и подключить.
Добавлю от себя. При подключении обязательно вручную найти землю и плюсовой провод, на всякий случай. Замерить на них напряжение, и если надо добавить понижающий преобразователь. Вскрывать не стоит бояться.
4. Последний вариант. Взять логический анализатор, посмотреть что творится на шине i2c и написать прошивку для любого микроконтроллера, который будет эмитировать работу считывателя. В 3 варианте по идеи так и сделали.
p.s. Не стоит платить барыгам по 6800 за голую ардуинку. Не стоит платить производителю по 3000 за картридж. Если проявить немного упорства, можно самому заставить работать картриджи со своим моющим средством, а в процессе приобрести полезный опыт и навыки. В этот раз пост больше теоретический, но извиняюсь, нет в наличии унитаза и картриджей, чтобы все проверить на практике или попробовать самому допилить прошивку и посмотреть как унитаз реагирует. У кого есть в РнД такой?
p.p.s. Почему на предыдущих постах, количество сохранивших пост почти = количеству лайков? Много дизов? так вы не стесняйтесь, выражайте претензии и недовольства в комментариях. Или лайков мало? Пока это главный аргумент для написания постов на эту тему. Ну и еще общение в комментариях бывает интересно.
Объёмный виртуальный звук в любимых наушниках на любой звуковой карте. Вплоть до 7.1 + деморолик от меня
Здравствуйте уважаемые Пикабушники!
Не знаю был ли пост на эту тему, но я не нашел.
Речь пойдет о том как добиться так называемого бинаурального звучания в играх, фильмах и музыке, благодаря бесплатным OpenSource проектам на Виндовс. (Если вам понравится этот пост позже выложу инструкцию под Линукс).
Очень полезно для онлайн шутеров, позволяет получить нехилое преимущество.
Так же фильмы начинают звучать совсем по другому! А музыка при прослушивании играет как будто из колонок, из-за чего мозг не так устает при частом прослушивании.
Мой деморолики в конце поста, можете послушать их в наушниках (в колонках не работает) и решить, а нужно ли вам это.
И так что нам понадобится две программы, а точнее программа и модуль для неё.
Следуем инструкции установки, устанавливается просто (как и большинство программ в Виндовс. Будут вопросы, добро пожаловать в комментарии).
3) Скачиваем и устанавливаем программу-модуль Hesuvi (она то и дает объёмный звук).
Следуем инструкции установки, устанавливается просто (как и большинство программ в Виндовс. Будут вопросы, добро пожаловать в комментарии).
4) Настойки ОС Виндовс.
Но не расстраивайтесь, позиционирования звука как в кинотеатре у вас не будет, но звуковой эффект будет как в колонках 2.0 что неплохо для стерео музыки.
5) Настройка Hesuvi
Запускаем программу Hesuvi. Видим такое первым такое окно ка на скриншоте ниже. Это основная рабочая вкладка virtualization. Ставим справа галочки Upmix Content, или не ставим =)..
ВАЖНО: Управление эффектами производится на этой вкладке с меню-списке Common HRIRs.
Выбираем на свой вкус, лично мне нравится dh++.wav (это dolby headphone).
Переходим во вкладку Connection, видим штекеры, наживаем на них, так чтобы они загорелись синим цветом и «вставились в разъем, как на картинке ниже).
Также ниже проверяем установлено ли по умолчанию значение Visualization ниже под изображением штекеров.
Далее переходи на вкладку Addiction и ставим единственную главку как на скриншоте.
(у меня работало и без нее, но не помешает на всякий случай).
Виртуальный звук 7.1
Виртуальный звук 7.1
Если будут вопросы жду вас в комментариях!
Спасибо за внимание! Удачи!
Альтернативы продуктам Adobe в Open source
Мой топ программ для дизайна и не только)
Точка невозврата
Найти и сохранить таймкоды всех объектов на видео одним кликом или машинное обучение для видеомонтажа
Порог вхождения в видеомонтаж за последние несколько лет понизился до такой степени, что скоро «Режиссер монтажа» вымрет как профессия! Их функции все чаще на себя берут режиссеры, продюсеры, редакторы и прочие.
Этому способствует развитие монтажных систем и цифровых носителей, которые очень упростили процессы, доведя видеомонтаж до банальных «копировать», «обрезать» и «сохранить». Ушли в прошлое сложные монтажки, которые требовали определенной подготовки для пользователя в области коммутации видеооборудования и параметров кодирования.
Аналоговые Betacam-ы были вытеснены всевозможными флешками, а многочисленные кодеки пришли к единым стандартам, таким как H.264.
Новый виток развития наметился в последнее время благодаря повсеместному развитию нейронных сетей. Теперь эти технологии постепенно подбираются в видеопроизводству.
Теперь искать любые фрагменты видео очень просто
Дело в том что почти треть работы видеомонтажера заключается в рутинном поиске видеоряда из исходников, которые надо каждый раз шерстить в поиске контекстного плана под закадровый текст, по моему это не несет никакой творческой составляющей. Ну и подумал я, а что если написать соф, который будет проходится по папке с исходниками, распознавать объекты, аккуратненько записывать их в БД. Далее, в момент поиска видео фрагментов для так называемой «джинсы», вводится поисковое слово, например «Солнце», и все что находится каким то образом передается в монтажную систему.
Сказано-сделано, через какое то время я выложил приложение Videoindex в Mac App Store.
Моя программа предлагает указать путь к папке с исходниками, выбрать одну из двух встроенных в приложение обученных моделей Core ML (или даже использовать свои личные модели, если такие имеются) и запустить сканирование вашей библиотеки видео.
Она будет распознавать объекты на видео и записывать информацию о пути к конкретному файлу и таймкоду найденного обьекта. После завершения сканирования, можно будет воспользоваться поиском, который выдаст все найденные фрагменты, соответствующие поисковому запросу.
Весь найденный список фрагментов можно будет экспортировать в формат XML, который как раз используется для переноса сохраненных секвенций с файлами и поддерживается практически всеми современными монтажными программами.
В итоге буквально в пару кликов все, что вы искали, окажется аккуратно выложено на секвенции в вашем проекте. То, что раньше могло занять буквально половину дня, сейчас займет пару минут.
Похожая (если не та же самая) технология распознавания используется в iOS для распознавания объектов на ваших фото, и облегчает навигацию по альбомам в iPhone.
Базовые модели машинного обучения используются для распознавания видеообъектов. Приложение поставляется с двумя моделями — YOLOv3 и Resnet50. Вы можете использовать их вместе и по отдельности, а также как свои собственные файлы моделей Core ML.
Управление моделями производится в окне настроек где доступныаж три слота для загрузки моделей. Первый слот предназначен для модели YOLOv3, второй — для Resnet50, а третий слот доступен для загрузки ваших собственных файлов модели Core ML.
Videoindex активно отслеживает состояние каталогов, которые вы добавили для сканирования. То есть, если вы удалите или добавите файлы в папку, указанную в программе, эти изменения будут сохранены в базе данных Videoindex при следующем запуске. Если появляются новые файлы, статус просканированной папки изменится на «Еще не просканирован», и вы сможете сканировать новые видеофайлы.
Конечно, нужно учитывать что качество индексации и поиска напрямую зависит от качества обученных моделей, которые содержат информацию о распознаваемых объектах. Но файлов моделей с каждым днем становится все больше, организуются сообщества, где доступны для скачивания файлы моделей в различных форматах, таких как Kaggle, или просто набор картинок – Dataset, которые используются для создания этих самых обученных моделей.
А пока предлагаю скачать Videoindex в Mac App Store и попробовать. На Mac с процессорами M1 программа работает особенно эффективно, так как в этих чипах используются ML-акселераторы. Хотелось бы надеяться, что со временем, запустив последний Adobe Premier, мы увидим всего лишь одну кнопку с надписью «Cмонтировать» и все. 🙂
Интернет радио и небольшой хак
Навеяно постом. И что-то вспомнилось.
Но с приходом HTML5 браузеры научились не только в музыку, а еще видео, 3д и кучу всего. Теперь чтобы послушать радио с любой точки мира нужно всего пару кликов. Все пляски с ссылками ушли в прошлое.
А теперь хак, как выдрать радио из браузера и вставить его себе в плеер.
Для этого нужен Chrome. Открываем сайт с музыкой и нажимаем F12.
Может есть трюки попроще, но я научился только так и только с Хромом.
На смартфоне тоже все работает, почему бы и нет.
Золотой софт: какие программы стояли на компьютерах нулевых
Не одними только шутерами и RPG жили геймеры прошлого. Не менее интересно и то, каким софтом они пользовались
Мультимедиа и кодеки
В первую очередь все это выливалось в установку всевозможных пакетов кодеков — причем чем свежее, тем лучше. Обычно в ход шел софт, публикуемый тематическими журналами на своих CD-приложениях. Однако установить кодек — это еще полдела. Необходимо было подобрать наиболее удобный плеер для проигрывания музыки и видео. И вот здесь уже выбор был велик. Обычно в ход шла связка из Winamp и одного-двух видеопроигрывателей по вкусу. Лично у автора этих строк на системе в середине нулевых стояла связка из творения Nullsoft и DivX Player.
Winamp был удобен тем, что не сжирал кучу ресурсов системы, крайне редко глючил и поддерживал кучу скинов. DivX Player же… ну, он просто первым попался под руку. На его месте мог быть хоть штатный проигрыватель из пакета какой-нибудь Nero — главное, чтобы он умел воспроизводить все нужные файлы. Кто-то на этом месте наверняка спросит, а чем же автору этих строк не угодил Windows Media Player? Все просто: в старых версиях «Винды» эта программа была очень «тяжелой», нередко глючила и не отличалась юзерфрендли интерфейсом. Поэтому при возможности абсолютно все старались заменить этот проигрывать на что-нибудь более удобное.
Интернет и софт для него
Следующим по важности пунктом был интернет. И тут… начинались танцы с бубном. Дело в том, что в середине нулевых большинство людей все еще сидело на медленном Dial-up-доступе — редко на ADSL. Все это выливалось в целый ворох проблем. Поэтому давайте я просто опишу путь, который проделывал среднестатистический юзер при освоении Всемирной паутины. Итак, готовы?
Первым делом требовалось заменить браузер. Штатный Internet Explorer середины нулевых и чертям на закуску не годился: страдал от проблем с безопасностью, не умел создавать вкладки, глючил и тормозил. Альтернатив «Ослу», впрочем, было не так много — по сути, всего две: либо Opera, либо Firefox.
Вторым по важности пунктом становился почтовый клиент. Опять же, на вкус и цвет. Кто-то предпочитал The Bat, кто-то — еще какие альтернативы. Суть была проста: штатная программа для чтения электронной почты работала просто отвратительно, ее надо было менять как можно быстрее. Разумеется, существовали почтовые клиенты в вебе — тот же Mail.ru или Yandex — но… вы же помните про скорость соединения? Порой выкачать письма в память компьютера было гораздо быстрее и в разы надежнее, чем ждать, пока глючный веб-интерфейс соизволит загрузиться.
Когда проблемы с почтой и браузером оказывались решены, наступал момент устанавливать пакет софта для скачивания файлов. В первую очередь, конечно, речь шла о менеджерах закачки типа Download Master или Net Transport. Зачем? Да просто в те годы на форумах многие нужные файлы — музыку, видео, софт — распространяли через файлообменники. Штатные средства браузеров (в особенности это касалось «Осла») зачастую не позволяли нормально останавливать загрузку с последующим ее возобновлением. А менеджеры докачки умели это делать — по сути, они были своего рода аналогами торрент-треккеров, только качали файлы напрямую с сервера, а не с компьютера другого пользователя.
Следующими на очереди шли клиенты для пиринговых сетей. И снова эта технология, если совсем упрощать, чем-то напоминала старые добрые торрент-трекеры. Пользователи, объединенные одним клиентом, открывали на своем жестком диске определенный участок, который был доступен всем участникам комьюнити. В специально отведенной папке могли лежать фильмы, музыка, обои для рабочего стола и прочие ништяки. И клиент — например, незабвенный eDonkey — позволял проинспектировать машины пользователей и выкачать то, что заинтересовало лично вас.
Наконец, ближе к концу нулевых получили распространения торрент-трекеры, и на машинах пользователей все чаще стали появляться специализированные клиенты для работы с ними. Например, uTorrent. Описывать работу этих программ, полагаем, не стоит — технология жива и по сей день. Упомянем, разве что, что некоторые любители халявы еще устанавливали ftp-клиент. Однако чаще всего люди пользовались функционалом какого-нибудь аналога «Проводника» — тот же Total Commander, который умел работать с искомым протоколом.
Следующий комплект софта в обязательном порядке устанавливали себе все любители не совсем легального гейминга и просто желающие что-либо записывать на компакт-диски разных форматов. Разумеется, речь идет о всевозможных эмуляторах CD-привода и программах, которые позволяли беззастенчиво нарезать образы на болванки. Выбор таких приложений был максимально широк, но чаще всего геймеры останавливались на связке из Alcohol 120 и Daemon Tools. Эти две «софтины» решали большую часть возникающих проблем: от необходимости сделать образ диска до эмуляции его в системе или записи на чистый носитель. Порой в качестве аналога «Алкоголю» использовался программный комплекс Nero.
Стоит отметить, что и Daemon Tools, и весь другой специализированный софт использовался не только для дел пиратских. Хватало пользователей, которые просто создавали резервную копию нужного диска. Например, лицензионного DVD-фильма, чья болванка, зараза такая, была поцарапана знакомым, которому этот фильм дали посмотреть на выходные. В общем, максимально универсальный набор.
Разумеется, мы не про клиенты «Телеграма» или любой другой современной программы. В нулевые выбор мессенджеров был не то чтобы широк. Для приватных бесед в основном использовали ICQ — для всего остального отлично подходили чаты (кто помнит ту же «Кроватку», а, признавайтесь?!) и форумы. Разумеется, у «Аськи» существовали аналоги — тот же MSN Messenger — однако по факту весь ру-сегмент плотно сидел на ICQ. Выбор на самом деле был следующим: какое приложение для «Аськи» установить.
Можно было взять официальный клиент, однако он с каждым годом становился все «тяжелее» и глючнее. В ход шли аналоги — например, QIP или Miranda. Первое приложение было максимально дружелюбно к пользователям — раз поставил, быстро настроил и пользуйся.
«Миранда» за счет широты настроек больше подходила для продвинутых пользователей. Более того, использовать стандартный клиент для «Аськи» в какой-то момент стало считаться дурным тоном и признаком ламерства. «Кому все эти свистоперделки вообще нужны?» — вот примерно так рассуждало интернет-сообщество.
Ближе к 2009 году массовое распространение в РФ получил Skype. Если прежде его использовали преимущественно пранкеры для анонимных звонков и записи разговоров с жертвами (кто помнит спидовую бабку и Рака, кстати?!), то в конце нулевых «Скайп» облюбовали и простые пользователи. Строго говоря, эта программа не была мессенджером в классическом понимании этого слова, но она позволяла создавать общие чаты, что отлично подходило для синхронизации рабочих процессов. Обсудил что-то в текстовом режиме, созвонился с командой — красота.
Ну и, конечно же, в разговоре про мессенджеры нельзя не упомянуть « mail.ru Агент». Гибрид почтового ящика и болталки от отечественного производителя активно использовало молодое поколение — особенно симпатичные девчонки. В общем-то, то была основная причина, почему это произведение программного искусства было установлено на компьютере каждого второго представителя сильной половины человечества из РФ и стран СНГ. Идеальная замена сайтам знакомств, которые в какой-то момент превратились в сервис для поиска партнера на час.
Без него никуда. Среднестатистический геймер хранил на своем жестком диске комплект из сразу нескольких программ. Во-первых, конечно же, в отдельной папке лежали трейнеры для любимых игрушек. Далее по списку шла база кодов CheMax, последняя версия ArtMoney, а также великий и ужасный Fraps. А что, вы думали, что видео записывать и скриншоты снимать — это веяние последних лет? Не-а, еще в нулевые форумы были завалены картинками из игр.
Особую группу геймерского софта занимали всевозможные редакторы уровней. С помощью них геймеры создавали карты для любимых видеоигр — например, для Heroes of Might & Magic 3. В какой-то момент эта деятельность стала настолько популярна, что нельзя было зайти на тематический форум и не нарваться на просьбу «ребят, посмотрите, пожалуйста, карту, которую я создал». Стоит ли говорить, что большая часть этого творчества и яйца выеденного не стоила?
Разумеется, приведенными выше примерами не ограничивался весь софт, который юзали пользователи нулевых. Кто-то рисовал мультики в Macromedia Flash, другие — конвертировали видеофайлы для просмотра на PSP. Мы лишь попытались очертить общую картину. Все остальное — это частности.
Например, автор этих строк как-то при помощи специализированного редактора переводил интерфейс полюбившегося плеера. Не потому, что надо — просто хотелось. Были люди, кто монтировали FMV-видеоролики на тему любимых jRPG или осваивали 3D-моделирование в ZBrush. И это не считая кучи ПО от энтузиастов — например, отличного сборника аккордов песен группы «Кино», который пользовался большой популярностью в сети тех лет. Ну и, конечно же, стандартный набор из Microsoft Office, Adobe Photoshop 7.0 и Adobe Acrobat никто не отменял. Равно как WinRar и десятки других мелких софтин и утилит.
Ну и универсальный диск)))
Мамкин кулхацкер
Лохматые девяностые, только только компутеры, и тут вызывает шеф. Вопрос ребром «эт чё за хня?» И предъявляет листик из принтера, по диагонали которого жырно надпись «demo version». Отвечаю, все, типа, заплатить надо., электричество не резиновое. В смысле активировать софт.
В ответ «тыжпрограммист!» «поченить, шоб роботало, и шоб этих надписей не было!»
Нейросеть «оживила» Римских императоров
Для создания своих портретов Дэниел использовал комбинацию различных программ и источников, включая статуи, монеты и картины. Он даже исследовал отдельных правителей, чтобы выяснить, где они родились и их происхождение.
Его основным инструментом была программа под названием ArtBreeder, которая использует метод машинного обучения, называемый генеративной-состязательной сетью (GAN), для управления изображениями и добавления в них других элементов.
Художественные интерпретации по своей природе больше относятся к искусству, чем к науке, но я предпринял попытку сопоставить их внешний вид (волосы, глаза, этническая принадлежность и т.д.) с историческими текстами и монетами.
Ученые хвалят его портреты за реалистичность, и Дэниел теперь беседует с профессорами истории и аспирантами, которые дают ему советы по определенным аспектам, например, по тону кожи.
Вместо того, чтобы просто принять исторический бюст как данность, Даниил изменил черты лица императора, чтобы он казался более реалистичным для человека его возраста. На разработку каждого из них у него ушел целый день.
Дэниэл сказал, что изначально он сделал 300 плакатов, которые он рассчитывал продать в течение года, но когда они были распроданы за три недели, он понял, что его работа вызывает значительный интерес.
Даниэль добавил, что проект дал ему возможность оценить по-новому историю Римской империи, и теперь он рассматривает возможность посетить Рим.
Что находится между идеей и кодом? Обзор 14 диаграмм UML
Аве Кодер! Тебе пришла крутая идея продукта, но ты не хочешь увязнуть в коде и потерять целостную картинку из-за мелких деталей? Ты вот-вот присядешь за то, что крякнул корпоративный сервер и тебе нужно набить что-то крутое и айтишное?
UML, как мы знаем, является стандартизированным языком моделирования, состоящим из интегрированного набора диаграмм, разработанных, чтобы помочь разработчикам систем и программного обеспечения в определении, визуализации, конструировании и документировании артефактов программных систем, а также, к примеру, для бизнес-моделирования.
UML представляет собой набор лучших инженерных практик, которые доказали свою эффективность в моделировании больших и сложных систем и является очень важной частью разработки объектно-ориентированного программного обеспечения.
UML использует в основном графические обозначения, чтобы выразить дизайн программных проектов. Использование UML помогает проектным группам общаться, изучать потенциальные проекты и проверять архитектурный дизайн программного обеспечения.
Для тех, кому лень читать и кто предпочитает смотреть и слушать: https://youtu.be/0I9aIP5gKCg
Основные цели дизайна UML:
Предоставить пользователям готовый, выразительный язык визуального моделирования, чтобы они могли разрабатывать и обмениваться осмысленными моделями.
Обеспечить механизмы расширяемости и специализации для расширения основных понятий.
Быть независимым от конкретных языков программирования и процессов разработки.
Обеспечить формальную основу для понимания языка моделирования.
Поощрять рост рынка объектно-ориентированных инструментов.
Поддержка высокоуровневых концепций разработки, таких как совместная работа, структуры, шаблоны и компоненты.
Интегрировать лучшие практики.
Структурные диаграммы показывают статическую структуру системы и ее частей на разных уровнях абстракции и реализации, а также их взаимосвязь. Элементы в структурной диаграмме представляют значимые понятия системы и могут включать в себя абстрактные, реальные концепции и концепции реализации.
Диаграммы поведения показывают динамическое поведение объектов в системе, которое можно описать, как серию изменений в системе с течением времени.
Теперь пару слов о каждой из них
Три наиболее важных типа отношений в диаграммах классов (на самом деле их больше), это:
— Ассоциация, которая представляет отношения между экземплярами типов, к примеру, человек работает на компанию, у компании есть несколько офисов.
— Наследование, которое имеет непосредственное соответствие наследованию в Объектно-Ориентированном дизайне.
— Агрегация, которая представляет из себя форму композиции объектов в объектно-ориентированном дизайне.
На языке унифицированного моделирования диаграмма компонентов показывает, как компоненты соединяются вместе для формирования более крупных компонентов или программных систем.
Она иллюстрирует архитектуры компонентов программного обеспечения и зависимости между ними.
Эти программные компоненты включают в себя компоненты времени выполнения, исполняемые компоненты, а также компоненты исходного кода.
Диаграмма развертывания помогает моделировать физический аспект объектно-ориентированной программной системы. Это структурная схема, которая показывает архитектуру системы, как развертывание (дистрибуции) программных артефактов.
Артефакты представляют собой конкретные элементы в физическом мире, которые являются результатом процесса разработки.
Диаграмма моделирует конфигурацию времени выполнения в статическом представлении и визуализирует распределение артефактов в приложении.
В большинстве случаев это включает в себя моделирование конфигураций оборудования вместе с компонентами программного обеспечения, на которых они размещены.
Статическая диаграмма объектов является экземпляром диаграммы класса; она показывает снимок подробного состояния системы в определенный момент времени. Разница в том, что диаграмма классов представляет собой абстрактную модель, состоящую из классов и их отношений.
Она позволяет отображать различные виды системы, например, легко смоделировать многоуровневое приложение.
Диаграмма составной структуры
Диаграмма составной структуры аналогична диаграмме классов и является своего рода диаграммой компонентов, используемой в основном при моделировании системы на микроуровне, но она изображает отдельные части вместо целых классов. Это тип статической структурной диаграммы, которая показывает внутреннюю структуру класса и взаимодействия, которые эта структура делает возможными.
Диаграмма профилей позволяет нам создавать специфичные для домена и платформы стереотипы и определять отношения между ними. Мы можем создавать стереотипы, рисуя формы стереотипов и связывая их с композицией или обобщением через интерфейс, ориентированный на ресурсы. Мы также можем определять и визуализировать значения стереотипов.
Диаграмма прецедентов описывает функциональные требования системы с точки зрения прецедентов. По сути дела, это модель предполагаемой функциональности системы (прецедентов) и ее среды (актеров).
Прецеденты позволяют связать то, что нам нужно от системы с тем, как система удовлетворяет эти потребности.
Диаграммы деятельности представляют собой графическое представление рабочих процессов поэтапных действий и действий с поддержкой выбора, итерации и параллелизма.
Они описывают поток управления целевой системой, такой как исследование сложных бизнес-правил и операций, а также описание прецедентов и бизнес-процессов.
В UML диаграммы деятельности предназначены для моделирования как вычислительных, так и организационных процессов.
Диаграмма последовательности моделирует взаимодействие объектов на основе временной последовательности. Она показывает, как одни объекты взаимодействуют с другими в конкретном прецеденте.
Как и диаграмма последовательности, диаграмма коммуникации также используется для моделирования динамического поведения прецедента. Если сравнивать с Диаграммой последовательности, Диаграмма коммуникации больше сфокусирована на показе взаимодействия объектов, а не временной последовательности. На самом деле, диаграмма коммуникации и диаграмма последовательности семантически эквивалентны и могут перетекать одна в другую.
Диаграмма обзора взаимодействия
Диаграмма обзора взаимодействий фокусируется на обзоре потока управления взаимодействиями. Это вариант Диаграммы деятельности, где узлами являются взаимодействия или события взаимодействия. Диаграмма обзора взаимодействий описывает взаимодействия, в которых сообщения и линии жизни скрыты. Мы можем связать «реальные» диаграммы и добиться высокой степени навигации между диаграммами внутри диаграммы обзора взаимодействия.
Зачем в UML столько диаграмм?
Причина этого заключается в том, что можно взглянуть на систему с разных точек зрения ведь в разработке программного обеспечения будут участвовать многие заинтересованные стороны, такие как: аналитики, конструкторы, кодеры, тестеры, контроль качества, клиенты, технические авторы.
Все эти люди заинтересованы в различных аспектах системы, и каждый из них требует разного уровня детализации.
Например, кодер должен понимать проект системы и уметь преобразовывать проект в код низкого уровня.
Напротив, технический писатель интересуется поведением системы в целом и должен понимать, как функционирует продукт.
UML пытается предоставить язык настолько выразительным образом, что все заинтересованные стороны могут извлечь выгоду, как минимум из одной диаграммы UML.
АНБ открыло доступ к одному из своих инструментов для реверс-инжиниринга
В настоящее время инструментарий Ghidra доступен только на официальном сайте ведомства.
Агентство национальной безопасности (АНБ) США обнародовало инструмент под названием Ghidra, который ведомство уже в течение 10 лет использует для проведения обратного инжиниринга. В настоящее время программа доступна только на официальном сайте АНБ, однако агентство намерено в ближайшем будущем разместить исходный код инструмента на GitHub.
Проект активно применяется спецслужбами США для выявления закладок, анализа вредоносного кода, изучения различных исполняемых файлов и разбора скомпилированного кода. Ghidra обладает сходными возможностями с расширенной версией проприетарного пакета IDA Pro, но рассчитан исключительно на анализ кода и не содержит отладчик.
Код Ghidra написан на языке Java, инструмент включает графический интерфейс и может работать на устройствах под управлением Windows, macOS и Linux. Для работы интерфейса требуется наличие Java Development Kit (версия 11 или более поздние).
Американские власти разрешили взламывать смартфоны и автомобили для ремонта
Бюро авторского права США внесло изменения в Закон об авторском праве в цифровую эпоху (DMCA), разрешающие обходить цифровую защиту смартфонов, умных колонок, автомобилей и других устройств для их ремонта и диагностики. Кроме того, бюро разрешило взламывать игры, если их разработчик перестал предоставлять сервера, необходимые для их работы, а также внесло множество других изменений.
В последние годы в потребительской электронике наметился четкий тренд на усложнение ремонта устройств. Отчасти это происходит из-за аппаратных ограничений, к примеру, из-за припаянных к материнской плате модулей оперативной памяти и SSD, или даже цельного корпуса, который в принципе не предназначен для вскрытия без нанесения сильного вреда. Но помимо этого часть производителей, к примеру, Apple, применяет программные ограничения, препятствующие ремонту вне официальных сервисных центров. Несмотря на то, что технические средства обхода этих ограничений есть, как правило, они противоречат лицензии и могут быть расценены судом как нарушение.
В США технические средства защиты авторских прав (DRM), которые в том числе применяются для усложнения ремонта, регулируются принятым 20 лет назад Законом об авторском праве в цифровую эпоху (DMCA). Одна из особенностей закона заключается в том, что граждане могут раз в три года подавать петиции с просьбой добавить в закон исключения. В 2018 году этой возможностью воспользовались несколько энтузиастов и юристов из Фонда электронных рубежей (EFF), Стенфордского университета, компании iFixit и других организаций.
После консультаций со специалистами члены Бюро авторского правда приняли множество изменений в DMCA и опубликовали на сайте правительства 22-страничный документ. Пожалуй, главным изменением является то, что граждане могут обходить программную защиту смартфонов и бытовой техники, если это необходимо для того, чтобы она работала в соответствии со своими изначальными спецификациями. Кроме того, эти действия в интересах человека может легально выполнять и третье лицо, например, компания, занимающаяся ремонтом смартфонов. Помимо смартфонов и бытовой техники теперь обход программных ограничений для ремонта легален для всех моторизированных наземных машин. Также бюро расширило приянятое в 2015 году разрешение на «джейлбрейкинг» на умные колонки. Наконец, граждане могут разблокировать «привязанные» к оператору смартфоны еще до их активации.
Часть изменений также коснулась видеоигр. Бюро признало легальным обход цифровой защиты в случаях, когда разработчик перестал поддерживать сервер, необходимый для нормальной работы игры. Правда, это исключение сделано в целях сохранения игр как культурной ценности, поэтому оно будет распространяться только на музеи, архивы и подобные им учреждения.