Search
Write a publication
Pull to refresh
21
0
Send message

Есть вероятность, что уже существует скрипт, который делает эту операцию:

  • он может быть в составе уже имеющегося штатного комплекта.

  • он может быть в составе какой-нибудь коллекции скриптов в инете (стоит поискать/поспрашивать на форумах). Допускаю, что их должно быть изрядное количество, хотя сам ничего специально не искал пока.

  • есть подозрение, что всё это может быть написано в пределах десятка операторов на Python.

Так что с чем надо сравнивать? С какой целью?

Вроде в Ghidra есть мощный аппарат для сравнения разных вариантов. Смотри в хелпе "Program Differences", там много что написано. Тем более, что у Ghidra в отличие от IDA чуть ли не изначально предполагается возможность одновременной работы над одним проектом нескольких особей. А результаты надо уметь сливать в одну кучку... Опять же встроенная система версий...

У Ghidra иногда совсем другие подходы по решению проблем, чем, например "традиционные".

Тут не только экономия времени, возможно более точное описание блоков памяти: не обязательно вся память в bin файле была заполнена/использована, тогда возможно определить промежутки и не использовать их или задать что-то типа "bss".

Кстати, да, порой у Ghidra очень забавный интерфейс и обработка событий!. Сам до некоторых операций никак дойти не могу, хотя в IDA они тривиальны...

Просто делаем Импорт файла (File -> Import...), далее выбираем свой hex-файл и появится диалог, в котором у кажете Language и всё, как обычно...

Гидра умеет разные форматы, но вот HEX не умеет,

Странно, неоднократно загружал HEX, он значительно более информативен, чем BIN. Имеется в виду Intel HEX https://ru.wikipedia.org/wiki/Intel_HEX.

Просто процитирую вики:

Достоинством формата (в отличие от простого двоичного) является возможность указывать только определённые области адресов (с точностью до байта). Многие микроконтроллерные архитектуры имеют несколько областей программирования с обширными пустотами в адресации между ними.

Он позволяет загружать меньше "мусора".

А в целом, конечно, грандиозная работа (и проделана и описана!..)

статистического анализа кода

Ну для начала надо бы отличать "статистического" от "статического", а то с самого начала статьи становится грустно...

Ну очень "непрофессионально..." !!!

Во-первых, я и не называл его панацеей! А вот по возможностям Latex на порядки выше Word-a (в отличие от Вас я не только понимаю, что означает каждый символ в вышеприведённом макросе, а и сам написал их далеко не один ... десяток). И приходилось оформлять и подгонять/подготавливать документы, которые занимали побольше лазерного диска (это пример объёма: материалы докладов конференции, например), так что в отличие от разных "технических писателей" материалом владею несколько получше некоторых.

Так что VBA макросов приходилось писать для разных целей - достаточно, а готовить документы разного формата с разным содержимым, включая вставки, как Exel-таблиц в Word-документы и наоборот отнюдь не один и разного объёма, и вовсе не на 10 или 20 страниц.

А некомпетентность никогда не называли достоинством! Да и не стоит вещать за всех технических писателей. Уж очень мне кажется, что не все из них такие "специалисты"!

Latex - не панацея, как, впрочем, и любой редактор.

Абсолютно дилетантское замечание. Скорей всего, "Latex" будет более тяжелый для использования и начальной настройки специалистами типа "технический писатель", но вот сомневаться в его возможностях может только человек, который абсолютно не знает (не представляет), для чего и кем этот продукт был разработан!

Единственно можно возразить, что переход с одной "технологии" на другую - тот ещё квест, но это уже совсем другая история...

согласен, спасибо. Кстати, на комментариях отчеты об ошибках не работают!! А очень жаль. А то, что ошибки бывают практически всегда, надеюсь, что с этим тезисом спорить никто не будет. Вопрос в том, сколько их...

Видимо вы даже прочесть нормально не удосужились, первая ссылка в источниках...

