caimouse头像

dnSpy 命令行反编译 C# DLL(实测可用)

dnSpy 命令行反编译 C# DLL(实测可用)

目录结构:

  • dnSpy.exe —— GUI 版,手动使用
  • dnSpy.Console.exe —— CLI 入口,但直接执行会崩溃:入口 Main 中 Console.OutputEncoding = Encoding.UTF8 抛 System.IO.IOException: 句柄无效(当前终端不是真实控制台)
  • bin\ —— 自包含 net5.0 运行时 + dnSpy.Console.dll
  • out\ —— 预留输出目录

可用调用方式(用 dotnet 宿主并允许运行时前滚):

$env:DOTNET_ROLL_FORWARD='LatestMajor'
dotnet "D:\my2024\dnspy\bin\dnSpy.Console.dll" -o "<输出目录>" "<目标.dll>"

参数要点:

  • -o <目录> 是输出目录(不是文件),会生成 solution.sln + .csproj + 反编译出的 .cs 源码工程
  • 位置参数可传 dll、目录或通配符,支持多个;-r 递归子目录
  • -t <类型名> 只反编译指定类型到标准输出;--md 0x0600xxxx 按元数据标记反编译成员
  • -l 切换语言:C# / Visual Basic / IL;--asm-path 指定依赖搜索路径;--no-color 关闭高亮

实测结论:dnSpy.Console.dll、dnSpy.Decompiler.dll 均反编译成功,退出码 0,类型与成员签名还原正常。
另:本机已装 ilspycmd,但运行即触发 CET 断言(AreCetShadowStacksEnabled)崩溃,暂不可用,优先使用上述 dnSpy 方式。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/caimouse/article/details/170348354

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--