поделитесь названием
IDA Pro Disassembler
когда-то тыкал, там только фрагменты кода отобрались. объявление функций... это зависит от самой библиотеки?
Это зависит от компилятора и уметои ли его детектировать IDA. Исходный код для компиляции ты едва получишь.
Почему?
При компиляции теряется море информации, ты ее обратно не восстановишь
смотри в сторону IDA но опять же не в исходный код, а одно из возможных представлений кода ассемблера на языке высокого уровня
а в чистый ассемблер можно декомпилировать?
и даже в ассемблер не всегда
ghidra
Потому что компилятор оптимизирующий, а не транслятор. Требования к оптимизирующим компиляторам найдешь на их сайтиках (обычно они всегда точно озвучены). В результате из твоего кода на некотором языке программирования получается некоторый бинарный код для процессора, который будет очень не похож на то, что ты писал на языке программирования.
https://t.me/supapro/1322101
Да, debug-секцию не всегда оставляют. Но шансы есть
В ассемблер всегда. Но эта запись на асме может быть очень далека от того, что бы ты ожидал увидеть на базе своего кода на высокоуровневом языке.
Да нет, будет какая-то левая точка входа в функцию - и не будет никакого вменяемого кода
набор инструкций процессора все равно будет. а ты пишешь не будет.
Да, потребуется ручная работа, чтобы переработать во вменяемый код. В частности такие действия при дизассемблировании приходится делать при разборе отдельных сегментов данных (к примеру, таблицы синусов).
Вменяемого с твоей точки зрения, но команды в двоичном коде всегда однозначно записываются на асме. А с функциями - в аме такого явного понятия нет. Есть команда call, но компилятор может ее не юзать, а просто встроить код или вообще jmp разные заюзать.
Ну для этого надо , для расшифровки байтов в нормальные команды процессора, нужен валидный начальный адрес этой последовательности кода. Если его нет , кода не будет.Будет какой-то бред. А так бывает
Не могу представить варианта, когда не существует такого валидного начального адреса. Но вполне вероятен случай, когда он явно не записан, а как-то вычисляется набором инструкция процессора, которые можно записать ан некотором диалекте асма.
Обсуждают сегодня