实验介绍使用所学知识拆除BinaryBombs来增强对程序的机器级表示、汇编语言、调试器和逆向工程等理解。BinaryBombs(二进制炸弹)是一个可执行程序,是C语言编译链接成的,包含phase1~phase6共6个阶段(还有隐藏阶段)。各阶段要求输入一个答案,若正确,该阶段炸弹被拆除,否则爆炸。你需要拆除尽可能多的炸弹实验提供一个bomb.c和bomb可执行文件,但是,bomb.c中只有主函数,和一些彩蛋。bomb有一个命令行参数,为读入的文件。所以你可以将答案写入到一个txt文件,每个答案一行。实验技巧gdb调试(gdb)inforeg查看所有寄存器的信息(gdb)infoframe查看
在笔者上一篇文章《驱动开发:内核特征码搜索函数封装》中为了定位特征的方便我们封装实现了一个可以传入数组实现的SearchSpecialCode定位函数,该定位函数其实还不能算的上简单,本章LyShark将对特征码定位进行简化,让定位变得更简单,并运用定位代码实现扫描内核PE的.text代码段,并从代码段中得到某个特征所在内存位置。老样子为了后续教程能够继续,先来定义一个lyshark.h头文件,该头文件中包含了我们本篇文章所必须要使用到的结构体定义,这些定义的函数如果不懂请去看LyShark以前的文章,这里就不罗嗦了。#include#includetypedefstruct_KLDR_DAT
实验介绍使用所学知识拆除BinaryBombs来增强对程序的机器级表示、汇编语言、调试器和逆向工程等理解。BinaryBombs(二进制炸弹)是一个可执行程序,是C语言编译链接成的,包含phase1~phase6共6个阶段(还有隐藏阶段)。各阶段要求输入一个答案,若正确,该阶段炸弹被拆除,否则爆炸。你需要拆除尽可能多的炸弹实验提供一个bomb.c和bomb可执行文件,但是,bomb.c中只有主函数,和一些彩蛋。bomb有一个命令行参数,为读入的文件。所以你可以将答案写入到一个txt文件,每个答案一行。实验技巧gdb调试(gdb)inforeg查看所有寄存器的信息(gdb)infoframe查看
本章开始LyShark将介绍如何在内核中实现InlineHook挂钩这门技术,内核挂钩的第一步需要实现一个动态计算汇编指令长度的功能,该功能可以使用LDE64这个反汇编引擎,该引擎小巧简单可以直接在驱动中使用,LDE引擎是BeaEngine引擎的一部分,后来让BeatriX打包成了一个ShellCode代码,并可以通过typedef动态指针的方式直接调用功能,本章内容作为后期Hook挂钩的铺垫部分,独立出来也是因为代码太多太占空间一篇文章写下来或很长影响阅读。LDE反汇编引擎源代码:https://github.com/BeaEngine/lde64首先定义一个lyshark_lde64.h头
本章开始LyShark将介绍如何在内核中实现InlineHook挂钩这门技术,内核挂钩的第一步需要实现一个动态计算汇编指令长度的功能,该功能可以使用LDE64这个反汇编引擎,该引擎小巧简单可以直接在驱动中使用,LDE引擎是BeaEngine引擎的一部分,后来让BeatriX打包成了一个ShellCode代码,并可以通过typedef动态指针的方式直接调用功能,本章内容作为后期Hook挂钩的铺垫部分,独立出来也是因为代码太多太占空间一篇文章写下来或很长影响阅读。LDE反汇编引擎源代码:https://github.com/BeaEngine/lde64首先定义一个lyshark_lde64.h头
C++对象构造和析构//遗留的问题:C++中构造函数和析构函数的执行顺序到底是怎么样的呢?classObject{private:intval;public:Object(intx){val=x;cout代码在Linux64平台编译运行,objdump-d生成反汇编代码。汇编代码如下:反汇编代码Object:文件格式elf64-x86-64Disassemblyofsection.init:0000000000001000:1000:f30f1efaendbr641004:4883ec08sub$0x8,%rsp1008:488b05d92f0000mov0x2fd9(%rip),%rax#3
C++对象构造和析构//遗留的问题:C++中构造函数和析构函数的执行顺序到底是怎么样的呢?classObject{private:intval;public:Object(intx){val=x;cout代码在Linux64平台编译运行,objdump-d生成反汇编代码。汇编代码如下:反汇编代码Object:文件格式elf64-x86-64Disassemblyofsection.init:0000000000001000:1000:f30f1efaendbr641004:4883ec08sub$0x8,%rsp1008:488b05d92f0000mov0x2fd9(%rip),%rax#3
前言下面介绍映像文件工具srec_cat的使用,如何通过相关参数实现自己需要的功能。下载链接:SRecord使用方式文件类型在输入文件和输出文件文件时要指明文件类型,常用的如:test.hex-inteltest.bin-binary文件转换可以通过该软件进入文件类型转换。如hex文件转bin文件:srec_cat.exestm32.hex-intel-offset0x08000000-ostm32.bin-binary将stm32.hex从0x08000000地址开始转成bin文件。bin文件转hex文件:srec_cat.exestm32.bin-binary-offset0x080000
前言下面介绍映像文件工具srec_cat的使用,如何通过相关参数实现自己需要的功能。下载链接:SRecord使用方式文件类型在输入文件和输出文件文件时要指明文件类型,常用的如:test.hex-inteltest.bin-binary文件转换可以通过该软件进入文件类型转换。如hex文件转bin文件:srec_cat.exestm32.hex-intel-offset0x08000000-ostm32.bin-binary将stm32.hex从0x08000000地址开始转成bin文件。bin文件转hex文件:srec_cat.exestm32.bin-binary-offset0x080000
0x00靶机介绍靶机地址:Chronos:1~VulnHub难度等级:中(构思非常巧妙)推荐虚拟机:VirtualBox0x01内容简介涉及的攻击方法端口扫描WEB侦查命令注入数据编解码搜索大法框架漏洞利用代码审计NC串联本地提权简介本课我完整介绍了自己的打靶过程,以及面对每个困难时的思路和反映。在面对自身技术弱点的情况下,我通过搜索大法和自己快速的学习能力,终于成功完成了这次打靶,并收获了作者埋下的一个小小彩蛋。希望你能从本课的内容受益!打靶目标取得2个flag+root权限0x02环境搭建下载好靶机.ova文件后导入到VirtualBox中即可确保靶机和kali在同一网段中kaliIP地址