|
|
  |
Обфускатор кода |
|
|
|
Jul 28 2016, 06:00
|
Местный
  
Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199

|
Цитата(jcxz @ Jul 28 2016, 08:32)  А чем он должен отличаться от обфускатора для любого другого МК? Или вообще даже не МК, а любого си-кода? Наверное ничем  . Просто я ничего не знаю об обфускаторах, а запутать код надо. Причем у меня особенность: мой проект написан на ассемблере (около 22000 строк). Поэтому мне нужен либо обфускатор для кода на ассемблере, либо обфускатор для скомпилированной программы (если такой существует).
|
|
|
|
|
Jul 28 2016, 09:25
|
Местный
  
Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199

|
Цитата(Dima_G @ Jul 28 2016, 10:40)  Код на ассемблере в 22,000 строк в обфускации не нуждается  Смотря для кого  Цитата(Kabdim @ Jul 28 2016, 10:50)  Это ближе к полиморфным вирусам + упаковщик и/или шифрование + оверлеи. Вопрос стоят ли усилия результата? Если в чужие руки попадет исходник, то на 95% достаточно возможности тиражирования, чему обфускация ни капли не мешает. Тиражирование как раз приветствуется. Однако работа программы зависит от лицензии. Чтобы хоть как то защититься от взлома и обхода лицензии надо обфусцировать код для усложнения дизассеблинга.
|
|
|
|
|
Jul 29 2016, 04:44
|
Местный
  
Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199

|
Цитата(Kabdim @ Jul 28 2016, 10:50)  Это ближе к полиморфным вирусам + упаковщик и/или шифрование + оверлеи. Можно подробнее об этом?
|
|
|
|
|
Jul 29 2016, 07:53
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(Kabdim @ Jul 29 2016, 10:23)  Чем больше такой лапши тем сложнее анализирующему удержать её в голове. И такого придумано много.
Используем что-нибудь сверхмалое упаковывающее/распакоывающее вроде lz4. Компилируем код память, Когда нибудь пробовали дизассемблировать программы? То что не используется дизассемблеры типа IDA сразу покажут. Отметят красным цветом и выкинут. Это затруднит хакеру работу максимум на пару часов. А программер чтобы сделать это затратит месяцы. Про оверлей не смешно, MSP коды выполняет из Flash. Какие еще оверлеи?
|
|
|
|
|
Jul 29 2016, 09:37
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
из простейшего: собрать в hex, потом из hex превратить в кашу вида Код db 0x55,0x56,0x57 и в таком виде отдавать. те кому надо дизассемблировать это всё равно сделают, а не имея опыта дизассемблирования сражаться с кашей из db dw dd никто не станет.
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
Jul 29 2016, 10:04
|
Знающий
   
Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842

|
Цитата(AlexandrY @ Jul 29 2016, 10:53)  Когда нибудь пробовали дизассемблировать программы? То что не используется дизассемблеры типа IDA сразу покажут. Отметят красным цветом и выкинут. Это затруднит хакеру работу максимум на пару часов. А программер чтобы сделать это затратит месяцы. Да пробовал, а вы понимаете что иногда примеры приходится упрощать? Достаточно ли понятная фраза "Результаты АА и ББ должны вливаться в результат, но не влиять на него"? В любом случае я не претендую на лавры писателя защиты. Может быть Вы сможете написать на эту тему больше лучше и понятней? Цитата(AlexandrY @ Jul 29 2016, 10:53)  Про оверлей не смешно, MSP коды выполняет из Flash. Какие еще оверлеи? Бывают накладки когда пользуешься "Сообщения с Вашего последнего посещения"
|
|
|
|
|
Jul 29 2016, 14:38
|
Знающий
   
Группа: Участник
Сообщений: 750
Регистрация: 1-11-11
Пользователь №: 68 088

|
Цитата(Kabdim @ Jul 29 2016, 10:23)  Полиморфизм кода добавляем команды которые не имеют смысла, перетасовываем используемые регистры и прочие интересные вещи для которых нужно много учения и практики. Аля: 1. Разбавить код А-Б-С до вида А-АА-Б-ББ-С где результаты АА и ББ не нужны, но в АА и ББ старательно используют результаты данных из правильных шагов. Результаты АА и ББ должны вливаться в результат, но не влиять на него 2. Если А(1) и Б(1) пользуются регистром 1. Поменять код на А(1)-(1->2)-Б(2)-(2->1). Чем больше такой лапши тем сложнее анализирующему удержать её в голове. И такого придумано много. Фигня всё это из прошлого века. "Анализирующий" ничего не держит в голове, на это есть компьютер. Берется самая что ни на есть обфусцированная прошивка и запускается на программном эмуляторе целевого процессора. Любые регистры, точки останова по любым условиям и декриптованный код в памяти, как на ладони. Даже IDA не всегда нужен. Ну разве что на первых шагах посмотреть правильность точки входа.
--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|