170 похожих чатов

Есть ли по, которое может декомпилировать dll/so в исходный код?

поделитесь названием

19 ответов

23 просмотра

IDA Pro Disassembler

Psinka-Balerinka Автор вопроса
Anatoly Shirokov
IDA Pro Disassembler

когда-то тыкал, там только фрагменты кода отобрались. объявление функций... это зависит от самой библиотеки?

Psinka Balerinka
когда-то тыкал, там только фрагменты кода отобрали...

Это зависит от компилятора и уметои ли его детектировать IDA. Исходный код для компиляции ты едва получишь.

Почему?

S.E.
Почему?

При компиляции теряется море информации, ты ее обратно не восстановишь

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

Psinka-Balerinka Автор вопроса
Дима Жигальов
смотри в сторону IDA но опять же не в исходный ко...

а в чистый ассемблер можно декомпилировать?

ghidra

S.E.
Почему?

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

Viktor Chyzhdzenka
Потому что компилятор оптимизирующий, а не трансля...

Да, debug-секцию не всегда оставляют. Но шансы есть

Ilya Zviagin
и даже в ассемблер не всегда

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

Viktor Chyzhdzenka
В ассемблер всегда. Но эта запись на асме может бы...

Да нет, будет какая-то левая точка входа в функцию - и не будет никакого вменяемого кода

Ilya Zviagin
Да нет, будет какая-то левая точка входа в функцию...

набор инструкций процессора все равно будет. а ты пишешь не будет.

Ilya Zviagin
Да нет, будет какая-то левая точка входа в функцию...

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

Ilya Zviagin
Да нет, будет какая-то левая точка входа в функцию...

Вменяемого с твоей точки зрения, но команды в двоичном коде всегда однозначно записываются на асме. А с функциями - в аме такого явного понятия нет. Есть команда call, но компилятор может ее не юзать, а просто встроить код или вообще jmp разные заюзать.

Anatoly Shirokov
набор инструкций процессора все равно будет. а ты ...

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

Ilya Zviagin
Ну для этого надо , для расшифровки байтов в норма...

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

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта