求助:如何反编译TRNSYS所用的Fortran .dll文件以查看代码
Fortran编译DLL的代码还原实用方案
- 结合备份文件缩小范围
把12月初的备份.f90作为核心框架,你只需要回忆代码细节,重点聚焦备份之后修改的模块或子程序,不用从零解析整个DLL。 - 选择更适配Fortran的反编译工具
Reko对Fortran的支持有限,换用这些工具能得到更易读的伪代码:- IDA Pro:试用版足够用,对Fortran编译的二进制文件解析精度更高,能识别模块、子程序等Fortran特有结构,导出的伪代码可以和备份文件对应着对比。
- Ghidra:开源免费,更新后对Fortran的支持提升明显,导入DLL后通过「Decompile」功能生成伪代码,能快速定位子程序的逻辑变化。
- 用系统工具提取导出表
在VS命令提示符里运行dumpbin /exports your.dll,导出DLL中对外暴露的子程序、函数名,这些名称基本和Fortran源码里的定义一致,能帮你快速定位备份中没有的修改部分。 - 伪代码阅读技巧
反编译出的伪代码会偏向C风格,但核心逻辑和原Fortran代码一致:- 先在伪代码里搜索备份文件中已有的子程序名,对比变量操作、条件分支的差异。
- 优先关注数值计算、逻辑判断的核心代码块,这些通常是你修改的重点内容。
内容的提问来源于stack exchange,提问作者japamada
相关产品推荐
相关产品推荐

