- 一.认识寄存器 寄存器(register)是CPU(中央处理器)的组成部分,是一种直接整合到cpu中的有限的高速访问速度的存储器,它是有一些与非门组合组成的,分为通用寄存器和特殊寄存器。 寄存器是CPU的最基本组成部分,是学习芯片最基础最底层的东西。我们都知道单片机是内部集成CPU,RAM,ROM以及IO口和其他外围电路的集成电路芯片。我们想操作单片机,就得了解内... 一.认识寄存器 寄存器(register)是CPU(中央处理器)的组成部分,是一种直接整合到cpu中的有限的高速访问速度的存储器,它是有一些与非门组合组成的,分为通用寄存器和特殊寄存器。 寄存器是CPU的最基本组成部分,是学习芯片最基础最底层的东西。我们都知道单片机是内部集成CPU,RAM,ROM以及IO口和其他外围电路的集成电路芯片。我们想操作单片机,就得了解内...
- 获取内核源码在Linux内核官方网站即可下载最新Linux源码点击跳转我们一般应该下载最新的稳定版本Linux内核源码进行学习。源码下载后,通过tar命令进行解压即可tar xvzf linux-X.X.X.tar.gz解压后源码会存在linux-X.X.X文件夹中。内核源码一般都安装在 /usr/src/linux 目录下,但我们开发时不要直接对这个源码树进行开发,因为编译C库所用的内核... 获取内核源码在Linux内核官方网站即可下载最新Linux源码点击跳转我们一般应该下载最新的稳定版本Linux内核源码进行学习。源码下载后,通过tar命令进行解压即可tar xvzf linux-X.X.X.tar.gz解压后源码会存在linux-X.X.X文件夹中。内核源码一般都安装在 /usr/src/linux 目录下,但我们开发时不要直接对这个源码树进行开发,因为编译C库所用的内核...
- 在这篇博文中,作者深入解析了CSAPP(Computer Systems: A Programmer's Perspective)课程中的BombLab实验,聚焦于其中的第三阶段(Phase_3)。文章揭示了Phase_3的解密过程与实战策略,深入讲解了逆向工程和程序攻击的关键技术,为读者提供了深刻的计算机系统学习体验。 在这篇博文中,作者深入解析了CSAPP(Computer Systems: A Programmer's Perspective)课程中的BombLab实验,聚焦于其中的第三阶段(Phase_3)。文章揭示了Phase_3的解密过程与实战策略,深入讲解了逆向工程和程序攻击的关键技术,为读者提供了深刻的计算机系统学习体验。
- CSAPP课程中的BombLab实验是一场计算机系统学习之旅,而其中的Phase_2更是一个充满奥秘与挑战的阶段。本文深入解析了Phase_2的解密过程与实战经验,揭开了这个计算机科学之谜的一角。通过逆向分析、汇编语言理解以及程序攻击的实际运用,读者将深刻领略底层系统编程的复杂性与精妙之处。这篇博文旨在帮助学习者更好地理解计算机系统的运作原理,并在实战中锤炼他们的编程技能。 CSAPP课程中的BombLab实验是一场计算机系统学习之旅,而其中的Phase_2更是一个充满奥秘与挑战的阶段。本文深入解析了Phase_2的解密过程与实战经验,揭开了这个计算机科学之谜的一角。通过逆向分析、汇编语言理解以及程序攻击的实际运用,读者将深刻领略底层系统编程的复杂性与精妙之处。这篇博文旨在帮助学习者更好地理解计算机系统的运作原理,并在实战中锤炼他们的编程技能。
- 写在前面博文内容涉及:BPF 和 eBPF 认知BCC 和 bpftrace 认知BCC 和 bpftrace 工具简单认知理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》BPF和 eBPF 是什么BPF 是 B... 写在前面博文内容涉及:BPF 和 eBPF 认知BCC 和 bpftrace 认知BCC 和 bpftrace 工具简单认知理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》BPF和 eBPF 是什么BPF 是 B...
- 本文涵盖:数据类型汇总、大小端字节序存储、有/无符号数在底层的数据分布、浮点数疑攻破【附加经典笔试题】 本文涵盖:数据类型汇总、大小端字节序存储、有/无符号数在底层的数据分布、浮点数疑攻破【附加经典笔试题】
- 一名出色的程序员 = 优秀的Coding技巧 + 扎实的调试基本功 一名出色的程序员 = 优秀的Coding技巧 + 扎实的调试基本功
- 前言📖面向过程C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。以洗衣服这件事为例,下图是C语言完成洗衣服这件事的过程。📖面向对象C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。针对洗衣服这件事,C++会设置四个对象:人、衣服、洗衣粉、洗衣机。整个洗衣服的过程就变成了:人将衣服放进洗衣机、倒入洗衣粉、启动洗衣机,洗衣... 前言📖面向过程C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。以洗衣服这件事为例,下图是C语言完成洗衣服这件事的过程。📖面向对象C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。针对洗衣服这件事,C++会设置四个对象:人、衣服、洗衣粉、洗衣机。整个洗衣服的过程就变成了:人将衣服放进洗衣机、倒入洗衣粉、启动洗衣机,洗衣...
- 函数调用过程就是内存申请和数据流动的过程,熟悉其中原理,对于写出“人类高质量源码”有很好的辅助作用 后面将分别从C、C++、Objective-C三种语言来解析 函数调用过程就是内存申请和数据流动的过程,熟悉其中原理,对于写出“人类高质量源码”有很好的辅助作用 后面将分别从C、C++、Objective-C三种语言来解析
- 在之前的文章中,我们实现了一个正向的匿名管道ShellCode后门,为了保证文章的简洁易懂并没有增加针对调用函数的动态定位功能,此类方法在更换系统后则由于地址变化导致我们的后门无法正常使用,接下来将实现通过PEB获取GetProcAddrees函数地址,并根据该函数实现所需其他函数的地址自定位功能,通过枚举内存导出表的方式自动实现定位所需函数的动态地址,从而实现后门的通用性。 1.7.1 通... 在之前的文章中,我们实现了一个正向的匿名管道ShellCode后门,为了保证文章的简洁易懂并没有增加针对调用函数的动态定位功能,此类方法在更换系统后则由于地址变化导致我们的后门无法正常使用,接下来将实现通过PEB获取GetProcAddrees函数地址,并根据该函数实现所需其他函数的地址自定位功能,通过枚举内存导出表的方式自动实现定位所需函数的动态地址,从而实现后门的通用性。 1.7.1 通...
- 条件语句,也称为IF-ELSE语句,是计算机编程中的一种基本控制结构。它允许程序根据条件的真假来执行不同的代码块。条件语句在处理决策和分支逻辑时非常有用。一般来说,条件语句由IF关键字、一个条件表达式、一个或多个代码块以及可选的ELSE关键字和对应的代码块组成。条件表达式的结果通常是布尔值(True或False),决定了程序将执行IF代码块还是ELSE代码块。在汇编语言中,条件跳转指令用于根... 条件语句,也称为IF-ELSE语句,是计算机编程中的一种基本控制结构。它允许程序根据条件的真假来执行不同的代码块。条件语句在处理决策和分支逻辑时非常有用。一般来说,条件语句由IF关键字、一个条件表达式、一个或多个代码块以及可选的ELSE关键字和对应的代码块组成。条件表达式的结果通常是布尔值(True或False),决定了程序将执行IF代码块还是ELSE代码块。在汇编语言中,条件跳转指令用于根...
- 过程的实现离不开堆栈的应用,堆栈是一种后进先出(LIFO)的数据结构,最后压入栈的值总是最先被弹出,而新数值在执行压栈时总是被压入到栈的最顶端,栈主要功能是暂时存放数据和地址,通常用来保护断点和现场。栈是由CPU管理的线性内存数组,它使用两个寄存器(SS和ESP)来保存栈的状态,SS寄存器存放段选择符,而ESP寄存器的值通常是指向特定位置的一个32位偏移值,我们很少需要直接操作ESP寄存器,... 过程的实现离不开堆栈的应用,堆栈是一种后进先出(LIFO)的数据结构,最后压入栈的值总是最先被弹出,而新数值在执行压栈时总是被压入到栈的最顶端,栈主要功能是暂时存放数据和地址,通常用来保护断点和现场。栈是由CPU管理的线性内存数组,它使用两个寄存器(SS和ESP)来保存栈的状态,SS寄存器存放段选择符,而ESP寄存器的值通常是指向特定位置的一个32位偏移值,我们很少需要直接操作ESP寄存器,...
- 本章内容为C++修炼之筑基期系列的第一篇文章,初步认识类与对象,本章我们会学习什么是面向对象?类的定义、类的作用域、类的实例化、类对象模型以及this指针。此外筑基期系列文章都是关于类与对象的讲解。 本章内容为C++修炼之筑基期系列的第一篇文章,初步认识类与对象,本章我们会学习什么是面向对象?类的定义、类的作用域、类的实例化、类对象模型以及this指针。此外筑基期系列文章都是关于类与对象的讲解。
- 本章将探索驱动程序开发的基础部分,了解驱动对象`DRIVER_OBJECT`结构体的定义,一般来说驱动程序`DriverEntry`入口处都会存在这样一个驱动对象,该对象内所包含的就是当前所加载驱动自身的一些详细参数,例如驱动大小,驱动标志,驱动名,驱动节等等,每一个驱动程序都会存在这样的一个结构。 本章将探索驱动程序开发的基础部分,了解驱动对象`DRIVER_OBJECT`结构体的定义,一般来说驱动程序`DriverEntry`入口处都会存在这样一个驱动对象,该对象内所包含的就是当前所加载驱动自身的一些详细参数,例如驱动大小,驱动标志,驱动名,驱动节等等,每一个驱动程序都会存在这样的一个结构。
- 预处理指令、typedef、条件编译、多文件代码 预处理指令、typedef、条件编译、多文件代码
上滑加载中
推荐直播
-
GaussDB管理平台TPOPS,DBA高效运维的一站式解决方案
2024/12/24 周二 16:30-18:00
Leo 华为云数据库DTSE技术布道师
数据库的复杂运维,是否让你感到头疼不已?今天,华为云GaussDB管理平台将彻底来改观!本期直播,我们将深入探索GaussDB管理平台的TPOPS功能,带你感受一键式部署安装的便捷,和智能化运维管理的高效,让复杂的运维、管理变得简单,让简单变得可靠。
回顾中 -
走进数据库:数据库基础知识精讲
2024/12/27 周五 16:00-17:30
Steven 华为云学堂技术讲师
数据管理是数据库的核心任务,本期直播将带领大家一起走进数据库,了解期发展趋势、基础模型、架构演进及相关的技术特点。同时还会介绍数据库对象和相关概念,帮助开发者对数据库使用和实践夯实基础。
去报名
热门标签