News for hackers. Stuff that matters.
Re:Why Is My Perfectly Good Shellcode Not Working? Cache Coh... by DyslexicAtheist on Wednesday February 06, 2019 @08:04AM (#19094756)
only for 64-bit, but disclaimers might apply in (32-bit) IoT land:

> Our results suggest that, for current 32-bit architectures, address-space randomization is ineffective against the possibility of generic exploit code for a single flaw; and brute force attacks can be efficient, and hence effective

[1] https://web.stanford.edu/~blp/papers/asrandom.pdf

edit: also ROP

Re:Why Is My Perfectly Good Shellcode Not Working? Cache Coh... by saagarjha on Wednesday February 06, 2019 @08:13AM (#19094804)
32-bit IoT usually has a lot more problems that are easier to exploit than being able to brute force ASLR, but yes: if you are able to run attacks quickly, it’s pretty easy to get lucky and find the offset. There really isn’t much you can do on 32 bit to fix this, unfortunately, unless you start doing fancy things like reordering functions themselves to increase the number of bits of entropy (and even then, you’re not getting much…)
Re:Why Is My Perfectly Good Shellcode Not Working? Cache Coh... by wtallis on Wednesday February 06, 2019 @11:03AM (#19096217)
Since IoT is somewhat less tied to existing architectures, it's not completely out of the question that somebody could produce a microcontroller that keeps separate stacks for return addresses and function arguments/results. If the former stack is not directly modifiable, that removes most of the need for ASLR.
Re:Why Is My Perfectly Good Shellcode Not Working? Cache Coh... by dfox on Wednesday February 06, 2019 @02:59PM (#19099212)
Major selling point of most modern microcontroller architectures is that they don't have separate hardware return address stack, and are thus "C compatible". Many early microcontrollers had exactly that as it also typically means simpler hardware implementation.
Re:Why Is My Perfectly Good Shellcode Not Working? Cache Coh... by wtallis on Wednesday February 06, 2019 @11:54PM (#19103092)
"C compatible" strikes me as a very overblown way of describing the consequences of choosing whether to have a separate return address stack. In practice, I don't see it actually amounting to anything more than a need to use privileged instructions to implement setjmp, which is perfectly reasonable for a high-security environment.