Я хотел бы распечатать содержимое виртуальной памяти текущей программы от 0x10000
до 0x50000
(область, в которой есть батут в центре моей системы).Как fmt.Println() память не выделена программой go?
package main
import (
"syscall"
"unsafe"
)
func main() {
syscall.Syscall(SYS_WRITE, uintptr(1), uintptr(unsafe.Pointer(0x10000)), uintptr(0x40000))
}
Однако, когда я пытался скомпилировать я получаю эту ошибку:
cannot convert 65536 (type int) to type unsafe.Pointer
В моем случае, cgo
отключен (import "C"
терпит неудачу во время компиляции).
Также делает syscall.Syscall(SYS_WRITE
это единственный способ сделать это?
Я знаю, что в голанге. Я знаю, что это можно рассматривать как чтение за пределами границ, но это необходимо для того, чтобы узнать, включен ли какой-либо конкретный системный вызов. – user2284570