寄存器和汇编指令基础和对于栈区的思考
寄存器和汇编指令基础0X1寄存器
通用寄存器
AX,BX,CX,DX
AX是累积寄存器,相对于其他寄存器,在运算方面比较常用,是很多加法乘法指令的缺省寄存器。
BX是基地暂存器,作为内存偏移指针使用,在内存寻址时存放基地址。
CX是计数暂存器,是重复(REP)前缀指令和LOOP指令的内定寄存器。
DX是资料暂存器,用来放整数除法产生的余数。
IP,SP,BP,
IP是存储CPU下次所执行的指令地址(存放指令偏移地址)。
SP是指针的寄存器,用于堆栈操作。被形象地称为栈顶指针。
BP是基址指针,一般指向当前栈帧的栈底地址。
他经常被称为高级语言函数调用的“框架指针”,在逆向的时候,经常可以看见一个标准的函数起始代码:
123push ebp ;保存当前ebpmov ebp,esp;EBP设为当前栈帧的栈底指针sub esp , n ;预留n个字节给函数临时变量
SI,DI
SI和DI是变址寄存器。
SI是源变址寄存器,在内存操作指令中作为“源地址指针”使用。
DI是目的变址寄存器,在内存操作指令中作为“目的地址”使用。
R8~R15
内容不详,暂时还用不到这些知识,才疏学浅, ...
安询杯2022PWN
PWNbabyarm变表base64加密,解密一下就行
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364# coding:utf-8s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/"def My_base64_encode(inputs): # 将字符串转化为2进制 bin_str = [] for i in inputs: x = str(bin(ord(i))).replace('0b', '') bin_str.append('{:0>8}'.format(x)) #print(bin_str) # 输出的字符串 outputs = "" # 不够三倍数,需补齐的次数 nums ...
安全计算模式 seccomp_rule_add(3)使用文档
安全计算模式 seccomp_rule_add使用文档名称seccomp_rule_add, seccomp_rule_add_exact - Add a seccomp filter rule
简介123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#include <seccomp.h>typedef void * scmp_filter_ctx;int SCMP_SYS(syscall_name);struct scmp_arg_cmp SCMP_CMP(unsigned int arg, enum scmp_compare op, ...);struct scmp_arg_cmp SCMP_A0(enum scmp_compare op, ...);struct scmp_arg_cmp SCMP_A1(enum scmp_compare op, ...);struct scmp_arg_c ...
学习资源
学习资源 ¶在线学习 ¶
i 春秋 - 专业的网络安全 | 信息安全在线学习培训平台
看雪知识库
CTFHub
学习路线 ¶
知道创宇研发技能表 v3.1
漏洞银行 (BUGBANK) 技能树
安全技能树简版 by 余弦
安全类思维导图 by phith0n
信息安全从业者书单推荐
CTFHub 技能树
信息资讯 ¶
FreeBuf.COM | 关注黑客与极客
安全客 - 有思想的安全新媒体
嘶吼 RoarTalk – 回归最本质的信息安全
Sec-News 安全文摘
技术论坛 ¶
吾爱破解
看雪论坛
先知社区
i 春秋论坛
CTF 赛事 ¶
XCTF 社区
CTFtime
CTFHub 赛事中心
CTF OJ¶
XCTF OJ
CTF 大本营
pwnhub
南邮网络攻防训练平台
HackingLab 网络信息安全攻防学习平台
BugkuCTF
WeChall
Sniper OJ
Jarvis OJ
CTF Learn
Hackme CTF
Practice CTF List
CTFHub 真题复现
CTF 工具 ¶
看雪工具
吾爱破解工具
CTF 在线工具 by CTFc ...
如何在服务器上搭建jupyter notebook
如何在服务器上搭建jupyter notebook1. 准备一台Linux云服务器我准备的是一台centos的服务器
2. 新建一个用户新建一个jupyter的用户用于运行服务:
1adduser jupyter
然后切换到此用户
1su jupyter
3. 安装 Anaconda下载Anaconda最新安装程序 https://www.anaconda.com/products/individual#Downloads
1wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh
运行安装程序:
1sh Anaconda3-2021.05-Linux-x86_64.sh
安装过程中敲回车和输入yes同意许可即可
安装完成重新登录即可

