Вам предстоит многократно менять создаваемые программы — в процессе отладки, пока они не начнут работать так как вы хотите.
1. Запустите компилятор CodevisionAVR (CVAVR) и через меню File -> Open откройте файл проекта CVAVR — c:vmlabz8cv.prj
2. Разверните окно с текстом программы. Вы видите что программа начинается с оформленного в виде комментария краткого описания того что она делает и некоторых технических параметров. Программа написана на языке Си — который является пожалуй самым популярным и удобным при программировании для МК.
3. Найдите в тексте программы в компиляторе CVAVR строки:
putchar(‘P’); // вывод в USART символа P
putchar(‘W’);
putchar(‘M’);
Давайте заменим выводимое этими строками слово PWM на слово WOW вот так:
putchar(‘W’); // вывод в USART символа W
putchar(‘O’);
putchar(‘W’);
4. После внесения изменений в исходный текст программы ее нужно cкомпили-
ровать. Компилятор должен превратить вашу программу в файл «прошивку».hex который можно прошить (загрузить) в реальный МК или использовать в симуляторах.
C# Как изменить имя exe-файла, который создаётся при компиляции
5. Для выполнения компиляции нажмите кнопку «Make the project»:
![]() |
После компиляции появится информационное окно в котором сообщается что наша программа содержит целых 5 ошибок! В чем же дело? Где найдены ошибки и каковы они написано красным цветом в левой части экрана в окне Navigator — навигации по проекту CVAVR:
![]() |
При наведении курсора можно увидеть описание ошибок.
6. Первая ошибка — «не могу открыть файл m8_128.h»
Этот файл включен в исходный текст программы строкой:
Этот файл был создан для возможности прямой вставки примеров на Си из документации в текст программы в CVAVR. В инсталляции компилятора его нет. Но в тексте программы написано где можно скачать файл – скачайте m8_128.h.
Скачав, поместите его в папку INC компилятора CVAVR.
7. Снова откомпилируйте программу кнопкой «Make the project» — теперь получаем сообщение об отсутствии ошибок и о размере программы и о том сколько это %% от максимального размера программы для данного МК.
Посмотрите внимательно — хотя ошибок нет, но есть “Warning” — это замечание от компилятора. Замечания не критичны, но можно посмотреть в навигаторе о чем они. Закройте информационное окно кнопкой «ОК».
Вы выполнили всего 4 несложных шага, но уже знаете что моделировать работу МК можно на компьютере не имея самого МК и электронной схемы вокруг него. При этом видеть не только то что происходит на ножках МК но и то что происходит внутри МК с помощью нижних частей меню View и Window симулятора VMLAB.
Вы уже знаете как открыть проект в компиляторе, внести изменения, скомпилировать программу, увидеть ошибки, исправить их. Знаете, что не нужно пытаться исправлять все ошибки сразу, а нужно начинать с первой и возможно после ее исправления другие ошибки тоже пропадут.
Как разобрать и собрать Android приложение? [Декомпиляция / Компиляция файла .APK]
Источник: studopedia.su
Как изменить скомпилированную программу, возможно ли это вообще?
Имеется небольшая скомпилированная под линукс программа, исходники были на C. Надо вырезать/изменить условие одной проверки, либо вытащить рабочий вариант куска самой программы. Как и чем это делать?
P.S.
Были попробованы IDA PRO;RecStudio;boomerang;
RecStudio выдал неадаптируемый текст, boomerang — вырезание проверки условия и куска кода.
- Вопрос задан более трёх лет назад
- 1043 просмотра
4 комментария
Оценить 4 комментария
Вот IDA PRO как раз и нужно ковырять. В простом варианте найти проверку условия и изменить его, чуть более продвинуто — реверснуть всю логику (ну, и переписать ее на нужном языке).
pi314: У меня впринципе есть асмокод этой программы, спасибо иде. Примерно представляю что там надо и как изменить что-бы выполнить нужную мне задачу. Проблема в практически абсолютном незнании мою ассемблера и невозможности запустить итог по причике кучи ошибок.
Rubikoid: То, что кажется интуитивно «понятным» на уровне логики, может в ассемблере выглядеть совершенно неузнаваемо, благодаря оптимизациям компилятора. Иногда даже найти проверку того самого «простого» условия — задачка нетривиальная. Так что, или сами разбирайтесь, или обратитесь к кому-нибудь за помощью, т.к. иного пути, кроме изучения/понимания ассемблера тут нет 🙁
Источник: qna.habr.com
Изменить скомпилированный.Net Exe
У меня есть приложение, написанное на C# (без источника, конечно), которое нужно немного изменить. Например, мне нужно остановить несколько строк кода, которые создают ненужное меню. Поэтому я думаю, что я должен закомментировать их.
Исходный код не запутан. Я знаю, что могу полностью декомпилировать, изменять и снова компилировать, используя такие инструменты, как Reflector/Reflexil. Но все знают, что при этом многие части кода не будут компилироваться снова! Есть ли способ в Reflector (или любом другом продукте), что часть может быть отключена / изменена без этого процесса?
user2468348 26 авг ’13 в 05:10 2013-08-26 05:10
2013-08-26 05:10
6 ответов
В конце концов мне удалось «отключить» несколько строк кода в скомпилированном exe.
Я использовал Reflector с установленным плагином Reflexil. Reflexil позволил мне отредактировать инструкцию MSIL, а затем сохранить результат обратно в исполняемый файл. Таким образом, это включало изучение нескольких инструкций MSIL, особенно команды «без операции» (создание строки кода ничего не делает). Чтобы увидеть список инструкций и учебника, смотрите здесь и здесь.
Надеюсь, это поможет кому-то еще.
user2468348 06 апр ’15 в 14:30 2015-04-06 14:30
2015-04-06 14:30
Вы можете попробовать dnSpy. Это редактор сборок.NET, декомпилятор и отладчик, созданный из ILSpy.
user2191876 31 дек ’15 в 15:39 2015-12-31 15:39
2015-12-31 15:39
Если вам действительно нужно это сделать, вы можете декомпилировать его с помощью Reflector (или аналогичного продукта), а затем использовать его, чтобы попытаться воссоздать решение в.Net, которое будет производить тот же исполняемый файл.
Вы можете столкнуться с проблемами вокруг:
- Запутанный код
- Разделы, где декомпиляция показывает вам точный код для определенных разделов, но по какой-то причине он просто не работает в вашем новом решении (и что вы тогда делаете?)
Это не говоря уже о потенциальных юридических проблемах, связанных с этим. Если исполняемый файл был выпущен по лицензии, которая позволила бы вам сделать это, то вы, скорее всего, имели бы доступ к исходному коду. Поэтому тот факт, что у вас нет доступа к исходному коду, означает, что выполнение того, что вы предлагаете, может быть нелегальным.
Источник: stackru.com