C 编译提取的ASM代码以便进行反编译?

C 编译提取的ASM代码以便进行反编译?,c,assembly,decompiling,C,Assembly,Decompiling,我有一段ASM代码,一个来自较旧可执行文件的子程序,我需要将其转换为共享库,或者C代码,以便将其合并到更新的软件重写版本中。我不再能够访问原始源代码,所以很不幸,它试图这样做,或者从头重写整个大型函数 我可以使用像IDA/Hex-Rays这样的软件,但我的问题是,除非ASM能够首先反编译二进制文件,否则这些软件无法将ASM转换为伪代码。我没有二进制代码-我有ASM代码。我不能(或者更确切地说,不知道如何)将ASM编译成二进制,因为它只是代码的一部分 有没有一种简单的方法可以将一段ASM代码转换成

我有一段ASM代码,一个来自较旧可执行文件的子程序,我需要将其转换为共享库,或者C代码,以便将其合并到更新的软件重写版本中。我不再能够访问原始源代码,所以很不幸,它试图这样做,或者从头重写整个大型函数

我可以使用像IDA/Hex-Rays这样的软件,但我的问题是,除非ASM能够首先反编译二进制文件,否则这些软件无法将ASM转换为伪代码。我没有二进制代码-我有ASM代码。我不能(或者更确切地说,不知道如何)将ASM编译成二进制,因为它只是代码的一部分


有没有一种简单的方法可以将一段ASM代码转换成已编译的二进制文件,或者转换成不需要先反编译二进制文件的ASM-C转换器?

您没有提到您所处的平台,但是假设您可以访问Linux,您可以使用as(1)()编译ASM


顺便说一句:你可能想看看Bomerang项目,它是一个开源的反编译器

我想你需要一个汇编程序。你使用的是什么操作系统?目标平台是什么?汇编程序的格式是什么?通常在将.C代码链接到.obj之前,先将它们编译成.obj。使用汇编程序,您可以将.ASM代码编译成.obj并以相同的方式链接它们,甚至混合了.C和.ASM中的.objs,链接器并不关心它来自于您所在的任何平台,从ASM源代码构建对象文件与从C源代码构建对象文件非常相似。只要找一个能理解你的源代码所使用的asm风格的编译器/汇编器就行了。1)这是注释,不是答案。2) 即使是同一台机器的汇编代码也不一定在不同的汇编程序之间兼容。没有像HLL这样的标准语法。@Olaf OPs问题很遗憾不能回答,因为它缺少这些关键信息(他需要什么汇编语言)。“OPs问题很遗憾不能回答,因为它缺少这些关键信息”-这意味着您应该留下一条注释进行澄清,可能CVed为“不清楚”。请重新阅读规则。@FUZxxl:对不起,我没有注意到它不是来自应答者,所以我省略了地址。上面的评论是给你的。