网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
代码
简介
Radamsa是用于健壮性测试(又称为模糊测试)的测试用例生成器。它通常用于测试程序对格式错误和潜在恶意输入的承受能力。它通过读取有效数据的样本文件并从中生成令人感兴趣的不同输出来工作。radamsa的主要卖点是,它已经在真正重要的程序中发现了许多错误,它易于编写脚本,并且易于启动和运行。
目录结构
目录结构1
目录结构2
- bin 一些测试的shell脚本等
- c 库、头文件以及一对库的一些测试
- doc 文档
- rad 一些.scm文件(一种支持DRM(Digital Rights Management 数字版权保护)的新兴媒体格式)
- tests 测试目录,包含一些脚本及抓的网络包
Linux平台(Ubuntu测试)
编译
工具安装
sudo apt update
安装
sudo apt-get install gcc make git wget
下载编译
git clone git@gitlab.com:akihe/radamsa.git && cd radamsa && sudo make && sudo make install
develop版本
develop版本
它有很多分支,我下载的develop版本。
查看版本
radamsa --version
版本
develop版本应该和master,v0.6是一样的,master和v0.6应该更稳定些。
Windows平台(Win10测试)
cygwin安装
标题
标题
标题
阿里云镜像
上面的截图在选择包之后出现,有的人的软件有列表,我的是空的,自己Add上。
标题
标题
选择好后悔安装,上面以gcc和make为例,建议使用后方的命令去安装gcc make和wget
标题
安装命令
进入到安装包目录,使用以下命令会自动到达gcc make wget的页面。
setup-x86_64.exe -q -P wget -P gcc-g++ -P make -P diffutils -P libmpfr-devel -P libgmp-devel -P libmpc-devel
安装完成,打开Cygwin.bat查看。
版本
编译
编译成功
想要不通过Cygwin运行,需要将依赖放到exe的目录中,然后使用cmd命令
cygwin1.dll在cygwin64安装目录的bin目录中,radamsa.exe路径在radamsa的bin中。
同一目录下
cmd命令调用
cmd命令调用radamsa.exe
选项
radamsa用法
| 用法:radamsa [参数] [文件] | |
| 参数 | 含义 |
| -h | --help | 展示帮助信息 |
| -a | --about | radamsa介绍 |
| -V | --version | 版本 |
| -o | --output | 输出模式,例如out.bin /tmp/fuzz-%n.%s、-、:80或127.0.0.1:80或127.0.0.1:123/udp [默认-] |
| -n | --count | 要生成多少个输出(数字或inf)[默认1] |
| -s | --seed | 随机种子(数字,默认随机) |
| -m | --mutations | 要使用哪些突变[ft = 2,fo = 2,fn,num = 5,td,tr2,ts1,tr,ts2,ld,lds,lr2,li,ls,lp,lr, lis,lrs,sr,sd,bd,bf,bi,br,bp,bei,bed,ber,uw,ui = 2,xp = 9,ab] |
| -p | --patterns | 要使用的突变模式[od,nd = 2,bu] |
| -g | --generators | 要使用的数据生成器[random,file = 1000,jump = 200,stdin = 100000] |
| -M | --meta | 将有关生成文件的元数据保存到此文件 |
| -r | --recursive | 包括子目录中的文件 |
| -S | --seek | 从给定的测试用例开始 |
| -T | --truncate | 仅占用每个输出的前n个字节(主要用于UDP) |
| -d | --delay | 输出之间睡眠n毫秒 |
| -l | --list | 列出突变,模式和生成器 |
| -C | --checksums | uniqueness过滤器中的最大校验和数(0禁用)[默认10000] |
| -H | --hash | 用于唯一性检查的哈希算法(stream,sha1或sha256)[默认stream] |
| -v | --verbose | 显示生成过程中的进度 |
使用举例
Hello World!
![img](https://img-blog.csdnimg.cn/img_convert/e3621a6f7e3babfdc352fbf0a1358a90.png)
![img](https://img-blog.csdnimg.cn/img_convert/712c365c8131556ecab84d0cfb291833.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
存中...(img-EDOkhfsH-1715165186700)]
[外链图片转存中...(img-eGOmBLyD-1715165186700)]
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**