Точно, Вы правы, до ссылок я уже не дошел, хотя видел их, поторопился с утверждением, но я искал ссылки сразу в районе цитат. Мне что нужно "перерыть" все источники. чтоб разобраться, что откуда? Видимо устал формировать "репорты об ошибках" к тому времени...

Все поняли, что вы самый умный, 

Господи, как примитивно... Ещё мне не хватало, чтоб с Вами чем-то меряться.

Почему человек, не являющийся профессиональным писателем должен это делать?

Что делать? Проверить каким-нибудь спел-чекером свою писанину? Если Вы "не въехали" в мой комментарий, попробуйте перечитать его ещё раз или попросите кого-нибудь более "внимательного" растолковать Вам его смысл...

Если прям топите за грамматику, предложите в личку свои услуги по вычитке на бесплатной основе.

Именно это я и сделал до своих комментариев. Отправил автору кучу исправлений, которые были уже дополнением к тому, что отправил https://habr.com/ru/post/662087/comments/#comment_24284301 до меня. Мы ни разу не пересеклись, как это ни странно!!! А то, что он до меня начал с автором опуса обсуждать эту тему в комментариях, так все вопросы не ко мне...

Просто сегодня какой-то день неправильный: читаю третью статью на Хабре, а там в почти в каждом абзаце ошибки во всех трех, глаз режет...

Такие как Вы отбивают желание писать какие-либо статьи на Хабре.

А сколько статей Вы уже тут написали? Может просто, Вам не о чем сказать? И надо не "желать", а писать, если есть, что сказать...

Лучше бы дельные комментарии давали по сути написанного.

Так по сути там и комментировать-то нечего. Всё на англицком дословно (и без ошибок) сформулировано. Автор пытается "пересказать" то, что написали до него. Только вот сейчас пересмотрел заново и не нашел ссылок на источник/источники, откуда эти цитаты!

Ну, блин, до писателя Вам, как до Китая... Ну и кто мешает воспользоваться услугами "по вычитке и корректировке тестов "? Религия не позволяет? А ещё Вам не грех узнать, что программы могут проверять не только орфографию (тот же MS Word), но и грамматику (синтаксис - это чтоб понятнее было), и они смогли бы разобраться со всеми Вашими предлогами, тем более, что Ваши предложения попроще, чем у Льва Толстого.

Когда видишь не отдельные опечатки, а текст с ошибками практически в каждом абзаце (слава богу, что не в каждом предложении), то уж точно трудно сосредоточиться на "смысловой" части! Более того, возникает вопрос: "Если автор так относится к правилам русского языка, может ли он рассказать что либо ценное о языке программирования, который описывает? Может быть его познания в этой области соответствующие?.."

Правда, вынужден признать, что Вы поступили "хитро", вставив куски на англицком в статью на русском. Обычно правилом хорошего тона бывает перевод того, что приведено на языке, отличном от языка статьи (не обязательно дословный и литературный).

Я понимаю, что для большинства читателей Хабра не составляет труда читать оригинальный текст (я не исключение), но это всего лишь "правило хорошего тона", так же, как и письмо без ошибок!.

Честно говоря, не понимаю, почему можно так неуважительно относиться к будущим читателям Вашего опуса и не удосужиться элементарно проверить хотя бы с помощью какого-нибудь "спел-чекера"?

Обычно авторы на замечания об ошибках (желательно, конечно, не в комментариях - тут я готов с Вами полностью согласиться) благодарят и "молча" исправляют! Дискутировать на эту тему, высказывать своё "фи..", оправдываясь смысловой частью, как-то не комильфо!

"Охрененно" круто, но только почему-то во всех приличных книжках используют термин "конечный автомат", а не "“Finite-state machine”? Я имею в виду книжки на "русском" языке, даже если они и переведены с иноземного!

Как-никак это техническая тема, а не сочинение по русскому языку,

