计算机视觉技术 golang rest authentication interface 建筑资质 vue自定义组件 vue实现原理 bootstrap后台管理模板 jq选择第一个子元素 jquery通过class获取元素 linux查看mysql进程 mysql降序 cpm怎么计算 matlab生成对角矩阵 判断bigdecimal是否为空 java二维数组赋值 python实战 java路径 java流程 蒙文字体 字幕提取 qq免安装版 vs2003 手机电脑模拟器 unity3d中文版 突袭时间表 失心迷宫怎么打 js字符串转数字 繁简体 掌门一对一官网下载 ps怎么做动画 桌面cpu性能天梯图 正则表达式测试工具 同级生游戏下载 rootkit病毒 流水账记账软件 iphonex截图 怎么字符串包含 ps出血线怎么设置
当前位置: 首页 > 学习教程  > 编程语言

2020-9.14~9.28学习笔记

2020/9/19 13:40:32 文章标签:

2020-9.14~9.28学习笔记

  • 汇编指令
    • 常见寄存器
    • 数据传送指令
    • 算术运算指令
    • 逻辑运算指令
    • 循环控制指令
    • 转移指令
  • Python
    • 基本语法
    • 常见函数
  • Linux虚拟机kali&ubuntu指令
    • 基础指令
    • kali下的及使用指令
    • ubuntu下的使用指令

汇编指令

常见寄存器

cpu存取优先寄存器

寄存器名称用途
EAX用于乘除法和函数返回值
EBX内存数据指针,常以它为基址访问内存
ECX字符串和循环的计数器
EDX用于乘除法
ESI内存数据指针和源字符串指针
EDI内存数据指针和字符串指针
ESP栈顶指针
EBP堆栈指针,可以访问栈内任何地址,也以它为基址访问堆栈

数据传送指令

src:源操作数,数据传送指令一般都是操作数自源地址单元传送到目的地址单元,指令执行后,源地址单元的操作不变,目的地址单元的操作数则修改为源单元的操作数叫做源操作数。也就是你要操作的那个数的地址。
dest:目标操作数,将数字操作完之后,将其结果输出到某个地址,这个地址就是目标操作数。

其中在操作时,为:
命令 dest,src,
如:MOV AH,02

名称用途
MOV传送指令,把数据从src移动到dest
PUSH进栈指令,把src压入栈底
POP出栈指令,从栈顶弹出字数据到dest

算术运算指令

名称用途
ADD加法指令,在dest基础上加上src
SUB减法指令,在dest基础上减src
INC加一指令,在dest基础上加1
DEC减一指令,在dest基础上减1

逻辑运算指令

名称用途
NOT取反,把dest按位取反
AND与,把dest和src进行与运算后送回dest
OR或,把dest和src进行或运算后送回dest
XOR异或,把dest和src进行异或运算后送回dest

循环控制指令

label:定义变量或标号的类型,而变量或标号的段属性和偏移属性由该语句所处的位置确定。

名称用途
LOOP使循环寄存器(ECX)值减一,当ECX不为0得时候跳转至label继续循环,否则结束循环

转移指令

zf=Zero flag,标志寄存器里flag寄存器里的一位。如果指令执行后的结果为0 ,ZF=1
如果结果不为0 , ZF=0

名称用途
CALL过程调用指令,如call label ->直接调用label
JMP无条件转移指令,无条件转移到标号为label的位置
JE条件转移指令,zf=1时跳转至label
JNE条件转移指令,zf=0时跳转至label

Python

基本语法

import 模块名

#导入函数模块

from 模块名 import 函数名  /  *

#导入特定函数/全部函数

模块.函数名()

#直接调用模块函数

变量名1 = open(r"路径",'r')

#打开一个文件

变量名2 = 变量名1.read

#读取该文件

print("xxxx",end = "可加任何分隔记号")

#输出

变量名 = input("xxxx:")

#显示xxxx:并接受输入值

if(xxxx and/or xxxx):** **else

#条件语句且/或

for 变量名 in 目标:

#循环,目标为列表或字符串,列表的话,变量为1 2 3,字符串的话变量则为每个字符

常见函数

def 函数名(参数)

#定义函数

list(变量名)

#将变量变为列表[ ]

range(start,stop,step)/range(数字)

#开始,结束,步长/到该数字结束,一般用于for,如for i in range(3),输出i为0 1 2

ord(字符)

#将字符转为10进制数

hex(数字)

#将数字转为16进制

.upper()

#全部大写

.lower()

#全部小写

.append()

#将元素添加到列表末尾

.insert(0,‘元素’)

#将元素添加到开头(添加元素到任意位置)

len()

#获取列表长度 (计算元素是从1开始的)

.reverse()

#反转列表元素的排列(与字母顺序无关)

print(变量[0:3])

#输出是三个元素 0,1,2

random.random(a,b)

#产生一个随机数在a,b之间

Linux虚拟机kali&ubuntu指令

基础指令

ls:列出目录

cd xxx:切换目录

cat xxx.txt:打开文本文件

apt install xxx:安装xxx

./xxx :打开elf文件

python xxx:用python打开xxx

chmod +x xxx:给xxx可执行权限

file xxx:显示xxx文件的信息

tab:名字补全

↑:选择之前输入过的内容

kali下的及使用指令

binwalk xxx

用binwalk打开xxx

dd if=文件名 of=分离出的包的名字 skip=地址数(10进制) bs=1

分离文件

unzip xxx

解压一个叫xxx的解压包

upx -d xxx

给xxx脱upx壳

ubuntu下的使用指令

nc:

nc:xxx.xxx.xxx

nc连接到xxx


本文链接: http://www.dtmao.cc/news_show_200043.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?