<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Guardant &mdash; Перенос всей логики в ключ]]></title>
		<link>https://forum.guardant.ru/topic/164/</link>
		<atom:link href="https://forum.guardant.ru/feed/rss/topic/164/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Перенос всей логики в ключ».]]></description>
		<lastBuildDate>Thu, 29 Mar 2012 12:30:43 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Перенос всей логики в ключ]]></title>
			<link>https://forum.guardant.ru/post/808/#p808</link>
			<description><![CDATA[<div class="quotebox"><cite>laby пишет:</cite><blockquote><div class="quotebox"><cite>Denis пишет:</cite><blockquote><p>Как движется проект?</p></blockquote></div><p>Да пока пауза - появились другие неотложные проекты, возобновлю - напишу</p></blockquote></div><p>У меня есть ещё пара идей, когда проект станет актуальным, я их напишу.</p>]]></description>
			<author><![CDATA[null@example.com (Denis)]]></author>
			<pubDate>Thu, 29 Mar 2012 12:30:43 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/808/#p808</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перенос всей логики в ключ]]></title>
			<link>https://forum.guardant.ru/post/802/#p802</link>
			<description><![CDATA[<div class="quotebox"><cite>Denis пишет:</cite><blockquote><p>Как движется проект?</p></blockquote></div><p>Да пока пауза - появились другие неотложные проекты, возобновлю - напишу</p>]]></description>
			<author><![CDATA[null@example.com (laby)]]></author>
			<pubDate>Wed, 28 Mar 2012 14:05:00 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/802/#p802</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перенос всей логики в ключ]]></title>
			<link>https://forum.guardant.ru/post/798/#p798</link>
			<description><![CDATA[<p>Как движется проект?</p>]]></description>
			<author><![CDATA[null@example.com (Denis)]]></author>
			<pubDate>Wed, 28 Mar 2012 12:49:13 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/798/#p798</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перенос всей логики в ключ]]></title>
			<link>https://forum.guardant.ru/post/785/#p785</link>
			<description><![CDATA[<div class="quotebox"><cite>laby пишет:</cite><blockquote><p>Или как-то можно связать Eclipse с Yagarto. Проект в Eclipse открывается, а вот как его сбилдить, получить&nbsp; bin-файл - непонятно</p></blockquote></div><p>Я настраивал интеграцию только с VisualStudio. Использовал Post-Build Event скрипт, преобразующий строки с описанием ошибок компиляции (у gcc и cl они немного разные). Особой пользы мне это не принесло, удобней оказалось создать в каталоге с проектом файл “_make_.cmd” состоящий из двух строчек “make” и ”pause”. Команду “make template” вообще надо вызывать всего раз в начале создания проекта, и автоматизировать её нет смысла.</p><p>PS. Если кто-то знает и проверял на личном опыте удобный способ интеграции gcc c VisualStudio отпишитесь, а лучше создайте на форуме отдельную тему. Буду благодарен :)</p>]]></description>
			<author><![CDATA[null@example.com (Denis)]]></author>
			<pubDate>Thu, 22 Mar 2012 11:57:45 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/785/#p785</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перенос всей логики в ключ]]></title>
			<link>https://forum.guardant.ru/post/784/#p784</link>
			<description><![CDATA[<div class="quotebox"><cite>laby пишет:</cite><blockquote><p>А кроме yagarto кто что использовал? Например IAR Embedded Workbench for ARM?</p></blockquote></div><p>Тут лучше использовать yagarto, не потому что он лучше или хуже, а потому что&nbsp; на нём уже откатали кучу тестов с ключами Code и шанс нарваться на подводные камни значительно ниже. Другие сборки и компиляторы, возможно, тоже буду работать, но при каждой неочевидной ошибке, придётся рассматривать эту замену, как одну из возможных причин. Если всё-таки для такой замены есть весомые причины, это можно будет сделать, когда проект заработает, и для него будут написаны тесты. Для Code первого поколения я пробовал Sourcery, вроде всё работало.</p><p>ЗЫ. Первое правило радиолюбителя: Не крути две ручки одновременно :)</p>]]></description>
			<author><![CDATA[null@example.com (Denis)]]></author>
			<pubDate>Thu, 22 Mar 2012 11:49:44 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/784/#p784</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перенос всей логики в ключ]]></title>
			<link>https://forum.guardant.ru/post/781/#p781</link>
			<description><![CDATA[<p>А кроме yagarto кто что использовал? Например IAR Embedded Workbench for ARM ?<br />Есть вариант чтоб make и make template не набирать, а из среды?<br />Или как-то можно связать Eclipse с Yagarto. Проект в Eclipse открывается, а вот как его сбилдить, получить&nbsp; bin-файл - непонятно</p>]]></description>
			<author><![CDATA[null@example.com (laby)]]></author>
			<pubDate>Thu, 22 Mar 2012 07:19:50 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/781/#p781</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перенос всей логики в ключ]]></title>
			<link>https://forum.guardant.ru/post/780/#p780</link>
			<description><![CDATA[<div class="quotebox"><cite>Denis пишет:</cite><blockquote><p>на более быстром ключе, сказать сложно, лучше сделать пример.</p></blockquote></div><p>Вот собственно этим я и займусь. Продумал сегодня всю защиту в деталях, думаю что будет супер. А главное, что экзешник можно распространять и не бояться - вся логика то в ключе!!! Без ключа вообще непонятно как ломать прогу, проще новую написать :)</p>]]></description>
			<author><![CDATA[null@example.com (laby)]]></author>
			<pubDate>Thu, 22 Mar 2012 06:44:52 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/780/#p780</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перенос всей логики в ключ]]></title>
			<link>https://forum.guardant.ru/post/779/#p779</link>
			<description><![CDATA[<div class="quotebox"><cite>laby пишет:</cite><blockquote><p>Только я так и не понял сколько в моем случае будет выполняться с буфером 30 байт, автомат - без циклов тупое сравнение если-то штук 10 выполнится и присвоить, добавить в выходной буфер и всё. Никаких математических и прочих операций.</p></blockquote></div><p>Я думаю, в этом случае основное время уйдёт на накладные расходы вызова, т.е. 20мс. Но тут надо учитывать, что моё защищенное приложение работало на Core3i, а ключ был более медленный. Как изменится время на более медленном процессоре PC (я так понимаю, что в embedded-системы Corei3 не ставят:), но при этом на более быстром ключе, сказать сложно, лучше сделать пример.</p>]]></description>
			<author><![CDATA[null@example.com (Denis)]]></author>
			<pubDate>Wed, 21 Mar 2012 15:33:59 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/779/#p779</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перенос всей логики в ключ]]></title>
			<link>https://forum.guardant.ru/post/778/#p778</link>
			<description><![CDATA[<div class="quotebox"><cite>Denis пишет:</cite><blockquote><p>PS. OMG! 38 новых сообщений из них 4 по теме :)</p></blockquote></div><p>Это чтоб я не расслаблялся :)</p>]]></description>
			<author><![CDATA[null@example.com (laby)]]></author>
			<pubDate>Wed, 21 Mar 2012 15:22:33 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/778/#p778</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перенос всей логики в ключ]]></title>
			<link>https://forum.guardant.ru/post/777/#p777</link>
			<description><![CDATA[<p>Денис, всё так здорово по полочкам разложил, спасибо. Только я так и не понял сколько в моем случае будет выполняться с буфером 30 байт, автомат - без циклов тупое сравнение если-то штук 10 выполнится и присвоить, добавить в выходной буфер и всё. Никаких математических и прочих операций.</p>]]></description>
			<author><![CDATA[null@example.com (laby)]]></author>
			<pubDate>Wed, 21 Mar 2012 15:17:53 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/777/#p777</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перенос всей логики в ключ]]></title>
			<link>https://forum.guardant.ru/post/776/#p776</link>
			<description><![CDATA[<div class="quotebox"><cite>laby пишет:</cite><blockquote><p>ёси баси, сотни миллисекунд это ....</p></blockquote></div><p>Известные мне этапы работы функции GrdCodeRun:<br />1. Шифрование входного буфера (выполняется в коде API на PC)<br />2. Передача по USB<br />3. Расшифровка входного буфера (выполняется в ключе)<br />4. Вызов пользовательского кода (выполняется в ключе)<br />5. Шифрование выходного буфера (выполняется в ключе)<br />6. Передача по USB<br />7. Расшифровка выходного буфера (выполняется в коде API на PC)</p><p>1 и 7 пункты замедляются ещё и тем, что они защищены от дизассемблирования и отладки виртуальной машиной. Скорость их работы напрямую зависит от производительности процессора, на котором выполняется защищенное приложение.</p><p>Я делал замеры на ключах Code первого поколения.<br />1. Сделал 5 версий загружаемого кода, в которых выполнялась простая мат.операция, в первом 1 раз, во втором 10 раз, в третьем 100 раз и т.д.<br />2. Далее выполнил каждый из них 100 раз, откинул одно самое долгое выполнение для каждой прошивки, чтобы хоть как-то уменьшить погрешность в многопоточной среде.<br />3. Вычислил для каждой прошивки среднее время выполнения.<br />4. Составил систему уравнений, где Y - время выполнения моего кода в ключе (этап 4), X - накладные расходы на вызов этого кода (этапы 1-3,5-7):<br />&nbsp; &nbsp; X + 1*Y = t1<br />&nbsp; &nbsp; X + 10*Y = t2<br />&nbsp; &nbsp; X + 100*Y = t3<br />&nbsp; &nbsp; и т.д.</p><p>На моей машине X получился около 20 мс, а Y был настолько мал, что терялся в погрешности измерений, оказывая влияние только в 100 и более итерациях.</p><p>Нынешнее второе поколение ключей должно работать быстрее, т.к. ускоряются шаги 3 – 5.<br />Но мне вполне хватало и тогдашних показателей.</p><p>PS. OMG! 38 новых сообщений из них 4 по теме :)</p>]]></description>
			<author><![CDATA[null@example.com (Denis)]]></author>
			<pubDate>Wed, 21 Mar 2012 14:57:21 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/776/#p776</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перенос всей логики в ключ]]></title>
			<link>https://forum.guardant.ru/post/775/#p775</link>
			<description><![CDATA[<div class="quotebox"><cite>Vladimir Ivanov пишет:</cite><blockquote><p>Так там загружается зашифрованный и подписанный код, а не какой угодно. Как я уже писал, без знания ключей шифрования и подписи нельзя подготовить gcexe-файл</p></blockquote></div><p> Ну да, это я как то упустил из виду. Тогда действительно, единственное что имеет смысл беречь это образ ключа :)</p>]]></description>
			<author><![CDATA[null@example.com (Neekeetos)]]></author>
			<pubDate>Wed, 21 Mar 2012 14:54:38 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/775/#p775</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перенос всей логики в ключ]]></title>
			<link>https://forum.guardant.ru/post/774/#p774</link>
			<description><![CDATA[<div class="quotebox"><cite>Neekeetos пишет:</cite><blockquote><div class="quotebox"><cite>Vladimir Ivanov пишет:</cite><blockquote><p>Там кроме мигания светодиодом ничего нет.</p></blockquote></div><p>Там загружается код, замените его на нечто читающее ячейки и все что после него в области кода и все дела.</p></blockquote></div><p>Так там загружается зашифрованный и подписанный код, а не какой угодно. Как я уже писал, без знания ключей шифрования и подписи нельзя подготовить gcexe-файл, который корректно загрузится. Это может сделать только разработчик. Кроме того, загружаемому коду не позволяется делать в ключе все, что угодно - существуют ограничения.</p>]]></description>
			<author><![CDATA[null@example.com (Vladimir Ivanov)]]></author>
			<pubDate>Wed, 21 Mar 2012 14:33:27 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/774/#p774</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перенос всей логики в ключ]]></title>
			<link>https://forum.guardant.ru/post/773/#p773</link>
			<description><![CDATA[<div class="quotebox"><cite>Vladimir Ivanov пишет:</cite><blockquote><p>Там кроме мигания светодиодом ничего нет.</p></blockquote></div><p>Там загружается код, замените его на нечто читающее ячейки и все что после него в области кода и все дела.</p>]]></description>
			<author><![CDATA[null@example.com (Neekeetos)]]></author>
			<pubDate>Wed, 21 Mar 2012 14:18:21 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/773/#p773</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перенос всей логики в ключ]]></title>
			<link>https://forum.guardant.ru/post/772/#p772</link>
			<description><![CDATA[<div class="quotebox"><cite>Neekeetos пишет:</cite><blockquote><div class="quotebox"><cite>romik пишет:</cite><blockquote><p>Можно уточнить, в каком примере показана дозапись в ячейку с загружаемым кодом, и передача управления дописаному коду?</p></blockquote></div><p>Samples\ARM\05 - LED Control\</p></blockquote></div><p>Там кроме мигания светодиодом ничего нет.</p>]]></description>
			<author><![CDATA[null@example.com (Vladimir Ivanov)]]></author>
			<pubDate>Wed, 21 Mar 2012 13:57:56 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/772/#p772</guid>
		</item>
	</channel>
</rss>
