- 博客(75)
- 收藏
- 关注
原创 Attacklab实验
一、实验目的1、深入了解缓冲区溢出的隐患,了解如何利用缓冲区溢出这个漏洞对现有程序进行控制流劫持、执行非法程序代码,从而造成对程序进行攻击以及破坏的过程;2、增强对程序机器级表示、汇编语言、调试器和逆向工程等理解。二、实验内容对目标程序实施缓冲区溢出攻击,通过造成缓冲区溢出来破坏目标程序的栈帧结构,继而执行一些原来程序中没有的行为。本实验共完成以下2个实验小题:level1和level2。1、准备工作在所发目录中,一共3个和本实验相关的文件:ctarget 代码注入攻击的目标
2022-03-25 15:50:46
3738
3
原创 【CSAPP】二进制拆弹实验
一、实验目的1、增强对程序机器级表示、汇编语言、调试器和逆向工程等理解;2、提高分析问题解决问题的能力。二、实验内容通过程序反汇编和逆向工程拆除所给的目标代码文件中的二进制炸弹。一个“Binary Bombs”(二进制炸弹)是一个Linux可执行C程序,包含phase1~phase6共6个阶段,即6个炸弹。炸弹运行各阶段要求输入一个字符串,若输入符合程序预期,该阶段炸弹被“拆除”,否则“爆炸” 。本实验要求拆除至少3个炸弹,多则不限。三、实验工具和环境软件工具:gdb调试器和ob
2021-12-27 17:09:46
5229
1
原创 【数据结构】线性表、堆栈和队列的操作与实现
一、实验目的:1、线性表的链表实现:遍历、查找、插入、删除、翻转2、栈的链式存储结构实现:入栈、出栈3、队列的链式存储结构的实现:入队、出队4、线性表、栈和队列的应用实现二、使用仪器、器材微机一台操作系统:WinXP编程软件:C++三、实验内容及原理实验内容:1、单链表实验、实现单链表的基本功能(1)实现链表结点的创建功能(2)实现单链表的创建功能(3)实现单链表的插入功能(4)实现单链表的删除功能(5)实验单链表某个数据的查找(成功或不成功,
2021-12-22 10:03:35
1253
原创 【数据结构】数据结构与算法综合实验
实验目的与要求熟悉C/C++语言的集成开发环境;通过本实验加深对分治法、贪心算法的理解。实验内容:掌握分治法、贪心算法的概念和基本思想,并结合具体的问题学习如何用相应策略进行求解的方法。实验题1. 【伪造硬币问题】给你一个装有n个硬币的袋子。n个硬币中有一个是伪造的。你的任务是找出这个伪造的硬币。为了帮助你完成这一任务,将提供一台可用来比较两组硬币重量的仪器,利用这台仪器,可以知道两组硬币的重量是否相同。试用分治法的思想写出解决问题的算法,并计算其时间复杂度。#include...
2021-12-22 09:31:05
2049
原创 GDB与objdump
目录GDB简介objdump简介一些做二进制拆弹实验的预备知识GDB简介¢GDB(GNU symbolic debugger)是一个功能很强大的调试器。它是一个受通用公共许可证即GPL保护的自由软件。¢GDB可以调试一个程序,包括让程序在你希望的地方停下,此时你可以查看变量、寄存器、内存及堆栈。更进一步你可以修改变量及内存值。¢GDB可以调试多种语言,包括ada, c, c++, asm, minimal, d, fortran, objective-c, go, java,p.
2021-12-21 11:35:16
695
原创 【数据结构】查找和排序算法实现
一、实验目的:1、各种排序算法的实现2、各种查找算法实现二、使用仪器、器材微机一台操作系统:WinXP编程软件:C++三、实验内容及原理实验内容:1、各种排序算法的实现用随机函数生成16个2位正整数(10~99),实现插入排序、选择排序、冒泡排序、双向冒泡、快速排序、二路归并排序等多种排序算法,输出排序中间过程、统计关键字的比较次数和记录的移动次数。各种查找算法实现(1)顺序查找:使用数组或链表结构。用随机函数生成16个不重复的字母(’a’~’z’),键盘输入待
2021-12-09 14:18:41
2578
原创 c语言运算符
https://www.runoob.com/cprogramming/c-operators.htmlC运算符运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 语言内置了丰富的运算符,并提供了以下类型的运算符:算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。算术运算符下表显示了 C 语言支持的所有算术运算符。假设变量A的值为 10,变量B的值为 20,则...
2021-11-30 20:48:35
160
原创 【数据结构】图(邻接矩阵、遍历、最小生成树、最短路径)
1、图的邻接表和邻接矩阵存储建立下图的邻接表或邻接矩阵,并输出之;2、图的各种遍历算法实现以0结点为起点实现上述图的深度优先和广度优先遍历算法;3、最小生成树的算法实现利用普里姆(Prim)算法或克鲁斯卡尔(Kruskal)算法求上图的最小生成树,算法实现代码必须有注释。4、最短路径的算法实现利用狄克斯特拉(Dijkstra)算法求上图中0结点到其它结点的最短路径,算法实现代码必须有注释。#include<iostream>#include&l...
2021-11-08 21:42:11
880
原创 【数据结构】二叉树的多种功能(创建、求xx、遍历非递归、线索化遍历、哈夫曼树和编码)
1.利用二叉树字符串“A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建二叉树的二叉链式存储结构;2.输出该二叉树;3.输出‘H’节点的左、右孩子结点值;4.输出该二叉树的结点个数、叶子结点个数、二叉树的度和高度;#include <iostream>using namespace std;int num=0;int lnum = 0;int wnum = 0;struct Node{ char data; struct Nod
2021-10-18 17:47:30
500
原创 【数据结构】二叉树的代码实现
先序遍历:根→左→右中序遍历:左→根→右后序遍历:左→右→根#include <iostream>using namespace std;struct Node{ int data; struct Node* left; struct Node* right;};void preorder(Node* node)//先序遍历{ if (node != NULL) { cout << node->data <<endl;.
2021-10-13 17:51:47
125
原创 【Java】1
package test01;public class helloidea { public static void main(String args[]){ double radius; double area; radius=10; area=3.14*radius*radius; System.out.println(area); //System.out.println("Hello IDE.
2021-10-13 16:33:43
83
原创 简易导航系统
#include<iostream>using namespace std;#include<fstream>#include<string>#include<stdio.h>#include<math.h>bool visit[26] = { false };int record[26] = {0};int minpath[26] = { 0 };int temp = 0;int rec...
2021-10-09 00:13:39
417
原创 scanf函数
格式:scanf(格式控制字符串,变量地址表)e.g. scanf("%d%d",&a,&b);格式控制字符串:用于规定变量的输入格式。变量地址表:存储数据的变量的地址(为是么用变量地址作参数?是由C语言中的参数的单向传递规则决定的)...
2021-09-06 20:15:07
172
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人