有没有办法将OMF 16位目标文件格式转换为COFF 32位目标文件格式?将OMF16转换为OBJ32
0
A
回答
1
我严重怀疑会存在一个。设计为在16位环境下运行的代码与32位模式不兼容。例如,有一条指令告诉CPU翻转即将到来的指令的位大小。在16位模式下,需要使用这种指令来使用32位指令。然而,在32位模式下使用16位指令需要相同的操作码。
段描述符中是否指定了一系列操作码是16位还是32位。无论如何,如果你有16位代码,你想在32位模式下使用,它没有操作系统依赖关系,你可以使用它通过使用IDA进行反汇编,然后用32位汇编器重新编译它。当然,只有在许可证允许的情况下才可以。 (虽然这可能是合理的使用,但IANAL)。
如果代码还依赖于底层的操作系统,这可能是一个困难的多,并且需要重写代码的可能显著部分。
0
我在网上搜索,发现这些链接: 第一个是一个工具集:
http://sourceware.org/binutils/
第二个是一个工具,我认为你需要: http://sourceware.org/binutils/docs/binutils/objcopy.html
他们不是在所有情况下工作(bazsi77以上),只是测试它。
1
推测OMF16代码的目标是16位x86实模式或286保护模式?既然如此,目标文件格式是不是真的是你的问题,代码本身是完全不相容的,因为它使用不同的寄存器大小和不同的寻址方案。此外,如果代码针对DOS,Win16或OS/2(即使用OMF16的系统),那么将其定位到32位目标不仅仅是转换目标文件格式的情况。
你需要从给标签问题是用C或C++源重建?如果不是这样,你有显著逆向工程任务,在你的手中!
相关问题
- 1. 将MS Access.adp转换为ASP.Net转换:DLookup转换为SQL
- 2. 将PeriodIndex转换为
- 3. 将值转换为%
- 4. 将ISML PAC转换为XForm转换
- 5. 将VB转换为C#类型转换
- 6. 将DataRow []转换为DataTable的ASP.NET转换
- 7. FLEX XMLDecoder将`09.00`转换为“09.00”,但将`10.00`转换为10
- 8. 将XML转换为XML,将属性转换为元素
- 9. 将int转换为char
- 10. 将markdown转换为reStructuredtest?
- 11. 将curl转换为PHP
- 12. 将DataSet \ DataTable转换为CSV
- 13. 将网址转换为NSData
- 14. 将SVG dataUrl转换为base64
- 15. 将MySql表转换为BerkelyDB
- 16. 将RxJS Observable转换为Promise
- 17. 将PDF转换为PostScript
- 18. 将VBNet LiNQ转换为C#
- 19. 将文档转换为Jpg
- 20. 将AJAX转换为jQuery
- 21. 将PDA转换为DFA
- 22. 将ttf转换为swf
- 23. itext将PDF转换为csv
- 24. 将RDF转换为OWL
- 25. 将JTree转换为XML
- 26. 将wchar_t转换为wstring
- 27. 将jiffies转换为毫秒
- 28. 将此转换为VB .Net?
- 29. 将JIT转换为EXE?
- 30. XSL将SVG转换为VML