是否有相当于..net核的ILDASM / ILASM?
具体来说,我想找的是在Linux上运行的东西(这就是..net core的原因)。
发布于 2016-10-18 21:47:41
ildasm和ilasm工具都是用这个repo: CoreCLR的https://github.com/dotnet/coreclr构建的。它们包括与Windows附带的版本类似的功能(sans、GUI等)。
有些nuget包也包含它们(https://www.nuget.org/packages?q=ildasm),但是它们是特定于平台的,并且还需要一个匹配的CoreCLR版本来使用,所以通过nuget使用它们并不简单。在您的平台上运行这些程序的最简单方法就是从coreclr中构建它们。
发布于 2016-10-11 18:39:03
在Linux上,似乎没有本地的Microsoft工具为这些功能提供服务,而且它目前也没有内置到点网络内核中。
但是,Mono允许对IL代码进行组装和拆卸:
安装说明可以在这里找到。
你要找的是:
ilasm - For assembling
monodis - For disassembling这些是在包单用程序中找到的:
例如,关于Debian 8,我做了以下工作:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian jessie" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
apt-get install mono-devel mono-utils但是,对于那些试图创建导出的人,Mono似乎没有处理x64导出语法。
发布于 2020-12-26 04:05:44
让我们使用相关的nuget-package“安装”ildasm工具:
dotnet --info
# execution result
..
Runtime Environment:
OS Name: ubuntu
OS Version: 18.04
OS Platform: Linux
RID: ubuntu.18.04-x64 # <----
..chmod +x ildasm
sudo mv ildasm /usr/share/dotnet/shared/Microsoft.NETCore.App/{version}/ln -s /usr/share/dotnet/shared/Microsoft.NETCore.App/{version}/ildasm ildasm./ildasm {path}/project.dll >> {path}/project.il同样的步骤也适用于伊尔卡姆。
作为另一种方式,可以考虑使用dotnet-ildasm工具:
# install .net core runtime if required
# sudo apt-get update; \
# sudo apt-get install -y apt-transport-https && \
# sudo apt-get update && \
# sudo apt-get install -y dotnet-runtime-3.0
# find required tool
dotnet tool search ildasm
# output:
# Package ID Latest Version Authors Downloads Verified
# ---------------------------------------------------------------------------
# dotnet-ildasm 0.12.2 pjbgf 100154
# dotasm 1.0.1 DotAsm 434
# install tool
dotnet tool install -g dotnet-ildasm输出IL到文件:
# go to project folder
cd ../project/bin/Debug/netx.x
dotnet ildasm program.dll -o program.ilhttps://stackoverflow.com/questions/39979851
复制相似问题