Я пытаюсь скомпилировать следующий код C # , который опирается на внешнюю DLL , исходный код которого находится там
Так что сначала я компилирую DLLисходный код проекта через:
dotnet build NtApiDotNet\NtApiDotNet.Core.csproj -c Release
Я получаю NtApiDotNet.dll, так что все хорошо, пока нет.
Но затем я пытаюсь скомпилировать исходный код c # со ссылкой на предыдущую DLLс помощью следующей командной строки:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /platform:anycpu /r:NtApiDotNet.dll /out:poc.exe .\PulseLogPrivesc.cs
Я получаю следующие записи в журнале ошибок:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /platform:anycpu /r:NtApiDotNet.dll /out:poc.exe .\PulseLogPrivesc.cs
Microsoft (R) Visual C# Compiler version 4.7.2556.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.
This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to C# 5, which is no longer the latest version. For compilers that support newer versions of the C# programming language, see http://go.microsoft.com/fwlink/?LinkID=533240
PulseLogPrivesc.cs(72,17): error CS0012: The type 'System.Object' is defined in an assembly that is
not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
NtApiDotNet.dll: (Location of symbol related to previous error)
PulseLogPrivesc.cs(72,17): error CS0012: The type 'System.IDisposable' is defined in an assembly that
is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
NtApiDotNet.dll: (Location of symbol related to previous error)
PulseLogPrivesc.cs(72,17): error CS0012: The type 'System.IConvertible' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
NtApiDotNet.dll: (Location of symbol related to previous error)
PulseLogPrivesc.cs(72,17): error CS0012: The type 'System.ValueType' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
NtApiDotNet.dll: (Location of symbol related to previous error)
NtApiDotNet.dll: error CS0455: Type parameter 'A' inherits conflicting constraints 'System.ValueType'
and 'System.IConvertible'
PulseLogPrivesc.cs(169,21): error CS0012: The type 'System.Enum' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
NtApiDotNet.dll: (Location of symbol related to previous error)
PulseLogPrivesc.cs(174,13): error CS0012: The type 'System.Runtime.InteropServices.SafeBuffer' is
defined in an assembly that is not referenced. You must add a reference to assembly
'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
NtApiDotNet.dll: (Location of symbol related to previous error)
PulseLogPrivesc.cs(186,21): error CS1061: 'NtApiDotNet.NtMappedSection' does not contain a definition
for 'ReadArray' and no extension method 'ReadArray' accepting a first argument of type
'NtApiDotNet.NtMappedSection' could be found (are you missing a using directive or an assembly reference?)
PulseLogPrivesc.cs(191,21): error CS1061: 'NtApiDotNet.NtMappedSection' does not contain a definition
for 'WriteArray' and no extension method 'WriteArray' accepting a first argument of type
'NtApiDotNet.NtMappedSection' could be found (are you missing a using directive or an assembly reference?)
Я попытался найти внешнюю DLL в разных папках: текущий каталог, каталог csc.exe,Вы знаете, в чем проблема?
Я также пытался скомпилировать DLL из Visual Studio, но я получаю следующее сообщение об ошибке