我已经在VMware工作站上建立了Linux内核调试环境。但是,当我尝试连接正确的gdb时,我无法设置任何断点或检查任何内核符号。
目标机(debugee) Ubuntu 18:我已经用以下指令编译了linux内核5.0-0:
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
CONFIG_DEBUG_INFO_DWARF4=y
CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_SECTION_MISMATCH is not set
#
"ARM架构程序调用标准“(AAPCS/EABI)声明(5.1.1)
"The role of register r9 is platform specific."
但
"A virtual platform [...] may designate r9 as an additional callee-saved
variable register, v6."
问题是: Linux内核是否将r9用于某些特殊目的?或者它被用作普通的非易失性寄存器?
我想获得NtDelayExecution()的汇编程序源代码,以了解什么是Sleep()以及它是如何在内部工作的。但我在Visual Studio 2017调试器中得到的只有以下内容:
NtDelayExecution:
mov r10,rcx
mov eax,34h
test byte ptr [........],1
jne NtDelayExecution+15h
syscall
ret
NtDelayExecution+15h:
int
我希望我的提问方式是正确的,但我只是刚刚开始尝试学习利用漏洞的开发。我已经学习了几个教程,并开始在Linux中使用gdb,我对它比较熟悉。我现在开始在Windows上使用免疫调试器,并且有一个关于如何在gui中查看函数的问题。
在gdb中,我可以使用以下命令:
info functions
disas main
并且能够看到主函数。为了简单起见,我的编译代码没有被剥离。
我如何在免疫或OllyDbg中重新创建它?我希望看到一个函数列表,这样我就可以检查它们或在它们上设置断点。我似乎想不通了!
谢谢!
例如,以下命令生成generic、server和virtual。
$ apt-cache search linux-image-3
linux-image-3.0.0-15-generic - Linux kernel image for version 3.0.0 on x86/x86_64
linux-image-3.0.0-15-server - Linux kernel image for version 3.0.0 on x86_64
linux-image-3.0.0-15-virtual - Linux kernel image for version 3.0.0 on x86
我有一个运行ubuntu自动安全更新的服务器,/boot现在几乎已经满了(93%)。下面是dpkg -l "linux-image*“的输出。
ii linux-image-3.2.0-24-generic 3.2.0-24.39 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii linux-image-3.2.0-36-generic 3.2.0-36.57
如果运行建议的命令行,安全性如何。有窃听器吗?
The following packages were automatically installed and are no longer required:
linux-headers-4.15.0-32 linux-headers-4.15.0-32-generic
linux-headers-4.15.0-33 linux-headers-4.15.0-33-generic
linux-headers-4.15.0-34 linux-headers-4.15.0-34-generic
linux-image-4.15.0-