Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
webp_Android10_r33_CVE-2023-1999 — CVE-2023-1999的概念验证漏洞利用,针对Android 10 (r33)上的WebP编解码库。展示了libwebp库中的堆缓冲区溢出漏洞,可通过特制的WebP图像实现远程代码执行。 | Kitploit
工具/GitHubGitHub/pazhanivelmani/webp_android10_r33_cve-2023-1999
静态分析漏洞分析代码分析漏洞利用模糊测试二进制分析
GitHubpazhanivelmani/webp_android10_r33_cve-2023-1999

webp_Android10_r33_CVE-2023-1999

CVE-2023-1999的概念验证漏洞利用,针对Android 10 (r33)上的WebP编解码库。展示了libwebp库中的堆缓冲区溢出漏洞,可通过特制的WebP图像实现远程代码执行。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
1281年前尚未审核

     /  \\/  \/  _ \/  _ )/  _ \
     \       /   __/  _  \   __/
      \__\__/\____/\_____/__/ ____  ___
            / _/ /    \    \ /  _ \/ _/
           /  \_/   / /   \ \   __/  \__
           \____/____/\_____/_____/____/v1.0.2

描述:

WebP 编解码器:用于编码和解码 WebP 格式图像的库。此包包含可在其他程序中使用的库以添加 WebP 支持,以及命令行工具 ‘cwebp’ 和 ‘dwebp’。

参见 http://developers.google.com/speed/webp

最新的源码树可在 https://chromium.googlesource.com/webm/libwebp 获取

它基于与 WebM 项目相同的许可证发布。 详见 http://www.webmproject.org/license/software/ 或 “COPYING” 文件。额外的知识产权 授权可在 PATENTS 文件中找到。

构建:

Windows 构建:

通过运行:

nmake /f Makefile.vc CFG=release-static RTLIBCFG=static OBJDIR=output

目录 output\release-static(x64|x86)\bin 将包含工具 cwebp.exe 和 dwebp.exe。目录 output\release-static(x64|x86)\lib 将 包含 libwebp 静态库。 目标架构(x86/x64)由 Makefile.vc 从系统路径中可用的 Visual Studio 编译器(cl.exe)检测。

使用 makefile.unix 的 Unix 构建:

在安装了 GNU 工具(gcc 和 make)的平台上,运行

make -f makefile.unix

将构建二进制文件 examples/cwebp 和 examples/dwebp,以及 静态库 src/libwebp.a。不提供系统范围的安装, 因为这是基于 autoconf 工具的完整安装系统的简单替代方案(见下文)。 请参考 makefile.unix 以获取更多详细信息和自定义。

使用 autoconf 工具:

前提条件: 一个编译器(如 gcc)、make、autoconf、automake、libtool。 在 Debian 类系统上,以下命令应安装最小构建所需的一切: $ sudo apt-get install gcc make autoconf automake libtool

当从 git 源码构建时,您需要运行 autogen.sh 来生成配置脚本。

./configure make make install

应该就是安装以下文件所需的全部步骤

/usr/local/include/webp/decode.h /usr/local/include/webp/encode.h /usr/local/include/webp/types.h /usr/local/lib/libwebp.* /usr/local/bin/cwebp /usr/local/bin/dwebp

已安装。

注意:一个仅解码的库 libwebpdecoder 可通过 ‘--enable-libwebpdecoder’ 标志获得。编码库是单独构建的,可以 通过对相应的 Makefile.am 配置文件进行微小修改来独立安装(参见其中的注释)。有关更多选项,请参见 ‘./configure --help’。

为 MIPS Linux 构建:

MIPS Linux 工具链稳定版可在以下地址找到: https://community.imgtec.com/developers/mips/tools/codescape-mips-sdk/available-releases/

将工具链添加到 PATH

export PATH=$PATH:/path/to/toolchain/bin

为 mips32r5 (p5600) 进行 32 位构建

HOST=mips-mti-linux-gnu MIPS_CFLAGS="-O3 -mips32r5 -mabi=32 -mtune=p5600 -mmsa -mfp64
-msched-weight -mload-store-pairs -fPIE" MIPS_LDFLAGS="-mips32r5 -mabi=32 -mmsa -mfp64 -pie"

为 mips64r6 (i6400) 进行 64 位构建

