Ich schreibe ein Kernelmodul in Linux auf der Aarch64-Architektur, das als globale Struktur eine Struktur hat. Ich arbeite an einem Pixel 8-Gerät (Shiba) mit Callyxos, AOSP-Kernel (Android Open Source Project) [uname -r: 5.15.137-android14-11-gbc062a78e195-ab12057991].
< ul>
[*]Was ich will:
sp-Register, um auf diese globale Struktur zu zeigen, das heißt, ich möchte, dass der Stapel wird in meiner globalen Variablen verwaltet.
[*]Was passiert:
Wann immer ich sp so einstelle, dass es auf meine globale Struktur zeigt und darauf zugreift Wenn ich diesen Speicher verwende (z. B. mit der STP-Anweisung), erhalte ich aufgrund eines Kernel-Stack-Überlaufs sofort eine Kernel-Panik.
[*]Hier ist ein Beispielcode das verursacht einen KP-Kernel-Stack-Überlauf:
mov x16, #0x12
mov x17, #0x34
mov x1, sp
ldr x0, = new_stack
mov sp, x0
stp x16, x17, [sp]
Manuelles Ändern des Stapelzeigers innerhalb eines Kernelmoduls aarch64 ⇐ Linux
-
- Similar Topics
- Replies
- Views
- Last post