crash 是目前广泛使用的 linux 内核崩溃转储文件的分析工具,掌握 crash 的使用技巧,对于分析定位内核崩溃的问题,有着非常重要的作用。本文首先介绍了 crash 的基本概念和安装方法,其次详细介绍了如何使用 crash 工具分析内核崩溃转储文件,包括各种常用调试命令的使用方法,最后以几个实际工作中遇到的真实案例向读者展示了 crash 的强大功能。在这篇文章中,既有详细的工具使用方法,又有丰富的实际案例分析,相信您读过以后定会受益匪浅。
这个问题就比较专业了,linux内核调试还是在调试内核驱动的时候用过,涉及的程度不是特别深,但是可以说下大致的思路,linux虽然贵为操作系统,但是归根到底还是一个程序,既然是程序就能用debug的方式去调试,只不过由于环境的差异,使用的方法和工具不尽相同,在linux下面常见的调试工具gdb,在windows上面更多的调试工具是界面化的,直接对应的中间变量的数值以及申请内存的地址都会直观的展示出来,在linux上主要是通过命令的方式查看,开始会觉得很不习惯,觉得很深奥,其实就是命令的行的使用也就是常见的几个命令。
Windows内核调试常用于 windows 驱动开发调试、内核分析等,使用 WinDBG 可以很方便的进行本地内核调试,但本地内核调试存在较多的限制(如不能使用导致主机暂停运行的指令),通常我们都会通过虚拟机软件搭建 windows 双机调试环境,其中一台作为调试机(debuger),另一台作为被调试机(debugee),双机调试几乎可以满足大部分的 windows 内核分析、调试等工作。
AMD MPSoC Linux一般使用PetaLinux编译Linux系统,包括Linux内核、DTS、文件系统。
Linux内核调试技术——kprobe使用与实现(五)-触发kprobe探测和回调
上篇文章 编译一个默认输出hello world的linux内核 中,我们已经知道如何编译一个可以自运行的linux内核,这篇文章我们来看下如何对内核进行断点调试。
首发于奇安信攻防社区:https://forum.butian.net/share/1475
记住是路径.而不是windbg.exe. 原因是 IDA需要依靠 windbg目录下的. Dbgeng.dll来进行调试
Systemtap 使用了类似于 awk 和 C 语言的脚本语言(类似于 Dtrace 的 D 语言)。
所有Windows内核黑客(从初学者到专业人士)都知道,设置和管理用于内核调试的虚拟机可能很耗时。Vagrant是一个免费的开源工具,可以自动创建和自动化VM。这篇文章将向您介绍Vagrant,以及如何利用其功能自动执行我们的内核调试设置。
Windbg是微软开发的免费源码级调试工具。Windbg可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。
最近项目也和linux kernel技术有关,调试内核和内核模块、修改内核源码,是学习内核的重要技术手段之一。应用这些技术时,都有一本基本的要求,那就是编译内核。因此,在分析内核调试技术之前,本随笔给出内核的编译准备工作与具体实现过程。
0x00 说明 早期A4处理器的机器是能直接调内核的,而且30pin的数据线并没有对内核信息加密,因此我们能够直接读到内核数据。而现在的新机器一律采用加密过的light接口,使得非官方的内核调试基本上消失了。 网上也有不少大佬写过类似的教程,但年代久远,自己动手时还是遇到不少问题。 0x01 准备材料 1. iPhone 4手机一部(iOS 5.1.1 9B208) 2. Apple 30pin转换接口一个 3. FT232RL串口一个 4. mini USB数据线两条 5. 470k欧电阻一个 6. 杜邦
对于kprobe功能的实现主要利用了内核中的两个功能特性:异常(尤其是int 3),单步执行(EFLAGS中的TF标志)。
Intro 虽然“只有偏执狂才能够生存”这句话已经被假药停给毁了,但是作为一只有逼格的高大上的iOS逆向分析研究员,难道如果有现成的macOS/iOS全版本镜像可以下载并且无限“漫游”,难道你就不想来一套么? 在本文中,你将能够获得的是: 1.macOS:10.12、10.11、10.10、10.9、10.8、10.7:六个版本的虚拟机一键安装; 2 .使用苹果的KDK套件(Kernel Develop Kit)对虚拟机里的macOS Sierra 10.12进行内核调试; 3 .iPhone 4s
以前总想知道IDA是否能够实现内核调试,后来找了一段时间没什么结果就暂时放弃了。今天在国外的一个博客上偶然看到了用IDA实现内核调试的方法。
Linux内核调试技术——kprobe使用与实现(四)--kprobe内核注册过程
GDB(GNU Debugger)是Linux上的调试程序,可用于C/C++、Go、Rust等多种语言。GDB可以让你在被调试程序执行时看到它的”内部“情况,观察程序在特定断点上的状态,并逐行运行代码。
倪继利著 2005年8月出版 ISBN 7-121-01518-5 900页 88.00元(估价)
TinyTracer是一款功能强大的API调用跟踪工具,在该工具的帮助下,广大研究人员能够轻松实现API的调用跟踪。
之前学习了利用KGDB双机调试内核,这种方式需要在两个主机上,通过串口线进行连接,或者是通过VMware开启两个虚拟机进行调试,对机器要求相对高一些。通过qemu创建虚拟机,然后利用gdb进行调试相对更轻量级一点。 我先在centos7下面配置调试环境,但是centos7下没有qemu_system_x86等命令,所以需要重新编译qemu源码再进行安装,再加上各种依赖问题,于是转用ubuntu进行配置,过程简单了许多。
Windows 从 vista 版本引入一种进程保护机制(Process Protection),用于更进一步的控制进程的访问级别,在此之前,用户只需要使用 SeDebugPrivilege 令牌权限即可获取任意进程的所有访问权限;随后 Windows8.1 在此进程保护的基础上,扩展引入了进程保护光机制(Protected Process Light),简称 PPL 机制,其能提供更加细粒度化的进程访问权限控制。
曾经靠着“B站最强小电视”以及号称“钢铁侠机械臂”等硬核产品出圈的稚晖君又双叒叕来整活啦!
TCP BBR 是 Google 于2016年所发布网络拥塞控制算法,用于尽可能提高带宽利用率。随着时间的推移 TCP BBR 已经来到了 v3 版本,但因为尚处于测试阶段所以目前相关代码并没有汇入主线内核中。现阶段如果需要提前体验 BBR v3 的话手动编译内核是免不了的。不过好在编译并不复杂,在此便做个记录以供参考。
1. fuzz的概念,afl与程序交互的方法,afl fuzz过什么?afl有什么成果
(前言:很多的小伙伴基本上信心满满的下载了一个辅助,拖入PEID查壳,看到.vmp1的字样就放弃了,因为VMP确实挺难的,更何况加上一个虚拟机的检测。)
在《Linux 内核调试利器 | kprobe 的使用》一文中,我们介绍过怎么使用 kprobe 来追踪内核函数,而本文将会介绍 kprobe 的原理和实现。
start_kernel是内核启动阶段的入口,通过单步调试,可以发现它是linux内核执行的第一个init,我们单步进入看看它做了哪些操作:
本文旨在介绍下几种常见的调试方法gdb、crash、kgdb and kdb 以及dynamic debug. 关于在 Linux 内核上使用debuggers,Linus Torvalds 长期以来对它们不太喜欢。简短地解释这种态度是,依赖调试器可能鼓励用权宜之计而非深思熟虑来解决问题,这会导致代码质量恶化。详细解释可以参考https://lwn.net/2000/0914/a/lt-debugger.php3
首先需要给调试机和被调试机配置一个串行端口用来通讯,找到虚拟机的vmx文件,右键使用文本编辑工具打开.VMX文件,然后追加下面的几行配置串行端口。
1、特征:能理解分区的概念,知道安装linux系统和常见的数据库、桌面管理器、应用软件等,能做一些基本的配置(如网络、打印机、调制解调器等),参照手边资料依葫画瓢式的安装和配置常见服务(如NFS、HTTP、FTP、TELNET、 SSH、LDAP、NIS、邮件服务、SAMBA、打印服务等),能解决一些基本的简单问题,熟悉一些基本的常见命令,能理解系统的启动过程等等。
本文详细介绍了 SSH、NFS、TFTP服务器,从用途、安装步骤、测试三个方面进行了讲解。
用 原文链接:http://advdbg.org/blogs/advdbg_system/articles/784.aspx
一开始什么都不会,不知道如何下手,看ppt上面有个kd>,都不知道kd怎么出来的,自己打开windbg照着网上的选择attach to ……,随便找了个进程打开也不是kd开头的。网上搜索了一圈,才觉得查看GDT、IDT、TSS这些应该是属于内核调试的。收获最大的是这篇博客(http://www.cnblogs.com/hustcat/articles/1714453.html),看了这篇文章之后进入内核调试,后面的问题就不大了。
大家好,今天给大家分享一下我个人学习Linux内核的总结,由于新的内核版本太过于庞大,说实话,啃不动,然借鉴前人的建议,故开始从早期的Linux0.11版本开始学习。
之前没有用过addr2line和gdb等内核调试工具定位问题代码,这里记录一下在将某个网络驱动从4.9内核移植到5.7内核时出现内核崩溃起不来的问题。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014688145/article/details/50575588
在这篇文章中,我想谈一谈通过基于Windows内核的exploit来提升权限。之所以没有使用像HackSys Extreme Vulnerable Windows Driver这样的东西,是因为想做点不同的事情。恰逢Google Project Zero近期公布了漏洞,由于mjurczyk把漏洞进行了记录,所以感觉便于理解。该漏洞还被Microsoft标记为“Wont-Fix”,意思就是32位的Windows 10 Creator版本仍然存在漏洞。 漏洞概览 根据披露出的消息,我们可以了解到这个漏洞影响了3
就在前几个月,Apache 宣布准备将曾火极一时的 Mesos 项目移至 Attic 下 ,保存为“只读”状态。要知道,Attic 是 Apache 软件基金会为已终止项目提供的一种解决方案,这意味着 Mesos 正式进入项目“退休”阶段。 说实话,我并不惊讶。过去几年,以 docker、kubernetes 为代表的容器技术已发展为一项通用技术,BAT、滴滴、京东、头条等大厂,都争相把容器和 k8s 项目作为技术重心,试图“放长线钓大鱼”。 就说阿里吧,目前基本所有业务都跑在云上,其中有一半迁移到了自己定
内核的配置选项中包含了一些与内核调试相关的选项,都集中在”kernel hacking”菜单中。包括:
作者简介: 王建峰,对于技术方向(主要是嵌入式领域的OS方向的系统应用)感兴趣,最近在学习操作系统基础。同时也是某芯原厂的驱动工程师,主要是gpu领域的驱动软件。https://gitee.com/hinzer/blog 1 概念介绍 1.1 什么是操作系统? 1.2 如何理解中断机制? 1.3 如何理解系统定时? 1.4 如何理解进程控制? 1.5 如何理解内存管理? 1.6 如何理解堆栈概念? 1.7 内核在源码中的体现? 1.8 如何理解系统调用? 1.9 如何理解特权级? 2 流程分析 2.1 引导
已经逐渐成为了很多项目的重要适配对象。作为一款国民级应用,他的调试却并不像普通浏览器那样开放。
(文章大部分转载于:https://consen.github.io/2018/01/17/debug-linux-kernel-with-qemu-and-gdb/)
大侠好,欢迎来到“艮林子”专栏,本次为艮林子首次和大侠见面,新春佳节之际,略备薄礼,不成敬意,给大侠带来“Xilinx Vitis 系列连载”,给大侠提供参考学习的资料,如有不足之处,还请多多指教。
在Cortex-M里面有一个外设叫DWT(Data Watchpoint and Trace),是用于系统调试及跟踪,
CFB,全名为Canadian Furious Beaver,是一款功能强大的Windows驱动程序模糊测试工具,该工具可以帮助广大研究人员监控Windows驱动程序中的IRP处理器,并对Windows驱动程序漏洞进行分析、复现和模糊测试。
跟我一起来到故事开始的地方,深入 Linux 系统的启动流程,自己编译内核并制作根文件系统,并使用 QEMU 模拟启动。
领取专属 10元无门槛券
手把手带您无忧上云