HOST=mips-img-linux-gnu MIPS_CFLAGS="-O3 -mips64r6 -mabi=64 -mtune=i6400 -mmsa -mfp64
-msched-weight -mload-store-pairs -fPIE" MIPS_LDFLAGS="-mips64r6 -mabi=64 -mmsa -mfp64 -pie"

./configure --host=${HOST} --build=config.guess
CC="${HOST}-gcc -EL"
CFLAGS="$MIPS_CFLAGS"
LDFLAGS="$MIPS_LDFLAGS" make make install

CMake:

使用 CMake,您可以编译 libwebp、cwebp、dwebp、gif2web、img2webp、webpinfo 以及 JS 绑定。

前提条件: 一个编译器(如带 autotools 的 gcc)和 CMake。 在 Debian 类系统上,以下命令应安装最小构建所需的一切: $ sudo apt-get install build-essential cmake

当从 git 源码构建时,您需要运行 cmake 来生成 makefile。

mkdir build && cd build && cmake ../ make make install

如果您还需要任何可执行文件,则需要通过 CMake 启用它们,例如:

cmake -DWEBP_BUILD_CWEBP=ON -DWEBP_BUILD_DWEBP=ON ../

或通过您喜欢的界面(如 ccmake 或 cmake-qt-gui)。

使用选项 -DWEBP_UNICODE=ON 为 Windows 提供 Unicode 支持(使用 chcp 65001)。

最后,安装后,您还可以通过以下方式在 CMake 项目中使用 WebP:

find_package(WebP)

这将定义 CMake 变量 WebP_INCLUDE_DIRS 和 WebP_LIBRARIES。

Gradle:

对 Gradle 的支持是最低限度的:它仅帮助您编译 libwebp、cwebp、dwebp 和 webpmux_example。

前提条件: 一个编译器(如带 autotools 的 gcc)和 gradle。 在 Debian 类系统上,以下命令应安装最小构建所需的一切: $ sudo apt-get install build-essential gradle

当从 git 源码构建时,您需要用合适的目标运行 Gradle 包装器,例如:

./gradlew buildAllExecutables

SWIG 绑定:

