<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Guardant &mdash; guardant API . Общие принципы]]></title>
	<link rel="self" href="https://forum.guardant.ru/feed/atom/topic/459/" />
	<updated>2015-06-01T16:02:51Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.guardant.ru/topic/459/</id>
		<entry>
			<title type="html"><![CDATA[Re: guardant API . Общие принципы]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/2697/#p2697" />
			<content type="html"><![CDATA[<p>Ребят если кому потребуется что бы Guardant API 7 работал на старых портах, то меняем байты в файле GrdFWBO.obj по следующему смещению 4117 с 3187 на 6002&nbsp; и по смещению 4102 с 3186 на 6001</p>]]></content>
			<author>
				<name><![CDATA[vladimiromsk]]></name>
				<uri>https://forum.guardant.ru/user/960/</uri>
			</author>
			<updated>2015-06-01T16:02:51Z</updated>
			<id>https://forum.guardant.ru/post/2697/#p2697</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: guardant API . Общие принципы]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/2696/#p2696" />
			<content type="html"><![CDATA[<p>Server Guardant API 6 и клиент Guardant API 7 работаю превосходно! Единственно надо вручную указать порты. <br />Файл GrdFWBO.obj находится в папке C:\Program Files (x86)\Guardant\SDK7\Lib\windows\x86 он там есть только у него по умолчанию порты PORT = 3186 MESSAGE_PORT = 3187. <br />Почему не сделать в API функцию которая будет инициализировать PORT, MESSAGE_PORT. Если для программистов guardant это слишком сложно, то как получить перекомпилированный файл GrdFWBO.obj в которой порты старые. Ведь ездить по всем клиентам и обновлять серверную часть вручную это ((((</p>]]></content>
			<author>
				<name><![CDATA[vladimiromsk]]></name>
				<uri>https://forum.guardant.ru/user/960/</uri>
			</author>
			<updated>2015-06-01T15:48:17Z</updated>
			<id>https://forum.guardant.ru/post/2696/#p2696</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: guardant API . Общие принципы]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/2695/#p2695" />
			<content type="html"><![CDATA[<p>Здравствуйте!<br />gnclient.ini всегда генерируется автоматически. сервер сетевых ключей 6 версии использовал PORT = 6001<br />MESSAGE_PORT = 6002, в 7 версии из-за того, что часто возникали конфликты с другими приложениями, мы перешли на PORT = 3186 MESSAGE_PORT = 3187. Gnclient.ini генерируется в соответствии с использованным API. <br />Если Вы использовали именно Guardant API 6, то Ваше защищённое приложение не будет работать с сервером сетевых ключей Guardant 7. Так как у Guardant API 6 и 7 нет обратной совместимости. <br />Таким образом, если Вы переходите на 7 версию API, то сервер сетевых ключей 7 версии будет использовать порты PORT = 3186 MESSAGE_PORT = 3187 и gnclient.ini будет генерироваться с такими портами.<br />Файл GrdFWBO.obj находится в папке C:\Program Files (x86)\Guardant\SDK7\Lib\windows\x86</p>]]></content>
			<author>
				<name><![CDATA[Станислав Петрушевский]]></name>
				<uri>https://forum.guardant.ru/user/818/</uri>
			</author>
			<updated>2015-06-01T12:09:46Z</updated>
			<id>https://forum.guardant.ru/post/2695/#p2695</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: guardant API . Общие принципы]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/2694/#p2694" />
			<content type="html"><![CDATA[<p>А почему изменился порт?подмена файла используя не автоматизированные действия как то не правильно. Где мне взять GRDFWBO.OBJ в котором указаны порты&nbsp; PORT = 6001 MESSAGE_PORT = 6002</p>]]></content>
			<author>
				<name><![CDATA[vladimiromsk]]></name>
				<uri>https://forum.guardant.ru/user/960/</uri>
			</author>
			<updated>2015-05-31T15:08:49Z</updated>
			<id>https://forum.guardant.ru/post/2694/#p2694</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: guardant API . Общие принципы]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/2693/#p2693" />
			<content type="html"><![CDATA[<p>Здравствуйте!<br />Через API изменить порты нельзя. Вы можете изменить порты в настройках сервера и затем получать gnclient.ini из веб-интерфейса сервера сетевых ключей Guardant. <a href="http://developer.guardant.ru/pages/viewpage.action?pageId=1277980">http://developer.guardant.ru/pages/view … Id=1277980</a></p>]]></content>
			<author>
				<name><![CDATA[Станислав Петрушевский]]></name>
				<uri>https://forum.guardant.ru/user/818/</uri>
			</author>
			<updated>2015-05-29T14:56:30Z</updated>
			<id>https://forum.guardant.ru/post/2693/#p2693</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: guardant API . Общие принципы]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/2691/#p2691" />
			<content type="html"><![CDATA[<p>Добрый день!<br />Использовали Guardant API 6 для Delphi.<br />Сейчас попытались перейти на Guardant API 7, но столкнулись с проблемой что в файле gnclient.ini поля в секции [SERVER] изменились:</p><p>было<br />PORT = 6001<br />MESSAGE_PORT = 6002</p><p>стало<br />PORT = 3186<br />MESSAGE_PORT = 3187</p><p>Из-за этого сетевые ключи не находятся. Если в ручную поменять то все начинает работать.<br />Вопрос: Как, или где, или какую функцию вызвать что автоматическая генерация файла gnclient.ini был с полями PORT = 6001 MESSAGE_PORT = 6002 ???</p>]]></content>
			<author>
				<name><![CDATA[vladimiromsk]]></name>
				<uri>https://forum.guardant.ru/user/960/</uri>
			</author>
			<updated>2015-05-29T12:00:25Z</updated>
			<id>https://forum.guardant.ru/post/2691/#p2691</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: guardant API . Общие принципы]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/2209/#p2209" />
			<content type="html"><![CDATA[<p>Здравствуйте.<br /></p><div class="quotebox"><cite>fsdb пишет:</cite><blockquote><p>1)получается коды доступа - Public, PrivateRead и так далее (то что нужно в конкретном случае ) вписываются прямо в саму программу.?</p></blockquote></div><p>Да, в качестве параметров соответствующей функции (<a href="http://developer.guardant.ru/display/DOC/GrdSetAccessCodes">GrdSetAccessCodes</a>).<br /></p><div class="quotebox"><cite>fsdb пишет:</cite><blockquote><p>2)на против переменных написано на английском -  эти коды должны быть зашифрованы... что этим они имели ввиду... как защитить переменную зашифровать в программе?</p></blockquote></div><p>В наших примерах просто приводится некоторый способ указания (установки) кодов доступа (для функции GrdSetAccessCodes) в не совсем явном виде, а именно:<br /><em><br />{ Definitions }<br />const CryptPU:DWORD=$8566783;&nbsp; &nbsp; &nbsp; &nbsp;{ Random value for access codes security }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CryptRD:DWORD=$17d49c84;&nbsp; &nbsp; &nbsp; { Random value for access codes security }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CryptWR:DWORD=$9843de24;&nbsp; &nbsp; &nbsp; { Random value for access codes security }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CryptMS:DWORD=$47832845;&nbsp; &nbsp; &nbsp; { Random value for access codes security }<br /></em><br /><span class="bbu">Здесь определяются константы, которые будут участвовать в &quot;запутывании&quot; кодов доступа.</span><br /><em><br />{ Data variables }<br />var&nbsp; dwPublic:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DWORD;&nbsp; &nbsp; { Must be encoded }<br />&nbsp; &nbsp; &nbsp;dwPrivRD:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DWORD;&nbsp; &nbsp; { Must be encoded }<br />&nbsp; &nbsp; &nbsp;dwPrivWR:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DWORD;&nbsp; &nbsp; { Must be encoded }<br />&nbsp; &nbsp; &nbsp;dwPrivMS:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DWORD;&nbsp; &nbsp; { Must be encoded }<br /></em><br /><span class="bbu">Тут объявляются переменные для кодов доступа.</span><br /><em><br />&nbsp; dwPublic:= GrdDC_DEMONVK-CryptPU; { Must be encoded }<br />&nbsp; dwPrivRD:= GrdDC_DEMORDO-CryptRD; { Must be encoded }<br />&nbsp; dwPrivWR:= GrdDC_DEMOPRF-CryptWR; { Must be encoded }<br />&nbsp; dwPrivMS:= GrdDC_DEMOMST-CryptMS; { Must be encoded }<br /></em><br /><span class="bbu">Тут переменным присваиваются соответствующие значения кодов доступа из которых вычитаются значения ранее определенных констант.</span><br /><em><br />&nbsp; nRet:= GrdSetAccessCodes( hGrd,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ Handle to Guardant protected container }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dwPublic + CryptPU,&nbsp; &nbsp;{ Must be already specified }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dwPrivRD + CryptRD,&nbsp; &nbsp;{ Must be already specified }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dwPrivWR + CryptWR,&nbsp; &nbsp;{ == 0 if not needed }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dwPrivMS + CryptMS);&nbsp; { == 0 if not needed }<br /></em><br /><span class="bbu">Здесь устанавливаются необходимые коды доступа с одновременным их &quot;декодированием&quot;, путем сложения с ранее вычтенными значениями</span></p><p>Вся эта схема призвана указать на то, что коды доступа лучше хранить в приложении в неявном виде и применять по мере надобности.<br />Методы сокрытия кодов доступа могут быть разнообразными.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2014-07-23T10:55:10Z</updated>
			<id>https://forum.guardant.ru/post/2209/#p2209</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[guardant API . Общие принципы]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/2203/#p2203" />
			<content type="html"><![CDATA[<p>Добрый день.&nbsp; я хотел бы использовать guardant API <br />программирую на Delphi <br />нашел исходники&nbsp; с демо примером. в целом ничего сложного, но некоторые срочки меня в смуту вогнали. ответьте по пунктам пожалуйста.</p><p>ключ SIgn<br />1)получается коды доступа - Public, PrivateRead и так далее (то что нужно в конкретном случае ) вписываются прямо в саму программу.?<br />2)на против переменных написано на английском -&nbsp; эти коды должны быть зашифрованы... что этим они имели ввиду... как защитить переменную зашифровать в программе?</p><p>в целом позже я нашел примеры на дельфи и часть вопросов снялось. очень большое число вариантов построения защиты..</p>]]></content>
			<author>
				<name><![CDATA[fsdb]]></name>
				<uri>https://forum.guardant.ru/user/824/</uri>
			</author>
			<updated>2014-07-18T09:21:03Z</updated>
			<id>https://forum.guardant.ru/post/2203/#p2203</id>
		</entry>
</feed>