4. 搭建 Jupyter Notebook 环境
安装jup ...
大语言模型的涌现能力:现象与解释
大语言模型的涌现能力:现象与解释前言在学习大语言模型的时候,接触到了大佬的分享,前沿的知识,感觉很有帮助,特此记录,只是简单记录,文章来源会在后面的参考资料标注出来
问答注释1:有人问了,既然很多自然现象也体现出涌现能力,那么大语言模型的涌现现象需要解释吗?我个人认为是需要的。毕竟,说大语言模型的某个特殊现象属于“涌现现象”,也是被个别研究提出来,未有确切证明或证据,是否它和自然现象中出现的涌现现象内在机制是类似或一样的,其实可以存疑。而且我认为大模型的这个现象,背后应该有些我们可以理解的原因。如果我们不追求现象背后的解释,仅仅把目前解释不了的现象统一归类为涌现或者其它什么概念,就此了之。那么,其实我们也可以把大模型的目前理解不了的很多现象,统一归类为这是一种“神迹”,那世界上很多事情就简单多了。另另,用Grokking解释涌现现象,尽管我把它称为”用玄学解释玄学“,但是觉得还是值得深入探索的方向,也许可以把上面的说法,优化为”用含玄量较低的玄学解释另外一个含玄量较高的玄学“。
注释2:如果仔细分析的话,大语言模型的这个所谓“涌现现象”,如果仅仅把现象归因于模型规模,目前看大概率是把问 ...
大模型(Foundation Models)综述
大模型(Foundation Models)综述大模型的定义“大模型”通常是指参数数量庞大、计算资源要求高的机器学习模型。这些模型通常具有大量的参数,通过训练过程来学习数据的特征和模式,以实现各种任务,如自然语言处理、计算机视觉、推荐系统等。大模型的典型例子包括深度神经网络(如深度学习模型)、大型树模型(如梯度提升树)、大规模线性模型等。
以下是大模型的一些特点:
参数数量庞大:大模型通常包含数百万到数十亿个参数,这些参数用于捕获输入数据的复杂关系和模式。
计算资源要求高:由于参数数量众多,训练大模型通常需要大量的计算资源,包括高性能的GPU、TPU(谷歌(Google)开发的一种专用于机器学习加速的处理器)等硬件设备。
复杂的结构:大模型往往具有复杂的网络结构或模型结构,包括多层神经网络、多个隐藏层、大规模的树结构等。
高度的泛化能力:由于拥有庞大的参数空间,大模型通常具有较强的泛化能力,能够在广泛的任务和数据集上表现良好。
需要大规模的训练数据:为了训练大模型,通常需要大规模的训练数据集,以确保模型能够学习到充分的特征和模式。
大模型在各种领域和任务中都有广泛的应用,但由于其训 ...
多线程C函数学习
多线程C函数学习0x00 pthread_create()函数:创建线程Linux中的pthread_create()函数用来创建线程,它声明在<pthread.h>头文件中,语法格式如下:
1234int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
各个参数的含义是:
1)pthread_t *thread :传递一个pthread_t类型的指针变量,也可以直接传递某个pthread_t类型变量的地址。pthread_t 是一种用于表示线程的数据类型,每个pthread_t类型的变量都可以表示一个线程。
2)const const pthread_attr_t *attr:用于手动设置新建线程的属性,例如线程的调用策略,线程所能使用的栈内存大小等。大部分场景中,我们都不需要手动修改线程的属性,将 ...
堆的初始化
堆的初始化–源码分析堆的初始化堆的初始化是用户在第一次申请内存执行malloc_consolidate 再执行malloc_init_state实现的。
malloc_init_state1234567891011121314151617181920212223242526272829#define INTERNAL_SIZE_T size_t#define SIZE_SZ (sizeof(INTERNAL_SIZE_T))//就是size_t的长度typedef struct malloc_state *mstate; //mstate就是malloc_sate 指针static struct malloc_state main_arena; //main_arena在这里声明的typedef struct malloc_chunk* mbinptr;#define bin_at(m, i) ((mbinptr)((char*)&((m)->bins[(i)<<1]) - (SIZE_SZ<<1))) /* 寻址 ...
堆的Tcache机制
堆的Tcache机制tcache是glibc 2.26(ubuntu 17.10)之后引入的一种技术 ,目的是提升堆管理的性能。但提升性能的同时舍弃了很多安全检查,也因此有利很多新的利用方式。
相关结构体tcache 引入了两个新的结构体,tcache_entry和tcache_perthread_struct。
这其实和fastbin很像,但又不一样。
tcache_entry123456/* We overlay this structure on the user-data portion of a chunk when the chunk is stored in the per-thread cache. */typedef struct tcache_entry{ struct tcache_entry *next;} tcache_entry;
tcache_entry用于链接空闲的chunk结构体,其中的 next指针指向下一个大小相同的chunk。需要注意的是这里的next指向chunk的user data,而fastbin的fd指向ch ...