#unicornengine — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #unicornengine, aggregated by home.social.
-
#unicornengine is great, but it has two major drawbacks.
No support for interrupts, not even basic “do it yourself” stubs. Everything is stripped from its parent #qemu code.
No support for hardware backed threading.
This is a variant of the first drawback.This means that any firmware that uses IRQ driven IO, timers (even built in like in #aarch64), or multithreading, or even just an idle thread and a main thread will be easily emulatable.
I can understand why you wouldn’t want to have specific hardware blocks, like the ARM GIC, but the possibility to handle your own emulated hardware interrupts would have been nice. Right now you’d need to write everything from scratch.
-
It uses a custom #MachO loader with the #UnicornEngine to load an obfuscated macOS framework, which is only needed once for initial registration.
-
I DID IT!
With lots of help from @dadoum, I have created a custom mach-o loader, using the #UnicornEngine to emulate a binary extracted from macOS Lion. It's a replacement for "nacserver", the program I wrote that required installing Darling and other complex dependencies. Should make developing pypush much easier! -
#UnicornEngine is based on QEMU Emulator ... And lets us intercept the emulated code with #RustLang
Article: https://lupyuen.github.io/articles/unicorn2?2#intercept-code-execution-in-unicorn
-
Here's how we emulate Apache #NuttX RTOS with #UnicornEngine and #RustLang ... We'll use this to generate the Call Graph
Article: https://lupyuen.github.io/articles/unicorn2?2#intercept-code-execution-in-unicorn
-
Can we emulate Apache #NuttX RTOS for #PinePhone @PINE64 ... With #UnicornEngine and #RustLang? Let's find out!
-
#UnicornEngine is good enough for Automated Daily Build & Test of #NuttX RTOS on #PinePhone
Article: https://lupyuen.github.io/articles/unicorn?11#emulation-concerns
-
Apache #NuttX RTOS halts in #UnicornEngine with an MMU Fault ... Let's troubleshoot in the next article!
Article: https://lupyuen.github.io/articles/unicorn?10#emulator-halts-with-mmu-fault
-
To emulate #PinePhone UART Output ... We intercept Memory-Mapped I/O with #UnicornEngine
Article: https://lupyuen.github.io/articles/unicorn?9#emulate-uart-output
-
Let's emulate the #PinePhone Allwinner A64 UART Controller ... So #UnicornEngine won't get stuck waiting for UART
Article: https://lupyuen.github.io/articles/unicorn?8#wait-for-uart-controller
-
#NuttX RTOS gets stuck while booting on #UnicornEngine ... Let's emulate the #PinePhone UART Controller
Article: https://lupyuen.github.io/articles/unicorn?8#wait-for-uart-controller
-
How we map the Memory Regions in #UnicornEngine ... For booting Apache #NuttX Real-Time Operating System
Article: https://lupyuen.github.io/articles/unicorn?7#apache-nuttx-rtos-in-unicorn
-
Emulating Apache #NuttX Real-Time Operating System on #UnicornEngine ... Remember to handle Memory-Mapped I/O
Article: https://lupyuen.github.io/articles/unicorn?7#apache-nuttx-rtos-in-unicorn
-
Here's what happens when #UnicornEngine tries to access Emulated Memory that isn’t mapped ... And how we map it in #RustLang
Article: https://lupyuen.github.io/articles/unicorn?6#unmapped-memory
-
For tracing a Block of #Arm64 Instructions in #UnicornEngine ... Use a Block Execution Hook
Article: https://lupyuen.github.io/articles/unicorn?5#block-execution-hook
-
To intercept every #Arm64 Instruction that will be emulated by #UnicornEngine ... Just attach a Code Execution Hook to the Emulator
Article: https://lupyuen.github.io/articles/unicorn?4#code-execution-hook
-
#UnicornEngine lets us attach a Memory Access Hook ... That's called to intercept every Arm64 Memory Access in the Emulator
Article: https://lupyuen.github.io/articles/unicorn?3#memory-access-hook
-
Emulating Machine Code in #RustLang ... With #UnicornEngine
Article: https://lupyuen.github.io/articles/unicorn?2#emulate-arm64-machine-code
-
Let's emulate some #Arm64 Machine Code in #UnicornEngine with #RustLang
Article: https://lupyuen.github.io/articles/unicorn?2#emulate-arm64-machine-code