有一个程序可能是RAT,我想查看源代码。在 dnSpy 中打开 .exe 后,我可以看出它是用 Fody-Costura 压缩的。( https://github.com/Fody/Costura ) 有没有办法解压缩文件?如果是这样,如何?
有没有办法在 C# 中解压 Fody-Costura 生成的 exe?
逆向工程
解压
C#
可执行程序
视窗 10
网络间谍
2021-06-23 18:51:23
1个回答
嵌入式程序集在使用之前需要解压缩,以便您可以检查程序集中执行此操作的所有代码。只需去Costura.AssemblyLoader
检查它是如何完成的。下面是一个使用Costura.Fody
.
Assembly executingAssembly = Assembly.GetExecutingAssembly();
if (fullName.EndsWith(".compressed"))
{
using (Stream manifestResourceStream = executingAssembly.GetManifestResourceStream(fullName))
{
using (DeflateStream deflateStream = new DeflateStream(manifestResourceStream, CompressionMode.Decompress))
{
MemoryStream memoryStream = new MemoryStream();
AssemblyLoader.CopyTo(deflateStream, memoryStream);
memoryStream.Position = 0L;
return memoryStream;
}
}
}
您可以修改此代码以通过添加一行File.WriteAllBytes(fullName.Replace(".compressed", ""), memoryStream.ToArray());
或仅提取 dll 资源并通过 python 或其他任何可以执行 deflate 的方法在外部解压缩来将解压缩的程序集保存到磁盘。