Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Как можно запутать код?


Автор: DenWPF 12.11.2010, 17:08
Я буду привязывать программу к железу, как лучше сделать этот участок кода и где его запускать, и ка ксделать что бы было сложно понять что этот код делает?!

Автор: klein 12.11.2010, 17:57
Места привязки к железу проверяйте не отдельными функциями, а "некрасивыми копипащеными" блоками кода.
Лучьше дублировать по несколько раз с небольшими изменениями в коде. 
Сверять идентификаторы желательно не с исходными образцами , а с ихними хешами.
Выводить негативный результат нужно не сразу, а например через рандом-таймер + исполнение какого нибуть мусорного кода.
Не "захардкоживать" сообщения типа if(false)cout<<"Извините пароль неверный"; Уже сама фраза выдает себя.
Введенные/полученые данные для аутентификации лучьше копировать в другую переменную, а первую очистить, потом в третью, а вторую очистить, можно сверять с оригиналом введенного.... Єто затруднит отладку.
Можно замерять время исполнения определенных участков кода, если допустим цпуайди считывается минуту-полчаса-час приложение дебажат - 100%.
За деобфусцировать.
Желательно не использовать готовые функции, библиотеки, апишки, а писать какможно нижеуровневей.
Зделать цифровую подпись екзешки.
Написать свою виртуальную машину на которой будет запускаться критический участок программы.

Короче нет предела совершенству.

Автор: DenWPF 12.11.2010, 20:19
хорошо а если я увидел что дебажат, то что мне делать с программой?)

Автор: Ky7m 12.11.2010, 21:14
Цитата(DenWPF @ 12.11.2010,  20:19)
хорошо а если я увидел что дебажат, то что мне делать с программой?)

Сказать, что в системе обнаружен отладчик и закрыться или выдавать ложные данные. Правда тоже не выход, но жизнь реверсера усложнит.

Автор: brother79 13.11.2010, 09:58
Цитата(DenWPF @  13.11.2010,  00:19 Найти цитируемый пост)
хорошо а если я увидел что дебажат, то что мне делать с программой?) 


А можно вообще не говорить, что дебажат, а вести себя как буд-то просто баги. И не даст результата добиться взломщику, и при этом он долго будет думать почему всё просто, а при этом не работает. Только главно чтобы не ошибиться и гадить багами именно когда дебажат smile

Автор: klein 13.11.2010, 12:16
В случае "В системе обнаржен отладчик" - случай описан в строчке
Код

Не "захардкоживать" сообщения типа if(false)cout<<"Извините пароль неверный"; Уже сама фраза выдает себя.

При дисасемблировании такие сообщения просто будут притягивать внимание крекера. Желательно выводить какойнибуть бред, а бред должен быть какнибуть зашифрован в хардкоде. Можна даже шифром цезаря. Уже на лету не читается.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)