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中的版本号。