10 2024 档案
摘要:Java - 26 代码块 [修饰符 static]{ 代码 }; 类似于方法,没有方法名,没有返回,没有参数 不用通过对象或类 显式调用,而是在加载类 或 创建对象时 隐式调用 普通代码块 好处 构造器的补充机制(减少代码重复冗余),可以做初始化操作 /* 不管调用哪个构造器创建对象,都会先调用代
阅读全文
摘要:Java - 24 类变量和类方法 类变量(静态变量) 非静态变量 = 普通变量 = 实例变量 class Main{ public static void main(String[] args){ Child c1 = new Child("wu"); c1.join(); c1.count++;
阅读全文
摘要:Java - 25 main方法 main 方法是 虚拟机 调用的 public static void main(String[] args) java虚拟机需要调用类的main方法,所以该方法的访问权限必须是 public java虚拟机在执行 main() 方法时不必创建对象,所以是 stat
阅读全文
摘要:The Kaminsky Attack LabLab Environment Setup搭建实验环境,实验网络结构如下:网络接口:br-7af3568e2bbcTesting the DNS Setup进入user,执行指令dig ns.attacker32.com :符合预期。 符合预期。The
阅读全文
摘要:作业题目本实验的目标是让学生获得对DNS(域名系统)的各种攻击的第一手经验。DNS是互联网的电话簿;它将主机名转换为IP地址,反之亦然。这种转换是通过DNS解析实现的,这种解析发生在幕后。DNS欺骗攻击以各种方式操纵此解析过程,目的是将用户误导到其他目的地,这些目的地通常是恶意的。本实验室主要研究几
阅读全文
摘要:作业题目 SQL注入是一种代码注入技术,它利用web应用程序和数据库服务器之间接口中的漏洞。当用户的输入在发送到后端数据库服务器之前未在web应用程序中正确检查时,就会出现此漏洞。许多web应用程序从用户处获取输入,然后使用这些输入构造SQL查询,这样web应用程序就可以从数据库中获取信息。Web应
阅读全文
摘要:作业题目 溯源取证分析作为网络攻防过程中重要环节,准确找到攻击者的入侵线索(尤其是攻击突破口、攻击IP地址、域名、工具等信息),对于企业或者团队安全运营团队来说都是必备技能。常规攻击取证过程中往往会结合流量、Web访问日志、终端系统或者软件日志等信息来挖掘或者推断相关线索。本实验通过网络流量、日志等
阅读全文
摘要:作业题目 幽灵攻击于2017年发现,并于2018年1月公开披露,它利用关键漏洞进行攻击,存在于许多现代处理器中,包括Intel、AMD和ARM处理器。漏洞允许程序突破进程间和进程内的隔离,以便恶意程序可以读取来自无法访问区域的数据。硬件保护不允许这样的访问机制(用于进程间的隔离)或软件保护机制(用于
阅读全文
摘要:作业题目 本实验的学习目标是让学生获得有关漏洞以及针对这些漏洞的攻击的第一手经验。聪明人从错误中学习。在安全教育中,我们研究导致软件漏洞的错误。研究过去的错误不仅有助于学生理解为什么系统容易受到攻击,为什么“看似良性”的错误会变成灾难,以及为什么需要许多安全机制。更重要的是,它还帮助学生了解漏洞的常
阅读全文
摘要:作业题目 包嗅探和欺骗是网络安全中的两个重要概念;它们是网络通信中的两大威胁。能够理解这两种威胁对于理解网络中的安全措施至关重要。有许多包嗅探和欺骗工具,如Wireshark、Tcpdump、Netwox等。其中一些工具被安全专家以及攻击者广泛使用。能够使用这些工具对学生来说很重要,但对于网络安全课
阅读全文
摘要:作业题目 跨站点脚本(XSS)是一种常见于web应用程序中的计算机安全漏洞。此漏洞使攻击者有可能将恶意代码(如JavaScripts)注入受害者的web浏览器。 为了演示攻击者可以做什么,我们在预先构建的Ubuntu VM映像中设置了一个名为Elgg的web应用程序。我们已经注释掉了Elgg的一些保
阅读全文
摘要:作业题目 本实验室的学习目标是让学生了解环境变量如何影响程序以及系统行为。环境变量是一组动态命名值,可以影响正在运行的进程将在计算机上运行。大多数操作系统都使用它们,因为它们是1979年引入Unix。尽管环境变量会影响程序行为,但它们是如何实现的这一点很多程序员都不太理解。因此,如果程序使用环境变量
阅读全文
摘要:作业题目 shellcode广泛用于许多涉及代码注入的攻击中。编写shellcode是相当有挑战性的。虽然我们可以很容易地从互联网上找到现有的shellcode,但是能够从头开始编写我们自己的shellcode总是令人兴奋的。shellcode中涉及到几种有趣的技术。本实验室的目的是帮助学生理解这些
阅读全文
摘要:作业题目 本实验的学习目标是让学生将从课堂上学到的有关缓冲区溢出漏洞的知识进行实践,从而获得有关该漏洞的第一手经验。缓冲区溢出是指程序试图将数据写入预先分配的固定长度缓冲区边界之外的情况。恶意用户可利用此漏洞改变程序的流控制,甚至执行任意代码。此漏洞是由于数据存储(如缓冲区)和控件存储(如返回地址)
阅读全文
摘要:作业题目 本次实验主要是加深大家对MD5碰撞及其原理的理解,使用SEED实验环境中的工具及编程语言,完成以下任务: 使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制编辑器查看输出的两个文件,描述你观察到的情况; 参考Lab3_task2.c的代码,生成两个MD5值相同但输
阅读全文
摘要:作业题目 本次实验主要考察大家的编程能力及子域名的信息收集方法,在文件 夹“Lab1_code”提供了使用 Bing 搜索引擎的域名收集功能。请对该 代码进行扩展,使其可支持百度搜索引擎的域名收集功能。需要实现 如下功能: a) 支持百度搜索引擎的域名提取,其中从百度搜索引擎提取的域名 需为真实域名
阅读全文
摘要:代码随想录刷题记录 - 字符串 1. 反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打
阅读全文
摘要:Java - 23 Object类详解 == 与 equals() == 既可以判断基本类型也可以判断引用类型 判断基本类型,判断值是否相等 判断基本类型,判断地址是否相等(是不是一个对象) equals 是Object类的方法,只能判断引用类型 默认判断地址是否相等 子类中往往重写该方法:Inte
阅读全文
摘要:Java - 21 动态绑定机制 方法具有动态绑定机制,当调用对象方法,该方法会和该对象的内存地址(运行类型)绑定 public class Main{ public static void main(String[] args){ A a = new B(); System.out.println
阅读全文
摘要:Java - 19 面向对象编程的三大特征:继承 解决代码复用,维护性,扩展性 当多个类存在相同的属性和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有子类不需要重新定义这些属性和方法,只需要通过extends来声明继承父类即可 e.g. public class Test{
阅读全文
摘要:Java - 22 多态数组+多态参数 多态数组 数组的定义类型为父类类型,里面保存的实际元素为子类类型 Person[] persons = new Person[5]; person[0] = new Person("Jack", 20); person[1] = new Student("Ro
阅读全文
摘要:Java - 20 面向对象编程的三大特征:多态 提高复用性 方法或对象具有多种形态,多态建立在封装和继承基础之上 方法的多态 // 重载体现多态 System.out.println(a.sum(10, 20)); System.out.println(a.sum(10, 20, 30)); //
阅读全文
摘要:Java - 19 面向对象编程的三大特征:封装 封装:把抽象出的数据(属性)和对数据的操作(方法)封装在一起 数据被保护在内部 程序的其它部分只能通过被授权的操作(方法)才能对数据进行操作 好处: 隐藏实现细节 对数据进行验证,保证安全合理 封装实现步骤 属性私有化(不能直接修改属性) 提供一个
阅读全文
摘要:Java - 18 包 区分相同名字的类 可以很好的管理类 控制访问范围 /* 声明当前类所在的包,需要放在类的最上面,一个类中最多只能由一句package */ package com.wxr package 关键字,表示打包;com.wxr 表示包名 包的本质:创建不同的文件夹/目录管理类 包的
阅读全文
摘要:Java - 17 this关键字 哪个对象调用,this就代表哪个对象,this存储代表对象的地址,指向代表对象 public class This01{ public static void main(String[] args){ Dog dog1 = new Dog("A", 2); Sys
阅读全文
摘要:Java - 16 构造器 constructor 完成对新对象的初始化,不是创造对象 本质是方法 public class Constructor{ public static void main(String[] args){ Person p1 = new Person("dabao", 2)
阅读全文
摘要:Java - 15 作用域+访问修饰符 全局变量与局部变量 class Cat{ int age = 1; // 全局变量(属性),作用域是整个cat类 { int num = 100; // 代码块中 - 局部变量 } public void say(){ String greet = "hell
阅读全文
摘要:Java - 14 方法重载+可变参数 方法重载 Java允许同一个类中,多个同名方法存在,但要求形参列表不一致(类型,顺序),返回类型没有要求 public class Overload{ public static void main(String[] args) { MyCalculator
阅读全文
摘要:Java - 13 方法的递归 递归必须向退出递归的条件逼近 斐波那契数列 当n=1,1 当n=2,1 当n >= 3,是前两个数的和 public class Recursion{ public static void main(String[] args) { Fbnq f = new Fbnq
阅读全文
摘要:Java - 12 方法 public class main{ public static void main(String[] args){ Person pers = new Person(); pers.speak(); pers.cal(100); int returnRes = pers.
阅读全文
摘要:Java - 11 类与对象 类 类[属性, 行为] ->对象[属性, 行为] public class Test{ public static void main(String[] args){ Cat cat1 = new Cat(); // 创建对象 cat1.name = "大宝"; cat
阅读全文
摘要:Java - 10 二维数据 一维数组的每个元素又是一个一维数组 静态初始化 int[][] arr = {{0,0,0,0}, {1,1,1,1}, {2,2,2,2}, {3,3,3,3}}; public class TwoDimensionArray { public static void
阅读全文
摘要:Java - 7 数组 数组 存放多个 同一类型的数据,引用数据类型,本质是对象 double[] ds = {3, 5, 2.3}; for(int i = 0; i < 3; i++){ System.out.println("第" + (i+1) + "个元素的值=" + ds[i]); }
阅读全文
摘要:Java 6 语句 嵌套分支 最好不要超过三层 Switch分支 // 表达式对应一个值 switch(表达式){ case 常量1: // 代码块1 break; case 常量2: // 代码块2 break; default: // 代码块default break; } 细节: 表达式和常量
阅读全文
摘要:Java - 5 原码、反码、补码 0表示正,1表示负 整数的原码,反码,补码都一样 负数的反码 = 原码符号位不变,其它位取反 负数的补码 = 反码 + 1 0的反码,补码都是0 Java中没有无符号数 计算机运算时,以补码的方式运算 看计算结果时,要看原码 整数数据类型取值范围 数据类型 范围
阅读全文
摘要:Java - 4 输入输出 输入 // 导入包 import java.util.Scanner; public class Input{ public static void main (String[] args){ // 创建对象 Scanner scanner = new Scanner(S
阅读全文
摘要:Java - 3 运算符 算术运算符 /* ++a : 先运算后取值 a++ : 先取值后运算 */ int i = 1; i = i++; // (1)temp=i;(2)i=i+1;(3)i=temp; System.out.println(i); // 1 int i = 1; i = ++i
阅读全文