dll - усложнит ли она реверсеру задачу?

valekor

Постоялец
Регистрация
3 Авг 2013
Сообщения
133
Реакции
18
Всем привет!
Хочу написать программу и чтобы по 100 раз ничего не переписывать, первым делом решил всё спланировать, а уже потом кодить и сразу блин зашел в тупик.
Программа будет для продажи, на 100% уверен, что ее захотят крякнуть. Как защитить софт я понятия не имею. Вернее есть всякие примочки, но это все детский сад. Понятное дело, что 100%-й защиты не бывает и всё ломается. Скажем так, я хочу максимально усложнить задачу для реверсера.
Вот возникла идея, а что если раскидать всю программу по dll. Сильно ли это усложнит реверс? Или всё это дампится на раз?
К примеру, если я возьму какую-то переменную присвою ей значение, перекину значение в одну dll, потом перекину данные переменной в другую dll и так 100500 раз :) это вскипятит мозги реверсеру или нет?

Сейчас мой план такой.
1. Раскидать код по dll
2. Пройтись по всем файлам НетРеактором (с привязкой к серверу)
3. Приделать свою нубскую привязку к серверу.

Забыл сказать. Программа будет на VB.NET
 
Привет -)

Думаю проще всего воспользоваться програмо обфускации кода. Она сделает все за тебя.
Программ огромное множество, я лично пользуюсь eazfuscator.net. (Для просмотра ссылки Войди или Зарегистрируйся)
Можно найти другие ломаные и нет. Но как понимаешь использовать ломаную программу для защиты, это как использовать ломаный антивирус =) Это мое личное мнение.
Прога до версии 3.3 была бесплатной, потом автор решил сделать продукт платным.
Могу скинут бесплатную версию, конечно если выпускаешь коммерческий продукт, то можно автора и поддержать ;)
 
К примеру, если я возьму какую-то переменную присвою ей значение, перекину значение в одну dll, потом перекину данные переменной в другую dll и так 100500 раз :) это вскипятит мозги реверсеру или нет?
Вскипятит мозги процессору у пользователей, но на реверс не повлияет, ведь не всегда step by step можно и поскакать )))
2. Пройтись по всем файлам НетРеактором (с привязкой к серверу)
Для просмотра ссылки Войди или Зарегистрируйся
3. Приделать свою нубскую привязку к серверу.
если нубская, то какой смысл?

А если серьезно, то стоит ли Ваша программа этих всех манипуляций? Если цена, качество будут несоответствующие, то продадите пару копий и получите кучу отзывов. А если цена и качество в хорошем соотношении то и так купят.. Главное проект сделать действительно полезным, а пока видно только одно. Как срубить бабла и чтобы не отобрали
 
Самый лучший способ включить полную оптимизацию с инлайн функциями (под Win /Ox /Ob /Oi /Os /Og) и биткод будет на столько изменен, что без хороших познаний в асме код не восстановить, на практике можно снять любой пакер руками, все зависит от цены, времени и желания.
 
Самый лучший способ включить полную оптимизацию с инлайн функциями (под Win /Ox /Ob /Oi /Os /Og) и биткод будет на столько изменен, что без хороших познаний в асме код не восстановить, на практике можно снять любой пакер руками, все зависит от цены, времени и желания.

Тоже интересна тема но для C#. Это ключи для чего? У msbuild и csc их нет.

p.s. Собираю msbuild
 
А если серьезно, то стоит ли Ваша программа этих всех манипуляций? Если цена, качество будут несоответствующие, то продадите пару копий и получите кучу отзывов. А если цена и качество в хорошем соотношении то и так купят.. Главное проект сделать действительно полезным, а пока видно только одно. Как срубить бабла и чтобы не отобрали

Программа стоит всех этих манипуляций.
Цена и качество будет более чем выгодным для покупателей, но всегда есть долбо...бы, у которых руки чешутся и они 100% для пары сомнительных плюсов в репу начнут ломать.
Да и поздно уже :) я уже залез в такие дебри, что обратного пути нет. Решил пойти путем прога + PHP, т.е. вынести часть кода на сервак. Сломать конечно тоже можно, но эмулировать то, х.з. что, не многие смогут, тут уже одним реверсом не обойтись, придется и над программированием подумать и написать часть программы самому :D Но и тут будет сюрприз, т.к. абы что, программа тоже не примет.
Короче крякеры, это реальная головная боль. Я из-за защиты уже кода написал в два раза больше, чем код самой программы, а ведь это все еще и на скорость самой программы влияет, короче я нервничать уже начинаю :alko:
 
продукт или крякми потом выложи, интересно будет поколупать :)
 
Я бы делал так. Создаём простую библиотеку на C++. Туда выносим часть логики работы самой программы, и логику работы с лицензией. И дружим эту библиотеку с вашим .NET приложением (как это сделать - можно погуглить). Никаких обфускаторов не используем. Пускай рефлектором открывают саму программу, но в DLL на C++ они без дебагера не влезут.
Ну а проверка лицензии делается так:
1). Отправляем на сервер уникальный идентификатор железа
2). Сервер возвращает md5 (секретный ключ + уникальный идентификатор железа + текущее время)
3). Генерируем по этому же алгоритму md5 в самой программе. Значение, полученное от сервера, сверяем с генерированным в программе.
Если сошлось - программа активирована. Если не сошлось - нет. Такая схема позволяет и банить пользователей по идентификатору железа.
 
Ну а проверка лицензии делается так:
1). Отправляем на сервер уникальный идентификатор железа
2). Сервер возвращает md5 (секретный ключ + уникальный идентификатор железа + текущее время)
3). Генерируем по этому же алгоритму md5 в самой программе. Значение, полученное от сервера, сверяем с генерированным в программе.
Если сошлось - программа активирована. Если не сошлось - нет. Такая схема позволяет и банить пользователей по идентификатору железа.

Я хоть и не крякер, но предположу:
Что самое слабое место тут будет
сверяем с генерированным в программе
То, что прилетит от сервера, это же как бельмо, которое можно увидеть любым сниффером. Потом уже поставить бряк на то, что прилетело с сервера и приблизится непосредственно к проверкам и сверкам, а там уже и пропатчить не долго.

Я сперва кстати вообще начал смотреть в сторону убивания процессов всяких рефлекторов, ida, olly и т.д., но потом когда начал углубляться в изучение инструментов крякера, понял, что это не так просто, ибо крякерских утилит море и всех их не исключишь.
 
Почему ты не хочешь сделать SaaS?
 
Назад
Сверху