汇编语言(十一)call和ret指令
call和ret指令都是用来修改ip的或者同时修改cs和ip。
ret和retf指令作用如下:一个是近转移,一个是远转移。
执行ret指令相当于执行
1pop IP
CPU执行retf指令时相当于执行
123pop IPpop CS//注意是先出IP再出CS
举个例子我们来看看。下面的程序中ret指令执行之后,(ip)=0,cs:ip指向代码段第一条指令。
12345678910111213141516171819assume cs:codestack segment db 16 dup (0)stack endscode segment mov ax,4c00h int 21h start:mov ax,stack mov ss,ax//定义栈 mov sp,16//栈的指针位置。 mov ax,0//置0 push ax//将0入栈 mov bx,0 ret//0出栈到ip code ends end start
那么下面retf执行之后,CS:I ...
汇编语言(十)
第九章 转移指令的原理我们8086cpu的转移行为有以下几类:
123只修改IP,成为段内转移,比如:jamp ax同时修改CS和IP时,成为段间转移,比如jmp 1000:0
对于IP的修改范围不同,段内转移又分为:短转移和近转移。
短转移的IP的修改范围为-128~127。
近转移IP的修改范围为-32768~32767。
操作符offset功能为取得标号的偏移地址,比如下面的程序:
1234assume cs:cosdegcosdeg segment start:mov ax,offset start相当于mov ax,0,即取得了start的偏移地址 s:mov ax,offset s相当于mov ax,3
下面看问题
所以只需要添加:
12mov ax,cs:[si]#先将s处的偏移地址放进axmov cs:[di],ax#再把s处的偏移地址送入s0处,这也就是我们前面定义si,di的原因,就是为了获取偏移地址便于传参。
jmp指令给出两种信息:
12转移的目的地址转移的距离。
依据位移进行转移的jmp指令比如
1jmp short 标号#表示短转移,因为对IP修改 ...
sed用法及练习
Linux sed 命令是利用脚本来处理文本文件。
sed 可依照脚本的指令来处理、编辑文本文件。
Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
引用自菜鸟教程https://www.runoob.com/linux/linux-comm-sed.html
我们来练习,先新建一个testfile
1cat testfile内容
以行为单位的新增/删除然后在第四行后面加一行,使用
1sed -e 4a\newLine testfile
下面将testfile内容列出并印出行号,同时将第2-5行删除,使用
1nl testfile | sed '2,5d'
其实可以看出前面的输出作为后面的输入!详见管道符原理。
注意sed后面接的动作必须要用两个单引号引起来。如:
1nl testfile | sed '2d'
如果要删除第三行到最后一行,就是用
1nl testfile | sed '3,$d'#也就是说这里$表示末尾的意思!
注意sed的操作没有-i时并不改变原文件!只是在管道中改变并且 ...
汇编语言(九)
第八章 数据处理的两个基本问题我们用描述性的符号reg表示寄存器,用sreg表示段寄存器。
123reg: ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp,si,disreg:ds,ss,cs,es
bx,si,di,bp只有这4个寄存器可以用在[]中进行内存单元寻址。比如
1mov ax,[bx+si]
在[]中这4种寄存器可以单个出现,如果组合出现,只能出现4种组合,即
1[bx+si],[bx+di],[bp+si],[bp+di]其他都是错误的。
如果[]中使用bp但是指令中没有给出段地址,则段地址默认在ss中。
比如:
1mov ax,[bp]含义:(ax) = ((ss)*16+(bp))
机器指令处理的数据在什么地方大部分机器指令都是进行数据处理的指令,分为三类:读取,写入,运算。
机器指令并不关心数据的值,而是关心指令执行前一刻,将要处理的数据所在的位置。
一般所处理的数据出现在3个地方:CPU内部,内存,端口。
举例:
123mov bx,[0] 内存,ds:0单元mov bx,ax. CPU内部,ax寄存器mov bx,1 ...
汇编语言(八)
第七章 更灵活的定位内存地址的方法简单的逻辑运算1234and al,01111111B代表将第七位设置为0or al,10000000B代表将第七位设置为1
ASCII码在汇编中的应用比如我们要将一系列字母存储进数据段,我们可以直接输入字母,汇编会自动存储他们的ascii码比如:
123456789101112assume cs:code,ds:datadata segment db 'unIX' db 'foRK'#这里存入的是其ascii码也就是db 66h,6fh,52h,4bh相当于四个字节,也就说明一个字母代表一个字节data endscode segmentstart: mov al,'a' mov bl,'b' mov ax,4c00h int 21hcode endsend start
存入之后我们可以查看段数据-d可以看到右边就是ascii转换成的字符形式。
并且还能验证:因为ds = 0B2D,所以程序从0B3DH开始也就是直接对应第一个段data segment
...
obey teachers, less control will help deal with their future life
开头都是两句话:背景句+自己观点
On the other hand, other people insist that controlling less is beneficial to their adult life/future development/future prospects/in adulthood/,which will improve their thinking abilitilies.
It is well recognized that if youngsters become less accustomed to following others, they may consider more indenpendently, rationally.This means that they may be able to analyse the consequences of their actions, improving their ability to make dicisions independently when they grow up/whe ...
流量检测项目开发
1sudo suricata-update list-sources
可以增加好多其他地方的源
1curl http://testmynids.org/uid/index.html#可以测试id
然后可以简单编写suricata规则
11 alert icmp any any -> $HOME_NET any (msg:"ICMP Ping"; sid: 1; rev: 1;)即可标记一个由外部网络进入家庭网络的ping请求
如图所示可以被记录下来
尽管我们还没有加分类和优先级。
hackthebox-Oopsie-php
首先连接到hackthebox靶场内网。然后执行常规扫描
1sudo nmap -sC -sV ip
发现打开80端口的httpd服务。我们访问网页检查源代码发现登陆页面
我们访问
1http://ip/cdn-cgi/login进行登陆
我们首先以客人模式进行登陆,因为爆破密码发现并没有效果!
然后查看账户发现url显示如下
于是我们尝试将id改为1,刷新有如上结果。
我们将admin和34322改入cookie值中
进行替换!然后我们看见有uploads页面,我们尝试进行文件上传!
这里我们利用kali虚拟机中的/usr/share/webshells/php中的自带php-reverse-shell,用来反向链接,getshell。我们打开shell,将中间部分改成我们自己的配置信息
比如设置ip等。
之后上传到页面中!我们需要知道我们上传文件的位置!我们使用gobuster进行扫描。
1gobuster dir --url http://ip/ --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-s ...
ocr笔记
传统OCR系统最重要的步骤就是特征提取,为了找出图像候选的文字区域的特征。特征提取第一步是特征设计,特征设计是非常麻烦的事情,需要大量人工对汉子的独有结构进行特征设计,并且做分类数据库。
下面是传统OCR计数框架图。
并且,用人工设计的特征来训练字符识别模型,单一的特征在字体发生变化时,泛化能力显著下降,鲁棒性不够。它还非常依赖最后字符分割的结果,所以错误率很高。
在ocr识别系统中,所有步骤被大致分成了三个部分。首先是图像输入预处理,然后是图像分割,然后是汉字识别,当然也包括英文等其他识别,最后对识别结果进行处理。
图像预处理时,为了加快图像识别模块的处理速度,需要将彩色图像转换为灰度图像,减小图像矩阵占用的内存空间。由彩色图像转换为灰度图像的过程叫做灰度化处理,灰度图像就是只有亮度信息而没有颜色信息的图像,而且存储灰度图像只需要一个数据矩阵,矩阵中的每个元素都表示对应位置像素的灰度值。
通过拍摄,扫描等方式采集图像可能会有局部区域模糊,对比度偏弱等因素的影响,而图像增强可以用于图像对比度的调整,可以突出图像的重要细节!因此,采用图像灰度变换等方法可以有效增强图像对比度,提高图像中 ...
整数规划
割平面法
引入松弛变量达到原来的效果。
下面介绍割平面法基本步骤:
如图所示,也就是说整数和整数在一起,小数和小数在一起。所以说最后一个式子右边应该小于等于0,所以直接得到一个整数约束方程。
下面是程序框图
看下面例题:
显然我们直接列式子
匈牙利法下面看0-1变量的使用
下面看基于0-1的互斥约束问题。
取M为接近无穷大即可让另一个条件失效,保持一个条件成立,妙。
下面是互斥作用的推广:
当我们不选Yi时,就置1,也就是一共p个,减去不选的yi个,就剩下选的q个,所以p-q就是yi的和。并且如果不选的话,第一行M的无穷大效果就会体现,让第一个式子直接失效!妙!
看下面例题(固定费用问题)
也就是当x_1 \le M_iy_i时可以看到,此时如果选用此条生产线也就是$y_i$取1,那么$M_i$的无穷效果触发,对应的$x_1$就无所谓了。
指派问题
出现一个系数矩阵,有n个人和n项工作。
看标准形式:
既然有系数矩阵,也就有解矩阵
每一行和每一列只能有一个1,也就是一个人只能完成一项工作,
一项工作只能有一个人去做,一一对应即可!然后看她们的最大效率。
也会有以下最 ...



