aliyun / plugsched

Live upgrade Linux kernel scheduler subsystem
BSD 3-Clause "New" or "Revised" License
82 stars 23 forks source link

Get rid of stack-pivot and ROP (schedule springboard) #176

Open ampresent opened 1 year ago

ampresent commented 1 year ago

These two fundamental features are written in binary hacker's fashion, and are frequently broken on different Linux major version, and different architectures. So it's significantly important to find an alternative way to replace __schedule function.

There are two major pitfalls we may encounter when replacing __schedule, and they are why stack-pivot and ROP comes for.

Apart from stack-pivot + ROP, another potential solution to these problems might be, When unloading the module,

In this way, springboard_search, stack guard, stack-pivot can all be eliminated.