汇编语言学习(五):栈
3.6-3.7栈的规则是LIFO(last in first out)
也就是先进去的就到了栈底,最后放进去的就在表面上,最后放进去的可以最先拿出来。
8086提供入栈和出栈指令,PUSH和POP
以-我们的一段内存可以以栈的方式来访问。执行的时候
12mov ax,0123push ax
即将寄存器里的数据放到栈中,因为是字型数据,占高八位和第八位,栈底对应的是高地址位,所以把高位01先入栈,到栈底。
向上堆叠时
12mov bx,2266push bx
会以同样形式向上走一个字型内存。
出栈时用pop先从栈顶出
123456pop ax执行后:ax = 1122,出栈入寄存器的意思。然后我们再将剩下两个栈单元也出来,赋值给bx寄存器pop bx,执行后bx=2266
字型数据用两个单元存放,高地址存放高八位,反之亦然。
CPU如何找到栈顶?
有相应的寄存器来存放栈顶的地址,段寄存器SS和寄存器SP,栈的段地址放在SS中,偏移地址放在SP中。任意时刻,SS:SP指向栈顶元素。push和pop执行时,CPU从SS:SP获得栈顶地址。
当前属性
12345678910SS=1000 ...
python实现http代理
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162import socketimport threadingimport requestsclass Proxy: # 初始化代理配置 def __init__(self): # 用来连接服务器 self.buffsize = 4096; self.clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM); self.clientSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1); # 用来等待客户端连接 self.clientSocket.bind(("0.0.0.0", 11111)); sel ...
汇编语言学习(四):寄存器(栈之前)
第三章:寄存器(部分加实验)3.1字的存储方式
如图所示,最左端的数字是IP的缩写,应该为0000,0001H等,每一个小格都是一个内存单元,存储两个16进制数,也就相当于一个字节,相当于8bit.
CPU中用16位寄存器存储一个字,也就是两个八位,就是两个小格的意思。前两个小格是4E20H,就可以看作一个起始为0的字单元。低位存在0号单元,高位存在1号单元。,后面也是如此。
字的定义:字单元,即存放一个字型数据(16位的内存单元),由两个地址连续的内存单元组成。高地址位存放高位字节,低地址内存存放低位字节。
3.2 DS寄存器和[address]
DS表示一个寄存器,专门用来存放要访问的数据的段地址。比如要读取10000H地址的内容,首先由CS:IP分解,可以知道可以简单分解成:1000:0
我们将1000H赋值给BX,将BX赋值给DS就完成了对段地址的传输。DS一般表示成数组形式,第三行的[0]就表示要访问的IP。也就是0
合起来就是10000H,为什么不直接把1000H传给DS呢?
1在8086CPU中,DS寄存器不能直接接收数据!
8086是16位的CPU可一次性完成16位传送 ...
scapy命令
1sniff(filter='arp',prn=lambda x:x.summary(), count=10)
可以输出抓包固定协议的数据包
1data = sniff(filter='not icmp',prn=lambda x:x.summary(),count=10)
可以通过
12data[0]来查看数据包详细信息#也可以通过data[0].show()
hardware type(HTPYE)为0x0001的时候,表示Ethernet
protocol type(PTPYE)为0x0800的时候,表示IPv4
hardware length (HLEN)为0x06的时候,表示MAC地址长度为6byte
protocol length(PLEN)为0x04的时候,表示IP地址长度为4byte
ARP包有request和response之分,request包的OPER(Opcode)位为0x0001 (也就是这里的who has), response包的OPER位为0x0002。
最后的payload位(padding)即为我们自己定制的 ...
PHP学习(3):循环与超全局变量
上次学习了常量constant
这次先复习一下运算符
强相等必须是类型和内容都相等,弱相等只需要有同样的键值对
12345<?php$x = array("a" => "red", "b" => "green");$y = array("c" => "blue", "d" => "yellow");var_dump($x == $y);?>
也就是键值对相同,内容的类型可以不相同,比如一个字符串一个数字。
下面看三目运算符:
1234567<?phpecho $status = (empty($user)) ? "anonymous" : "logged in";echo ("<br>");$user = "John";echo $status = (empty($user)) ? " ...
汇编语言(3):Debug调试
今天看完第二章,学习了主要的实验:汇编调试,用来查看机器码,汇编语言,以及CS:IP地址之间的关联。
一般我们在查看CS:IP指向的内存,然后在CS:IP指向的内存中写入一定内存的机器码转成汇编或者是直接写入汇编指令。
先来说一下调试实验用的工具:debug.exe.是汇编语言书上说的,但是WINDOWS7及以上的系统削减了debug,导致我们没法在dos命令中直接Debug,我们要获取一个环境
1.安装windows2000server虚拟机
2.这个方法比较简单,就是下载一个dosbox,直接去网上搜,按照默认路径下载,我也附上下载地址:
https://files.cnblogs.com/files/ECJTUACM-873284962/DOSBox0.74-win32-installer.rar
然后下载Debug.exe32位程序,附上下载地址
https://files.cnblogs.com/files/ECJTUACM-873284962/DEBUG.zip
下载好之后,打开dosbox然后输入
1mount c debug.exe的安装地址
即可完成挂在。然后直接输入 ...
汇编语言学习(1)
基础的就跳过了,也就是一开始的16进制运算
我们简要复习一下基础内容
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。 在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。 在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。
也就是汇编语言经机器转换成二进制机器码让机器执行,汇编语言是最接近计算机的语言。
计算机CPU由寄存器,加法器,控制器和逻辑总线构成,常见的CPU有很多年前的8080和8086CPU
8080CPU是8bit的,一次能处理8位数据,也就是能够一次性处理,传输,暂时存储的信息的最大长度是8位的
8086CPU是16bit的,一次最多处理16位。
8086有20位地址总线,可以传送20位地址,如果从内部来看,只将地址从内部简单的发出,只能传送16位,8086CPU采用从内部用两个16位地址合成的方法(见数字电子技术基础(第七版))来形成一个20位的物理地址。
常用寄存器有AX,BX,CX,DX等等
一般寄存器里面有4个十 ...
linux find命令
语法1find path -option [ -print ] [ -exec -ok command ] {} \;
参数说明 :
find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。
expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。
-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去 n 天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去 n 天内创建的文件
-mtime n ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
crowbar 工具使用rdp远程控制
先用msfconsole搜索auxiliary辅助模块里面rdp_scanner并使用,检测目标是否打开端口等。
然后打开crowbar工具
输入参数 python3 crowbar.py -b rdp -s 192.168.xx.xx/32 -U user_file -C pass_file
然后等待爆破
然后sudo xfreerdp /u:user /p:password /v:靶机ip
即可捕捉界面,完成。



