Proteus: вопросы и ответы

Обсуждаем цифровые устройства...
Ответить
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1486
Зарегистрирован: Вс май 13, 2012 00:01:54

Сообщение Ariadna-on-Line »

У всех длинных предметов -два конца. Задний называется хвостом, а передний -х...м. Лучше уж плестись в хвосте у прогресса, чем сидеть на х... у производителей софта и харда. Согласитесь - больно много вы поимели пользы от 64-разрядного железа/софта по сравнению с предыдущими версиями ? Не будем брать во внимание игроманов и биткоинщиков - это особый тупиковый мир. А нормальному технарю оно надо ?
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 77
Зарегистрирован: Пт авг 29, 2008 21:56:27
Откуда: Российская Федерация

Сообщение Nemo78 »

Ariadna-on-Line писал(а): Чт май 21, 2026 20:03:47 У всех длинных предметов -два конца. Задний называется хвостом, а передний -х...м. Лучше уж плестись в хвосте у прогресса, чем сидеть на х... у производителей софта и харда. Согласитесь - больно много вы поимели пользы от 64-разрядного железа/софта по сравнению с предыдущими версиями ? Не будем брать во внимание игроманов и биткоинщиков - это особый тупиковый мир. А нормальному технарю оно надо ?
Совершенно согласен.
А так сравнивал этот насквозь багнутый 64-х битный протеус с 32-х битным при симуляции одной и той же цифровой схемы в надежде увидеть непревзойдённую скорость и производительность (как заявлено в описании) - результат совершенно одинаковый, к тому же памяти 64-х битный расходует больше. Классики давно уже писали, что нет такого преступления, которое не могло бы быть оправдано капиталом. Что тут уж говорить об "безобидном" обмане, который стал нормой в западном мире.
Посему наверно опишу здесь в скором будущем механизм лицензирования, который используется в протеусе, исключительно в образовательных целях.
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 87
Зарегистрирован: Ср дек 26, 2007 11:21:30

Сообщение Kabron »

Nemo78 писал(а): Сб май 30, 2026 22:25:02
Посему наверно опишу здесь в скором будущем механизм лицензирования, который используется в протеусе, исключительно в образовательных целях.
А вдруг они осмелятся сменить?
Контактная информация:
Сверлит текстолит когтями
Сообщения: 1159
Зарегистрирован: Ср янв 02, 2013 21:32:54

Сообщение Croma »

Значит придется сменить описание.
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Аватара пользователя
Сообщения: 77
Зарегистрирован: Пт авг 29, 2008 21:56:27
Откуда: Российская Федерация

Сообщение Nemo78 »

Kabron писал(а): Вс май 31, 2026 00:30:39
Nemo78 писал(а): Сб май 30, 2026 22:25:02
Посему наверно опишу здесь в скором будущем механизм лицензирования, который используется в протеусе, исключительно в образовательных целях.
А вдруг они осмелятся сменить?
И такое может быть. Но мне думается что самой последней с наименьшим количеством багов и быстрой в плане симуляции микроконтроллеров была версия 8.12, во всех версиях после прослеживается нарастающая тенденция к деградации. Потому не сильно пугает такая вероятность. И потом учитывая цену за которую продаётся лицензия и количество уже купивших её скорее поменяется не механизм лицензирования, а способ защиты этого механизма, что в общем-то один раз уже было после того как наш соотечественник понял механизм и написал генератор лицензии.
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 77
Зарегистрирован: Пт авг 29, 2008 21:56:27
Откуда: Российская Федерация

Сообщение Nemo78 »

Часть 1. Глава 1. Идентификаторы.

Содержимое лицензионного файла условно можно разделить на две части. Первая часть содержит сведения о обладателе лицензии и сроке её действия, вторая часть определяет функционал с помощью идентификаторов. Идентификаторов может быть один или несколько в зависимости от оплаченного функционала. Вот список функций и их идентификаторов для восьмой версии:

