eXeL@B —› Программирование —› Идентификация "своей" DLL, и загрузка DLL из памяти. |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 20 декабря 2009 23:12 · Личное сообщение · #1 Приветствую! У меня есть два странных вопроса: 1. Есль некий софт, который использует плагины в DLL. Нужно как-то отличать "свои" плагины от "чужих". Если ли какие-нибудь варианты, но так, чтобы эту проверку нельзя было обойти? Мне в голову приходит только один: шифровать библиотеку по алгоритму RSA и в проге расшифровывать и загружать из памяти. Тогда никто левый не сможет зашифровать DLL, потому что не будет знать ключ. В связи с этим второй вопрос: 2. Киньте плиз в меня статьей или тутором как загрузить DLL из образа в памяти. Пояснение (знаю что тут не любят такие темы:s5: - Это НЕ троян, и НЕ малварь. - Это НЕ прот или что-то подобное. - Прога совершенно бесплатна для конечного пользователя. Для чего вводится такое ограничение: Прога работает с личными данными пользователей, и мне очень не хочется чтобы пользователь скачал где-то в инете плагин хакера Васи, который уведет у него все пароли. Потому что в этом случае виноват окажется все равно разработчик)) |
|
Создано: 21 декабря 2009 13:14 · Личное сообщение · #2 В общем да, дискуссия давно бессмысленна, т.к. непонятно чего хочет автор, наверно он сам это толком не знает. ----- PGP key |
|
Создано: 21 декабря 2009 13:53 · Личное сообщение · #3 Может всем будет проще если ТС даст ссылку на этот бесплатный для конечного пользователя софт? Желающие помочь смогут посмотреть как устроено сейчас и дадут конкретные рекомендации... А так с самого начало не понятно и как то противоречиво, то хранить защищенную длл в памяти, то не дать доступ к пользовательским данным. О каких данных речь? Вы их в длл компилируете? |
|
Создано: 22 декабря 2009 03:32 · Личное сообщение · #4 |
|
Создано: 22 декабря 2009 08:17 · Личное сообщение · #5 |
|
Создано: 22 декабря 2009 08:28 · Личное сообщение · #6 Единственное что можно посоветовать автору это: 1. Проверять целостность своей программы, плагинов, поставляемых автором с программой, и настроек, сохраняемых программой. 2. При добавлении новых (не идущих в комплекте с программой) плагинов активировать их (с сохранением факта активации в защищаемых настройках) только по запросу пользователя с предупреждением о всём отсюда вытекающем. По второго пункта. Можно генерировать для каждой машины рандомный ключ и шифровать активированые плагины этим ключом (только секции), отмечая факт активации в файле плагина. Соответственно не зашифрованные плагины не грузим, а неправильно зашифрованные не грузяться сами. ----- DREAMS CALL US |
|
Создано: 27 декабря 2009 18:04 · Личное сообщение · #7 |
|
Создано: 27 декабря 2009 18:20 · Поправил: Clerk · Личное сообщение · #8 Загрузить можно по разному. Зависит от требований к совместимости. Можно просто промапить и настроить релоки, в таком случае совместимости нет никакой, загрузчик не сможет этот какбэ модуль юзать. Если нужна полная совместимость, то следует эмулить. Либо файлы, либо секции. Первое лучше. Нубьё мапит и выполняет нужные настройки вручную. |
|
Создано: 27 декабря 2009 21:38 · Личное сообщение · #9 |
|
Создано: 27 декабря 2009 22:33 · Личное сообщение · #10 |
|
Создано: 27 декабря 2009 22:48 · Личное сообщение · #11 |
|
Создано: 28 декабря 2009 01:52 · Личное сообщение · #12 only пишет: Можно подробнее, что тут имелось ввиду? Допустим вы шифруете секретным RSA ключом исполнимый файл поблочно, вычисляя C=M^D mod N для каждого блока. Пусть нам попадется такой блок, что 1 < M^D < N, тогда D = логарифму C с показателем M. Такой логарифм легко вычисляется, в отличии от случая, когда выполняется взятие по модулю N. Так как исполнимый файл содержит неслучайные числа, то среди них обязательно найдутся удовлетворяющие неравенству. Другой пример этой атаки: допустим мы шифруем публичным RSA ключом, вычисляя C=M^E mod N. Пусть нам попался блок удовлетворяющий неравенству M^E < N, тогда M = корню степени E из C. ----- PGP key |
<< . 1 . 2 . |
eXeL@B —› Программирование —› Идентификация "своей" DLL, и загрузка DLL из памяти. |