爬虫笔记
爬虫笔记request库Requests是一常用的http请求库,它使用python语言编写,可以方便地发送http请求,以及方便地处理响应结果。
发送get/post请求导入库import requests
get请求不带参数r = requests.get('https://www.douban.com/') # 豆瓣首页带一个以字典形式的参数paramsr = requests.get('https://www.douban.com/search', params={'q': 'python', 'cat': '1001'})
post请求不带参数r = requests.post('https://www.douban.com/') # 豆瓣首页带一个以字典形式的参数datar = requests.post('https://www.douban.com/search', data={ ...
AFL-Fuzz training笔记
AFL-Fuzz training笔记libxml2根据afl-training先下载对应版本的libxml2:
git clone https://github.com/GNOME/libxml2.gitcd libxml2git submodule initgit submodule updategit checkout v2.9.2
然后编译:
CC=afl-clang-fast ./autogen.sh AFL_USE_ASAN=1 make -j 4
harness.c
#include "libxml/parser.h"#include "libxml/tree.h"int main(int argc, char **argv) { if (argc != 2){ return(1); } xmlInitParser(); while (__AFL_LOOP(1000)) { xmlDocPtr doc = xmlReadFil ...
对linux下的ASLR保护的思考
对linux下的ASLR保护的思考对ASLR的理解一阶段参考我的这篇博客:https://sf2333.github.io/2022/02/01/CTF-pwn-%E6%8A%80%E6%9C%AF%E6%80%BB%E7%BB%93%EF%BC%883%EF%BC%89/
对ASLR的理解二阶段全称为地址空间布局随机化(Address Space Layout Randomization)
仅仅是在 操作系统层面实现的,一般远程题目是默认开启的。但是在打本地的题目时我们可以手动关闭它,这样程序所有的地址都可以通过调试获得(包括代码段地址)。
但是开了PIE却没开ALSR会怎么样呢?下面我们做实验探究一下:
实验程序:
它会打印代码段、BSS段、栈、共享库、堆的地址,我们通过多次运行这个程序,观察各个地址的变化情况,得出ASLR与PIE对程序地址的影响。
一个小细节:没有启用-fpie -pie选项进行编译的程序:
启用-fpie -pie选项进行编译的程序:
再看看共享库文件:
我们可以知道开启PIE后,程序变成了一个类似共享库的文件,这使程序可以被加载到任意地址。
一个小疑 ...
深度学习之文本图像化与数据预处理
in_channels=1, # 输入卷积层的图片通道数
out_channels=20, # 输出的通道数
kernelSize=3, # 卷积核的大小,长宽相等,3*3
stride=1, # 滑动步长为1
padding=2 # 在输入张量周围补的边
poolKernelSize=2 # 池化层的filters的大小2*2
from torch.nn import Modulefrom torch import nnclass Model(Module): def __init__(self): super(Model, self).__init__() self.conv1 = nn.Conv2d(in_channels=1, out_channels=6, kernel_size=3, stride=2, padding=2) # w0 = 9 self.relu1 ...
git上传项目通用方法
git上传项目通用方法针对git本地配置多平台(Github、GitLab、Gitee)账号麻烦的通用上传项目方法
1.使用HTTP克隆远程库到本地
git clone https://git.gitsec.cn/awqhc/niads.git
2.提交改动到本地的版本库git commit [origin] [分支名]
看到有些未追踪到的(untracked)文件(红色字体),即我们需要上传上去的文件
git add filename/* [origin] [分支名]
git commit -m 'message' [origin] [分支名]
message即是我们用来简要说明这次提交的语句
3.将本地分支推送到远程库git push [origin] [分支名]
如果出现以下报错:
使用:
git pull --rebase [origin] [分支名]
最后再使用:
git push [origin] [分支名]
这样就上传到远程库中了!
Ubuntu 安装llvm和clang
Ubuntu 安装llvm和clang克隆llvm仓库将目录更改为您希望放置 llvm 目录的位置。
git clone https://github.com/llvm/llvm-project
可以通过更改远程仓库实现加速——下载 Github加速 插件(github项目)
更新编译工具链sudo apt install gccsudo apt install g++sudo apt install makesudo apt install cmake
编译稳定版本的clang/llvmcd llvm-projectgit checkout release/10.x (relaese/10.x == 10.0.1)
也可以选择具体的版本
git checkout llvmorg-10.0.1
编译mkdir buildcd buildcmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release --enable-optimized --enable-targets=host-only ../llvm ...
LetNet-5 神经网络模型搭建
LetNet-5 神经网络模型搭建模型介绍
1.1 LeNet-5 结构:
输入层
图片大小为 32×32×1,其中 1 表示为黑白图像,只有一个 channel。
卷积层
filter 大小 5×5,filter 深度(个数)为 6,padding 为 0, 卷积步长 s=1s=1,输出矩阵大小为 28×28×6,其中 6 表示 filter 的个数。
池化层
average pooling,filter 大小 2×2(即 f=2f=2),步长 s=2s=2,no padding,输出矩阵大小为 14×14×6。
卷积层
filter 大小 5×5,filter 个数为 16,padding 为 0, 卷积步长 s=1s=1,输出矩阵大小为 10×10×16,其中 16 表示 filter 的个数。
池化层
average pooling,filter 大小 2×2(即 f=2f=2),步长 s=2s=2,no padding,输出矩阵大小为 5×5×16。注意,在该层结束,需要将 5×5×16 的矩阵flatten 成一个 400 维的向量。
全连接层(Full ...
Anaconda 简单使用
anaconda(python 环境管理工具) 简单使用命令行操作(常用)activateactivate
能将我们引入anaconda设定的虚拟环境中, 如果你后面什么参数都不加那么会进入anaconda自带的base环境,
你可以输入python试试, 这样会进入base环境的python解释器, 如果你把原来环境中的python环境去除掉会更能体会到, 这个时候在命令行中使用的已经不是你原来的python而是base环境下的python.而命令行前面也会多一个(base) 说明当前我们处于的是base环境下
创建自己的虚拟环境conda create -n python36 python=3.6
切换环境activate [环境名称]
如果忘记了名称我们可以先用
conda env list
卸载环境conda remove --name python36 --all
安装第三方包conda install requests
或者
pip install requests
要用 pip 安装指定版本的 Python 包,只需通过 == 操作符 指定
pip i ...
利用docker创建pwn环境
利用docker创建pwn环境参考 https://github.com/PIG-007/pwnDockerAll
PWN题本地更换libc环境攻略
PWN题本地更换libc环境攻略准备工作下载工具patchelf
$ git clone https://github.com/NixOS/patchelf
glibc-all-in_one
$ git clone https://github.com/matrix1001/glibc-all-in-one
1.查看题目libc版本大部分情况下,直接运行libc库即可。
如果不行的话,使用下面这个命令
$ strings libc.so.6 | grep 'Ubuntu GLIBC'
2.下载指定libc进入下载好的 glibc-all-in-one 文件夹,
输入下面命令:
$ ./update_list #更新最新版本的glibc$ cat list #查看可下载的glibc
找到需要的glibc版本,用下面的命令下载到本地
$ ./download 2.31-0ubuntu9.5_amd64
如果在list中没有找到需要的 glibc版本(版本较老)
输入下面的命令打开老版本gl ...