Arşiv
EN

Yazı silindi, alternatif metin kaldı

Bu testte MuPDF ile yazıyı kaldırıp PDF'yi yeniden kaydetmek, alternatif metni de kaldırmadı.

Kısa sonuç

Resmi MuPDF 1.28.5 ile 12 çalıştırmada yazı normal metin çıkarımından kayboldu; alternatif değer üç dosya türünde kaldı. 1.28.2 DLL'sinde bir çağrının hedef alanını değiştirmek yapısal değeri boşalttı, içerik akışındakini değiştirmedi.

Sınır

Dört kontrollü laboratuvar PDF'si kullanıldı; gerçek kişilerin belgeleri incelenmedi. Kaynak satırı 2019'da da var. İlk keşif veya üretici tarafından doğrulanmış açık iddiası yok.

Belgeler

Belgeler dosyanın okuma sırasıyla geliyor. Her adımda önce not, yanında dayandığı belge var.

Belge 1, Yazı bulunmuyor, değer dosyada

On iki çıktı dosyası yeniden açıldı. Aynı yazı normal çıkarımda yokken alternatif metin taşıyan üç girdi türünde nesnelerden okunabiliyor.

  1. Normal çıkarımda yok
  2. Alternatif değer duruyor

Göstermediği. Bunlar dört kontrollü laboratuvar PDF'si. Başka üreticilerin bütün belgeleri hakkında bir ölçüm değil.

Korunmuş ham ölçüm kayıtlarıResmi mutool 1.28.5, 12 kayıt

Adım adım

  1. Belge 2, Görünen ve alternatif metin aynı

    Dört dosyada da aynı AAAA çiziliyor. Alternatif metin olan dosyalarda değer de AAAA; çelişen iki metinle bir gösteri hazırlanmadı.

    KaynakTest girdisinin mutool çizimicontrols/structure.pdf, sayfa 1

    CSINT'in ürettiği ve açıkça işaretlediği test PDF'sinin gerçek MuPDF çizimi. Ekran görüntüsü değil; yeniden boyutlandırılmadı.

  2. Belge 3, Redaksiyon yazıyı kaldırıyor

    Siyah kutu çizmekle yetinilmedi. Redact açıklaması uygulandı, dosya tamamen yeniden yazıldı ve bu görüntü kaydedilen dosyadan alındı.

    Göstermediği. Görüntünün temiz olması, dosyanın bütün nesnelerinin temiz olduğunu göstermiyor.

    KaynakKaydedilmiş çıktının mutool çizimiresults/20261020T102048Z/structure-1.pdf, sayfa 1

    CSINT'in test çıktısının gerçek MuPDF çizimi. Ekran görüntüsü değil; yeniden boyutlandırılmadı.

  3. Belge 4, Yeniden açılan PDF'de AAAA

    Değerler, MuPDF'den bağımsız olan pypdf ile kaydedilmiş dosyalardan okundu. Bellekteki eski belgeye bakılmadı.

    1. Yapı ağacındaki değer
    2. İçerik akışındaki değer

    KaynakKorunmuş ham ölçüm kayıtlarıstructure-1.pdf ve inline-1.pdf, bağımsız nesne okuması

  4. Belge 5, İki sürümün kanıtı ayrı

    Dosya ölçümü resmi 1.28.5 programından, native çağrı kaydı 1.28.2 DLL'sinden. Aynı sürüm gibi gösterilmiyor.

    Göstermediği. Resmi 1.28.5 programının makine kodu çalışma anında izlenmedi.

    KaynakKorunmuş ham ölçüm kayıtlarıupstream-manifest.json ve native structure-observe-1.json

  5. Belge 6, ActualText dalında Alt anahtarı

    Temizlenmiş alternatif metni yazan dal, çağrıya Alt alanını seçen 0x1c değerini veriyor. Bu DLL'de ActualText anahtarı 0x16.

    1. R8D'ye 0x1c
    2. Değeri yazan çağrı

    Göstermediği. Bu statik disassembly. Çağrının çalıştığına dair kanıt sonraki kayıtta.

    KaynakGhidra 12.1.4, gerçek uygulama penceresiMuPDF 1.28.2 DLL, RVA 0x11ec8e ile 0x11ecab

    CSINT'in gerçek Ghidra pencere yakalaması. İmleç yakalamada kapalı; yalnız kod alanı kırpıldı. Yazı yeniden çizilmedi.

  6. Belge 7, Çağrı çalışma anında da aynı anahtarı alıyor

    Aynı dönüş adresindeki tek çağrının anahtarı, yalnız testin çocuk sürecinde değiştirildi. İki girdi, iki kol ve üç tekrar toplam 12 kayıt.

    1. Gözlemde 0x1c
    2. Kontrolde 0x16

    Göstermediği. Bu bir düzeltme sürümü değil; diskteki DLL değiştirilmedi.

    KaynakKorunmuş ham ölçüm kayıtlarıresults/20261020T102417Z-native, update_setter mesajları

  7. Belge 8, Yapısal değer boşalıyor, pikseller aynı

    Değişiklik yalnızca ekrandaki görünümü değil, kaydedilen yapısal değeri etkiledi. Görüntülerin aynı olması bu farkı saklıyor.

    1. AAAA ve boş değer
    2. Aynı RGB özeti

    Göstermediği. İçerik akışındaki değer bu anahtar değişikliğiyle temizlenmedi. Tam bir yama değil.

    KaynakKorunmuş ham ölçüm kayıtlarıstructure-observe-1.pdf, structure-key-control-1.pdf ve RGB karşılaştırması

  8. Belge 9, Aynı satır 2019'da eklenmiş

    2026 sürümündeki ölçüm, hatanın 2026'da başladığını göstermiyor. Kaynak satırının daha eski olduğu ayrı kaydedildi.

    1. 2019 tarihli değişiklik
    2. Eklenen satır

    Göstermediği. Eski sürümler çalıştırılmadı ve ilk keşif durumu kesinleşmedi.

    KaynakKorunmuş ham ölçüm kayıtlarıprior-art/commit-2019.json, abcb3e6 değişikliği

