pwn学习日记Day6 基础知识积累】的更多相关文章

知识杂项 ELF:在计算机科学中,是一种用于二进制文件.可执行文件.目标代码.共享库和核心转储格式文件. char fgets(char buf, int bufsize, FILE stream); buf: 字符型指针,指向用来存储所得数据的地址. bufsize: 整型数据,指明存储数据的大小. *stream: 文件结构体指针,将要读取的文件流. 从文件结构体指针stream中读取数据,每次读取一行.读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufs…
知识杂项 strncpy(char s1,const char s2,int n); 其中有三个参数分别表示目标字符串s1,源字符串s2,拷贝长度.意思是将s2指向的字符串的前n个长度的字符放到s1指向的字符串中,并将s1原有的前n个字符覆盖. sys_execve() 在真正的开始执行系统调用函数之前,系统调用服务程序已经将一些系统调用的函数的参数传递给了相应的寄存器,比如这里的ebx,ecx,edx都分别保存了系统调用的参数,ebx保存的是第一个参数,依次类推(当然最多传递的参数个数不能大于…
知识杂项 int mprotect(const void *start, size_t len, int prot); mprotect()函数把自start开始的.长度为len的内存区的保护属性修改为prot指定的值. int fflush(FILE *stream) fflush():会强迫将缓冲区内的数据写回参数stream 指定的文件中. 如果参数stream 为NULL,fflush()会将所有打开的文件数据更新. DEP:可帮助防止数据页当作代码执行,从而有效分离数据与代码.通常情况…
知识杂项 msfVENOM:Msfvenom是msf框架配套的攻击载荷生成器. payload:有效载荷. payload:目标系统上渗透成功后执行的代码. Metasploit:一款开源的安全漏洞检测工具. BufferRegister:缓冲寄存器 shellcode的变形 "\x31\xc9\xf7\xe1\xb0\x0b\x51\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xcd\x80"显然含有大量的非base64编码字符,甚…
知识杂项 libc是Linux下的ANSI C的函数库. LOOKUP函数 数组形式:公式为= LOOKUP(lookup_value,array) 式中 array-包含文本.数字或逻辑值的单元格区域或数组它的值用于与 lookup_value 进行比较. str.ljust(width[, fillchar]) 1.width -- 指定字符串长度. 2.fillchar -- 填充字符,默认为空格. 返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串.如果指定的长度小于原字符串的长…
知识杂项 aslr:是一种针对缓冲区溢出的安全保护技术,通过对堆.栈.共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的的一种技术. str.strip([chars]); 用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列. chars -- 移除字符串头尾指定的字符序列. 返回移除字符串头尾指定的字符生成的新字符串. 调整栈帧技巧 在存在栈溢出的程序中,有时候我们会碰到一些栈相关的问题,例如溢出的字节数太小,AS…
知识杂项 shell-storm.org的shellcode数据库 使用pwntools库把shellcode作为输入传递给程序,尝试使用io.interactive()与程序进行交互,发现可以执行shell命令. shellcode:是一段可以执行特定功能的神秘代码. shell-storm:上还有可以执行其他功能如关机,进程炸弹,读取/etc/passwd等的shellcode. EAX 是"累加器"(accumulator), 它是很多加法乘法指令的缺省寄存器. EBX 是&qu…
ida / od 窗口(针对od操作) 反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址.HEX 数据.反汇编.注释可以通过在窗口中右击出现的菜单 界面选项->隐藏标题 或 显示标题 来进行切换是否显示.用鼠标左键点击注释标签可以切换注释显示的方式. 寄存器窗口:显示当前所选线程的 CPU 寄存器内容.同样点击标签 寄存器 (FPU) 可以切换显示寄存器的方式.重点关注ESP .EBP.EIP EBP寄存器:存放函数栈底指针. ESP寄存器:存放函数栈顶指针. EIP寄存器:下一条指令的地…
知识杂项 *:字符串重复 空指令NOP:\x90 cmp:是比较指令,cmp的功能相当于减法指令.它不保存结果,只是影响相应的标志位. xor:将两个操作数进行异或运算,并将结果存放到操作数1中. shr:带进位的右移 shellcode的变形 函数代码在栈中保存顺序(直观理解,已省略其他细节): buffer 前栈帧EBP 返回地址 ESP 溢出原理 正常情况下函数在返回过程中,最后会执行返回地址中保存的内容,通常是跳到下一条指令的地址如果buffer长度过长,长到覆盖了返回地址的值,那么函数…
如何学习FPGA?FPGA学习必备的基础知识 时间:2013-08-12 来源:eepw 作者: 关键字:FPGA   基础知识       FPGA已成为现今的技术热点之一,无论学生还是工程师都希望跨进FPGA的大门.网络上各种开发板.培训班更是多如牛毛,仿佛在告诉你不懂FPGA你就OUT啦.那么我们要玩转FPGA必须具备哪些基础知识呢?下面我们慢慢道来. (一) 要了解什么是FPGA 既然要玩转FPGA,那我们首先最重要的当然是要了解什么FPGA.FPGA(Field-Programmabl…
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数据库连接池管理数据库. ☐ 将SQL语句硬编码到Java代码中,若SQL语句修改,需要重新编译Java代码,不利于系统维护. ☐ 将SQL语句配置在XML文件中,即使SQL变化,我们也不需要队Java代码进行重新编译. ☐ 向PreparedStatement中设置参数,对占位符号位置和设置参数值,…
数字 int 主要是用于计算的,常用的方法有一种 #既十进制数值用二进制表示时,最少使用的位数i = 3#3的ASCII为:0000 0011,即两位 s = i.bit_length() print(s) 布尔值 bool  True/False while True: 等价于: while 1:   ###较简便 while 1: print('all trule') 字符串 str 字符串的索引与切片 索引:索引既下标,字符串元素从第一个开始,初始索引为0.以此类推. s = 'sdfjs…
一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字节的值,该如何在它上面调用方法? 二:值类型转换为引用类型——装箱 2.1CLR对值类型进行装箱时:新分配托管堆内存,将值类型的实例字段拷贝到新分配的内存中,返回托管堆中新分配对象的地址.这个地址就是一个指向对象的引用. ; Object obj = i; 三:将引用类型转换为值类型——拆箱 3.1…
一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的方法得到的就是这个变量,更准确的说,是指向内存中变量的指针.所以方法内部对变量进行的任何改变在方法退出后仍然有效.而如果变量通过值传递给方法,被调用的方法得到的是变量的一个相同副本,也就是说方法退出后,对变量进行的修改会丢失. 2.2值类型的值传递:值类型的变量包含的是实际数据,作为参数传递的是数据…
一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存储位置的不同会有不同的影响. 例如int类型是值类型:int x,y; x=10;y=x;y=20;前三个语句会在内存的两个地方存储值10.改变y的值不会影响x. 如果已经定义了一个类Test,Test是一个引用类型,有一个int类型的成员变量value,执行完如下代码后,只有一个Test对象.x和…
Quartz学习笔记:基础知识 引入Quartz 关于任务调度 关于任务调度,Java.util.Timer是最简单的一种实现任务调度的方法,简单的使用如下: import java.util.Timer; import java.util.TimerTask; public class TimerTest { public static void main(String[] args) { Timer timer = new Timer(); long delay = 1000; //延时多少…
虽然对python的基础知识有所了解,但是为了更深入的学习,要对python的各种经典书籍进行学习 第一章介绍python的优缺点,略过 第二章介绍python起步,第三章介绍python基础,仅记录一些有用的 help(函数名),获取函数的使用帮助,q退出 python支持五种基本的数字类型 int(有符合整数),long(长整数),bool(布尔值),complex(复数),float(浮点数) decimal(十进制浮点数)2.4以后添加了 for item in items常用来循环遍历…
1.XML基础: XML全称为eXtensible Markup Language;即可扩展标记型语言,同HTML一样使用标签来操作.它的可扩展性体现在标签可以由自己定义,可以是中文标签. XML用途: 同HTML一样可用于显示数据,但是不是XML的主要用途.XML我们多用来存储数据. 应用: 1).不同应用之间数据的传输,利于程序之间的维护 2).用来表示生活中具有层级关系的数据 3).多用于文件配置 XML语法: 1).XML的文档声明: 创建一个文件,后缀名为.xml 在写XML之前,首先…
前言: 使用 TensorFlow 之前你需要了解关于 TensorFlow 的以下基础知识: 使用图(graphs) 来表示计算 在会话(session) 中执行图 使用张量(tensors) 来代表数据 通过变量(variables) 维护状态 使用供给(feeds) 和取回(fetches) 将数据传入或传出任何操作 总览 TensorFlow是一个以图(graphs)来表示计算的编程系统,图中的节点被称之为op(operation的缩写). 一个op获得零或多个张量(tensors)执行…
概述 本人最近在学习docker相关的知识,既是工作本身的需要也是自己对技术的追求的必要,以后我也会推出容器相关的随笔,既可以增长自己的知识,也可以和读者广泛交流,岂不乐乎?话不多说.第一篇先介绍docker的基础知识. DOCKER是什么 Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 Gi…
本文包含了一些计算机基础知识:计算机组成:Windows常用快捷键:DOS常用命令:计算机语言发展史.…
.note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeiti, "Microsoft YaHei", "WenQuanYi Micro Hei", SimSun, Song, sans-serif } 本文是从<第三版UNIX 环境高级编程 第3版> 摘录出来的.逐字打出来的,书中讲的示例都是使用C语言,恰好上半年…
正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 基础知识:正则表达式30分钟入门教程 http://www.jb51.net/tools/zhengze.html  版本:v2.33 (2013-1-10) 作者:deerchao 转载请注明来源 使用格式:  见java API  http://docs.oracle.com/javase/7/docs/api/ java : java.util.reg…
本章介绍pandas的重要功能,只记录一些重点内容 1.重新索引 pandas对象的一个重要方法是reindex,其作用是创建一个适应用新索引的新对象 #重新索引 obj = pd.Series([4.5, 7.2, -5.3, 3.6], index = ['d', 'b', 'a', 'c']) obj #调用该Series的reindex将会根据新索引进行重排.如果某个索引值当前不存在,就引入缺失值 obj2 = obj.reindex(['a', 'b', 'c', 'd', 'e'])…
一. 基础知识 ● 程序和C/C++ 程序: 根据Wirth (1976), Algorithms + Data Structures = Programs. Whence C: 1972, Dennis Ritchie[ˈritʃi](丹尼斯·里奇), 贝尔实验室(Bell Labs), C语言是他和Ken Thompson在设计Unix操作系统时创建的, Ritchie因此被称为C语言之父和Unix之父. Whence C++: 1983-1985, Bjarne Stroustrup([ˈ…
HTML超文本标记语言:HyperText Markup Language. 由浏览器运行解析. 它包括了静态页面.html   .htm.动态页面.php .aspx .jsp,从数据库提取. 今天我们使用Adobe Dreamweaver学习. html基础语法: 单标签<标签名 />. 双标签<标签名></标签名>. 注释<!--需要注释内容的内容在这里--> html基础标签. <!DOCTYPE html>声明标签,声明为html5文档…
补java的坑,开始! 1.Intellij一些快捷键 intell常用快捷键: ctrl+n 快速查找定位类的位置 ctrl+q 快速查看某个类的文档信息 shift + F6 快速类.变量重命名 ctrl + i 在当前类实现接口的方法 ctrl + o 复写基类的方法 ctrl+shift+空格 推荐适用于当前函数的变量 alt+insert 快速设置类的方法 ctrl+shift+a 快速查找各种类,变量,操作 ctrl+alt+t 自动生成异常捕获块 ctrl+alt+b 定位抽象方法…
8 并发编程 8.1 基础知识 8.1.1 操作系统的定义 操作系统是存在于硬件与软件之间,管理.协调.调度软件与硬件的交互. 资源管理解决物理资源数量不足和合理分配资源这两个问题, 通俗来说,操作系统可以分成两部分功能: ​ 一是将硬件资源接口的调用变得方便简单: ​ 二是合理调度应用程序对硬件资源的竞态请求 8.1.2 进程 具有独立功能的程序在某个数据集合上的一次运行活动,也是操作系统进行资源分配和保护的基本单位. 正在执行的文件或程序,而负责执行的主体使CPU. 8.1.3 进程与程序…
一.数据库基础知识 1.1 Whats's 数据库 数据库(Database,DB):将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合.如:大型-银行存储的信息,小型-电话簿. 数据库管理系统(Batabase Management System,DBMS):用来管理数据库的计算机系统. 关系型数据库(Relational Database,RDB):目前应用最广泛的数据库. 结构化查询语言(Structured Query Language,SQL):专门用于操作 RDB.…
参考:http://www.importnew.com/22083.html 参考:http://www.importnew.com/22087.html 十分感谢原作者的汇总,我在这个基础上,有所改动,添加自己的备忘,总结 1.面向对象的特性特征: -抽象: 将一类对象的共同特征 总结出来 构造类 的过程,包括 数据抽象 和 行为抽象 两方面.抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么.也就是从实际需求中 设计出类的一个过程,包括类的属性和方法. -封装: 把数据和操作数据的…