社区 发现 其它网络技术 APNG解析:最近逛论坛看见apng图片...
APNG解析:最近逛论坛看见apng图片的相关话题 结合网友给出的规避检测方案 查找了下apng相关的资料 有了一起粗浅的了解……
本质上apng是基于png的位图动画.由多张png图片组成,第一帧是标准的png单副图像 .用二进制数据查看apng,其文件头是固定
的,这跟其它文件格式一样,都有特有的标识.文件头 8字节:137 80 78 71 13 10 26 10 (十进制) 89504E470D0A1A0A(16进制 hex),一个标准的apng结构应包含 标志/数据块(Chunk).../结束块 .它的数据块组成有很两种 ,一种是标准的 可以称之为关键数据块 一种是辅助集 这个以后再探讨
不管什么类型的数据块 它都有4部分组成
length 块数据长度 4字节
type code (数据块类型) 4字节 由asc组成
data 数据 长度非固定 等于length ,根据type code 类型储存的数据
crc 4 冗余检测 4字节 只是用来校验数据的
如下图 截了apng文件前面一部分
可以清晰看到其数据结构 前8字节是文件头标志. 后面有两块数据块.
0,0,0,13 代表第一块数据块长度为13
DATA(0,0,3,202,0,0,2,88,8,3,0,0,0) 数数刚好是13字节.
TYPE为73,72,68,82,转成asc码为 IHDR
crc 141,104,239,250 校验
基于以上信息我们只需遍历出 ACTL(控制动画)和FCTL(帧信息)数据块.将其actl数据块跟第一帧FCTL的数据块调换一个位置即可规避检测(原因是有网友说亚马逊是检测actl,就是第38-41位的字节信息).其主体不受影响 .
等晚点写个程序
//2021.4.15 更新
写了个程序 正如楼下老哥所说 确实没用了.
经过分析 现在流程是先上传在图库 通过这个接口无法规避亚马逊的检测. 比对其他网友发来的现有a+动图的产品样例 发现接口是不一样的.所有有两种可能 1.现有能显示apng的动图是以前上传的 2.以前的接口亚马逊只是屏蔽但没有关闭 做ERP服务或大卖们保留有以前的接口 所以他们能通过以前的接口进行上传.
14 个回复
披个马甲挣口饭吃 - 深陷某个小疙瘩的菜鸡运营
赞同来自: standpan