我正在尝试使用ILSpy反编译未知的Win32可执行文件。但是,它只能通过给我无用的信息来回答:
This file does not contain a managed assembly.

我也尝试使用其他工具,例如dotPeek64和Teleirik,但未成功。 Virustotal告诉我它正在使用:

[+] COMCTL32.dll
[+] ComMgr.dll
[+] KERNEL32.dll
[+] MSVCP90.dll
[+] MSVCR90.dll
[+] OLEAUT32.dll
[+] SHLWAPI.dll
[+] USER32.dll
[+] mfc90.dll


我很确定它是用.NET制作的,因为该XML存在于代码中:



<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="removed"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.MFC" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="removed"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
</assembly>


还请注意,我使用的是Win8,没有安装VS。所以我的问题是:


我该怎么办才能解决以上错误?
如果有什么我会丢失什么?
如何检查我是否有错? * .dll列出了吗?

编辑:我现在认为它是用普通C ++制成的。

#1 楼

看起来像Win32可执行文件,.NET可执行文件通常从mscoree.dll导入_CorExeMain。您可以使用PEiD之类的识别工具或“轻松检测”来进行确认。

评论


它是Wn32执行程序,但可能不是我最初想到的.NET,而是纯C ++。那该怎么办?

–not2qubit
17年2月6日在14:36

@ not2qubit使用适当的工具,例如IDA pro

–PawełŁukasik
17年2月7日在8:46

@PawełŁukasik,因为那是一个价值超过2000美元的软件。当然,必须有一些免费的替代方案,它们也能够将非托管Win32代码反编译为类似C的代码。

–not2qubit
17年2月7日在13:23

@ not2qubit 30秒进行搜索:reverseengineering.stackexchange.com/questions/1817/…

–PawełŁukasik
17年2月7日在13:37

@PawełŁukasik我知道所有这些,但我明确需要反编译器。由于我已经提到的工具似乎无法处理(反编译).NET以外的任何东西,我想我可以认为它们对我的情况没有用。

–not2qubit
17年2月7日在15:28