Proteus VSM for MC8051 - 10000100
Proteus VSM for 8086 - 10001A00
Proteus VSM for Arduino AVR - 10000800
Processor Bundle - 20000000
Proteus VSM for Arduino STM - 10001C00
Proteus VSM for ARM7 - 10001302
Proteus VSM for AVR - 10000800
Proteus VSM for Cortex-M0 - 10001E00
Proteus VSM for Cortex-M3 - 10001C00
Proteus VSM for Cortex-M4 - 10002000
Proteus VSM for MSP430 - 10001500
Proteus VSM for PIC10 - 10001104
Proteus VSM for PIC12 - 10001100
Proteus VSM for PIC16 - 10000000
Proteus VSM for PIC18 - 10001200
Proteus VSM for PIC24 - 10001600
Proteus VSM for dsPIC33 - 10001700
Proteus VSM for PICAXE - 10001900
Proteus VSM for PICCOLO - 10001B00
Visual Designer for Arduino - 60000001
Visual Designer for Raspberry Pi - 10001F00
IoT Builder - 60000002
Advanced Simulation Features - 403
Proteus PCB Design Starter Kit - 500
Proteus PCB Design Level 1 - 501
Proteus PCB Design Level 1+ - 502
Proteus PCB Design Level 2 - 503
Proteus PCB Design Level 2+ - 504
Proteus PCB Design Level 3 - 505
Последний раз редактировалось Nemo78 Пт июн 19, 2026 18:48:46, всего редактировалось 4 раза.
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 77
Зарегистрирован: Пт авг 29, 2008 21:56:27
Откуда: Российская Федерация

Сообщение Nemo78 »

Часть 1. Глава 2. Структура лицензионного файла.

Информационная часть лицензии (первая часть) имеет следующую структуру (это демонстрационный пример только для описания):

CUSTOMER=17-56753-440
TSTAMP=20250230222202
USERS=1
NAME=Grassington North Yorkshire
COMPANY=Labcenter Electronics Ltd
FAMILY=Professional
EXPIRY=01/01/2031
KEY=89009502050067E999DADB0BFA500C6278690101F35C04003654F58F52B2556E
KEY=160CFB7A5D6AD0AED626BFF6AAE7813D812DD69BD3320B1C05599E92AA85BFAD
KEY=F67BA06DF630E4FA8787B0DF731BBF4040BF79F3D442FC0AD34CCABC06B798DE
KEY=5EF1376E96A9F4D06D924FF1057ABD338D4007DDDA08EA1906BAA6964D17581F
KEY=B43212CB0295D6B2C55FAF0CD74D322269594932A089F6AB

Здесь:
CUSTOMER - номер лицензии, присваивается производителем при покупке;
TSTAMP - числовое представление момента времени создания данной части лицензии;
USERS - число пользователей лицензии;
NAME - имя покупателя лицензии;
COMPANY - организация покупателя лицензии
FAMILY - тип лицензии, в ранних версиях было Lite или Professional
EXPIRY - дата окончания лицензии
KEY - это специальным образом рассчитанный ключ (как он формируется будет рассказано в следующих главах).

Идентификационная часть лицензии (вторя часть) имеет следующую структуру (это демонстрационный пример только для описания):

PRODUCT=17-56753-440
TSTAMP=20250230223452
CODE=00000400
DESC=Proteus VSM
ORDER=02-20933
KEY=89009502050067E99CDC61D3D7208CABEFEF0101EE20040031D97E6B098E7E8C
KEY=96E5FF3DFA45FF6F99E6C5521AC267796B793CBDF7F48A4BDC3AEA00CB6751AB
KEY=D4E148467514BDCE00EAC23D80A5C63C02BA485E7DB067D7A1449525A7213734
KEY=14A50A669B77EF0894C53200348BE319F101C75D57A3D4A543CE92635744DCD4
KEY=C0F020FB1DDABB4536225C7EA0777721D0A225EB019687C5

Здесь:
PRODUCT - соответствует номеру лицензии;
TSTAMP - числовое представление момента времени создания данной части лицензии;
CODE - идентификатор функции;
DESC- описание функции;
ORDER - номер ордера;
KEY - это специальным образом рассчитанный ключ (как он формируется будет рассказано в следующих главах).
Открыл глаза
Аватара пользователя
Сообщения: 77
Зарегистрирован: Пт авг 29, 2008 21:56:27
Откуда: Российская Федерация

Сообщение Nemo78 »

Часть 1. Глава 3. Ключ.

