LINUX.ORG.RU

Редактирование скомпилированных библиотек

 , , , ,


1

4

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

Для android такое уже есть, baksmali переводит код виртуальной машины dalvik в более понятные выражения. А здесь что мне делать? Даже отредактировать по нормальному не могу, никакого текстового вида, тупо непонятные наборы букв и ограниченные опции (ни один дизассемблер ничем кроме редактирования чисел и строк мне не помог).

Нужен конвертер как для arm так и для x86 инструкций, или привести к нормальному понятному виду определённый кусок кода, и чтобы я мог изменять этот «нормальный» вид, а не груду инструкций, и не какими-то там кнопками, а текстовым редактором.

Я всего лишь хотел исправить баг в unity игре для android, оказывается для .so файлов нет таких удобств (почему-то), как для .dex и .dll (.net).



Последнее исправление: gradle (всего исправлений: 4)

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

Та, которая будет разбираться больше самого начитанного. Не хочешь разбираться сам - приходи лет через 10, может случится очередное чудо и какое-нибудь машинное обучение наловчится так делать. Не хочешь ждать - в Job.

t184256 ★★★★★
()

Я всего лишь хотел исправить баг в unity игре

Игре? Тут люди sp-auth с libc5 на libc6 перенести не могут, а ты про какие то игры.

anonymous
()
Ответ на: комментарий от t184256

Так ведь baksmali и Java/.net декомпиляторы уже умеют это делать, какое ещё чудо? Это всего лишь gcc, только в обратную сторону.

gradle
() автор топика
Ответ на: комментарий от gradle

Ты дочитай, он хочет понятный ему код. Была бы такая тулза, ее бы уже в каждый IDE встроили и запускали бы на каждый чих как автоформаттер.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

и запускали бы на каждый чих как автоформаттер

Два чая.

anonymous
()
Ответ на: комментарий от EXL

Есть, дорого и невсегда справляется.

Есть ещё другая, многообещающая тулза от NSA.

Но, в общем, ТС полез конечно туда, куда ему ещё рановато.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 2)

Трава становится всё забористее...

anonymous
()
Ответ на: комментарий от beastie

Ещё есть многообещающий открытый проект Radare с различными декомпиляторами:

https://github.com/radareorg

https://www.radare.org/r/

Один из пользователей ЛОР, кстати, является активным разработчиком.

Но, в общем, ТС полез конечно туда, куда ему ещё рановато.

This.

EXL ★★★★★
()

оказывается для .so файлов нет таких удобств (почему-то), как для .dex и .dll (.net).

Тёплое с мягким. В .so машинный код, а в .net высокоуровневый байт код. Последний более менее прямолинейно повторяет исходник, а в первом надо из фарша мясо лепить чтобы получить конструкции языка высокого уровня.

xaizek ★★★★★
()

Реверс инжиниринг одна из самых сложных задач, тривиальных инструментов не существует. А то что ты можешь декомпилировать код для dalvik, так это потому что там байткод который однозначно можно перевести обратно в обычный код (да и то не всегда наверное) Если бы всё было бы так просто. На линуксах работало бы всё железо и все программы которые только существуют под всеми платформами ибо портирование изи, декомпильнуль, поправил, скомпилировал. Запилил deb|ebuild и проприетаристы в истерике и панике =) Инструменты конечно есть, но они это, только делают намёк на порядок вычислений и всё, логику там ещё раздуплить надо и не понятно сколько бутылок на это уйдёт =)

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от EXL

Но, всё таки до IDA всем этим опен-сорс поделкам, как линуксу до десктопа. :(

Ибо оно поддерживает более чем, полтора ширпотребных cpu. Кто реверзит ембедщину, те в курсе.

beastie ★★★★★
()
Ответ на: комментарий от beastie

всё таки до IDA всем этим опен-сорс поделкам, как

Да? IDA вроде как неплохой инструмент (по слухам), а где результат (те теоретический, а практический)?

anonymous
()
Ответ на: комментарий от anonymous

Какой ещё «результат»? За результаты реверс-инжиниринга сажают на бутылку правоохранительные органы.

anonymous
()
Ответ на: комментарий от anonymous

За результаты реверс-инжиниринга сажают

«Байки из склепа»? Или ты предлагаешь логи к этому хозяйству прикладывать?

anonymous
()
Ответ на: комментарий от anonymous

А ты хотел реверсинжиниринга софта янки инструментами янки в медвежьем углу с населением банановой республики?

anonymous
()
Ответ на: комментарий от anonymous

янки, чтоле

Это вопрос про MS. Ты имеешь отношение к MS?

anonymous
()
Ответ на: комментарий от anonymous

С помощью IDA редактировал pw-сервер (когда исходники не были слиты). Было интересно и все получилось.

anonymous
()
Ответ на: комментарий от anonymous

На Украине? Спасибо, но нет. Мне и в цивилизованном обществе хорошо живется.

anonymous
()

retdec, hydra, ida pro, snowman, вроде ещё что-то было, но там совсем треш

SR_team ★★★★★
()

so файлов нет таких удобств (почему-то), как для .dex и .dll (.net).

То, что у жабки и дотнета - это не компилятор, тебя обманули.

crutch_master ★★★★★
()

А здесь что мне делать?

Ничего. Реверс бинарников - это для элиты.

crutch_master ★★★★★
()

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

Rost ★★★★★
()

Я всего лишь хотел исправить баг в unity игре для android

Вообще, в последние 40 лет очень много людей хотело бы того же, что и ты. Причём 40 лет назад это зачастую даже получалось, поскольку программы были маленькие. Сейчас всё сложнее.

Задача прочитать (даже не редактировать, просто прочитать), что делает нативный бинарник — крайне нетривиальна. Хотя кое-какие средства есть (в этой теме тебе называли radare и др.), есть и люди, которые этим занимаются. Но пока это отдельные люди и отдельная область знаний.

.dll (.net).

Насколько я понимаю, .dll (.net) — это не совсем .dll, там байткод. А, впрочем, про это тебе уже написали.

Это всего лишь gcc, только в обратную сторону.

В квотезы!

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.