要生成来自 swig/libwebp.swig 的语言绑定,至少需要 swig-1.3 (http://www.swig.org)。

当前以下函数被映射: 解码: WebPGetDecoderVersion WebPGetInfo WebPDecodeRGBA WebPDecodeARGB WebPDecodeBGRA WebPDecodeBGR WebPDecodeRGB

编码: WebPGetEncoderVersion WebPEncodeRGBA WebPEncodeBGRA WebPEncodeRGB WebPEncodeBGR WebPEncodeLosslessRGBA WebPEncodeLosslessBGRA WebPEncodeLosslessRGB WebPEncodeLosslessBGR

详见 swig/README 获取更详细的构建说明。

Java 绑定:

要构建 swig 生成的 JNI 包装代码,至少需要 JDK-1.5(或等价版本)以支持枚举。输出预期为一个共享对象/DLL,可通过 System.loadLibrary("webp_jni") 加载。

Python 绑定:

要构建 swig 生成的 Python 扩展代码,至少需要 Python 2.6。 Python < 2.6 可能通过对 libwebp.swig 或生成的代码进行微小修改来构建,但未经测试。

编码工具:

examples/ 目录包含用于编码(cwebp)和解码(dwebp)图像的工具。

最简单的使用方式如下: cwebp input.png -q 80 -o output.webp 这将使用质量因子 80(0->100 尺度,0 为最低质量,100 为最佳。默认值为 75)将输入文件转换为 WebP 文件。 您可能也想尝试 -lossless 标志,它将在不损失任何信息的情况下压缩源(RGBA 格式)。在这种情况下,-q 质量参数将控制尝试使输出文件尽可能小的处理时间。

更多选项可通过 -longhelp 命令行标志获得:

cwebp -longhelp 用法: cwebp [-preset <...>] [options] in_file [-o out_file]

如果未指定图像的输入尺寸(-s),则假定为 PNG、JPEG、TIFF 或 WebP 文件。

选项: -h / -help ............. 简短帮助 -H / -longhelp ......... 详细帮助 -q ............. 质量因子(0:小..100:大),默认=75 -alpha_q ......... 透明度压缩质量(0..100), 默认=100 -preset ....... 预设设置,可选: default, photo, picture, drawing, icon, text -preset 必须放在首位,因为它会覆盖其他参数 -z ............... 激活无损预设,级别 [0:快, ..., 9:最慢]

-m ............... 压缩方法(0=快速,6=最慢),默认=4 -segments ........ 使用的段数(1..4),默认=4 -size ............ 目标大小(字节) -psnr .......... 目标 PSNR(dB,典型:42)

-s ......... YUV 输入的尺寸(宽度 x 高度) -sns ............. 空间噪声整形(0:关,100:最大),默认=50 -f ............... 滤波强度(0=关..100),默认=60 -sharpness ....... 滤波锐度(0:最锐..7:最不锐),默认=0 -strong ................ 使用强滤波代替简单滤波(默认) -nostrong .............. 使用简单滤波代替强滤波 -sharp_yuv ............. 使用更锐利(且更慢)的 RGB->YUV 转换 -partition_limit . 限制质量以适应第一个分区 512k 限制 (0=无劣化...100=完全) -pass ............ 分析遍数(1..10) -crop .. 用给定矩形裁剪图像 -resize ........ 调整图像大小(在任何裁剪之后) -mt .................... 如果可用则使用多线程 -low_memory ............ 减少内存使用(编码更慢) -map ............. 打印额外信息图 -print_psnr ............ 打印平均 PSNR 失真 -print_ssim ............ 打印平均 SSIM 失真 -print_lsim ............ 打印局部相似性失真 -d <file.pgm> .......... 转储压缩输出(PGM 文件) -alpha_method .... 透明度压缩方法(0..1),默认=1 -alpha_filter . 对 alpha 平面的预测滤波, 可选:none, fast(默认)或 best -exact ................. 保留透明区域中的 RGB 值,默认=关 -blend_alpha ..... 混合颜色与背景色 背景色表示为 RGB 值,以 十六进制书写,例如 0xc0e0d0 表示 red=0xc0 green=0xe0 和 blue=0xd0 -noalpha ............... 丢弃任何透明度信息 -lossless .............. 无损编码图像,默认=关 -near_lossless ... 使用近无损图像 预处理(0..100=关),默认=100 -hint ......... 指定图像特征提示, 可选:photo, picture 或 graph

-metadata ..... 逗号分隔的元数据列表,如果存在则 从输入复制到输出。 有效值:all, none(默认), exif, icc, xmp

-short ................. 精简打印信息 -quiet ................. 不打印任何内容 -version ............... 打印版本号并退出 -noasm ................. 禁用所有汇编优化 -v ..................... 详细输出,例如打印编码/解码时间 -progress .............. 报告编码进度

实验性选项: -jpeg_like ............. 大致匹配预期的 JPEG 大小 -af .................... 自动调整滤波强度 -pre ............. 预处理滤波器

您可能想尝试的主要选项,进一步调整视觉质量,包括: -preset -sns -f -m

即:

  • ‘preset’ 将设置针对特定输入类型的默认编码配置。它应出现在选项列表的首位,以便后续选项可以在此预设之上生效。默认值为 ‘default’。
  • ‘sns’ 将逐步打开(从 0 到 100)一些额外的视觉优化(如:分割图强化)。此选项将不同地平衡比特分配。它尝试从图像的“简单”部分获取比特,并用于“困难”部分。通常,提高 sns 值(在固定 -q 值下)会导致文件更大,但质量更好。典型值约为 ‘75’。
  • ‘f’ 选项直接关联编解码器环路处理使用的滤波强度。值越高,高度压缩的区域看起来越平滑。这在针对非常小的文件时特别有用。典型值在 20-30 之间。注意,使用 -strong/-nostrong 选项将改变滤波类型。使用 “-f 0” 关闭滤波。
  • ‘m’ 控制编码速度与质量之间的权衡。默认值为 4。您可以尝试 -m 5 或 -m 6 以探索更多(耗时)的编码可能性。较低的值将导致更快的编码,但会牺牲质量。

解码工具:

在 examples/dwebp.c 中有一个解码示例,它读取 .webp 文件并将其解码为 PNG 图像文件(以及其他格式)。这仅用于演示 API 的使用。您可以通过以下方式验证 test.webp 文件解码后是否与 test_ref.ppm 完全相同:

cd examples ./dwebp test.webp -ppm -o test.ppm diff test.ppm test_ref.ppm

完整的选项列表可通过 -h 获得:

dwebp -h 用法:dwebp in_file [options] [-o out_file]

下载工具