d7d1cd 0 July 28, 2016 Posted July 28, 2016 · Report post Здравствуйте все! Уважаемые знатоки, подскажите, существует ли обфускатор кода для MSP430? Quote Share this post Link to post Share on other sites More sharing options...
jcxz 312 July 28, 2016 Posted July 28, 2016 · Report post Здравствуйте все! Уважаемые знатоки, подскажите, существует ли обфускатор кода для MSP430? А чем он должен отличаться от обфускатора для любого другого МК? Или вообще даже не МК, а любого си-кода? Quote Share this post Link to post Share on other sites More sharing options...
d7d1cd 0 July 28, 2016 Posted July 28, 2016 · Report post А чем он должен отличаться от обфускатора для любого другого МК? Или вообще даже не МК, а любого си-кода? Наверное ничем :). Просто я ничего не знаю об обфускаторах, а запутать код надо. Причем у меня особенность: мой проект написан на ассемблере (около 22000 строк). Поэтому мне нужен либо обфускатор для кода на ассемблере, либо обфускатор для скомпилированной программы (если такой существует). Quote Share this post Link to post Share on other sites More sharing options...
DimaG 0 July 28, 2016 Posted July 28, 2016 · Report post Причем у меня особенность: мой проект написан на ассемблере (около 22000 строк). Поэтому мне нужен либо обфускатор для кода на ассемблере :bb-offtopic: Код на ассемблере в 22,000 строк в обфускации не нуждается Quote Share this post Link to post Share on other sites More sharing options...
Kabdim 0 July 28, 2016 Posted July 28, 2016 · Report post Это ближе к полиморфным вирусам + упаковщик и/или шифрование + оверлеи. Вопрос стоят ли усилия результата? Если в чужие руки попадет исходник, то на 95% достаточно возможности тиражирования, чему обфускация ни капли не мешает. Quote Share this post Link to post Share on other sites More sharing options...
d7d1cd 0 July 28, 2016 Posted July 28, 2016 · Report post :bb-offtopic: Код на ассемблере в 22,000 строк в обфускации не нуждается Смотря для кого :) Это ближе к полиморфным вирусам + упаковщик и/или шифрование + оверлеи. Вопрос стоят ли усилия результата? Если в чужие руки попадет исходник, то на 95% достаточно возможности тиражирования, чему обфускация ни капли не мешает. Тиражирование как раз приветствуется. Однако работа программы зависит от лицензии. Чтобы хоть как то защититься от взлома и обхода лицензии надо обфусцировать код для усложнения дизассеблинга. Quote Share this post Link to post Share on other sites More sharing options...
d7d1cd 0 July 29, 2016 Posted July 29, 2016 · Report post Это ближе к полиморфным вирусам + упаковщик и/или шифрование + оверлеи. Можно подробнее об этом? Quote Share this post Link to post Share on other sites More sharing options...
Kabdim 0 July 29, 2016 Posted July 29, 2016 · Report post А что тут подробней в рамках поста на форуме? В рамках одного поста от мимопроходившего тема слишком большая и сложная. Вкрации: Полиморфизм кода добавляем команды которые не имеют смысла, перетасовываем используемые регистры и прочие интересные вещи для которых нужно много учения и практики. Аля: 1. Разбавить код А-Б-С до вида А-АА-Б-ББ-С где результаты АА и ББ не нужны, но в АА и ББ старательно используют результаты данных из правильных шагов. Результаты АА и ББ должны вливаться в результат, но не влиять на него 2. Если А(1) и Б(1) пользуются регистром 1. Поменять код на А(1)-(1->2)-Б(2)-(2->1). Чем больше такой лапши тем сложнее анализирующему удержать её в голове. И такого придумано много. Упаковщик-оверлей: Используем что-нибудь сверхмалое упаковывающее/распакоывающее вроде lz4. Компилируем код память, но переносим в память не стандартным стартапом, а своей оберткой, которая перед вызовом распаковывает/расшифровывает из упакованного хранилища. Память используется сразу под несколько оверлеев, из которых понятное дело активен только один. Особую радость может предоставить вложенное использование оверлея из оверлея много раз. Вот только писать всё это придется самому. Quote Share this post Link to post Share on other sites More sharing options...
AlexandrY 4 July 29, 2016 Posted July 29, 2016 · Report post Чем больше такой лапши тем сложнее анализирующему удержать её в голове. И такого придумано много. Используем что-нибудь сверхмалое упаковывающее/распакоывающее вроде lz4. Компилируем код память, Когда нибудь пробовали дизассемблировать программы? То что не используется дизассемблеры типа IDA сразу покажут. Отметят красным цветом и выкинут. Это затруднит хакеру работу максимум на пару часов. А программер чтобы сделать это затратит месяцы. Про оверлей не смешно, MSP коды выполняет из Flash. Какие еще оверлеи? Quote Share this post Link to post Share on other sites More sharing options...
krux 9 July 29, 2016 Posted July 29, 2016 · Report post из простейшего: собрать в hex, потом из hex превратить в кашу вида db 0x55,0x56,0x57 и в таком виде отдавать. те кому надо дизассемблировать это всё равно сделают, а не имея опыта дизассемблирования сражаться с кашей из db dw dd никто не станет. Quote Share this post Link to post Share on other sites More sharing options...
Kabdim 0 July 29, 2016 Posted July 29, 2016 · Report post Когда нибудь пробовали дизассемблировать программы? То что не используется дизассемблеры типа IDA сразу покажут. Отметят красным цветом и выкинут. Это затруднит хакеру работу максимум на пару часов. А программер чтобы сделать это затратит месяцы. Да пробовал, а вы понимаете что иногда примеры приходится упрощать? Достаточно ли понятная фраза "Результаты АА и ББ должны вливаться в результат, но не влиять на него"? В любом случае я не претендую на лавры писателя защиты. Может быть Вы сможете написать на эту тему больше лучше и понятней? Про оверлей не смешно, MSP коды выполняет из Flash. Какие еще оверлеи? Бывают накладки когда пользуешься "Сообщения с Вашего последнего посещения" :rolleyes: Quote Share this post Link to post Share on other sites More sharing options...
AlexandrY 4 July 29, 2016 Posted July 29, 2016 · Report post Может быть Вы сможете написать на эту тему больше лучше и понятней? Просто приходилось работать в проектах где целые микроконтроллеры с фотографии кристалла копировали и в железе воспроизводили вместе с прошивкой. А будущее обфускации несомненно в области гомоморфного шифрования Хотя мне ваш отсыл на lz4 понравился. Я уже скачал и начал портирование. Классная вещь. Quote Share this post Link to post Share on other sites More sharing options...
gerber 10 July 29, 2016 Posted July 29, 2016 · Report post Полиморфизм кода добавляем команды которые не имеют смысла, перетасовываем используемые регистры и прочие интересные вещи для которых нужно много учения и практики. Аля: 1. Разбавить код А-Б-С до вида А-АА-Б-ББ-С где результаты АА и ББ не нужны, но в АА и ББ старательно используют результаты данных из правильных шагов. Результаты АА и ББ должны вливаться в результат, но не влиять на него 2. Если А(1) и Б(1) пользуются регистром 1. Поменять код на А(1)-(1->2)-Б(2)-(2->1). Чем больше такой лапши тем сложнее анализирующему удержать её в голове. И такого придумано много. Фигня всё это из прошлого века. "Анализирующий" ничего не держит в голове, на это есть компьютер. Берется самая что ни на есть обфусцированная прошивка и запускается на программном эмуляторе целевого процессора. Любые регистры, точки останова по любым условиям и декриптованный код в памяти, как на ладони. Даже IDA не всегда нужен. Ну разве что на первых шагах посмотреть правильность точки входа. Quote Share this post Link to post Share on other sites More sharing options...