社區(qū) 發(fā)現(xiàn) 其它網(wǎng)絡(luò)技術(shù) APNG解析:最近逛論壇看見(jiàn)apng圖片...
APNG解析:最近逛論壇看見(jiàn)apng圖片的相關(guān)話題 結(jié)合網(wǎng)友給出的規(guī)避檢測(cè)方案 查找了下apng相關(guān)的資料 有了一起粗淺的了解……
?
本質(zhì)上apng是基于png的位圖動(dòng)畫(huà).由多張png圖片組成,第一幀是標(biāo)準(zhǔn)的png單副圖像 .用二進(jìn)制數(shù)據(jù)查看apng,其文件頭是固定
?
的,這跟其它文件格式一樣,都有特有的標(biāo)識(shí).文件頭 8字節(jié):137 80 78 71 13 10 26 10 (十進(jìn)制)?89504E470D0A1A0A(16進(jìn)制 hex),一個(gè)標(biāo)準(zhǔn)的apng結(jié)構(gòu)應(yīng)包含 標(biāo)志/數(shù)據(jù)塊(Chunk).../結(jié)束塊? .它的數(shù)據(jù)塊組成有很兩種 ,一種是標(biāo)準(zhǔn)的 可以稱(chēng)之為關(guān)鍵數(shù)據(jù)塊 一種是輔助集 這個(gè)以后再探討
?
?
不管什么類(lèi)型的數(shù)據(jù)塊 它都有4部分組成?
length? 塊數(shù)據(jù)長(zhǎng)度? 4字節(jié)
?
type code? (數(shù)據(jù)塊類(lèi)型)?4字節(jié) 由asc組成
data? 數(shù)據(jù)? ? ?長(zhǎng)度非固定? 等于length?,根據(jù)type code 類(lèi)型儲(chǔ)存的數(shù)據(jù)
crc 4 冗余檢測(cè) 4字節(jié)?只是用來(lái)校驗(yàn)數(shù)據(jù)的??
如下圖 截了apng文件前面一部分
可以清晰看到其數(shù)據(jù)結(jié)構(gòu)? 前8字節(jié)是文件頭標(biāo)志. 后面有兩塊數(shù)據(jù)塊.?
0,0,0,13 代表第一塊數(shù)據(jù)塊長(zhǎng)度為13?
DATA(0,0,3,202,0,0,2,88,8,3,0,0,0) 數(shù)數(shù)剛好是13字節(jié).
TYPE為73,72,68,82,轉(zhuǎn)成asc碼為?IHDR
crc 141,104,239,250? 校驗(yàn)
基于以上信息我們只需遍歷出?ACTL(控制動(dòng)畫(huà))和FCTL(幀信息)數(shù)據(jù)塊.將其actl數(shù)據(jù)塊跟第一幀F(xiàn)CTL的數(shù)據(jù)塊調(diào)換一個(gè)位置即可規(guī)避檢測(cè)(原因是有網(wǎng)友說(shuō)亞馬遜是檢測(cè)actl,就是第38-41位的字節(jié)信息).其主體不受影響? .
等晚點(diǎn)寫(xiě)個(gè)程序
?
?
//2021.4.15 更新
?
寫(xiě)了個(gè)程序? 正如樓下老哥所說(shuō) 確實(shí)沒(méi)用了.
?
經(jīng)過(guò)分析? 現(xiàn)在流程是先上傳在圖庫(kù)? 通過(guò)這個(gè)接口無(wú)法規(guī)避亞馬遜的檢測(cè). 比對(duì)其他網(wǎng)友發(fā)來(lái)的現(xiàn)有a+動(dòng)圖的產(chǎn)品樣例 發(fā)現(xiàn)接口是不一樣的.所有有兩種可能 1.現(xiàn)有能顯示apng的動(dòng)圖是以前上傳的? 2.以前的接口亞馬遜只是屏蔽但沒(méi)有關(guān)閉 做ERP服務(wù)或大賣(mài)們保留有以前的接口 所以他們能通過(guò)以前的接口進(jìn)行上傳.
?
??
?
?
14 個(gè)回復(fù)
披個(gè)馬甲掙口飯吃 - 深陷某個(gè)小疙瘩的菜雞運(yùn)營(yíng)
贊同來(lái)自: standpan