安全测试工具
1.自动化模糊测试框架(BFF)- linux和Mac OS X上的fuzzer工具
Basic Fuzzing Framework (BFF)是CERT发布的自动化dumb fuzzing工具。它能够发现在linux和Mac OS X平台上运行的应用程序的漏洞。BFF在自动收集测试情况下,以独特的方式,导致软件崩溃,以及输出相关的调试信息。
BFF主要由两个部分构成:
一个为Fuzzing优化过的Linux虚拟机文件。
一系列支持Fuzzing运行的脚本和配置文件。
使用BFF的简单用法:
解压 scripts.zip 到 c:\fuzz。
解压 DebianFuzz.zip 到任意目录。
用VMware打开DebianFuzz.vmx。VMware创建一个快照。
下载地址
http://www.cert.org/vulnerability-analysis/tools/bff.cfm
虚拟地址与物理地址映射文件pagemap
PageMAP linux下的文件
* /proc/pid/pagemap. This file lets a userspace process find out which
physical frame each virtual page is mapped to. It contains one 64-bit
value for each virtual page, containing the following data (from
fs/proc/task_mmu.c, above pagemap_read):
详细描述地址 https://www.kernel.org/doc/Documentation/vm/pagemap.txt
我们根据上述描述,给出获取虚拟地址对应的物理地址的代码
#<include <stdio.h>
#include <stdint.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#define page_map_file "/proc/self/pagemap"
#define PFN_MASK ((((uint64_t)1)<<55)-1)
#define PFN_PRESENT_FLAG (((uint64_t)1)<<63)
int mem_addr_vir2phy(unsigned long vir, unsigned long *phy)
{
int fd;
int page_size=getpagesize();
unsigned long vir_page_idx = vir/page_size;
unsigned long pfn_item_offset = vir_page_idx*sizeof(uint64_t);
uint64_t pfn_item;
fd = open(page_map_file, O_RDONLY);
if (fd<0)
{
printf("open %s failed", page_map_file);
return -1;
}
if ((off_t)-1 == lseek(fd, pfn_item_offset, SEEK_SET))
{
printf("lseek %s failed", page_map_file);
return -1;
}
if (sizeof(uint64_t) != read(fd, &pfn_item, sizeof(uint64_t)))
{
printf("read %s failed", page_map_file);
return -1;
}
if (0==(pfn_item & PFN_PRESENT_FLAG))
{
printf("page is not present");
return -1;
}
*phy = (pfn_item & PFN_MASK)*page_size + vir % page_size;
return 0;
}
如果担心vir地址对应的页面不在内存中,可以在调用mem_addr_vir2phy之前,先访问一下此地址。
例如, int a=*(int *)(void *)vir;
如果担心Linux的swap功能将进程的页面交换到硬盘上从而导致页面的物理地址变化,可以关闭swap功能。
下面两个C库函数可以阻止linux将当前进程的部分或全部页面交换到硬盘上。
int mlock(const void *addr, size_t len);
int mlockall(int flags);
cpu-z工具(windows平台)
CPU-Z是最权威的处理器和相关系统信息识别工具。体积小巧,界面简洁、启动很快,可准确的检测出CPU、主板、内存、显卡、SPD等硬件信息,包含了制造厂及处理器名称,核心构造及封装技术,内部、外部频率,最大超频速度侦测,也可以查出处理器相关可使用的指令集。利用它可看到哪家厂牌、内频、Cache等玩家常提到的数据,更包括SelfSnoop、CMOVccInstruction这些专家才看得懂的资讯与数据。
Linux平台上类似CPU-Z的系统分析工具
基于Python的CPU-Z替代CPU-G
基于Gambas的CPU-Z替代I-Nex
依据SMBDIOS/DMI 标准报告系统硬件信息的dmidecode
i7、i5和i3 CPU报告工具i7z
HardInfo
lshw / lshw-gtk