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

Тема в разделе ".NET", создана пользователем valekor, 18 июл 2014.

  1. valekor

    valekor Постоялец

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

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

    Забыл сказать. Программа будет на VB.NET
     
  2. Ashoot

    Ashoot Создатель

    Регистр.:
    2 май 2014
    Сообщения:
    10
    Симпатии:
    5
    Привет -)

    Думаю проще всего воспользоваться програмо обфускации кода. Она сделает все за тебя.
    Программ огромное множество, я лично пользуюсь eazfuscator.net. (www_gapotchenko_com/eazfuscator_net)
    Можно найти другие ломаные и нет. Но как понимаешь использовать ломаную программу для защиты, это как использовать ломаный антивирус =) Это мое личное мнение.
    Прога до версии 3.3 была бесплатной, потом автор решил сделать продукт платным.
    Могу скинут бесплатную версию, конечно если выпускаешь коммерческий продукт, то можно автора и поддержать ;)
     
  3. Any_Key

    Any_Key aka mad red cat

    Регистр.:
    30 мар 2006
    Сообщения:
    388
    Симпатии:
    344
    Вскипятит мозги процессору у пользователей, но на реверс не повлияет, ведь не всегда step by step можно и поскакать )))
    http://hintdesk.com/dereactor-a-deobfuscator-for-net-reactor/
    если нубская, то какой смысл?

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

    Darkness Постоялец

    Регистр.:
    21 янв 2013
    Сообщения:
    146
    Симпатии:
    69
    Самый лучший способ включить полную оптимизацию с инлайн функциями (под Win /Ox /Ob /Oi /Os /Og) и биткод будет на столько изменен, что без хороших познаний в асме код не восстановить, на практике можно снять любой пакер руками, все зависит от цены, времени и желания.
     
  5. the_hamster

    the_hamster Постоялец

    Регистр.:
    15 сен 2008
    Сообщения:
    101
    Симпатии:
    19
    Тоже интересна тема но для C#. Это ключи для чего? У msbuild и csc их нет.

    p.s. Собираю msbuild
     
  6. valekor

    valekor Постоялец

    Регистр.:
    3 авг 2013
    Сообщения:
    132
    Симпатии:
    16
    Программа стоит всех этих манипуляций.
    Цена и качество будет более чем выгодным для покупателей, но всегда есть долбо...бы, у которых руки чешутся и они 100% для пары сомнительных плюсов в репу начнут ломать.
    Да и поздно уже :) я уже залез в такие дебри, что обратного пути нет. Решил пойти путем прога + PHP, т.е. вынести часть кода на сервак. Сломать конечно тоже можно, но эмулировать то, х.з. что, не многие смогут, тут уже одним реверсом не обойтись, придется и над программированием подумать и написать часть программы самому :D Но и тут будет сюрприз, т.к. абы что, программа тоже не примет.
    Короче крякеры, это реальная головная боль. Я из-за защиты уже кода написал в два раза больше, чем код самой программы, а ведь это все еще и на скорость самой программы влияет, короче я нервничать уже начинаю :alko:
     
  7. Av0id

    Av0id Постоялец

    Регистр.:
    29 апр 2008
    Сообщения:
    51
    Симпатии:
    21
    продукт или крякми потом выложи, интересно будет поколупать :)
     
  8. dig555

    dig555

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

    valekor Постоялец

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

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

    Ashoot Создатель

    Регистр.:
    2 май 2014
    Сообщения:
    10
    Симпатии:
    5
    Почему ты не хочешь сделать SaaS?