- 在这篇博文中,作者深入解析了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、条件编译、多文件代码
- 详细介绍C语言中程序的预处理、编译、汇编、链接过程。向你展示在计算机内部一个完整的程序是如何诞生的 详细介绍C语言中程序的预处理、编译、汇编、链接过程。向你展示在计算机内部一个完整的程序是如何诞生的
- 内嵌汇编在C程序中嵌入汇编程序可以实现一些高级语言没有的功能,并可以提高执行效率。armcc和armcpp内嵌汇编器支持完整的ARM指令集;tcc和tcpp用于Thumb指集。但是内嵌汇编器并不支持诸如直接修改PC实现跳转的底层功能。内嵌的汇编指令包括大部分的ARM指令和Thumb指令,但是不能直接引用C的变量定义,数据交换必须通过ATPCS进行。嵌入式汇编在形式上表现为独立定义的函数体。... 内嵌汇编在C程序中嵌入汇编程序可以实现一些高级语言没有的功能,并可以提高执行效率。armcc和armcpp内嵌汇编器支持完整的ARM指令集;tcc和tcpp用于Thumb指集。但是内嵌汇编器并不支持诸如直接修改PC实现跳转的底层功能。内嵌的汇编指令包括大部分的ARM指令和Thumb指令,但是不能直接引用C的变量定义,数据交换必须通过ATPCS进行。嵌入式汇编在形式上表现为独立定义的函数体。...
上滑加载中
推荐直播
0.25
-
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day1)
2025/03/29 周六 09:00-18:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中 -
华为云软件开发生产线(CodeArts)1月&2月新特性解读
2025/03/18 周二 19:00-20:00
阿星 华为云高级产品经理
不知道产品的最新特性?没法和产品团队建立直接的沟通?本期直播产品经理将为您解读华为云软件开发生产线1月&2月发布的新特性,并在直播过程中为您答疑解惑。
回顾中 -
基于能力图谱的openGauss项目闯关
2025/03/20 周四 19:00-20:30
华为开发者布道师
想成为顶级数据库开发者吗?本次直播将从银行业务系统的数据库设计出发,带你逐步掌握openGauss的建库表、数据封装、密态技术、性能调优及AI应用。通过实战案例,全面展示openGauss的强大功能,助你提升技能,为未来的职业发展打下坚实基础。立即报名,开启你的数据库进阶之旅!
回顾中 -
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day1)
2025/03/29 周六 09:00-18:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中 -
华为云软件开发生产线(CodeArts)1月&2月新特性解读
2025/03/18 周二 19:00-20:00
阿星 华为云高级产品经理
不知道产品的最新特性?没法和产品团队建立直接的沟通?本期直播产品经理将为您解读华为云软件开发生产线1月&2月发布的新特性,并在直播过程中为您答疑解惑。
回顾中
热门标签