Существуют ли специальные программы, которые могут прочитать код программы? А код программы для смартфона? Если есть, то как называются?
Ключевые слова: как прочитать программу, как прочитать код программы, как прочитать машинный код,
9 ответов к вопросу “Как прочитать код программы?”
ответ #0 / ответил: Служба поддержки
ответ #1 / ответил: bear-bearich
Полезный ответ? Да ( 0 ) / Нет ( 0 )
дизассемблер IDA pro
ответ #2 / ответил: daemon39
Полезный ответ? Да ( 0 ) / Нет ( 0 )
ответ #3 / ответил: vaniy8
Полезный ответ? Да ( 0 ) / Нет ( 0 )
что вы имеете в виду? код исполняемого файла (ехе) или просто неоткомпелируемый код?
ответ #4 / ответил: karam.64
Полезный ответ? Да ( 0 ) / Нет ( 0 )
побегай с бубном вокруг компа в состоянии сильного алкогольного апьянения.
ответ #5 / ответил: djgruz
Полезный ответ? Да ( 0 ) / Нет ( 0 )
редактор notepad++ внем открыть
ответ #6 / ответил: paging3
Полезный ответ? Да ( 0 ) / Нет ( 0 )
Дизассемблер. Но чтобы им пользоваться надо очень много знаний.
Как Зашифровать и Расшифровать Текст на C++ (Криптография)
ответ #7 / ответил:
Полезный ответ? Да ( 0 ) / Нет ( 0 )
какой?? Имя, фамилия, ОС? Для ЕХЕ тебе далеко, сразу видно, если ты даже в этом нешариш, ты думаеш перепрыгнеш незная даже основ прогаммирования, сразу тебе все на тарелочке покажут?? Ты че, чел, ты откуда, с другого измирения? 😉 ответ тоже прост: используй дизассемблеры/дебагеры для мобильных — смотря для какой ОС, восн на java пишется (есть декомпиляторы) некоторые можна декомпилить, но нада иметь мозги копаться в исходниках, даже, побайтово определить, где што 😉 ИЩИ 😉
ответ #8 / ответил:
Полезный ответ? Да ( 0 ) / Нет ( 0 )
Смотря ексе для какой среды написан, для каждого из них есть свои дизассемблеры, есть более иль менее универсальные к примеру IDA , некоторые исполняемые файлы пройдены протекторами, тогда и от ID’ы проку мало будет….
ответ #9 / ответил:
Полезный ответ? Да ( 0 ) / Нет ( 0 )
Что значит «прочитать код программы»? Машинный код программы читает только процессор. Человек на это не способен. Если имеется в виду преобразовать его в понятный для человека вид, то это зависит от того, что умеет читать человек. Дальше кода ассемблера, во всяком случае, не уйдешь.
Если ты хорошо разбираешься в ассемблере, бери программу-дизассемблер. А исходный текст программы воссоздать невозможно, как невозможно воссоздать расчеты моста по его чертежам.
Источник: itbym.ru
Приемы чтения кода
Для начинающих программистов хорошим тоном всегда было – «учиться программированию у мастеров». А кто может быть лучшими мастерами, чем разработчики типовых решений?! Поэтому совершенно неудивительны попытки новичков открывать модули типовых решений и просто начинать читать код, следя за развитием логики алгоритма, подмечая ньюансы и приемы программирования.
В такие моменты начинающий программист подобен литературному переводчику с неродного языка: что знал – перевел, что не знал – домыслил, что не понял – перевел так, как написал бы сам в данной ситуации.
И не беда, что поначалу половина кода кажется туманной и загадочной. Главное понимать его цель, отмечать основные вехи и как можно больше – читать, осознавать и брать на вооружение. По мере «набивания руки» в чтении кода – тумана и загадок будет оставаться все меньше.
А что бы этот процесс приносил еще больше пользы – в данной статье предлагаем определенную методику и ряд приемов, минимизирующих усилия по чтению программного кода.
Но кому в наше время нужна голая теория, не подкрепленная практикой?! Что бы доказать действенность методики – давайте сразу попробуем ее применять в конкретном примере.
Допустим, мы хотим разобраться, как в типовых решениях устроен механизм пересчета цен при изменении значения валюты документа.
Выход на нужный программный код
Ну что открываем «конфигуратор»?
Первым делом в любой ситуации полезно посмотреть на действие изучаемого механизма… в пользовательском режиме программы!
Поясню: Понимая, к чему это действие приводит, впоследствии гораздо легче делать выводы о важности тех или иных фрагментов программного кода. А это в свою очередь, позволит сэкономить время на игнорировании «очень мутных, но, похоже, не важных» для нашего механизма фрагментах.
Итак, правило первое: Перед началом анализа программного механизма, посмотрите на его действие «глазами пользователя».
Далее желательно определиться с точкой старта изучаемого механизма. Ну, в самом деле, не будем же мы читать сверху-донизу все строчки кода всех модулей программы. Их миллионы. А задействована в работе нашего мехнизма – только малая часть. Как бы на нее выйти побыстрее?
Тут полезно вспомнить, что язык системы «1С:Предприятие» — язык событийный. То есть программный код – он не сам по себе, он задействуется только в ответ на некие события, возникающие после действий пользователя.
Итак: Если хотим быстро выйти на фрагмент кода механизма – достаточно определить «провоцирующее» действие пользователя и обработчики событий, возникающих после этого действия.
Как видите, найти обработчики событий, связанных с изменением элементов формы, достаточно легко. Надо лишь в эскизе формы задействовать контекстное меню на самом элементе, и в подменю «События» посмотреть – напротив каких обработчиков проставлена пиктограмма «Р()». Если проставлена – значит этому обработчику назначена процедура. А если обработчик подходит по смыслу нашей задачи – то именно эту процедуру надо прочитать, изучить.
Серфинг по коду
Порядок чтения изучаемой процедуры, разумеется, — «сверху-вниз» и, по возможности, «ничего не пропуская».
Но одним из принципов структурного программирования является следующий: «повторяющиеся фрагменты программы нужно оформлять в виде процедур и функций, вызываемых из программы». То есть надо быть готовым к тому, что очередная строчка кода в изучаемой процедуре будет не исполняемой командой, а именем «вызываемой из программы процедуры или функции». А вызываемая процедура или функция уже в свою очередь может включать в себя вызовы других процедур или функций, а те – других…
Фактически чтение «сверху-вниз» в типовых конфигурациях зачастую превращается в «серфинг» по вызывающим друг-друга процедурам и функциям. Как не «утонуть», не запутаться при этом серфинге – смотрим в следующем ролике:.
Шаг вперед: F12> — переход к определению вызываемой процедуры, функции или переменной;
Шаг назад: комбинация клавиш Ctrl + » -«> (причем «минус» надо нажимать на верхнем ряду клавиатуры, а не на отдельной боковой).
Кроме этих двух основных приемов «серфинга» есть еще один вспомогательный:
Alt + F12> — найти использование процедуры или функции. Эта комбинация клавиш позволит оценить «популярность» очередной процедуры или функции:
Анализ вызываемых процедур и функций
Ну что ж, теперь можно подступаться к анализу вызываемой функции «НеобходимПересчетВВалюту».
Что бы чтение функции (процедуры) сопровождалось еще и пониманием прочитанного – желательно придерживаться следующего плана:
1) Контекст
2) Комментарий
3) Параметры
4) Текст
То есть – текст в последнюю очередь.
Почему? Потому что «дешевле и быстрее» выводить умозаключения «от общего к частному», а не наоборот. Потому что легче читать код функции, когда Вы уже четко осознаете:
1) Где она расположена, и какое окружение ей доступно просто из-за того, что она расположена именно там?
2) Что мне хотел посоветовать/пояснить автор этой функции?
3) Какие данные (недоступные из контекста) автор бы вынужден передать со стороны вызывающей процедуры(функции)?
В следующем ролике показано – как именно это осознание можно выполнять:
Ну что ж, осознали.
Вот теперь можно приступать к чтению:
Синтакс-помощник, помогай!
Резюмируем: в процессе «серфинга по коду» можно наткнуться на системные процедуры(функции). Отличие от обычных в том, что их код «зашит» в платформу и поэтому представляет для нас «черный ящик». Что там внутри — не известно. Да и не очень-то хотелось бы с этим разбираться. Вполне достаточно, если бы нам кто-то предоставил описание:
- входной для «черного ящика» информации;
- планируемого действия черного ящика;
- выходной из «черного ящика» информации;
- особенностей поведения «черного ящика».
Так вот, все это описание содержится в инструменте платформы «Синтакс-помощник»:
Приведенный в этом ролике пример работы с синтакс-помощником – это не какое-то особенное и самобытное действие в процессе чтения чужого кода. Это обычная рутинная, рефлекторная повседневность. Это как во время ходьбы размахивать руками. Не задумываемся, просто машем и все тут.
Ну, вот смотрите сами, как идет дальнейший анализ нашей функции:
А вот так освоенные нами «F12″, Ctrl + » -«> и «Поиск в Синтакс-помощнике» помогают осознать следующую часть алгоритма:
Изучение привлекаемых объектов
В процессе чтения кода кроме вызываемых или системных процедур и функций мы можем еще наткнуться на привлечение других объектов. Вот сейчас мы в рамках контекста формы документа с алгоритмом разбираемся. Но в самом алгоритме прописано получение данных из совсем другого объекта. Смотрите, как можно и в этом случае воспользоваться теми правилами чтения кода, что мы уже изучили:
Отладчик, показывай!
Хорошо когда Вам абсолютно прозрачны преобразования данных, выполняемые в коде алгоритма. То есть читаете код и понимаете: «ага, сюда, значит, у них заходит проволока, вот этот барабан крутится, вот эти насадки загибают, а вот эта – обрезает. «
Но иногда понимание сводится к следующей схеме:
Наглядность! Вот что требуется при чтении сложных фрагментов кода.
Наглядность преобразований данных на каждом этапе.
Так вот, платформа «1С:Предприятие» имеет шикарный инструмент для обеспечения наглядности. Называется он – «Отладчик».
Итак, отладчик позволяет посмотреть результат любой переменной, метода или функции, выполнимых в рамках текущего кода (текущего контекста).
За работу, товарищи!
А что в алгоритме было дальше… — узнайте, пожалуйста, сами.
Ну, правда, попробуйте.
Убедитесь, что это не сложно и по-своему приятно.
Ведь что может быть приятнее для начинающего программиста, чем полностью разобраться в сложном, запутанном деле алгоритме.
Не смогли найти подходящий курс?
Обращайтесь за бесплатной консультацией
- Наши курсы
- Наши курсы
- Схема курсов
- Расписание курсов
- Прайс-лист
- Пакеты курсов
- 1C:Профессионал
- Квалификационное тестирование 1С:Тестцентр
- Все форматы
- Удаленное обучение
- Очное дневное
- Очное вечернее
- WEB-обучение
- Курс-погружение дневной очный
- Курс-погружение дневной удаленный
- Курс-погружение вечерний очный
- Курс-погружение вечерний удаленный
- Онлайн-курс
- Продление доступа к видеоматериалам
- Курс выходного дня
- Видеокурс
- Пакеты курсов
- Видеоматериалы
- Учебные версии программ
- Блог
- О центре
- Отзывы и благодарности
- Наши преподаватели
- Новости учебного центра
- Сведения об образовательной организации
«1С-Учебный центр 3», 2023. Разработка сайта — Андерскай Диджитал
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Источник: www.1c-uc3.ru
Однозначное декодирование
Понятие однозначного декодирования
Вы любите шпионов? А готовы почувствовать себя в их шкуре?
Нам нужно передать секретное сообщение на базу, а раз оно секретное, никто не должен понять, что мы передаем. Для этого надо представить наше сообщение в каком-то новом виде, который на первый взгляд будет бессмысленным, но мы будем знать, как его расшифровать.