2016-10-24 2 views
-3

У меня есть раздел кода ASM, подпрограмма из более старого исполняемого файла, который мне нужно либо превратить в общую библиотеку, либо в код C, чтобы я мог включить ее в новую, переписанную версию программного обеспечения. У меня больше нет доступа к исходному исходному коду, так что, к сожалению, это попытка или переписать всю массивную функцию с нуля.Скомпилировать извлеченный код ASM, чтобы его можно было декомпилировать?

У меня есть доступ к программному обеспечению, как IDA/Hex Rays, но моя проблема в том, что они не превратят ASM в псевдокод, если только он не сможет сначала декомпилировать двоичный файл. У меня нет двоичного кода - у меня есть код ASM. Я не могу (или, вернее, не знаю, как) скомпилировать ASM в двоичный файл, так как это всего лишь часть кода.

Есть ли простой способ превратить раздел кода ASM в скомпилированный двоичный файл или преобразовать ASM в C, который не требует декомпиляции двоичного файла?

+1

Я думаю, что вам нужно * ассемблер * – fuz

+0

Какую операционную систему вы на.? Какова целевая платформа? Что такое формат ассемблера? –

+0

Обычно вы компилируете свой файл .C в .obj, прежде чем связывать их вместе. Используя ассемблер, вы можете скомпилировать ваш .ASM-код в .obj и связать их одинаково, даже смешанные .objs из .C и .ASM, компоновщик не заботится о том, что он пришел от – Tommylee2k

ответ

1

Вы не указали, на какой платформе вы находитесь, но при условии, что у вас есть доступ к Linux, вы можете скомпилировать ASM, используя как (1) (https://linux.die.net/man/1/as).

BTW: Вы можете посмотреть на проект Bomerang, который является открытым исходным кодом декомпилятор http://boomerang.sourceforge.net/

+0

1) Это комментарий, а не ответ. 2) Код ассемблера даже для одного и того же компьютера не обязательно совместим между различными ассемблерными программами. Нет стандартного синтаксиса, такого как HLL. – Olaf

+0

Вопрос @Olaf OPs, к сожалению, не подлежит ответственности, поскольку это потому, что ему не хватает этой важной информации (какой диалоги на собрании ему нужны). – fuz

+1

«Вопрос OPs, к сожалению, не подлежит ответственности, так как он не имеет этой важной информации». Это означает, что вы должны оставить комментарий для разъяснения и, возможно, сгенерировать его как «неясный». Пожалуйста, перечитайте правила. – Olaf

Смежные вопросы