Linux下的一些基础知识小记
Linux
[toc]
ubuntu下编写快速开启\关闭\查看aslr脚本
由于suid
不能直接作用于bash
脚本(为了安全考虑),我们这里采用expect
脚本的方式。如下所示:
关闭aslr
:
1 |
|
将这个脚本放在/usr/bin
中,给予执行权限即可。
同理,开启aslr
的脚本如下:
1 |
|
查看aslr
状态:
1 |
|
反弹shell
若要从主机A
接收一个反弹的shell
,首先在主机上监听某个端口:
1 |
|
通过在主机B
上执行如下命令,即可使得主机B
主动发起一个连接到主机A
。
1 |
|
“反弹”shell
的意思就是,这个shell
是由主机B
主动发起连接让主机A
使用主机B
的shell
的,因此不会被防火墙等阻拦。若我们能通过木马等方式控制某台主机并执行一次命令,那么我们即可反弹一个shell
。
常见函数
setvbuf函数
1 |
|
calloc函数
1 |
|
realloc函数
1 |
|
Linux查找文件
1 |
|
VIM操作
回到顶部
1 |
|
删除当前以下所有
1 |
|
查找内容
1 |
|
vmware共享文件夹
我现在设置到了主机桌面的vmware_share
在ubuntu
下是在/mnt/hgfs/vmware_share
ubuntu解压缩
1 |
|
软链接和硬链接
软链接
- 可以理解为一个“快捷方式”。
- 原始文件被删除后,软链接将“悬空”,指向不存在的文件。
- 软链接可以链接到目录。
- 软链接不会存储文件内容,而是仅存储原文件的路径。
硬链接
- 可以理解为同一个文件的不同名称。
- 原始文件被删除后,硬链接仍然可以访问该文件(你可以把硬链接和原始文件名同等地当作文件的两个名称)。
- 不能链接到目录
1 |
|
ida创建结构体
在逆向尤其是二进制程序分析时,我们常常会遇到一些结构体,结构体里面还会嵌套一些结构体。有的师傅喜欢人肉反编译,但是这里还是记录一下ida
如何进行结构体的创建。这里分为两种,一种是ida
自带的结构体创建和编写C语言代码创建。
无论使用哪种方式创建了结构体,只需要在ida
反编译的代码中选中结构体指针变量并右键,点击conver to struct*
然后选中自己创建的结构体即可让ida应用这种结构体方式。
ida自带结构体创建
使用shift+f9
打开结构体菜单,如图所示:
此时按下键盘上的insert
键,输入要创建的结构体名称,如图所示:
就可以完成空结构体的创建,如图所示:
现在我们将光标移动到ends
的一行,按下键盘上的d
键,即可添加一个结构体的成员变量:
鼠标移动到默认创建的名称field_0
上按下键盘上的n
键可以更改名称,而再次按下键盘上的d
键可以更改变量的数据类型,如图所示就创建好了一个带有一个8字节大小的叫做name
的成员变量的结构体:
编写C语言代码创建结构体
假如你觉得上面的方法过于复杂,或者结构体成员变量较多,那么你可以采取直接编写C语言代码的方式来创建结构体。在ida
中按下shift+f1
,如图所示:
我们按下键盘上的insert
键,即可弹出输入结构体的C语言代码的输入框:
输入完成后按下ok
即可完成结构体的创建。无论使用了哪种方式创建结构体,都可以在结构体指针上使用convert to struct*
来应用结构体。
效果演示
如图所示,应用结构体后即可使用结构体的方式在反编译后的代码中显示。
上传包到pip
使用如下命令构建包,会生成文件到dist
:
1 |
|
使用如下命令上传到pip
:
1 |
|
会要求输入API
。若更新,需要更新setup.py
中的版本号。