Но в русском языке есть правила, которые должны выполняться, коль скоро Вы его используете. И они ничем не хуже, чем правила языков программирования, которые Вы описываете или, может быть, даже используете. Более того, могу открыть Вам совсем маленький "секрет": есть программы, которые могут проверять Ваш текст на "русском" языке. Более того, большую часть ошибок из Вашей статьи они бы "выделили"! Аминь!

При изучении программного кода, который был уже скомпилирован ответ на этот вопрос достаточно прост. Там скорее всего будет только 1 язык. В случае с веб-приложениями это может быть несколько сложнее.

Очень неквалифицированное утверждение. Даже если Вы изучаете программный код "Hello Wold", то вряд ли там будет десяток языков, но уж парочку, скорей всего точно найдёте (среда, и run-time) скорей всего будут изготовлены на отличном от того языка, на котором Вы "развлекаетесь". А уж в серьёзных приложениях ...

Не вступайте г... и не будет пахнуть! Ужели до сих пор не поняли?

Вы уверены, что с 2003 года, когда декомпилятора у Ильфака не было, и он только «мечтал» об этом, что с тех пор ничего не поменялось?!
Эти вещи он утверждал ещё до «нашей эры». В принципе, он вроде и тогда уже был знаком с трудами Кристины Г., но тогда он ещё мог говорить что угодно, ведь декомпилятора-то у него ещё не было. А при реальной разработке реального декомпилятора… Как говорят у нас на Руси: «Весна покажет, кто где с...», ну или на вполне литературном: «Не говори „гоп“, пока не перепрыгнул»… Могло и его мировоззрение поменяться!
Так что ссылки на 2003 год — извините, это уже абсолютно не актуально. Много воды с тех пор утекло и многое поменялось!..
Я встречал в Интернете упоминания, что полученный, с помощью плагина HexRays «псевдокод» Си, вполне успешно переводился в реальный Си-код.
Это известный факт, более того, могу подтвердить, что среди таких проектов были достаточно серьёзные. Но подобная процедура — это далеко не тривиальная задача, а людей, способных на подобные подвиги, можно на пальцах пересчитывать. И речь идёт об серьёзных проектах, а не тех, где Си-шные исходники всего-то на сотню другую строк.
А всё потому, что выхлопом Hex-Rays Decompiler plugin является Си подобный псевдокод, а не Си-шный код. А получить нормальный Си-шный код из псевдокода очень часто отнюдь не тривиальная задача (специально повторился)!!!
И да, это должно быть значительно проще, чем получать ассемблерный код (компилируемый) из выхлопа Иды.
Честно говоря, мне не хотелось бы поднимать эту тему и тем более давать оценку самой процедуре получения ассемблерного кода после Иды для процедуры его компиляции ассемблером. Это абсолютно «несерьёзное» занятие для серьёзных проектов!..
Хотя никто не запрещает заниматься подобными вещами ради интереса или ещё зачем либо, но всерьёз воспринимать откомпилированный результат и тем более его использовать в реальной жизни… Я даже обсуждать это не буду...!!!
Ну дали Вы ссылку, отлично! Зачем дублировать-то? Тем более, что те статьи хоть и «серьёзны» по содержанию, по своему подходу и реализации, в настоящее время они не более, чем «забавны». Использование, например, Visual FoxPro в процессе решения задачи декомпиляции может (мне кажется) даже ввести в глубокий транс начинающих!.. Хотя, не буду ни в коем разе принижать уровень решений, описанных в тех статьях.
Но так сейчас уже точно не стоит делать, да и тогда-то этот подход был весьма и весьма спорным. Но это отдельный и достаточно длинный разговор (если что).
И ещё: Ильфак никогда не говорил, что результатом плагина (Hex-Rays Decompiler plugin) является «Си-код» (по Вашему выражению выше). Результатом работы плагина является псевдокод. И это отнюдь не одно и то же. Не советую питать иллюзии по поводу результатов плагина, хотя для «Hello, World» будет «вполне» Сишный результат!
1

Information

Rating
Does not participate
Registered
Activity