#readytorun — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #readytorun, aggregated by home.social.
-
Исследование .NET: от DnSpy к IDA Pro
Что мы обычно представляем под исследованием бинарных файлов .NET? Обычно все просто: открываешь сборку в DnSpy или ILSpy, получаешь очень близкий к исходнику C# (может и не очень близкий, а обфусцированный) и дальше уже думаешь не про восстановление логики, а про анализ исходного кода — даже не нужно нажимать F5... В стандартных .NET-сборках компилятор сохраняет символы приложения в виде метаданных, необходимых для работы рантайма и рефлексии. DnSpy даже поддерживает экспорт содержимого сборки в проект для Visual Studio, что размывает границу между исследованием исходников и бинарного файла. Но платформа от Microsoft развивается, и теперь .NET-приложения могут исполняться не только через CLR, но и компилироваться в машинный код целевой платформы с помощью Ahead-Of-Time. Исторически первым таким решением стал NGEN (2002) — установочная предкомпиляция для .NET Framework, однако он требовал ручного запуска, дублировал IL-код и не обновлялся автоматически при изменении рантайма. Затем, в 2015 году, появился .NET Native — первый полноценный AOT, но исключительно в UWP-приложениях для Windows Store. В современной ветке .NET (Core/5+) следующим шагом стал ReadyToRun (2019), с возможностью переключения на IL, а затем и Native AOT, в котором была полностью убрана зависимость сборки от рантайма .NET. В данной статье рассмотрим, с чем может столкнутся реверсер при исследовании .NET приложений, собранных с использованием Ahead-Of-Time компиляции в современных версиях .NET.
-
ReadyToRun и Crossgen2: AOT-компиляция в .NET
Привет! Разберём ReadyToRun (R2R) — технологию предкомпиляции в .NET. Многие включают её, надеясь на супер ускорение, а потом удивляются результатам. Посмотрим, как это работает на самом деле и где реально помогает. ReadyToRun — это AOT-компиляция для .NET. Обычно приложение поставляется в IL-коде, который JIT превращает в машинный код во время выполнения. R2R компилирует код заранее при публикации проекта — в итоговых DLL лежит и IL, и готовые машинные инструкции. При запуске CLR просто берёт нативный код без пауз на компиляцию. Как это работает
https://habr.com/ru/companies/otus/articles/977080/
#C# #ReadyToRun #Crossgen2 #AOTкомпиляция #производительность_приложений #оптимизация_кода
-
Der Cursor blinkt, mein ♥️ auch. Vintage Liebe Deluxe mit dem PET-Emulator.
Danke Norbert Landsteiner von Masswerk.
#CommodorePET #BASIC #EmulatorLove #POKEmeBaby #ReadyToRun #VintageVibes #DigitalArcheology #masswerk
-
Der Cursor blinkt, mein ♥️ auch. Vintage Liebe Deluxe mit dem PET-Emulator.
Danke Norbert Landsteiner von Masswerk.
#CommodorePET #BASIC #EmulatorLove #POKEmeBaby #ReadyToRun #VintageVibes #DigitalArcheology #masswerk
-
Twenty-four years ago in my music history, "Fly" became The Chicks' second RIAA-certified quintuple-platinum album. #MusicIsLife #ReadyToRun
-
This will be though.
Well, I can certainly build #PowerShell for #FreeBSD now. I might be able to just "fake" a #git working copy for its stupid build system. This still doesn't fully solve the version issue, it insists on appending the git hash -> TODO.
The "login shell" feature can be added, an exercise left for later, the code will look pretty similar to the existing MacOS-X implementation. Maybe upstream would even accept it 😎
For a #port, it should probably be "published" as "#ReadyToRun" (I hope this has no negative impact), otherwise lang/dotnet would become a hard run dependency ... This works now as well, but requires changes in lang/dotnet ... requires some platform-specific #NuGet packages that don't exist on MS servers for FreeBSD. They are created during build of dotnet itself, but not installed anywhere by default ... I'll suggest an "on by default" port option to bundle these with lang/dotnet.
[…]
-
This will be though.
Well, I can certainly build #PowerShell for #FreeBSD now. I might be able to just "fake" a #git working copy for its stupid build system. This still doesn't fully solve the version issue, it insists on appending the git hash -> TODO.
The "login shell" feature can be added, an exercise left for later, the code will look pretty similar to the existing MacOS-X implementation. Maybe upstream would even accept it 😎
For a #port, it should probably be "published" as "#ReadyToRun" (I hope this has no negative impact), otherwise lang/dotnet would become a hard run dependency ... This works now as well, but requires changes in lang/dotnet ... requires some platform-specific #NuGet packages that don't exist on MS servers for FreeBSD. They are created during build of dotnet itself, but not installed anywhere by default ... I'll suggest an "on by default" port option to bundle these with lang/dotnet.
[…]
-
All in TUXEDO One:
Eight cores, 64GB RAM, GTX graphics, ultra silent cooling - and of course #Linux preinstalled!
https://www.tuxedocomputers.com/de/Linux-Hardware/Linux-Computer-/-PCs/AMD.tuxedo #Ryzen #Ubuntu #ReadyToRun