Linux 系统实现 SSH 连接的 3 种 方式
Linux 系统实现 SSH 连接的 3 种 方式密码登入公钥登入私钥登入登入前提服务端安装好 ssh 服务, openssh-server客户端与服务器端均要拥有 ssh-key,可以使用命令 ls ~/.ssh/ 来查看是否拥有 id_rsa 与 id_rsa.pub 文件,如果没有同时拥有这两个文件,那就执行命令ssh-keygen并持续按回车键生成它们前提假设 :客户端 A 远程连接服务端 B,A 的 IP 等于10.10.10.104,B 的 IP 等于172.19.0.2
方式一:密码登入原理:执行远程连接命令并输入账号密码
客户端 A 连接服务端 B,客户端 A 中执行命令 ssh root@172.19.0.2 去连接 B。命令中的 root 是服务端 B 的用户名接着就是输入密码即可
方式二:公钥登入(免密登入)原理:注入公钥到服务端,表示拥有该公钥的客户端可以免密登入
将客户端 A 的公钥/.ssh/id_rsa.pub复 ...
IDA快捷键
IDA快捷键F5+空格 chr ordupx脱壳v5+i=v5[i]
ida小端序 r转换成字符 倒着读 h切换为10进制 shift+f12快捷命令进入a:将数据转换为字符串esc:回退键,能够倒回上一部操作的视图(只有在反汇编窗口才是这个作用,如果是在其他窗口按下esc,会关闭该窗口)shift+f12:可以打开string窗口,一键找出所有的字符串,右击setup,还能对窗口的属性进行设置ctrl+w:保存ida数据库ctrl+s:选择某个数据段,直接进行跳转ctrl+鼠标滚轮:能够调节流程视图的大小x:对着某个函数、变量按该快捷键,可以查看它的交叉引用g:直接跳转到某个地址n:更改变量的名称y:更改变量的类型/ :在反编译后伪代码的界面中写下注释\:在反编译后伪代码的界面中隐藏/显示变量和函数的类型描述,有时候变量特别多的时候隐藏掉类型描述看起来会轻松很多;:在反汇编后的界面中写下注释ctrl+shift+w:拍摄IDA快照u:undefine,取消定义函数、代码、数据的定义D(Data):即让某一个位置变成数据。一直以按D键,这个位置的数据类型将会以1字节,2字 ...
HTTP
HTTPHTTP 充当客户端和服务器之间的请求-响应协议。最常用的两种方法是:GET 和 POST。
GET 方法GET 用于从指定资源请求数据。请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:/test/demo_form.php?name1=value1&name2=value2有关 GET 请求的其他一些注释:GET 请求可被缓存GET 请求保留在浏览器历史记录中GET 请求可被收藏为书签GET 请求不应在处理敏感数据时使用GET 请求有长度限制GET 请求只应当用于取回数据(不修改)
POST 方法POST 用于将数据发送到服务器来创建/更新资源。通过 POST 发送到服务器的数据存储在 HTTP 请求的请求主体中:POST /test/demo_form.php HTTP/1.1Host: w3school.com.cnname1=value1&name2=value2有关 POST 请求的其他一些注释:POST 请求不会被缓存POST 请求不会保留在浏览器历史记录中POST 不能被收藏为书签POST 请求对数据长度没有要求 ...
Heapcreate和Heapalloc
HeapCreate()这个函数创建一个只有调用进程才能访问的私有堆。进程从虚拟地址空间里保留出一个连续的块并且为这个块特定的初始部分分配物理空间。返回值:成功:一个指向新创建的堆的指针失败:NULL调用函数GetLastError获得更多的错误信息。这个函数在调用进程里创建一个私有堆,进程可调用HeapAlloc函数分配内存空间。这些页在进程的虚拟空间内创建了一个块,在那里堆可以增长。如果HeapAlloc函数请求的空间超过了现有的页的大小,如果物理空间足够的话,额外的空间将会从已保留的空间里增加。只有创建私有堆的进程可以访问私有堆。如果一个DLL(动态链接库)创建了一个私有堆,那么这个私有堆是在调用该DLL的进程的地址空间内,且仅该进程可访问。系统会使用私有堆的一部分空间去储存堆的结构信息,所以,不是所有的堆内空间对进程来说是可用的。例如:HeapAlloc函数从一个最大大小为64KB的堆里申请64KB的空间,由于系统占用的一部分空间,这个请求通常会失败。
HeapAlloc()返回值:如果函数成功,则返回值是指向分配的内存块的指针。如果函数失败并且您尚未指定HEAP_GENERA ...
brainfuck语言
brainfuck语言
一,指令BF只有8种有效字符,其实就是8种指令:字符 含义
指针加一
< 指针减一
指针指向的字节的值加一
指针指向的字节的值减一
. 输出指针指向的单元内容(ASCⅡ码)
, 输入内容到指针指向的单元(ASCⅡ码)
[ 如果指针指向的单元值为零,向后跳转到对应的]指令的次一指令处
] 如果指针指向的单元值不为零,向前跳转到对应的[指令的次一指令处这里的指针都是指向一个8位的整数,即char,加减法的溢出规则也是和char型整数的溢出规则一致。纸带是双向的,和图灵机保持一致。二,翻译成C/C++BF可以简单的翻译成C/C++语言:把BF转换成C++代码的C++代码:
string translate(char c)
{
switch (c)
{
case '>':
return "p++";
case '<':
...