Wrote a post about those cases when shared_ptr<T> doesn't use atomic operations for the reference count. Spoiler: it's only in GNU and I couldn't decide if it's secure or not.
snf.github.io/2019/02/13/sha…
This is an incredibly creative project. Here a thread to explain how it works for the unintroduced to weird machines.
QEMU translates binaries to an intermediate representation called tiny code. Then it has 2 ways of executing it. (1/7)
This Post is from an account that no longer exists. Learn more
Our frontrunner just caught this exploit contract in the wild and managed to rescue $54k. It recreated the whole exploit chain in 4 seconds. Funds are SAFU
Our bot just intercepted a price manipulation exploit and saved 54k from being stolen (arbiscan.io/address/0x6c7b…) We’re actively investigating. More details coming soon! o/
Here, Kate, made a script which generates a set of pre-compiled snippets of code (gadgets) with different semantics. This code will be compiled when the iOS app is built and will map to executable memory. Bypassing the need to create it at runtime.
github.com/ktemkin/qemu/b… (5/7)
While this has been used forever to create exploits. It's a very creative way of makng a JIT for architectures that don' allow allocating executable memory. The code can be seen in this commit: github.com/ktemkin/qemu/c… (7/7)
Then what's left is creating a JIT, that instead of compiling tiny code to native, it forges a memory segment that contains values that can be used by those gadgets before jumping to the next one.
This allows to create whole programs reusing existeng code (weird machines!). (6/7)
What if you could eliminate a common class of vulnerabilities by changing the language you used? MSRC is publishing a series on why Microsoft is looking at @rustlang for memory-safe development and why we think you should too. See the first post here: msrc-blog.microsoft.com/2019/07/16/a-p…
First one is emulating this code and the second one is compiling it to native code (JIT: Just In Time compiler) which is usually faster.
However, JITs need to allocate executable memory to put that compiled code in. iOS doesn't allow it. (2/7)