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

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

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

19 ответов

18 просмотров

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
Ну для этого надо , для расшифровки байтов в норма...

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

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

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

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
10
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Карта сайта