Kayıt bilgileri

Arşiv numarası
CSINT-NEWS-2026-013. Arşivde aç
Yayımlandı
İncelenen olay
Belgelerin tarihi
Bütün belgelerin tarihi 20 Ekim 2026.
Görüntü işlemi ve haklar
CSINT'in kaydedilmiş ölçüm dosyalarının terminaldeki görünümü. İlk çalıştırmanın ekran kaydı değil. İmleç yakalama sırasında kapalı; kare kırpıldı, pikseller değiştirilmedi. 9 belgeden 6 tanesi için geçerli; farklı olan belgelerin notu kendi altında.
Vurgular
Sarı vurgular sonradan eklendi, özgün görüntü değişmedi.
Ayrıntılı anlatım ve kaynak dökümüYöntem, zaman çizelgesi ve tam metin. Bulgular yukarıdaki belgelerde.

İncelenen iddia

Görüntü ve normal metin çıkarımı temiz görünürken, kaldırılan içeriğin alternatif metni kaydedilen dosyada kalabilir mi?

Testin sınırları

  • Resmi 1.28.5 programı ile yapılan dosya ölçümleri, 1.28.2 DLL'sindeki native izlemeden ayrı.
  • Tek çağrının anahtarını değiştiren kontrol, tam bir düzeltme değil. İçerik akışındaki alternatif metni temizlemiyor.
  • Dört küçük laboratuvar dosyası, tek bilgisayar ve tam redaksiyon alanı ölçüldü. Bütün PDF üreticileri veya belge türleri hakkında sonuç çıkarılmadı.
  • Önceki bildirim taraması ilk keşfi kanıtlamıyor. Üreticiye bildirim yapılmadı ve üretici doğrulaması yok.

Sayfadaki yazı ile dosyadaki değer

PDF'deki ActualText alanı, içerik için alternatif bir metin verebilir. Bu deneyde görünen yazı da alternatif metin de AAAA. Birbirine aykırı iki metin hazırlayarak sonuç üretilmedi.

Dört dosyanın ilki alternatif metin taşımıyor. İkincisinde değer içerik akışında, üçüncüsünde yapı ağacında, dördüncüsünde iki yerde birden var. Hepsinin üzerine bunun gerçek bir vaka belgesi olmadığı yazıldı.

Gerçek redaksiyon ve yeniden açılan dosya

Resmi mutool 1.28.5, her dosya için üç ayrı süreçte çalıştırıldı. Yazının tamamını kaplayan Redact açıklaması oluşturuldu ve applyRedactions(true, 2, 1, 0) ile uygulandı. Sonuç eski dosyanın sonuna eklenmedi; garbage=4 ve sıkıştırma ile yeni dosyaya yazıldı.

Kaydedilen dosyalar yeniden açıldı. MuPDF ve ayrı bir kütüphane olan pypdf normal metin çıkarımında AAAA bulamadı. pypdf ile içerik operatörleri ve yapı sözlükleri okunduğunda alternatif metin değerleri görüldü. Yalnızca siyah bir kutunun altına bakılmadı; kalıcı dosyanın nesneleri kontrol edildi.

Dört girdinin çizilmiş pikselleri kendi aralarında aynıydı. Dört redaksiyon çıktısının pikselleri de aynıydı. Bu eşitlik dosyada başka yerde veri kalmadığını göstermiyor.

Temizlenen değer hangi alana yazılıyor?

Native inceleme PyMuPDF ile gelen MuPDF 1.28.2 DLL'sinde yapıldı. Kaynak kod, callback düzeni ve Ghidra disassembly'si birlikte okundu. ActualText değiştiğinde çalışan dal, yazma fonksiyonuna Alt anahtarını veriyor.

Bu DLL'de Alt değeri 0x1c, ActualText değeri 0x16. RVA 0x11ec9e, R8D'ye 0x1c yüklüyor; 0x11ecab adresindeki çağrı 0x11ecb0'a dönüyor. Frida kayıtlarında bu çağrıya boşaltılmış metnin Alt anahtarıyla verildiği görüldü.

Kontrol kolunda yalnız bu dönüş adresindeki çağrının anahtarı 0x16 yapıldı. Yapı ağacındaki ActualText boşaldı ve görüntü aynı kaldı. Diskteki DLL değiştirilmedi; müdahale yalnız bu iş için açılan çocuk sürecin çağrı argümanına yapıldı.

İçerik akışı aynı yoldan geçmiyor

Yapı ağacındaki değer ile içerik akışına doğrudan yazılan değer aynı temizleme yolu değil. İkinci durumda izlenen yapısal yazma çağrısına girilmedi ve anahtar değişikliği sonucu değiştirmedi.

Bu yüzden tek anahtar müdahalesi tam bir yama olarak sunulmuyor. Adlandırılmış özellikler, iç içe formlar, kısmi redaksiyonlar ve başka nesne türleri bu karşılaştırmanın kapsamı dışında.

Satırın geçmişi 2019'a gidiyor

19 Haziran 2019 tarihli değişiklik, aynı metni yapı ağacında da kaldırmayı amaçladığını söylüyor. ActualText için Alt anahtarını kullanan satır bu eklemede zaten var. 27 Kasım 2020 değişikliği boş veya silinmiş etiketler için bir koruma ekliyor, anahtarı değiştirmiyor.

19 Ekim 2026 tarihli b531369 kaynak revizyonunda da aynı yazım görüldü. Bu revizyon çalıştırılmadı; yalnızca kaynak kodu okundu. Eski sürümlerin ikilileri denenmediği için hangi yayımlanmış sürümlerin etkilendiği bu tarihlerden çıkarılmadı.

Sınırlı açık kaynak taramasında aynı native yazım bulgusunun önceki bir bildirimine rastlanmadı. Bu, ilk keşif kanıtı değil. Bugzilla 703179 sayfasına erişilemedi; özel veya farklı adla yapılmış bildirimler dışlanamıyor.

Kayıtlar nasıl hazırlandı?

Ölçüm ve doğrulama betikleri Codex ile bu bilgisayarda çalıştırıldı. Sayfadaki terminal kareleri, korunmuş ham kayıtların daha sonra terminalde okunmasını gösteriyor; ilk çalıştırmanın ekran kaydı değiller. Ghidra karesi gerçek uygulama penceresinden, PDF görselleri gerçek mutool çıktısından alındı.

Fare imleci yakalama sırasında kapatıldı. Kareler tam piksel sınırlarından kırpılıp kayıpsız kaydedildi; yazı yeniden çizilmedi ve piksel rötuşu yapılmadı. Sarı vurgular ayrı bir katman. Orijinal yakalamalar, özel çalışma dizinindeki ham kayıtlar ve dosya hash'leri korundu.

Bağlantılı kayıt dosyası, ham ölçümlerin paylaşım için ayrılmış görünümünü taşıyor. Yerel mutlak yollar, süreç kimlikleri ve modül yükleme adresleri çıkarıldı; ölçülen değerler, relatif çağrı adresleri ve orijinal kayıt hash'leri duruyor.

Kaynaklar