Защита приложения при помощи Hardlock - а
От: arkhivania  
Дата: 04.02.08 14:13
Оценка:
Здравствуйте, произошло чудо и наш продукт был полностью переписан c C++ на дот нет
Ну и пришло время кодировать приложение Hardlock — ом фирмы Alladin.
Хардлок подразумевает некоторое внешнее кодирование (специальной утилитой, которая просто долбит по exe-шнику)
И внутреннее — когда есть некое api позволяющее прогнать один стринг через api и получить другой стринг.
В общем возник вопрос, куда бы вставить внутреннее кодирование То есть что можно в нете закодировать так чтобы незаметно для программиста всё реализовать? Понимаю, что вопрос немного туповат, но просто интересно какие есть идеи. Спасибо.
Re: Защита приложения при помощи Hardlock - а
От: _Morpheus_  
Дата: 05.02.08 10:13
Оценка:
Здравствуйте, arkhivania, Вы писали:

A>Здравствуйте, произошло чудо и наш продукт был полностью переписан c C++ на дот нет

A>Ну и пришло время кодировать приложение Hardlock — ом фирмы Alladin.
A>Хардлок подразумевает некоторое внешнее кодирование (специальной утилитой, которая просто долбит по exe-шнику)
A>И внутреннее — когда есть некое api позволяющее прогнать один стринг через api и получить другой стринг.
A>В общем возник вопрос, куда бы вставить внутреннее кодирование То есть что можно в нете закодировать так чтобы незаметно для программиста всё реализовать? Понимаю, что вопрос немного туповат, но просто интересно какие есть идеи. Спасибо.

можно например закриптовать все классы и при загрузке раскриптовывать их ключем из хаспа, но это легко ломается, гораздо лучше было бы если хранить часть кода в зашифрованном виде в самом хаспе и по мере необходимости вытягивать, используя раскиданные, запрятанные и пошифрованные по коду ключи.
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[2]: Защита приложения при помощи Hardlock - а
От: arkhivania  
Дата: 05.02.08 10:28
Оценка:
Здравствуйте, _Morpheus_, Вы писали:

_M_>можно например закриптовать все классы и при загрузке раскриптовывать их ключем из хаспа, но это легко ломается, гораздо лучше было бы если хранить часть кода в зашифрованном виде в самом хаспе и по мере необходимости вытягивать, используя раскиданные, запрятанные и пошифрованные по коду ключи.


Да тут еще выяснилось что нетовское приложение нельзя так просто внешне кодировать, оно после кодирования не запускается У нас конкретно хардлоки и вот никак не могу придумать как сделать так, чтобы часть DLL пропустить через кодировщик хардлока и чтобы в момент загрузки их раскодировать. Это был бы хороший вариант, но боюсь практически не реализуемый. Может AppDomain-у как-то при загрузке сборки можно подсунуть другой прямо бинарный кусок раскодированной сборки?
Re[3]: Защита приложения при помощи Hardlock - а
От: _Morpheus_  
Дата: 05.02.08 10:43
Оценка:
Здравствуйте, arkhivania, Вы писали:


A>Да тут еще выяснилось что нетовское приложение нельзя так просто внешне кодировать, оно после кодирования не запускается У нас конкретно хардлоки и вот никак не могу придумать как сделать так, чтобы часть DLL пропустить через кодировщик хардлока и чтобы в момент загрузки их раскодировать. Это был бы хороший вариант, но боюсь практически не реализуемый. Может AppDomain-у как-то при загрузке сборки можно подсунуть другой прямо бинарный кусок раскодированной сборки?


почему нельзя, можно... В простейшем случае можно просто зашифровать сборку, а в рантайме расшифровывать и загружать ее прямо в памяти, не сохраняя на диск. Вариант посложнее, но зато более устойчивый — криптовать IL код классов, а в рантайме раскриптовывать по мере необходимости и билдить классы прямо в памяти.
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re: Защита приложения при помощи Hardlock - а
От: _FRED_ Черногория
Дата: 05.02.08 10:54
Оценка:
Здравствуйте, arkhivania, Вы писали:

A>То есть что можно в нете закодировать так чтобы незаметно для программиста всё реализовать? Понимаю, что вопрос немного туповат, но просто интересно какие есть идеи. Спасибо.


Поинтересуйся в самом Аладдине, что-то для этого они придумывали. Года два-три назад их поддержка была очень даже не плохая .
Help will always be given at Hogwarts to those who ask for it.
Re[2]: Защита приложения при помощи Hardlock - а
От: arkhivania  
Дата: 05.02.08 11:00
Оценка:
Здравствуйте, _FRED_, Вы писали:
_FR>Поинтересуйся в самом Аладдине, что-то для этого они придумывали. Года два-три назад их поддержка была очень даже не плохая .

для HASP у них вроде как всё ок и современно, но для старинных Hardlock — только в разделе download немного и 2003 года
Re[4]: Защита приложения при помощи Hardlock - а
От: arkhivania  
Дата: 05.02.08 11:01
Оценка:
Здравствуйте, _Morpheus_, Вы писали:
_M_>почему нельзя, можно... В простейшем случае можно просто зашифровать сборку, а в рантайме расшифровывать и загружать ее прямо в памяти, не сохраняя на диск. Вариант посложнее, но зато более устойчивый — криптовать IL код классов, а в рантайме раскриптовывать по мере необходимости и билдить классы прямо в памяти.

Спасибо, буду двигаться в этом направлении.
Re[4]: Защита приложения при помощи Hardlock - а
От: arkhivania  
Дата: 05.02.08 14:04
Оценка:
Здравствуйте, _Morpheus_, Вы писали:
_M_>почему нельзя, можно... В простейшем случае можно просто зашифровать сборку, а в рантайме расшифровывать и загружать ее прямо в памяти, не сохраняя на диск. Вариант посложнее, но зато более устойчивый — криптовать IL код классов, а в рантайме раскриптовывать по мере необходимости и билдить классы прямо в памяти.

А если не сложно, не могли бы примерно ткнуть в сторону чего смотреть чтобы перехватить момент загрузки сборки и подменить её на новую. Я покоцал одну сборку и подключился у AppDomain — а ко всему к чему только можно, но в результате получаю только BadImageException в момент когда идет обращение к сборке. Как же быть? Что же делать? )
Re[5]: Защита приложения при помощи Hardlock - а
От: _Morpheus_  
Дата: 05.02.08 14:44
Оценка:
Здравствуйте, arkhivania, Вы писали:

A>Здравствуйте, _Morpheus_, Вы писали:

_M_>>почему нельзя, можно... В простейшем случае можно просто зашифровать сборку, а в рантайме расшифровывать и загружать ее прямо в памяти, не сохраняя на диск. Вариант посложнее, но зато более устойчивый — криптовать IL код классов, а в рантайме раскриптовывать по мере необходимости и билдить классы прямо в памяти.

A>А если не сложно, не могли бы примерно ткнуть в сторону чего смотреть чтобы перехватить момент загрузки сборки и подменить её на новую. Я покоцал одну сборку и подключился у AppDomain — а ко всему к чему только можно, но в результате получаю только BadImageException в момент когда идет обращение к сборке. Как же быть? Что же делать? )


про перехват разрешения имен не знаю, примитивно можно сделать LoadAssembly из byte[] в памяти
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[6]: Защита приложения при помощи Hardlock - а
От: arkhivania  
Дата: 05.02.08 15:23
Оценка:
Здравствуйте, _Morpheus_, Вы писали:

_M_>про перехват разрешения имен не знаю, примитивно можно сделать LoadAssembly из byte[] в памяти


ну в принципе тоже вариант. Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.