OpenCL™规范 5.3.3.3. OpenGL纹理和渲染缓冲区共享的图像格式

5.3.3.3. Image Formats for OpenGL Texture and Renderbuffer Sharing
5.3.3.3. OpenGL纹理和渲染缓冲区共享的图像格式

When the cl_khr_gl_sharing extension is supported, image objects sharing storage with OpenGL texture and renderbuffer objects can be created. The OpenGL Internal Formats and Corresponding OpenCL Internal Formats table describes the supported OpenGL image formats. If an OpenGL texture or renderbuffer object with an internal format from the table is successfully created by OpenGL, then there is guaranteed to be a mapping to one of the corresponding OpenCL image format(s) in the table. Texture and renderbuffer objects created with other OpenGL internal formats may (but are not guaranteed to) have a mapping to an OpenCL image format. If such mappings exist, they are guaranteed to preserve all color components, data types, and at least the number of bits/component actually allocated by OpenGL for that format.

​当支持cl_khr_gl_sharing扩展时,可以创建与OpenGL纹理和renderbuffer对象共享存储的图像对象。OpenGL内部格式和相应的OpenCL内部格式表描述了支持的OpenGL图像格式。如果OpenGL成功创建了表中具有内部格式的OpenGL纹理或renderbuffer对象,则可以保证映射到表中相应的OpenCL图像格式之一。使用其他OpenGL内部格式创建的纹理和渲染缓冲区对象可能(但不能保证)具有到OpenCL图像格式的映射。如果存在这样的映射,则保证它们保留所有颜色分量、数据类型,以及至少OpenGL为该格式实际分配的位数/分量。

Table 34. OpenGL Internal Formats and Corresponding OpenCL Internal Formats

表34 OpenGL内部格式和相应的OpenCL内部格式

OpenGL internal format

OpenGL内部格式

OpenCL Image Format (Channel Order, Channel Data Type)

OpenCL图像格式(通道顺序、通道数据类型)

GL_RGBA8

CL_RGBACL_UNORM_INT8 or
CL_BGRACL_UNORM_INT8

GL_SRGB8_ALPHA8

CL_sRGBACL_UNORM_INT8

GL_RGBAGL_UNSIGNED_INT_8_8_8_8_REV

CL_RGBACL_UNORM_INT8

GL_BGRAGL_UNSIGNED_INT_8_8_8_8_REV

CL_BGRACL_UNORM_INT8

GL_RGBA8IGL_RGBA8I_EXT

CL_RGBACL_SIGNED_INT8

GL_RGBA16IGL_RGBA16I_EXT

CL_RGBACL_SIGNED_INT16

GL_RGBA32IGL_RGBA32I_EXT

CL_RGBACL_SIGNED_INT32

GL_RGBA8UIGL_RGBA8UI_EXT

CL_RGBACL_UNSIGNED_INT8

GL_RGBA16UIGL_RGBA16UI_EXT

CL_RGBACL_UNSIGNED_INT16

GL_RGBA32UIGL_RGBA32UI_EXT

CL_RGBACL_UNSIGNED_INT32

GL_RGBA8_SNORM

CL_RGBACL_SNORM_INT8

GL_RGBA16

CL_RGBACL_UNORM_INT16

GL_RGBA16_SNORM

CL_RGBACL_SNORM_INT16

GL_RGBA16FGL_RGBA16F_ARB

CL_RGBACL_HALF_FLOAT

GL_RGBA32FGL_RGBA32F_ARB

CL_RGBACL_FLOAT

GL_R8

CL_RCL_UNORM_INT8

GL_R8_SNORM

CL_RCL_SNORM_INT8

GL_R16

CL_RCL_UNORM_INT16

GL_R16_SNORM

CL_RCL_SNORM_INT16

GL_R16F

CL_RCL_HALF_FLOAT

GL_R32F

CL_RCL_FLOAT

GL_R8I

CL_RCL_SIGNED_INT8

GL_R16I

CL_RCL_SIGNED_INT16

GL_R32I

CL_RCL_SIGNED_INT32

GL_R8UI

CL_RCL_UNSIGNED_INT8

GL_R16UI

CL_RCL_UNSIGNED_INT16

GL_R32UI

CL_RCL_UNSIGNED_INT32

GL_RG8

CL_RGCL_UNORM_INT8

GL_RG8_SNORM

CL_RGCL_SNORM_INT8

GL_RG16

CL_RGCL_UNORM_INT16

GL_RG16_SNORM

CL_RGCL_SNORM_INT16

GL_RG16F

CL_RGCL_HALF_FLOAT

GL_RG32F

CL_RGCL_FLOAT

GL_RG8I

CL_RGCL_SIGNED_INT8

GL_RG16I

CL_RGCL_SIGNED_INT16

GL_RG32I

CL_RGCL_SIGNED_INT32

GL_RG8UI

CL_RGCL_UNSIGNED_INT8

GL_RG16UI

CL_RGCL_UNSIGNED_INT16

GL_RG32UI

CL_RGCL_UNSIGNED_INT32

GL_DEPTH_COMPONENT32F

CL_DEPTHCL_FLOAT

GL_DEPTH_COMPONENT16

CL_DEPTHCL_UNORM_INT16

GL_DEPTH24_STENCIL8

CL_DEPTH_STENCILCL_UNORM_INT24

GL_DEPTH32F_STENCIL8

CL_DEPTH_STENCILCL_FLOAT

内容概要:本文详细记录了对一个Android ARM64静态ELF文件中字符串加密机制的逆向分析过程。该ELF文件的所有字符串均被加密,无法通过常规strings命令或IDA直接识别。作者通过分析发现,加密字符串存储在.rodata段,其解密所需信息(包括密文地址、长度16位密钥)保存在.data.rel.ro段的40字节描述符中。核心解密函数sub_10F408采用自反的双pass流密码算法,结合固定密钥KEY_TERM(由.data段24字节数据计算得出),实现字节级非线性、位置与长度相关的加密。文章还复现了完整的Python解密脚本,并揭示了该保护机制的本质为代码混淆而非强加密,最终成功批量解密全部956条字符串,暴露程序真实行为,如shell命令模板、设备标识篡改、网络重置等操作。此外,文中还提及未启用的自定义壳框架及其反dump设计。; 适合人群:具备逆向工程基础的安全研究人员、二进制分析人员及对ELF保护技术感兴趣的开发者。; 使用场景及目标:①学习ELF二进制中字符串加密的典型实现方式与逆向突破口;②掌握从结构识别、函数追踪到算法还原的完整逆向流程;③理解“绑定二进制”的完整性校验设计及其局限性;④实践编写IDAPython脚本自动化提取与解密敏感数据。; 阅读建议:此资源以实战案例驱动,不仅展示技术细节,更强调逆向思维与验证方法,建议读者结合IDA调试环境,逐步跟随文中步骤进行动态分析与算法验证,深入理解每一步的推理依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值