Ключ представляет собой последовательность из 152 байт, первые 24 байта - это своего рода служебная информация, оставшиеся 128 байт - это ни что иное как цифровая подпись содержимого лицензии.
В данном случае цифровая подпись создана для строки, составленной из значений параметров CUSTOMER, TSTAMP, USERS, NAME, COMPANY, FAMILY, EXPIRY. Для этой строки вычислен хеш по алгоритму MD5, а полученное значение хеша зашифровано алгоритмом RSA. Результат шифрования - это и есть цифровая подпись. Не трудно догадаться что длина ключа шифрования составляет 1024 бит (128 байт).
При запуске программы сначала проверяется служебная информация ключа, а за тем выполняется проверка цифровой подписи. И если обнаруживается, что цифровая подпись не соответствует данным, лицензия сразу же признаётся недействительной. Таким образом попытка использовать легальный лицензионный файл с истёкшим сроком действия и изменённым значением EXPIRY ни к чему не приведёт.

Значение байт служебной информации ключа исследовано не полностью. Вот для примера служебная часть двух ключей:

89 00 95 02 05 00 64 36 5B 70 DB 0B FA 50 0C 62 78 69 01 01 AD E0 04 00
89 00 95 02 05 00 3A 01 90 4E 0C A8 0F 12 44 17 68 4F 01 01 0A E2 04 00

Первые 6 байт у них совпадают (предположительно это какие-то идентификаторы) . Следующие 4 байта - это закодированная метка времени . Значение следующих десяти бай неизвестно, но видно что они заканчиваются одинаковой последовательностью 01 01. Следующие два байта - это первые два байта рассчитанного значения хеша данных лицензии . Последние два байта - это предположительно размер данных цифровой подписи (HEX 400 = DEC 1024).

Чтобы выполнить проверку цифровой подписи само собой нужен публичный ключ. И он имеется в недрах программы и его не трудно от туда извлечь или заменить. И казалось бы, зная всё это, можно соорудить свой лицензионный файл, который будет воспринят программой как легальный. Но не тут-то было. В программу встроен механизм проверки целостности файла с использованием цифровой подписи по аналогии с цифровой подписью лицензии, но немного сложней на определённом этапе. Об этом в следующей части.
Поставщик валерьянки для Кота
Сообщения: 2194
Зарегистрирован: Вс ноя 15, 2009 23:13:59
Откуда: Харьков

Сообщение watchmaker »

Существует ли модель ATmega328PB (именно B!) для Proteus 8?
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 77
Зарегистрирован: Пт авг 29, 2008 21:56:27
Откуда: Российская Федерация

Сообщение Nemo78 »

Часть 1. Глава 4. Итоги.

Итак, файл лицензии - это набор параметров, их значений и цифровая подпись. Значение параметров может быть любое, за исключением значений параметра CODE (его наличие и значение проверяется при запуске программы, при запуске симуляции, при выполнении автоматической разводки дорожек и т.д. и т.п.), EXPIRY и TSTAMP. Цифровая подпись - это служебные данные + зашифрованный RSA алгоритмом MD5 хеш строки, составленной из значений параметров. RSA шифрование должно быть выполнено приватным ключом, расшифровка публичным ключом. Поскольку приватный и публичный ключ генерируются парой, существующий публичный ключ в программе должен быть изменён. Длина ключа 1024 бита.
Последний раз редактировалось Nemo78 Чт июл 02, 2026 19:54:52, всего редактировалось 5 раз.
Открыл глаза
Аватара пользователя
Сообщения: 77
Зарегистрирован: Пт авг 29, 2008 21:56:27
Откуда: Российская Федерация

Сообщение Nemo78 »

watchmaker писал(а): Сб июн 27, 2026 21:23:08 Существует ли модель ATmega328PB (именно B!) для Proteus 8?
Нет.
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1351
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

Если у вас желтый текст на розовом фоне нечитаем,просто выделите его.
Контактная информация:
Родился
Сообщения: 7
Зарегистрирован: Пт сен 05, 2008 20:43:30

Сообщение woroba »

Не активен параметр Exclude from Current variant, в свойствах компонента. Как исправить?
Открыл глаза
Аватара пользователя
Сообщения: 77
Зарегистрирован: Пт авг 29, 2008 21:56:27
Откуда: Российская Федерация

Сообщение Nemo78 »

woroba писал(а): Пт июл 03, 2026 11:52:28 Не активен параметр Exclude from Current variant, в свойствах компонента. Как исправить?
Вам нужно ознакомится с главой Assembly Variants раздела Design Verification из справочной документации Proteus Schematic Tutorial.
Ответить

Вернуться в «Цифровая техника»