Комментарии 6
ещё есть вот такой трюк для сборки исходника прямо на хосте.. не смог найти статью, где я об этом читал, но точно была..
и если это ещё добавить, тогда ещё вложенность матрёшки можно поднять.. но да тут диск используется, но можно же комбинировать...
пример командного файла типа .bat или .cmd:
/*
rem @echo off && cls
set WinDirNet=%WinDir%\Microsoft.NET\Framework
IF EXIST "%WinDirNet%\v2.0.50727\csc.exe" set csc="%WinDirNet%\v2.0.50727\csc.exe"
IF EXIST "%WinDirNet%\v3.5\csc.exe" set csc="%WinDirNet%\v3.5\csc.exe"
IF EXIST "%WinDirNet%\v4.0.30319\csc.exe" set csc="%WinDirNet%\v4.0.30319\csc.exe"
%csc% /nologo /out:"%~0.exe" %0
"%~0.exe"
del "%~0.exe"
exit
*/
class HelloWorld
{
static void Main(string[] args)
{
System.Console.WriteLine(" hello world!\n looking...\r\ni am at " + System.Environment.Version);
}
}
Причём, как я узнал позже, этот функционал появился относительно недавно, лишь в 2021 году.
Значительно раньше, 2015-й наверное, плюс-минус. На предпредыдущем месте работы мы как раз в то время начали писать один проект, который плотно использовал Microsoft.CodeAnalysis.CSharp, CSharpSyntaxTree и in-memory compiling.
да в 2015 они добавили, меня тогда ещё сильно поразило, что что код можно делать из кода и компилить в онлайне.. собственно тогда у меня возникала идея, что его можно тупо передовать от сервера и компилить на клиенте... и я тогда подумал, что это очень опасная штука...
ну это дыра всей архитектуры фон-неймана... (((
в этом плане армы побеждают с гарвордовской архитектурой... но живем с чем есть..
хабр не торт?
меня удивляет низкий рейтинг этой статьи?.
очень профессиональная статья и техническая
Первая часть статьи содержала мало нового: загрузить и исполнить байткод несложно и на .NET, и на JVM. А вот загрузка и исполнение нативного когда - это интересно: там же релокации, и вызов функций из DLL. Посмотрел генераторы шеллкода, упомянутые в статье, это мощные инструменты, очень интересные, спасибо автору, что познакомил.
Диск – это лава. Исследуем методы выполнения пейлоада в памяти