Как расшифровать код программы

Существуют ли специальные программы, которые могут прочитать код программы? А код программы для смартфона? Если есть, то как называются?


Ключевые слова: как прочитать программу, как прочитать код программы, как прочитать машинный код,

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

Приемы чтения кода

Для начинающих программистов хорошим тоном всегда было – «учиться программированию у мастеров». А кто может быть лучшими мастерами, чем разработчики типовых решений?! Поэтому совершенно неудивительны попытки новичков открывать модули типовых решений и просто начинать читать код, следя за развитием логики алгоритма, подмечая ньюансы и приемы программирования.

Читайте также:
Как пользоваться программой far manager

В такие моменты начинающий программист подобен литературному переводчику с неродного языка: что знал – перевел, что не знал – домыслил, что не понял – перевел так, как написал бы сам в данной ситуации.

И не беда, что поначалу половина кода кажется туманной и загадочной. Главное понимать его цель, отмечать основные вехи и как можно больше – читать, осознавать и брать на вооружение. По мере «набивания руки» в чтении кода – тумана и загадок будет оставаться все меньше.

А что бы этот процесс приносил еще больше пользы – в данной статье предлагаем определенную методику и ряд приемов, минимизирующих усилия по чтению программного кода.

Но кому в наше время нужна голая теория, не подкрепленная практикой?! Что бы доказать действенность методики – давайте сразу попробуем ее применять в конкретном примере.

Допустим, мы хотим разобраться, как в типовых решениях устроен механизм пересчета цен при изменении значения валюты документа.

Выход на нужный программный код

Ну что открываем «конфигуратор»?

Первым делом в любой ситуации полезно посмотреть на действие изучаемого механизма… в пользовательском режиме программы!

Поясню: Понимая, к чему это действие приводит, впоследствии гораздо легче делать выводы о важности тех или иных фрагментов программного кода. А это в свою очередь, позволит сэкономить время на игнорировании «очень мутных, но, похоже, не важных» для нашего механизма фрагментах.

Итак, правило первое: Перед началом анализа программного механизма, посмотрите на его действие «глазами пользователя».

Далее желательно определиться с точкой старта изучаемого механизма. Ну, в самом деле, не будем же мы читать сверху-донизу все строчки кода всех модулей программы. Их миллионы. А задействована в работе нашего мехнизма – только малая часть. Как бы на нее выйти побыстрее?

Тут полезно вспомнить, что язык системы «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

Однозначное декодирование

Понятие однозначного декодирования

Вы любите шпионов? А готовы почувствовать себя в их шкуре?

Нам нужно передать секретное сообщение на базу, а раз оно секретное, никто не должен понять, что мы передаем. Для этого надо представить наше сообщение в каком-то новом виде, который на первый взгляд будет бессмысленным, но мы будем знать, как его расшифровать.

Главное — чтобы расшифровать было возможно.

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru