реклама на сайте
подробности

 
 
> AVRASM2, нужна идея
zombi
сообщение Jan 27 2012, 23:47
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Нужно сделать так чтобы при каждой компиляции одного и тогоже файла генерился разный код, т.е. каждый мк был уникальным.
Понимаю что нужно редактировать исходник, но не вручную а как-то автоматически.
Вот еслиб было что-то типа такого biggrin.gif

.org PC+random(X)

Кто что может посоветовать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Палыч
сообщение Jan 28 2012, 05:22
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Для каких целей нужно, чтобы код был бы всегда разный?

Можно, например, вставить в качестве такой изменяющейся части что-то такое
Код
   .db __DATE__, __TIME__

Используются в примере предопределённые макросы, доющие строки с датой и временем компиляции.
Go to the top of the page
 
+Quote Post
zombi
сообщение Jan 28 2012, 10:04
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(Палыч @ Jan 28 2012, 09:22) *
Для каких целей нужно, чтобы код был бы всегда разный?

Для усложнения дизассемблирования (анализа) кода путём сравнения нескольких прошивок.
Сомневаюсь что это сильно усложнит, но всёже ...
Цитата(Палыч @ Jan 28 2012, 09:22) *
Можно, например, вставить в качестве такой изменяющейся части что-то такое
Код
   .db __DATE__, __TIME__

Это можно, но эта последвательность будет явно видна по одним и темже адресам.

Цитата(prottoss @ Jan 28 2012, 09:54) *
Не совсем понятно, ВЫ для каждого МК будете компилить прошивку? biggrin.gif

Время компиляции не боьшое (2-3 сек) почему бы и нет biggrin.gif
Главное что бы всё было автомитически, например путем запуска *.bat файла.
Цитата(prottoss @ Jan 28 2012, 09:54) *
Проще скомпилировать прошивку один раз а за тем уже какой то самописной утилитой добавлять к ней свой ID в определенном месте.

Тоже легко находится при сравнении пары прошивок.

Хочется что бы именно код по разному лежал, т.е. все джампы и колы (ну или многие) имели разную кодировку.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jan 28 2012, 10:49
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(zombi @ Jan 28 2012, 14:04) *
Для усложнения дизассемблирования (анализа) кода путём сравнения нескольких прошивок.
...Хочется что бы именно код по разному лежал, т.е. все джампы и колы (ну или многие) имели разную кодировку.

Для этого нужно самому хорошо "поработать" над Вашей программой.
Используйте прероцессор (#if #else #elif #endif). В условии можно применить предопределенный макрос __SECOND__. Например, если число секунд меньше 30, то один участок, больше - другой; в другом месте - например, условие: число секунд <10, в третьем -... и т.д.
Если свободной памяти много, можно "разбавить" программу "бесполезными" кусками кода разной длины от какого-либо условия, приведенного выше, но, выглядящими вполне "осмысленно" (оформить процедурами, вызовы/переходы между этими кусками...). Естественно, вставлять эти куски не абы куда, а между "нормальными" процедурами. Если вставки будут иметь разную длину от условия, то и "полезные" куски кода будут размещаться в разных прошивках по разным адресам.
Можно ещё и "полезные" куски кода написать в двух-трёх вариантах (например, обращение к регистрам устройств можно сделать через OUT/IN, а можно - через LD/ST и др.варианты, выполняющие одно и то же действия, но другими командами - в конце-концов: переставить пару команд местами, если это не "повредит" программе...). Разные варианты "полезного" кода - тоже "чередовать" в зависимости от условия в условном операторе пропроцессора.

Имхо, так сделать - можно, но, не запутаетесь ли Вы при правке (доработке) программы? Не усложните ли Вы жизнь только себе?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 04:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01411 секунд с 7
ELECTRONIX ©2004-2016