Menambahkan satu file ke ujung yang lain

2

Saya tahu dari panduan seperti ini bahwa cukup mudah untuk menambahkan arsip RAR ke akhir JPG. Yang ingin saya ketahui adalah apakah hanya file JPG yang dapat menangani data tambahan di akhir, dan apakah saya dapat menambahkan sembarang biner sembarang ke akhir JPG. Saya tidak peduli apakah file yang saya tambahkan hingga akhir akan dikenali oleh programnya, saya hanya peduli bahwa JPG tampak persis sama dengan pemirsa gambar.

Untuk memberikan sedikit informasi lebih spesifik tentang kasus penggunaan saya, saya mencoba menerapkan mekanisme cadangan di webapp yang berfokus pada perangkat seluler. Saya ingin ini berfungsi untuk iOS, jadi satu-satunya jalan yang tersedia adalah menggunakan data yang disimpan dalam file gambar. Ini agak kikuk, tapi humor saya dalam memahami bahwa itu masuk akal dalam use case ini. Pada tautan di atas ditunjukkan bahwa file RAR yang ditambahkan ke JPG masih dapat dibuka, seperti yang saya bayangkan bahwa RAR tidak perlu berada pada offset nol dalam file yang diberikan, dan aplikasi arsip akan mencari header RAR . Saya ingin menerapkan sesuatu yang serupa untuk gumpalan biner sewenang-wenang, yang diprogram dalam Javascript.

TreyK
sumber

Jawaban:

1

apakah itu hanya file JPG yang dapat menangani data ekstra di akhir

Setiap format file yang menyatakan ukuran kontennya dapat ditambahkan dengan data acak dan masih diuraikan dengan benar oleh spesifikasi aplikasi yang sesuai. File JPG terdiri dari beberapa segmen, dengan segmen panjang dinamis menyatakan panjangnya di awal. Jadi, setiap data acak yang ditambahkan pada akhirnya akan berfungsi, karena aplikasi yang membacanya tidak seharusnya mengakses data yang ditambahkan itu. Hal yang sama dengan PNG (setiap potongan menyatakan panjangnya di awal). Sayangnya ini tidak akan berfungsi pada MP3.

Namun, ini hanya akan berfungsi pada aplikasi yang sesuai . Beberapa aplikasi mungkin mengambil jalan pintas untuk mengurangi memori atau mempercepat pembacaannya, yang dapat membuat gambar terdistorsi. Aplikasi itu sendiri bisa gagal memuat file-file besar karena kendala memori / framework / perangkat mereka sendiri.

Martheen Cahya Paulo
sumber