Konu: Çizgiromanlarda Teknik Temalar Üzerine

  1. #1
    Ç. R. Düzenleme
    Üyelik Tarihi
    Nov 2015
    Mesajlar
    346

    Seviye: 37 
    Tecrübe: 1,079,716
    Sonraki Seviye: 1,209,937

    Beğenmiş
    1,742
    Beğenilmiş
    1,580
    Adı Geçen
    0 Konu
    Etiketlendiği
    0 Konu




    JP[E]G Üzerine

    N.B.: Bu sayfadaki yazılar t e k n i k detay içerir.

    Ayrıca bu yazı, en eski dostumuz CF' dan Sonar' a ve forumumuzu paylaşımlarıyla âdeta bir {YL|D} tezi kütüphanesine çeviren Melange' ye ve tekniğe aşina arkadaşlara ithaf edilmiştir.


    ;................................................. .................................................. ..........................................

    I-I - Kuramsal Analiz:

    CDisplay ya da Xml Editor ile görüntülebilen bazı JP[E]Gs, doğrudan doğruya görüntülenemez, şöyle ki:





    Kod:
    Microsoft(R) Windows DOS
    (C)Telif Hakkı Microsoft Corp 1990-2001.
    
    C:\WINDOWS\SYSTEM32>REN \*.CBR *.RAR
    
    C:\WINDOWS\SYSTEM32>\PROGRA~1\WINRAR\RAR x \*.RAR *.JPG \
    
    RAR 3.60 beta 3    Telif Hakkı (c) 1993-2006 Alexander Roshal    8 May 2006
    Shareware Sürüm           Yardım için RAR -? yazın
    
    
    \Il Grande Blek.RAR içerisinden çıkartılıyor
    
    Oluşturuluyor  \Il Grande Blek                                           Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N101.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N103.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N105.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N107.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N109.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N111.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N113.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N115.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N117.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N119.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N121.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N123.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N125.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N127.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N129.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N131.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N133.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N135.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N137.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N139.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N141.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N143.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N145.jpg                   Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N49.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N51.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N53.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N55.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N57.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N59.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N61.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N63.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N65.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N67.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N69.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N71.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N73.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N75.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N77.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N79.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N81.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N83.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N85.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N87.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N89.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N91.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N93.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N95.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N97.jpg                    Tamam
    Çıkartılıyor   \Il Grande Blek\Il Grande Blek N99.jpg                    Tamam
    Tümü Tamam
    
    C:\WINDOWS\SYSTEM32>



    " . " olarak görülmelerinin nedeni_?

    Boyutlar ' Genişlik x Yükseklik ': 0 x 0

    Nokta boyutsuzdur ya, ondandır herhâlde.


    ;................................................. .................................................. ..........................................

    mspaint.exe:

    C:\Il Grande Blek\Il Grande Blek N99.jpg

    Paint bu dosyayı okuyamıyor.
    Bu, geçerli bir bit eşlem dosyası değil veya bu biçim artık desteklenmiyor.

    Microsoft Office Picture Manager:

    Değişen bir şey yok.






    *.RAR' daki *.JPGs, direkt görüntülenememekle birlikte, " Xml editör misali " *.CBR uzantılı iken pekâlâ görüntülenebildiğine göre, *.JPGs boyutsuz ya da b o z u k olamaz, etc. Öyleyse ne_?

    GUI üzerinden *.JP[E]G dosyadaki Genişlik x Yükseklik üzerine bir şey elde edilemedi diye bir şey yapamayacak mıyız_? Yok. Bir şeyi tutmaya karar verdiğimizde, onu kopartmadan da asla bırakmayız.

    Il Grande Blek.rar:


    [Yeni üye olduysanız üye onayınızı bekleyiniz ya da üye olmak için TIKLAYINIZ.]

  2. #2
    Ç. R. Düzenleme
    Üyelik Tarihi
    Nov 2015
    Mesajlar
    346

    Seviye: 37 
    Tecrübe: 1,079,716
    Sonraki Seviye: 1,209,937

    Beğenmiş
    1,742
    Beğenilmiş
    1,580
    Adı Geçen
    0 Konu
    Etiketlendiği
    0 Konu
    _ Prehistorik ' Nostaljik ' Analiz:





    MS-DOS dosya formatı 8.3 olduğundan uzun dosya adları bu formata uygun olacak şekilde kısaltılır, ki direkt tespiti müşküldür. Her hâlükârda bu bir sorun da değildir, zira MS-DOS, tek bir komutla, kısaltmaların ne olduğunu sunar, şöyle ki:

    Kod:
    Microsoft(R) Windows DOS
    (C)Telif Hakkı Microsoft Corp 1990-2001.
    
    C:\WINDOWS\SYSTEM32>DIR \ILGRAN~1 /X
     C sürücüsündeki birimin etiketi yok.
     Birim Seri Numarası: 40DA-CC8A
    
     C:\ILGRAN~1 dizini
    
    02/01/2024  00:00    <DIR>                       .
    02/01/2024  00:00    <DIR>                       ..
    01/30/2024  17:00            24,408 ILGRAN~1.JPG Il Grande Blek N101.jpg
    01/30/2024  17:00            37,705 ILGRAN~2.JPG Il Grande Blek N103.jpg
    01/30/2024  17:00            36,704 ILGRAN~3.JPG Il Grande Blek N105.jpg
    01/30/2024  17:00            36,345 ILGRAN~4.JPG Il Grande Blek N107.jpg
    01/30/2024  17:00            35,974 IL6A1E~1.JPG Il Grande Blek N109.jpg
    01/30/2024  17:00            42,924 IL6AF3~1.JPG Il Grande Blek N111.jpg
    01/30/2024  17:00            35,611 IL6204~1.JPG Il Grande Blek N113.jpg
    01/30/2024  17:00            83,469 IL6A04~1.JPG Il Grande Blek N115.jpg
    01/30/2024  17:00            39,681 IL6214~1.JPG Il Grande Blek N117.jpg
    01/30/2024  17:00            35,785 IL6A14~1.JPG Il Grande Blek N119.jpg
    01/30/2024  17:00            42,340 IL6AF1~1.JPG Il Grande Blek N121.jpg
    01/30/2024  17:00            43,797 IL6202~1.JPG Il Grande Blek N123.jpg
    01/30/2024  17:00            35,713 IL6A02~1.JPG Il Grande Blek N125.jpg
    01/30/2024  17:00            44,209 IL6212~1.JPG Il Grande Blek N127.jpg
    01/30/2024  17:00            36,844 IL6A12~1.JPG Il Grande Blek N129.jpg
    01/30/2024  17:00            35,028 IL6AFF~1.JPG Il Grande Blek N131.jpg
    01/30/2024  17:00            38,250 IL6200~1.JPG Il Grande Blek N133.jpg
    01/30/2024  17:00            37,444 IL6A00~1.JPG Il Grande Blek N135.jpg
    01/30/2024  17:00            37,810 IL6210~1.JPG Il Grande Blek N137.jpg
    01/30/2024  17:00            37,367 IL6A10~1.JPG Il Grande Blek N139.jpg
    01/30/2024  17:00            36,781 IL6AF5~1.JPG Il Grande Blek N141.jpg
    01/30/2024  17:00            38,294 IL6206~1.JPG Il Grande Blek N143.jpg
    01/30/2024  17:00            39,108 IL6A06~1.JPG Il Grande Blek N145.jpg
    01/30/2024  17:00            41,742 IL4A6B~1.JPG Il Grande Blek N49.jpg
    01/30/2024  17:00            39,731 IL2E6B~1.JPG Il Grande Blek N51.jpg
    01/30/2024  17:00            49,726 IL2E63~1.JPG Il Grande Blek N53.jpg
    01/30/2024  17:00            39,481 IL3E6B~1.JPG Il Grande Blek N55.jpg
    01/30/2024  17:00            46,550 IL3E63~1.JPG Il Grande Blek N57.jpg
    01/30/2024  17:00            32,686 IL4E6B~1.JPG Il Grande Blek N59.jpg
    01/30/2024  17:00            34,181 IL227B~1.JPG Il Grande Blek N61.jpg
    01/30/2024  17:00            38,731 IL2273~1.JPG Il Grande Blek N63.jpg
    01/30/2024  17:00            34,464 IL327B~1.JPG Il Grande Blek N65.jpg
    01/30/2024  17:00            38,006 IL3273~1.JPG Il Grande Blek N67.jpg
    01/30/2024  17:00            36,594 IL427B~1.JPG Il Grande Blek N69.jpg
    01/30/2024  17:00            32,702 IL267B~1.JPG Il Grande Blek N71.jpg
    01/30/2024  17:00            33,725 IL2673~1.JPG Il Grande Blek N73.jpg
    01/30/2024  17:00            32,243 IL367B~1.JPG Il Grande Blek N75.jpg
    01/30/2024  17:00            34,998 IL3673~1.JPG Il Grande Blek N77.jpg
    01/30/2024  17:00            32,143 IL467B~1.JPG Il Grande Blek N79.jpg
    01/30/2024  17:00            37,009 IL2A7B~1.JPG Il Grande Blek N81.jpg
    01/30/2024  17:00            33,310 IL2A73~1.JPG Il Grande Blek N83.jpg
    01/30/2024  17:00            36,109 IL3A7B~1.JPG Il Grande Blek N85.jpg
    01/30/2024  17:00            41,377 IL3A73~1.JPG Il Grande Blek N87.jpg
    01/30/2024  17:00            33,191 IL4A7B~1.JPG Il Grande Blek N89.jpg
    01/30/2024  17:00            36,223 IL2E7B~1.JPG Il Grande Blek N91.jpg
    01/30/2024  17:00            39,826 IL2E73~1.JPG Il Grande Blek N93.jpg
    01/30/2024  17:00            37,809 IL3E7B~1.JPG Il Grande Blek N95.jpg
    01/30/2024  17:00            36,805 IL3E73~1.JPG Il Grande Blek N97.jpg
    01/30/2024  17:00           306,427 IL4E7B~1.JPG Il Grande Blek N99.jpg
                  49 Dosya        2,147,380 bayt
                   2 Dizin   12,847,648,768 bayt boş
    
    C:\WINDOWS\SYSTEM32>




    Meselâ, Il Grande Blek N99 -> IL4E7B~1.JPG şeklinde kısaltılmaktadır.

    Büyük harf_? MS-DOS, —aslen farksız olsa da— öncelikle büyük harfe çevirerek adlandırır ya da komutları işler, &c.

    IL ne_? Belli ki, Il Grande Blek N99 için kısaltma. Ya " 4E7B "_? *.JPG ' ya da bir başka uzantılı ' dosyanın hexadecimal checksum değeri olduğu ileri sürülse de, aslen dokümantasyonlanmamıştır ' undocumented hash '.

    Akabinde de 8.3 formatına uygun olacak şekilde bir tilda " ~ " ve [1, 2, 3,...]. Uzantının da ilk üç harfi alınır, &c.


    ;................................................. .................................................. ..........................................




    x86 Sembolik Makina Dili:


    Kod:
    	TITLE	JPEGSIZE.asm
    	.386P
    
    INCLUDELIB	MSVCRT
    INCLUDELIB	KERNEL32
    
    if @Version gt 510
    .model FLAT
    else
    _TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
    _TEXT	ENDS
    _DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
    _DATA	ENDS
    CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
    CONST	ENDS
    _BSS	SEGMENT DWORD USE32 PUBLIC 'BSS'
    _BSS	ENDS
    _TLS	SEGMENT DWORD USE32 PUBLIC 'TLS'
    _TLS	ENDS
    FLAT	GROUP _DATA, CONST, _BSS
    	ASSUME	CS: FLAT, DS: FLAT, SS: FLAT
    endif
    PUBLIC	_main
    EXTRN	__imp__perror:NEAR
    EXTRN	__imp___iob:BYTE
    EXTRN	__imp__fclose:NEAR
    EXTRN	__imp__fopen:NEAR
    EXTRN	__imp__fprintf:NEAR
    EXTRN	__imp__printf:NEAR
    _DATA	SEGMENT
    LC2	DB	0aH, 'Usage: jpegsize[.exe] filename.jp[e]g', 0aH, 00H
    LC3	DB	'rb', 00H
    	ORG $+1
    LC4	DB	0aH, 'Attention!', 00H
    LC5	DB	0aH, 'J(width: %u, height: %u)', 0aH, 00H
    _DATA	ENDS
    _TEXT	SEGMENT
    
    _main	PROC NEAR
    	push	ebp
    	mov	ebp, esp
    	sub	esp, 40
    	and	esp, -16
    
    	cmp	DWORD PTR [ebp+8], 2	 ; argc,
    	je	L41
    	mov	DWORD PTR [esp+4], OFFSET FLAT:LC2
    	mov	eax, DWORD PTR __imp___iob
    	add	eax, 64	                 ; tmp71,
    	mov	DWORD PTR [esp], eax	 ;, tmp71
    	call	DWORD PTR __imp__fprintf
    	mov	DWORD PTR [ebp-16], 1	 ; <result>,
    	jmp	L40
    L41:
    	mov	DWORD PTR [esp+4], OFFSET FLAT:LC3
    	mov	eax, DWORD PTR [ebp+12]	 ; tmp73, argv
    	add	eax, 4	                 ; tmp73,
    	mov	eax, DWORD PTR [eax]	 ; tmp74,
    	mov	DWORD PTR [esp], eax	 ;, tmp74
    	call	DWORD PTR __imp__fopen
    	mov	DWORD PTR [ebp-4], eax	 ; fp, tmp75
    	cmp	DWORD PTR [ebp-4], 0	 ; fp,
    	jne	L42
    	mov	DWORD PTR [esp], OFFSET FLAT:LC4
    	call	DWORD PTR __imp__perror
    	mov	DWORD PTR [ebp-16], 1	 ; <result>,
    	jmp	L40
    L42:
    	lea	eax, [ebp-12]	         ; tmp77,
    	mov	DWORD PTR [esp+8], eax	 ;, tmp77
    	lea	eax, [ebp-8]	         ; tmp78,
    	mov	DWORD PTR [esp+4], eax	 ;, tmp78
    	mov	eax, DWORD PTR [ebp-4]	 ; fp, fp
    	mov	DWORD PTR [esp], eax	 ;, fp
    	call	_j
    	test	eax, eax	         ; tmp80
    	jne	L43
    	mov	DWORD PTR [esp], OFFSET FLAT:LC4
    	call	DWORD PTR __imp__perror
    	mov	DWORD PTR [ebp-16], 1	 ; <result>,
    	jmp	L40
    L43:
    	mov	eax, DWORD PTR [ebp-12]	 ; h, h
    	mov	DWORD PTR [esp+8], eax	 ;, h
    	mov	eax, DWORD PTR [ebp-8]	 ; w, w
    	mov	DWORD PTR [esp+4], eax	 ;, w
    	mov	DWORD PTR [esp], OFFSET FLAT:LC5
    	call	DWORD PTR __imp__printf
    	mov	eax, DWORD PTR [ebp-4]	 ; fp, fp
    	mov	DWORD PTR [esp], eax	 ;, fp
    	call	DWORD PTR __imp__fclose
    	mov	DWORD PTR [ebp-16], 0	 ; <result>,
    L40:
    	mov	eax, DWORD PTR [ebp-16]	 ; <result>, <result>
    	leave
    	ret
    _main	ENDP
    _TEXT	ENDS
    EXTRN	__imp___errno:NEAR
    EXTRN	__imp__fread:NEAR
    EXTRN	__imp__fseek:NEAR
    EXTRN	__imp___assert:NEAR
    _DATA	SEGMENT
    	ORG $+1
    LC0	DB	'JPEGSIZE.C', 00H
    	ORG $+1
    LC1	DB	'fp && w && h', 00H
    _DATA	ENDS
    _TEXT	SEGMENT
    
    _j	PROC NEAR
    	push	ebp
    	mov	ebp, esp
    	sub	esp, 40
    	cmp	DWORD PTR [ebp+8], 0	 ; fp,
    	je	L4
    	cmp	DWORD PTR [ebp+12], 0	 ; w,
    	je	L4
    	cmp	DWORD PTR [ebp+16], 0	 ; h,
    	jne	L3
    L4:
    	mov	DWORD PTR [esp+8], 10
    	mov	DWORD PTR [esp+4], OFFSET FLAT:LC0
    	mov	DWORD PTR [esp], OFFSET FLAT:LC1
    	call	DWORD PTR __imp___assert
    L3:
    	mov	eax, DWORD PTR [ebp+8]	 ; fp, fp
    	mov	DWORD PTR [esp+12], eax	 ;, fp
    	mov	DWORD PTR [esp+8], 1
    	mov	DWORD PTR [esp+4], 2
    	lea	eax, [ebp-8]	         ; tmp60,
    	mov	DWORD PTR [esp], eax	 ;, tmp60
    	call	DWORD PTR __imp__fread
    	cmp	eax, 1	                 ; tmp61,
    	je	L5
    	mov	DWORD PTR [ebp-16], 0	 ; <result>,
    	jmp	L1
    L5:
    	cmp	BYTE PTR [ebp-8], -1	 ; f,
    	jne	L7
    	cmp	BYTE PTR [ebp-7], -40	 ; f,
    	jne	L7
    	jmp	L10
    L7:
    	call	DWORD PTR __imp___errno
    	mov	DWORD PTR [eax], 33
    	mov	DWORD PTR [ebp-16], 0	 ; <result>,
    	jmp	L1
    L10:
    	mov	eax, DWORD PTR [ebp+8]	 ; fp, fp
    	mov	DWORD PTR [esp+12], eax	 ;, fp
    	mov	DWORD PTR [esp+8], 1
    	mov	DWORD PTR [esp+4], 1
    	lea	eax, [ebp-8]	         ; tmp66,
    	mov	DWORD PTR [esp], eax	 ;, tmp66
    	call	DWORD PTR __imp__fread
    	cmp	eax, 1	                 ; tmp67,
    	je	L12
    	mov	DWORD PTR [ebp-16], 0	 ; <result>,
    	jmp	L1
    L12:
    	cmp	BYTE PTR [ebp-8], -1	 ; f,
    	je	L14
    	jmp	L10
    L14:
    	mov	eax, DWORD PTR [ebp+8]	 ; fp, fp
    	mov	DWORD PTR [esp+12], eax	 ;, fp
    	mov	DWORD PTR [esp+8], 1
    	mov	DWORD PTR [esp+4], 1
    	lea	eax, [ebp-8]	         ; tmp70,
    	mov	DWORD PTR [esp], eax	 ;, tmp70
    	call	DWORD PTR __imp__fread
    	cmp	eax, 1	                 ; tmp71,
    	je	L16
    	mov	DWORD PTR [ebp-16], 0	 ; <result>,
    	jmp	L1
    L16:
    	cmp	BYTE PTR [ebp-8], -1	 ; f,
    	jne	L15
    	jmp	L14
    L15:
    	movzx	eax, BYTE PTR [ebp-8]	 ; f, f
    	sub	eax, 192
    	mov	DWORD PTR [ebp-20], eax
    	cmp	DWORD PTR [ebp-20], 25
    	ja	L36
    	mov	eax, 1	                 ; tmp118,
    	movzx	ecx, BYTE PTR [ebp-20]
    	sal	eax, cl
    	mov	DWORD PTR [ebp-24], eax
    	mov	eax, DWORD PTR [ebp-24]	 ; tmp119,
    	and	eax, 61167	         ; tmp119,
    	test	eax, eax	         ; tmp119
    	jne	L31
    	mov	eax, DWORD PTR [ebp-24]	 ; tmp120,
    	and	eax, 50331648	         ; tmp120,
    	test	eax, eax	         ; tmp120
    	jne	L35
    	jmp	L36
    L31:
    	mov	eax, DWORD PTR [ebp+8]	 ; fp, fp
    	mov	DWORD PTR [esp+12], eax	 ;, fp
    	mov	DWORD PTR [esp+8], 1
    	mov	DWORD PTR [esp+4], 8
    	lea	eax, [ebp-8]	         ; tmp74,
    	mov	DWORD PTR [esp], eax	 ;, tmp74
    	call	DWORD PTR __imp__fread
    	cmp	eax, 1	                 ; tmp75,
    	je	L32
    	mov	DWORD PTR [ebp-16], 0	 ; <result>,
    	jmp	L1
    L32:
    	movzx	eax, BYTE PTR [ebp-8]	 ; f, f
    	mov	edx, eax	         ; tmp78, f
    	sal	edx, 8	                 ; tmp78,
    	movzx	eax, BYTE PTR [ebp-7]	 ; f, f
    	or	eax, edx	         ; tmp80, tmp78
    	mov	DWORD PTR [ebp-12], eax	 ; z, tmp80
    	mov	ecx, DWORD PTR [ebp-12]	 ; z, z
    	movzx	edx, BYTE PTR [ebp-1]	 ; f, f
    	mov	eax, edx	         ; f, f
    	add	eax, eax	         ; f
    	add	eax, edx	         ; f, f
    	add	eax, 8	                 ; tmp84,
    	cmp	ecx, eax	         ; z, tmp84
    	je	L33
    	call	DWORD PTR __imp___errno
    	mov	DWORD PTR [eax], 33
    	mov	DWORD PTR [ebp-16], 0	 ; <result>,
    	jmp	L1
    L33:
    	mov	ecx, DWORD PTR [ebp+12]	 ; w, w
    	movzx	eax, BYTE PTR [ebp-3]	 ; f, f
    	mov	edx, eax	         ; tmp89, f
    	sal	edx, 8	                 ; tmp89,
    	movzx	eax, BYTE PTR [ebp-2]	 ; f, f
    	or	eax, edx	         ; tmp91, tmp89
    	mov	DWORD PTR [ecx], eax	 ;* w, tmp91
    	mov	ecx, DWORD PTR [ebp+16]	 ; h, h
    	movzx	eax, BYTE PTR [ebp-5]	 ; f, f
    	mov	edx, eax	         ; tmp94, f
    	sal	edx, 8	                 ; tmp94,
    	movzx	eax, BYTE PTR [ebp-4]	 ; f, f
    	or	eax, edx	         ; tmp96, tmp94
    	mov	DWORD PTR [ecx], eax	 ;* h, tmp96
    	mov	DWORD PTR [ebp-16], 1	 ; <result>,
    	jmp	L1
    L35:
    	call	DWORD PTR __imp___errno
    	mov	DWORD PTR [eax], 33
    	mov	DWORD PTR [ebp-16], 0	 ; <result>,
    	jmp	L1
    L36:
    	mov	eax, DWORD PTR [ebp+8]	 ; fp, fp
    	mov	DWORD PTR [esp+12], eax	 ;, fp
    	mov	DWORD PTR [esp+8], 1
    	mov	DWORD PTR [esp+4], 2
    	lea	eax, [ebp-8]	         ; tmp101,
    	mov	DWORD PTR [esp], eax	 ;, tmp101
    	call	DWORD PTR __imp__fread
    	cmp	eax, 1	                 ; tmp102,
    	je	L37
    	mov	DWORD PTR [ebp-16], 0	 ; <result>,
    	jmp	L1
    L37:
    	movzx	eax, BYTE PTR [ebp-8]	 ; f, f
    	mov	edx, eax	         ; tmp105, f
    	sal	edx, 8	                 ; tmp105,
    	movzx	eax, BYTE PTR [ebp-7]	 ; f, f
    	or	eax, edx	 ; tmp107, tmp105
    	mov	DWORD PTR [ebp-12], eax	 ; z, tmp107
    	mov	eax, DWORD PTR [ebp-12]	 ; z, z
    	cmp	eax, 1	                 ; z,
    	ja	L38
    	call	DWORD PTR __imp___errno
    	mov	DWORD PTR [eax], 33
    	mov	DWORD PTR [ebp-16], 0	 ; <result>,
    	jmp	L1
    L38:
    	mov	DWORD PTR [esp+8], 1
    	mov	eax, DWORD PTR [ebp-12]	 ; tmp111, z
    	sub	eax, 2	                 ; tmp111,
    	mov	DWORD PTR [esp+4], eax	 ;, tmp111
    	mov	eax, DWORD PTR [ebp+8]	 ; fp, fp
    	mov	DWORD PTR [esp], eax	 ;, fp
    	call	DWORD PTR __imp__fseek
    	test	eax, eax	         ; tmp113
    	je	L10
    	mov	DWORD PTR [ebp-16], 0	 ; <result>,
    L1:
    	mov	eax, DWORD PTR [ebp-16]	 ; <result>, <result>
    	leave
    	ret
    _j	ENDP
    _TEXT	ENDS
    END

    Compile + Link:





    Her JP[E]G dosyası |FF D8| ile başlar ve |FF D9| ile biter. JP[E]G verilerinde "Marker" denilen çok sayıda |FF YZ| verisi bulunur, ki periyodik JP[E]G bilgi verileridir. Meselâ, |FF D8|, SOI ' Start Of Image ', |FF D9|, EOI ' End Of Image '. Bu iki özel işaretleyicinin, diğerlerinin aksine ne takip eden verileri ' N bytes ' ne de boyutu vardır, &c. Özetle,

    JP[E]G dosya formatı, ki segmentlerden oluşur, ki şudur:

    Dword Header ' T: tip, W: Word ' + N bytes:

    ------------- 1 ---- 1 ---- 2
    Segment |kimliği|tipi||boyutu| + N bytes <-> |FF|T|W| + N bytes

    Her neyse. Teori, ne bitip tükenir ne de anlaşılabilirdir, ki demek ki derhal pratiğe geçilmelidir.


    ;................................................. .................................................. ..........................................

    Kod:
    Microsoft(R) Windows DOS
    (C)Telif Hakkı Microsoft Corp 1990-2001.
    
    C:\WINDOWS\SYSTEM32>DEBUG \ILGRAN~1\IL4E7B~1.JPG
    -L
    -D CS:0100 01FF
    0D86:0100  FF D8 FF E1 00 44 45 78-69 66 00 00 4D 4D 2A 00   .....DExif..MM*.
    0D86:0110  08 00 00 00 02 00 32 01-02 00 14 00 00 00 26 00   ......2.......&.
    0D86:0120  00 00 69 87 04 00 01 00-00 00 3A 00 00 00 00 00   ..i.......:.....
    0D86:0130  00 00 32 30 30 37 3A 30-39 3A 31 37 20 31 32 3A   ..2007:09:17 12:
    0D86:0140  31 39 3A 34 31 00 00 00-FF E0 00 10 4A 46 49 46   19:41.......JFIF
    0D86:0150  00 01 01 01 00 60 00 60-00 00 FF FE 00 1F 4C 45   .....`.`......LE
    0D86:0160  41 44 20 54 65 63 68 6E-6F 6C 6F 67 69 65 73 20   AD Technologies
    0D86:0170  49 6E 63 2E 20 56 31 2E-30 31 00 FF C0 00 11 08   Inc. V1.01......
    0D86:0180  03 48 02 80 03 01 22 00-02 11 01 03 11 01 FF C4   .H....".........
    0D86:0190  01 A2 00 00 01 05 01 01-01 01 01 01 00 00 00 00   ................
    0D86:01A0  00 00 00 00 01 02 03 04-05 06 07 08 09 0A 0B 10   ................
    0D86:01B0  00 02 01 03 03 02 04 03-05 05 04 04 00 00 01 7D   ...............}
    0D86:01C0  01 02 03 00 04 11 05 12-21 31 41 06 13 51 61 07   ........!1A..Qa.
    0D86:01D0  22 71 14 32 81 91 A1 08-23 42 B1 C1 15 52 D1 F0   "q.2....#B...R..
    0D86:01E0  24 33 62 72 82 09 0A 16-17 18 19 1A 25 26 27 28   $3br........%&'(
    0D86:01F0  29 2A 34 35 36 37 38 39-3A 43 44 45 46 47 48 49   )*456789:CDEFGHI
    -
    -S CS:0200 0FFF FF DB
    0D86:0332
    -




    ;................................................. .................................................. ..........................................

    N.B.: MS-DEBUG, adres ve içeriklerini hexadecimal görüntüler ve en sağdakiler de adreslerdeki içeriklerin ASCII sembolleridir.

    [CS|DS|ES|SS]:IP -> [0D86]:0100


    ;--------------------------------------------------------------------------------------------------------------
    _
    IP: |FF D8| -> Start Of Image ' JP[E]G & JFIF dosya kimliği '

    _
    IP+2: |FF E1| -> ' Exif JP[E]G dosyası için ' APP[lication]1 ' JFIF segment ' marker

    IP+4: |00 44| -> Uzunluk: 68 byte ' APP1 ' JFIF segment ' marker 0104 — 0147 offset aralığında, ki demek ki 68 byte. '

    IP+6: Exif Header: |45|78|69|66|00|00| -> Exif|00|00|

    IP+C: TIFF Header: |4D 4D|2A 00|08 00 00 00|

    |4D 4D| -> "Motorola" stil bayt hizalama —big endian— ' |49 49| -> Intel —little endian— '

    |2A 00| -> "Motorola" stil bayt hizalama değişmezi ' |00 2A| -> Intel değişmezi '

    |08 00 00 00| -> IFD0 ' Image File Directory ' için TIFF Header' ın başlangıcından itibaren göreli uzaklık, i.e. IP+14 -> IFD0 offset

    IP+14: |02 00| -> IFD0' ın dizin girişi sayısı 2


    ;""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""" """""""""""

    IL4E7B~1.JPG dosyasının IFD0 kayıtları b o z u k. Bu yüzden de daha fazla devam etmiyoruz. Meselâ,

    IP+1E: |26 00 00 00| -> XResolution verisinin TIFF Header' ın başlangıcından itibaren göreli uzaklığıdır. Ne var ki bu offset için:

    IP+32: |32 30 30 37| -> Numerator

    IP+36: |3A 30 39 3A| -> Denominator

    olduğuna göre, XResolution: Numerator/Denominator olur, ki o l a m a z.*

    * Default XResolution —little endian—: 00000048h/00000001h = 72/1

    Zaten bu offsetlerdekiler DWORD numerik değer de değildir, BYTEs' dan müteşekkil tarih & saat & : karakterlerinin ASCII kodudur.

    N.B.: ASCII kodlu sayılar 30h ile 39h arasında değişir ve 0 ile 9 arasındaki sayıları gösterir.


    ;""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""" """""""""""

    IP+32: İmajın en son değiştirildiği tarih & saat. 2007:09:17 12:19:41|00| ' 17 Eylül 2007, 12:19:41 '

    |32|30|30|37|3A|30|39|3A|31|37|20|31|32|3A|31|39|3 A|34|31|00|

    _
    IP+48: |FF E0| -> APP[lication]0 ' JFIF segment ' marker

    IP+4A: |00 10| -> Uzunluk: 16 byte ' APP0 ' JFIF segment ' marker 014A — 0159 offset aralığında, ki demek ki 16 byte. '

    IP+4C: Dosya Tanımlayıcı İşareti: |4A|46|49|46|00| -> JFIF |00|


    ;................................................. .................................................. ..........................................

    IP+51: |01| -> Majör revizyon sayısı: Mutlak 1, aksi hâl hatadır.

    IP+52: |01| -> Minör revizyon sayısı: 0 veya 1 veyahut 2.

    Ergo, JFIF Version: 1.01


    ;................................................. .................................................. ..........................................

    IP+53: |01| -> X/Y çözünürlük birimi: 00 -> birim yok, 01 -> dots/inch, 02 -> dots/cm

    IP+54: |00 60| -> X-Resolution: 96

    IP+56: |00 60| -> Y-Resolution: 96

    Ergo, çözünürlük: 96 x 96 dpi


    ;................................................. .................................................. ..........................................

    IP+58: |00| -> Thumbnail genişliği: 0

    IP+59: |00| -> Thumbnail yüksekliği: 0

    _
    IP+5A: |FF FE| -> COM[ment] ' JFIF segment ' marker: Comment

    IP+5C: |00 1F| -> ' COM ' JFIF segment ' marker 015C — 017A offset aralığında, ki demek ki 31 byte. '

    |4C|45|41|44|20|54|65|63|68|6E|6F|6C|6F|67|69|65|7 3|20|49|6E|63|2E|20|56|31|2E|30|31|00|

    LEAD Technologies Inc. V1.01|00|

    _
    IP+7B: |FF C0| -> SOF0 ' Start Of Frame 0 ' marker:

    IP+7D: |00 11| -> Uzunluk: 17 byte ' SOF0 marker 017D — 018D offset aralığında, ki demek ki 17 byte. '

    IP+7F: |08| -> Data precision: Hemen her zaman 8, ' 12 ve 16 çoğu yazılım tarafından desteklenmez '


    ;................................................. .................................................. ..........................................

    IP+80: |03 48| -> Image Height: 840

    IP+82: |02 80| -> Image Width: 640

    Ergo, 640 x 840 Piksel.


    ;................................................. .................................................. ..........................................

    IP+84: |03| -> Bileşenlerin sayısı: ' Renk uzayı ' YCbCr veya YIQ ' 1 -> Gri ölçekli, 4 -> CMYK '

    ;»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»

    component Id ' byte ' -> 1 = Y, 2 = Cb, 3 = Cr, 4 = I, 5 = Q

    sampling factors ' byte ' -> bit 0-3 vertical, 4-7 horizontal

    quantization table number ' byte '.


    ;««««««««««««««««««««««««««««««««««««««««««««««««« ««««««««««««««««««««««««««««««««««

    IP+85: |01 22 00| -> Y4

    IP+88: |02 11 01| -> Cb2(2)

    IP+8B: |03 11 01| -> Cr0(2)

    Ergo, YCbCr4:2:0 (2 2)


    ;--------------------------------------------------------------------------------------------------------------

    _
    IP+8E: |FF C4| -> DHT ' Define Huffman Table ' marker:

    IP+90: |01 A2| -> Uzunluk: 418 byte ' DHT marker 0190 — 0331 offset aralığında, ki demek ki 418 byte. '*

    * DEBUG' da DQT ' Define Quantization Table ' marker: |FF DB| başlangıç offsetinin 0332 olduğuna da dikkat edilmelidir.

    IP+92: |00| -> HT ' Huffman Table ' information

    bit 0..3: HT sayısı (0..3, aksi halde hata)

    bit 4: HT tipi, 0 = DC tablosu, 1 = AC tablosu

    bit 5..7: kullanılmaz, 0 olmalı.

    IP+93: |00| ... |00| -> ' 16 byte ' Sembollerin sayısı

    1..16 uzunluğunda kodlara sahip sembollerin sayısı, bu baytların toplamı ' n ', toplam kod sayısıdır, ki <= 256 olmalıdır.

    IP+A3: |00| ... -> ' n byte ' Semboller

    Artan kod uzunluğuna göre simgeleri içeren tablo ' n = toplam kod sayısı '.


    ;--------------------------------------------------------------------------------------------------------------

    JP[E]G dosya bilgilerinin elde edilme şekli, özetle budur.

  3. #3
    Ç. R. Düzenleme
    Üyelik Tarihi
    Nov 2015
    Mesajlar
    346

    Seviye: 37 
    Tecrübe: 1,079,716
    Sonraki Seviye: 1,209,937

    Beğenmiş
    1,742
    Beğenilmiş
    1,580
    Adı Geçen
    0 Konu
    Etiketlendiği
    0 Konu
    Embedded Informations:

    Gömülü, gizli, junk bilgiler " [embedded, hidden, garbage] informations; ee.g., logo, banner, splash screen, et al. " herhangi programlar tarafından oluşturulan hemen her çeşit dosyada " *.EXEs, *.COMs, *.DLLs, *.JPEGs,... " bilfiil mevcuttur, ki kurtulmak da —genellikle— müşküldür.

    Meselâ, MS-DOS Prompt " COMMAND.COM " ilk çalıştırıldığında,

    Microsoft(R) Windows DOS
    (C)Telif Hakkı Microsoft Corp 1990-2001.


    logosunu görüntüler, &c.

    N.B.: ' Pek azı hariç ' sanal âlemden hemen hiçbir şey elde edilemez. Misaller:


    ;÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷ ·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·

    Bir platformdaki Question & Answer ne idi_?

    LEAD Technologies Inc. V1.01 ???/ Get rid of Embedded EXIF information

    How come some photos in my gallery are displaying with "LEAD Technologies Inc. V1.01" in between the picture/file name and the rating?? How can I remove it? I did a google search and see that there are many different photo galleries with this as a comment. Is this some kind of hack?

    It's not a hack, it has something to do with a photo editor you used. Some Apps/Camera's write EXIF information (hidden information) in the photo. To delete EXIF information from files on your web server, use * EasyPhpWipeJPG *






    *.PHPs direkt çalıştırılamaz ve ek yazılımların ' {W|LAMP}, EASYPHP,... ' yüklenmesi gerekir.

    ;÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷ ·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·

    Genel bakış

    This online tool removes from photo all embedded information without recompression and without loss in quality

    Exif data remover

    An EXIF Data Remover is a robust tool specifically designed for those concerned with privacy, digital content management, and professional photography. It’s a versatile utility that is vital in the world of digital imagery, especially in this era of rapidly advancing technology.

    What is EXIF data? In simple terms, Exchangeable Image File Format (EXIF) data is the additional information that comes embedded in an image file when a photo is taken using a digital camera or a smartphone. This metadata might include details like the date and time the photo was taken, camera model, exposure, aperture, focal length, and often, GPS coordinates indicating where the photo was shot. While this data can be beneficial, it may also pose privacy concerns or unwanted clutter in certain circumstances.






    Ne deniliyordu_? ' Bak hele! '

    Bu geliştirici, Avrupa Birliği'nin tanımı doğrultusunda kendisini tacir olarak tanımlamıştır.

    Boru mu_? Yok. E.U. : )

    70+ yıldır sunup durduğunuz bu ve benzeri taaffün etmiş balıklarınıza değil, oltalarınıza talibiz. Peki sunacak mısınız ki_? Yok.

    Ha, mademki yok, ne E.U. ne de tanımını tanırız.



    ;÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷ ·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·÷·

    Bir şey elde edilebilen yazılımlarsa, imaj dosyalarından, ' kaldırılması gerekli olmayanlar da dahil olmak üzere ', ne var ne yok kaldırmaktadır.

    Her neyse.

    Özetle, herhangi imaj dosyalarından gömülü, gizli, junk bilgilerin kaldırılması için hiçbir script ya da yazılıma gerek yoktur. Biraz [sembolik] makina dili biraz da imaj dosyası hakkında bilgi yeter de artar bile. : )

    |FF E1| -> ' Exif JP[E]G dosyası için ' APP[lication]1 ' JFIF segment ' marker

    |FF FE| -> COM[ment] ' JFIF segment ' marker: Comment

    Her iki marker kaldırılmalıdır, ki bunun için de, önce CS:017B ' |FF C0| -> SOF0 ' Start Of Frame 0 ' marker başlangıç adresi ' ve sonraki adreslerin içeriği, CS:015A ' |FF FE| -> COM[ment] ' JFIF segment ' marker başlangıç adresi ' ve sonraki adreslere kaydırılmalı, akabinde de CS:0148 ' |FF E0| -> APP[lication]0 ' JFIF segment ' marker başlangıç adresi ' ve sonraki adreslerin içeriği CS:0102 ' |FF E1| -> APP[lication]1 ' JFIF segment ' marker başlangıç adresi ' ve sonraki adreslere kaydırılmalıdır, ki tek bir komut, bütün bu işlemler için yeterlidir, ki şudur:

    MS-DEBUG:

    move M aralık adres

    Ne var ki imaj dosyasının boyutu, 64 KB segment boyutunu aştığından ' BX = 0 d e ğ i l ', bu komut direkt kullanılamaz, bir başka deyişle, kaydırmalar yapılamaz. Peki elimiz kolumuz bağlandı mı ki_? Yok. Öyleyse_? Okus pokus. Nasıl_? Şöyle:

    Kaydırma yapılamıyorsa, atarız olur biter. : )

    i_ İmaj dosya kod uzunluğu değişecek ise:


    Kod:
    Microsoft(R) Windows DOS
    (C)Telif Hakkı Microsoft Corp 1990-2001.
    
    C:\WINDOWS\SYSTEM32>DEBUG \ILGRAN~1\IL4E7B~1.JPG
    -L
    -R
    AX=0000  BX=0004  CX=ACFB  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
    DS=0D86  ES=0D86  SS=0D86  CS=0D86  IP=0100   NV UP EI PL NZ NA PO NC
    0D86:0100 FFD8          CALL    FAR AX
    -
    -D CS:0100, 017C
    0D86:0100  FF D8 FF E1 00 44 45 78-69 66 00 00 4D 4D 2A 00   .....DExif..MM*.
    0D86:0110  08 00 00 00 02 00 32 01-02 00 14 00 00 00 26 00   ......2.......&.
    0D86:0120  00 00 69 87 04 00 01 00-00 00 3A 00 00 00 00 00   ..i.......:.....
    0D86:0130  00 00 32 30 30 37 3A 30-39 3A 31 37 20 31 32 3A   ..2007:09:17 12:
    0D86:0140  31 39 3A 34 31 00 00 00-FF E0 00 10 4A 46 49 46   19:41.......JFIF
    0D86:0150  00 01 01 01 00 60 00 60-00 00 FF FE 00 1F 4C 45   .....`.`......LE
    0D86:0160  41 44 20 54 65 63 68 6E-6F 6C 6F 67 69 65 73 20   AD Technologies
    0D86:0170  49 6E 63 2E 20 56 31 2E-30 31 00 FF C0            Inc. V1.01...
    -
    -M CS:0146, 0159 CS:0167
    -
    -E CS:0167 FF D8
    -
    -H ACFB 0067
    AD62  AC94
    -
    -RCX
    CX ACFB
    :AC94
    -
    -W 0167
    4AC94 bayt yazılıyor
    -
    -Q
    
    C:\WINDOWS\SYSTEM32>\HEX2DEC.EXE 4AC94
    
    0x4AC94 = 306324
    
    
    C:\WINDOWS\SYSTEM32>DIR /D \ILGRAN~1\IL4E7B~1.JPG
     C sürücüsündeki birimin etiketi yok.
     Birim Seri Numarası: 40DA-CC8A
    
     C:\ILGRAN~1 dizini
    
    Il Grande Blek N99.jpg
                   1 Dosya          306,324 bayt
                   0 Dizin   12,712,284,160 bayt boş
    
    C:\WINDOWS\SYSTEM32>DEBUG \ILGRAN~1\IL4E7B~1.JPG
    -L
    -R
    AX=0000  BX=0004  CX=AC94  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
    DS=0D86  ES=0D86  SS=0D86  CS=0D86  IP=0100   NV UP EI PL NZ NA PO NC
    0D86:0100 FFD8          CALL    FAR AX
    -
    -D CS:0100, 0115
    0D86:0100  FF D8 FF E0 00 10 4A 46-49 46 00 01 01 01 00 60   ......JFIF.....`
    0D86:0110  00 60 00 00 FF C0                                 .`....
    -
    -Q
    
    C:\WINDOWS\SYSTEM32>
    ; Normalde CS:0102, 0147 adres aralığı atılmalıdır, lakin bu da önünde sonunda kaydırma gerektirir, ki demek ki işe yaramaz.
    ; Öyleyse, CS:0100, 0145 adres aralığı atılır ve CS:0146 artık başlangıç adresidir.
    ; CS:0146, 0147 başlangıç adres aralığı |FF D8| -> Start Of Image ' olmalıdır. Hâlihazırdaki içeriği ise |00 00|.
    ; CS:0148, 0159 |FF E0| JFIF segment ' marker aralığıdır.
    ; 0159 — 0146 = 13
    ; |FF C0| -> SOF0 ' Start Of Frame 0 marker başlangıç adresi CS:017B
    ; 017B — 1 — 13 = 0167
    ; CS:0146, 0159 aralığı CS:0167 ve sonrasına taşınmalıdır, ki artık başlangıç adresi de CS:0167 olur, ki komutlar da şudur:

    M CS:0146, 0159 CS:0167

    E CS:0167 FF D8 ; Niçin_? CS:0146, 0147 -> CS:0167, 0168 aralığına taşınmaktadır ve |00 00| değil |FF D8| olmalıdır.


    ;................................................. .................................................. ..........................................

    ; Başlangıç, şu şekilde de olabilirdi ' ki elde edilecek sonuç da farksızdır ':

    E CS:0146 FF D8

    M CS:0146, 0159 CS:0167


    ;................................................. .................................................. ..........................................

    -H ACFB 0067
    AD62 AC94

    ; BX:CX = 4ACFB ve imajın başlangıç adresi artık CS:0100 değil, CS:0167. Niçin_? Başlangıç bytes' ı attığımız için. Öyleyse,

    ; BX:CX — 0067 = 4AC94 ' BX:0004, CX:AC94 '

    -RCX
    CX ACFB
    :AC94

    W 0167 ; CS:0167 adresinden itibaren imaj dosyasını diske yaz.






    j_ İmaj dosya kod uzunluğu değişmeyecek ise:

    Kod:
    Microsoft(R) Windows DOS
    (C)Telif Hakkı Microsoft Corp 1990-2001.
    
    C:\WINDOWS\SYSTEM32>DEBUG \ILGRAN~1\IL4E7B~1.JPG
    -L
    -R
    AX=0000  BX=0004  CX=ACFB  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
    DS=0D86  ES=0D86  SS=0D86  CS=0D86  IP=0100   NV UP EI PL NZ NA PO NC
    0D86:0100 FFD8          CALL    FAR AX
    -
    -D CS:0100, 017C
    0D86:0100  FF D8 FF E1 00 44 45 78-69 66 00 00 4D 4D 2A 00   .....DExif..MM*.
    0D86:0110  08 00 00 00 02 00 32 01-02 00 14 00 00 00 26 00   ......2.......&.
    0D86:0120  00 00 69 87 04 00 01 00-00 00 3A 00 00 00 00 00   ..i.......:.....
    0D86:0130  00 00 32 30 30 37 3A 30-39 3A 31 37 20 31 32 3A   ..2007:09:17 12:
    0D86:0140  31 39 3A 34 31 00 00 00-FF E0 00 10 4A 46 49 46   19:41.......JFIF
    0D86:0150  00 01 01 01 00 60 00 60-00 00 FF FE 00 1F 4C 45   .....`.`......LE
    0D86:0160  41 44 20 54 65 63 68 6E-6F 6C 6F 67 69 65 73 20   AD Technologies
    0D86:0170  49 6E 63 2E 20 56 31 2E-30 31 00 FF C0            Inc. V1.01...
    -
    -M CS:0146, 0159 CS:0167
    -
    -E CS:0167 FF D8
    -
    -W 0167
    4ACFB bayt yazılıyor
    -
    -Q
    
    C:\WINDOWS\SYSTEM32>\HEX2DEC.EXE 4ACFB
    
    0x4ACFB = 306427
    
    
    C:\WINDOWS\SYSTEM32>DIR /D \ILGRAN~1\IL4E7B~1.JPG
     C sürücüsündeki birimin etiketi yok.
     Birim Seri Numarası: 40DA-CC8A
    
     C:\ILGRAN~1 dizini
    
    Il Grande Blek N99.jpg
                   1 Dosya          306,427 bayt
                   0 Dizin   12,711,690,240 bayt boş
    
    C:\WINDOWS\SYSTEM32>DEBUG \ILGRAN~1\IL4E7B~1.JPG
    -L
    -R
    AX=0000  BX=0004  CX=ACFB  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
    DS=0D86  ES=0D86  SS=0D86  CS=0D86  IP=0100   NV UP EI PL NZ NA PO NC
    0D86:0100 FFD8          CALL    FAR AX
    -
    -D CS:0100, 0115
    0D86:0100  FF D8 FF E0 00 10 4A 46-49 46 00 01 01 01 00 60   ......JFIF.....`
    0D86:0110  00 60 00 00 FF C0                                 .`....
    -
    -Q
    
    C:\WINDOWS\SYSTEM32>

    N.B.: BX=0004, CX=ACFB ' 0x4ACFB = 306427 byte ' iken, BX=0004, CX=AC94 ' 0x4AC94 = 306324 byte ' olmuştur, ki bu da imaj dosya kod uzunluğunun değiştiği anlamına gelir.






  4. #4
    Ç. R. Düzenleme
    Üyelik Tarihi
    Nov 2015
    Mesajlar
    346

    Seviye: 37 
    Tecrübe: 1,079,716
    Sonraki Seviye: 1,209,937

    Beğenmiş
    1,742
    Beğenilmiş
    1,580
    Adı Geçen
    0 Konu
    Etiketlendiği
    0 Konu
    I-J - Kuramsal Analiz:

    Scanner, djital kamera ve benzerleri, JP[E]G spesifikasyonuna uygun olarak, bazı garbage codes' ı JP[E]Gs' e eklemektedir, lakin,
    DEBUG [\ILGRAN~1\IL4E7B~1.JPG] & D[UMP] [CS:0100, 017C]

    komutları ile elde edilen JP[E]G garbage codes' ı ' EXIF metadata ' değişmez bir kalıp değildir, i.e., her zaman böyle olmaz.

    Misal için bir başka formunu ele alacağız, ki şudur:


    Kod:
    Microsoft(R) Windows DOS
    (C)Telif Hakkı Microsoft Corp 1990-2001.
    
    C:\WINDOWS\SYSTEM32>DEBUG \CAPITA~1\CAPITA~1.JPG
    -L
    -R
    AX=0000  BX=0003  CX=7E8F  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
    DS=0D86  ES=0D86  SS=0D86  CS=0D86  IP=0100   NV UP EI PL NZ NA PO NC
    0D86:0100 FFD8          CALL    FAR AX
    -
    -D CS:0100, 01E4
    0D86:0100  FF D8 FF E1 00 AC 45 78-69 66 00 00 4D 4D 2A 00   ......Exif..MM*.
    0D86:0110  08 00 00 00 05 00 1A 01-05 00 01 00 00 00 4A 00   ..............J.
    0D86:0120  00 00 1B 01 05 00 01 00-00 00 52 00 00 00 28 01   ..........R...(.
    0D86:0130  03 00 01 00 00 00 00 00-00 00 13 02 03 00 01 00   ................
    0D86:0140  00 00 00 00 00 00 69 87-04 00 01 00 00 00 5A 00   ......i.......Z.
    0D86:0150  00 00 00 00 00 00 48 00-00 00 01 00 00 00 48 00   ......H.......H.
    0D86:0160  00 00 01 00 00 00 06 00-00 90 07 00 04 00 00 00   ................
    0D86:0170  FC F3 DF 03 01 91 07 00-04 00 00 00 FC F3 DF 03   ................
    0D86:0180  00 A0 07 00 04 00 00 00-FC F3 DF 03 01 A0 03 00   ................
    0D86:0190  01 00 00 00 00 00 00 00-02 A0 04 00 01 00 00 00   ................
    0D86:01A0  9B 03 00 00 03 A0 04 00-01 00 00 00 B0 04 00 00   ................
    0D86:01B0  FF E0 00 10 4A 46 49 46-00 01 00 01 00 48 00 48   ....JFIF.....H.H
    0D86:01C0  00 00 FF FE 00 1F 4C 45-41 44 20 54 65 63 68 6E   ......LEAD Techn
    0D86:01D0  6F 6C 6F 67 69 65 73 20-49 6E 63 2E 20 56 31 2E   ologies Inc. V1.
    0D86:01E0  30 31 00 FF DB                                    01...
    -
    -Q
    
    C:\WINDOWS\SYSTEM32>




    IL4E7B~1.JPG ' Il Grande Blek N49.jpg ' dosyası ne ise, CAPITA~1.JPG ' Capitan Miki N78.jpg ' dosyası da odur, i.e., direkt ' doğrudan doğruya ' görüntülenemez, nokta şeklinde görünür, &c.

    IL4E7B~1.JPG dosyasının direkt görüntülenebilmesi için bazı bytes çıkartılmıştı, ki CAPITA~1.JPG dosyası için de aynen böyledir. Ne var ki, bir başka dosya ile uğraşmak gereksizdir, dahası, herhangi dosyalardan bytes çıkartmaktan ziyade eklemek, hem daha önemlidir hem de daha zordur. Bu yüzden bunun da bir misali sunulacaktır.


    ;................................................. .................................................. ..........................................

    IL4E7B~1.JPG ' Il Grande Blek N49.jpg ' dosyasını MS-DEBUG ile açıyoruz.


    Kod:
    Microsoft(R) Windows DOS
    (C)Telif Hakkı Microsoft Corp 1990-2001.
    
    C:\WINDOWS\SYSTEM32>DEBUG \ILGRAN~1\IL4E7B~1.JPG
    -L
    -R
    AX=0000  BX=0004  CX=ACFB  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
    DS=0D86  ES=0D86  SS=0D86  CS=0D86  IP=0100   NV UP EI PL NZ NA PO NC
    0D86:0100 FFD8          CALL    FAR AX
    -
    -D CS:0100, 017F
    0D86:0100  FF D8 FF E1 00 44 45 78-69 66 00 00 4D 4D 2A 00   .....DExif..MM*.
    0D86:0110  08 00 00 00 02 00 32 01-02 00 14 00 00 00 26 00   ......2.......&.
    0D86:0120  00 00 69 87 04 00 01 00-00 00 3A 00 00 00 00 00   ..i.......:.....
    0D86:0130  00 00 32 30 30 37 3A 30-39 3A 31 37 20 31 32 3A   ..2007:09:17 12:
    0D86:0140  31 39 3A 34 31 00 00 00-FF E0 00 10 4A 46 49 46   19:41.......JFIF
    0D86:0150  00 01 01 01 00 60 00 60-00 00 FF FE 00 1F 4C 45   .....`.`......LE
    0D86:0160  41 44 20 54 65 63 68 6E-6F 6C 6F 67 69 65 73 20   AD Technologies
    0D86:0170  49 6E 63 2E 20 56 31 2E-30 31 00 FF C0 00 11 08   Inc. V1.01......
    -
    -H ACFB 007B
    AD76  AC80
    -
    -RCX
    CX ACFB
    :AC80
    -
    -W CS:017B
    4AC80 bayt yazılıyor
    -
    -Q
    
    C:\WINDOWS\SYSTEM32>DEBUG \ILGRAN~1\IL4E7B~1.JPG
    -L
    -R
    AX=0000  BX=0004  CX=AC80  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
    DS=0D86  ES=0D86  SS=0D86  CS=0D86  IP=0100   NV UP EI PL NZ NA PO NC
    0D86:0100 FFC0          INC     AX
    -
    -D CS:0100, 011F
    0D86:0100  FF C0 00 11 08 03 48 02-80 03 01 22 00 02 11 01   ......H...."....
    0D86:0110  03 11 01 FF C4 01 A2 00-00 01 05 01 01 01 01 01   ................
    -
    -H 0100 00E3
    01E3  001D
    -
    -H AC80 00E3
    AD63  AB9D
    -
    -RCX
    CX AC80
    :AD63
    -
    -W CS:001D
    4AD63 bayt yazılıyor
    -
    -Q
    
    C:\WINDOWS\SYSTEM32>DEBUG \ILGRAN~1\IL4E7B~1.JPG
    -L
    -R
    AX=0000  BX=0004  CX=AD63  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
    DS=0D86  ES=0D86  SS=0D86  CS=0D86  IP=0100   NV UP EI PL NZ NA PO NC
    0D86:0100 FFFF          ???     DI
    -
    -D CS:0100, 011F
    0D86:0100  FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF 98   ................
    0D86:0110  07 4E 01 AA 0C 14 00 18-00 86 0D FF FF FF FF 00   .N..............
    -
    -S CS:0100 01FF FF C0
    0D86:01E3
    -
    -D CS:01E0 01FF
    0D86:01E0  00 00 00 FF C0 00 11 08-03 48 02 80 03 01 22 00   .........H....".
    0D86:01F0  02 11 01 03 11 01 FF C4-01 A2 00 00 01 05 01 01   ................
    -
    -Q
    
    C:\WINDOWS\SYSTEM32>




    Karışık mı_? D e ğ i l. : )

    _


    -H ACFB 007B
    AD76 AC80

    ; IL4E7B~1.JPG' teki CS:0100 - CS:017A aralığı ' ki 017A — 0100 + 1 = 007B byte' tır ' kaldırılmalıdır. Bir başka deyişle_?
    ; IL4E7B~1.JPG' teki |FF C0| -> SOF0 ' Start Of Frame 0 marker başlangıç adresi CS:017B d e ğ i l, CS:0100 olmalıdır.
    ; IL4E7B~1.JPG boyutu 007B byte azalacaktır, H[EX] [add/sub] value1 value2 ile yeni boyut hesaplanmaktadır, ki AC80


    -RCX
    CX ACFB
    :AC80

    ; ' *.EXEs hariç, ki undocumented. ', BX:CX dosya boyutudur, ki IL4E7B~1.JPG' in yeni boyutu da BX:CX=4AC80

    -W CS:017B

    ; CS:017B adresinden itibaren IL4E7B~1.JPG dosyasına yaz.

    _


    -H 0100 00E3
    01E3 001D

    ; IL4E7B~1.JPG' e 00E3 byte eklenecek değil mi_? Herhâlde. Ne var ki, ex nihilo nihil fit. Öyleyse bytes nereden elde edilecek_?
    ; *.EXE & *.COM için PSP ' Program Segment Prefix ' denilen bir bölge üzerinden. Nasıl_? Şöyle:
    ; *.EXE & *.COM için, CS:0000 - CS:007F & CS:0080 - CS:00FF aralıkları, dosya hakkında bazı bilgiler içeren PSP bölgeleridir.
    ; *.EXE & *.COM için, CS:0000 - CS:007F aralığı, yükleme bilgilerini içerir, ki ' eskiden ' undocumented.
    ; *.EXE & *.COM için, CS:0080 - CS:00FF aralığı, komut satırı argümanlarını içerir.

    N.B.: Mevzu [sembolik] makina dili olmadığından, ' *.EXE & *.COM için ' PSP' nin detaylara girilmesi de gereksizdir.

    ; Sözün özü, CS:0000 - CS:00FF aralığındaki bu bytes' ın bir miktarı bize lazım. Ne kadarı_? 00E3 byte, ki 0100 — 00E3 = 001D
    ; Tamam da, bu durumda, PSP denilen bu bölge, yok edilmedi mi ki_? Y o k. Neden_?
    ; IL4E7B~1.JPG, MS-DEBUG' a her zaman CS:0100 adresinden yükleneceğinden, bu bölgenin tekrar oluşturulacağı aşikârdır.


    -H AC80 00E3
    AD63 AB9D

    ; IL4E7B~1.JPG boyutu 00E3 byte artmıştır. Bu durumda nihai dosya boyutu, AC80 + 00E3 = AD63

    -RCX
    CX AC80
    :AD63

    ; BX:CX dosya boyutudur, ki IL4E7B~1.JPG' in nihai boyutu da BX:CX=4AD63

    -W CS:001D

    ; CS:001D adresinden itibaren IL4E7B~1.JPG dosyasına yaz.

    ;................................................. .................................................. ..........................................

    IL4E7B~1.JPG dosyasına eklenecek hex değerleri tablosu:

    Kod:
    E CS:0100 FF D8 FF E1 00 AC 45 78 69 66 00 00 4D 4D 2A 00
    E CS:0110 08 00 00 00 05 00 1A 01 05 00 01 00 00 00 4A 00
    E CS:0120 00 00 1B 01 05 00 01 00 00 00 52 00 00 00 28 01
    E CS:0130 03 00 01 00 00 00 00 00 00 00 13 02 03 00 01 00
    E CS:0140 00 00 00 00 00 00 69 87 04 00 01 00 00 00 5A 00
    E CS:0150 00 00 00 00 00 00 48 00 00 00 01 00 00 00 48 00
    E CS:0160 00 00 01 00 00 00 06 00 00 90 07 00 04 00 00 00
    E CS:0170 FC F3 DF 03 01 91 07 00 04 00 00 00 FC F3 DF 03
    E CS:0180 00 A0 07 00 04 00 00 00 FC F3 DF 03 01 A0 03 00
    E CS:0190 01 00 00 00 00 00 00 00 02 A0 04 00 01 00 00 00
    E CS:01A0 9B 03 00 00 03 A0 04 00 01 00 00 00 B0 04 00 00
    E CS:01B0 FF E0 00 10 4A 46 49 46 00 01 00 01 00 48 00 48
    E CS:01C0 00 00 FF FE 00 1F 4C 45 41 44 20 54 65 63 68 6E
    E CS:01D0 6F 6C 6F 67 69 65 73 20 49 6E 63 2E 20 56 31 2E
    E CS:01E0 30 31 00
    Bu tablo neden oluşturuldu_? Aksi hâlde, MS-DEBUG' a E[NTER] komutu ile CS:0100 - CS:01E2 adres aralığındaki 227 ' 00E3 ' hex değerin tek tek girilmesi gerekir, ki aşikârdır ki, uğraştırıcıdır, dahası E komutu, hafızadaki önceki hex değerini de ekrana gönderdiğinden, karışıklık çıkması da muhtemeldir, meselâ,

    Kod:
    Microsoft(R) Windows DOS
    (C)Telif Hakkı Microsoft Corp 1990-2001.
    
    C:\WINDOWS\SYSTEM32>DEBUG
    -
    -E CS:0AB0
    0D86:0AB0  06.FC   3E.FD   92.FE   80.FF   75.01   1E.02   26.03   3B.04
    MS-DEBUG, E CS:0AB0 başlangıç komutu ile, CS:0AB0 adresindeki hex değeri ' 06 ' ekrana gönderir ve herhangi bir hex değerin girilmesi için bekler. Peki girilen ne_? FC

    Ardından CS:0AB1 adresindeki hex değeri ' 3E ' ekrana gönderir ve herhangi bir hex değerin girilmesi için bekler, &c, &c.

    Ne var ki bu tablo MS-DEBUG' a kopyalandığında, tek tek ' ve de 227 defa ' girilmesi gereken hex değerleri, MS-DEBUG, şipşak girecektir, ki tablonun oluşturulma nedeni de işte budur.



    Kod:
    Microsoft(R) Windows DOS
    (C)Telif Hakkı Microsoft Corp 1990-2001.
    
    C:\WINDOWS\SYSTEM32>DEBUG \ILGRAN~1\IL4E7B~1.JPG
    -L
    -R
    AX=0000  BX=0004  CX=AD63  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
    DS=0D86  ES=0D86  SS=0D86  CS=0D86  IP=0100   NV UP EI PL NZ NA PO NC
    0D86:0100 FFFF          ???     DI
    -
    -D CS:0100, 01EF
    0D86:0100  FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF 98   ................
    0D86:0110  07 4E 01 AA 0C 14 00 18-00 86 0D FF FF FF FF 00   .N..............
    0D86:0120  00 00 00 05 00 00 00 00-00 00 00 00 00 00 00 00   ................
    0D86:0130  00 00 00 CD 21 CB 00 00-00 00 00 00 00 00 00 00   ....!...........
    0D86:0140  20 20 20 20 20 20 20 20-20 20 20 00 00 00 00 00              .....
    0D86:0150  20 20 20 20 20 20 20 20-20 20 20 00 00 00 00 00              .....
    0D86:0160  00 00 00 00 0D 5C 49 4C-47 52 41 4E 7E 31 5C 49   .....\ILGRAN~1\I
    0D86:0170  4C 34 45 37 42 7E 31 2E-4A 50 47 0D 00 00 00 00   L4E7B~1.JPG.....
    0D86:0180  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
    0D86:0190  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
    0D86:01A0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
    0D86:01B0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
    0D86:01C0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
    0D86:01D0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
    0D86:01E0  00 00 00 FF C0 00 11 08-03 48 02 80 03 01 22 00   .........H....".
    -
    -E CS:0100 FF D8 FF E1 00 AC 45 78 69 66 00 00 4D 4D 2A 00
    -E CS:0110 08 00 00 00 05 00 1A 01 05 00 01 00 00 00 4A 00
    -E CS:0120 00 00 1B 01 05 00 01 00 00 00 52 00 00 00 28 01
    -E CS:0130 03 00 01 00 00 00 00 00 00 00 13 02 03 00 01 00
    -E CS:0140 00 00 00 00 00 00 69 87 04 00 01 00 00 00 5A 00
    -E CS:0150 00 00 00 00 00 00 48 00 00 00 01 00 00 00 48 00
    -E CS:0160 00 00 01 00 00 00 06 00 00 90 07 00 04 00 00 00
    -E CS:0170 FC F3 DF 03 01 91 07 00 04 00 00 00 FC F3 DF 03
    -E CS:0180 00 A0 07 00 04 00 00 00 FC F3 DF 03 01 A0 03 00
    -E CS:0190 01 00 00 00 00 00 00 00 02 A0 04 00 01 00 00 00
    -E CS:01A0 9B 03 00 00 03 A0 04 00 01 00 00 00 B0 04 00 00
    -E CS:01B0 FF E0 00 10 4A 46 49 46 00 01 00 01 00 48 00 48
    -E CS:01C0 00 00 FF FE 00 1F 4C 45 41 44 20 54 65 63 68 6E
    -E CS:01D0 6F 6C 6F 67 69 65 73 20 49 6E 63 2E 20 56 31 2E
    -E CS:01E0 30 31 00
    -
    -E CS:01BA 01 01 00 60 00 60
    -
    -D CS:0100, 01EF
    0D86:0100  FF D8 FF E1 00 AC 45 78-69 66 00 00 4D 4D 2A 00   ......Exif..MM*.
    0D86:0110  08 00 00 00 05 00 1A 01-05 00 01 00 00 00 4A 00   ..............J.
    0D86:0120  00 00 1B 01 05 00 01 00-00 00 52 00 00 00 28 01   ..........R...(.
    0D86:0130  03 00 01 00 00 00 00 00-00 00 13 02 03 00 01 00   ................
    0D86:0140  00 00 00 00 00 00 69 87-04 00 01 00 00 00 5A 00   ......i.......Z.
    0D86:0150  00 00 00 00 00 00 48 00-00 00 01 00 00 00 48 00   ......H.......H.
    0D86:0160  00 00 01 00 00 00 06 00-00 90 07 00 04 00 00 00   ................
    0D86:0170  FC F3 DF 03 01 91 07 00-04 00 00 00 FC F3 DF 03   ................
    0D86:0180  00 A0 07 00 04 00 00 00-FC F3 DF 03 01 A0 03 00   ................
    0D86:0190  01 00 00 00 00 00 00 00-02 A0 04 00 01 00 00 00   ................
    0D86:01A0  9B 03 00 00 03 A0 04 00-01 00 00 00 B0 04 00 00   ................
    0D86:01B0  FF E0 00 10 4A 46 49 46-00 01 01 01 00 60 00 60   ....JFIF.....`.`
    0D86:01C0  00 00 FF FE 00 1F 4C 45-41 44 20 54 65 63 68 6E   ......LEAD Techn
    0D86:01D0  6F 6C 6F 67 69 65 73 20-49 6E 63 2E 20 56 31 2E   ologies Inc. V1.
    0D86:01E0  30 31 00 FF C0 00 11 08-03 48 02 80 03 01 22 00   01.......H....".
    -
    -W CS:0100
    4AD63 bayt yazılıyor
    -
    -Q
    
    C:\WINDOWS\SYSTEM32>




    E CS:01BA 01 01 00 60 00 60


    ; Orijinal IL4E7B~1.JPG için IP+48: |FF E0| -> APP[lication]0 ' JFIF segment ' marker bytes' ı ne idi_?

    Kod:
    CS:0148  FF E0 00 10 4A 46 49 46
    CS:0150  00 01 01 01 00 60 00 60-00 00
    ;................................................. .................................................. ..........................................

    IP+51: |01| -> Majör revizyon sayısı: Mutlak 1, aksi hâl hatadır.

    IP+52: |01| -> Minör revizyon sayısı: 0 veya 1 veyahut 2.

    Ergo, JFIF Version: 1.01


    ;................................................. .................................................. ..........................................

    IP+53: |01| -> X/Y çözünürlük birimi: 00 -> birim yok, 01 -> dots/inch, 02 -> dots/cm

    IP+54: |00 60| -> X-Resolution: 96

    IP+56: |00 60| -> Y-Resolution: 96

    Ergo, çözünürlük: 96 x 96 dpi


    ;................................................. .................................................. ..........................................

    ; Nihai IL4E7B~1.JPG için IP+48: |FF E0| -> APP[lication]0 ' JFIF segment ' marker bytes' ı ne_?

    Kod:
    E CS:01B0 FF E0 00 10 4A 46 49 46-00 01 00 01 00 48 00 48
    E CS:01C0 00 00
    IP+BA ' CS:01BA ': |00| -> Minör revizyon sayısı ' |01| olarak değiştirilmeli '

    IP+BB ' CS:01BB ': |01| -> X/Y çözünürlük birimi ' İdentik, bu yüzden de değiştirilmemeli '

    IP+BC ' CS:01BC ': |00 48| -> X-Resolution: 72 ' |00 60| olarak değiştirilmeli '

    IP+BE ' CS:01BC ': |00 48| -> Y-Resolution: 72 ' |00 60| olarak değiştirilmeli '



    ;................................................. .................................................. ..........................................

    |FF E1| -> ' Exif JP[E]G dosyası için ' APP[lication]1 ' JFIF segment ' marker

    |FF FE| -> COM[ment] ' JFIF segment ' marker: Comment

    Her iki marker kaldırılmalıdır, ki bunun için de, önce CS:01E3 ' |FF C0| -> SOF0 ' Start Of Frame 0 ' marker başlangıç adresi ' ve sonraki adreslerin içeriği, CS:01C2 ' |FF FE| -> COM[ment] ' JFIF segment ' marker başlangıç adresi ' ve sonraki adreslere kaydırılmalı, akabinde de CS:01B0 ' |FF E0| -> APP[lication]0 ' JFIF segment ' marker başlangıç adresi ' ve sonraki adreslerin içeriği CS:0102 ' |FF E1| -> APP[lication]1 ' JFIF segment ' marker başlangıç adresi ' ve sonraki adreslere kaydırılmalıdır, ki tek bir komut, bütün bu işlemler için yeterlidir, ki şudur:

    MS-DEBUG:

    move M aralık adres

    Ne var ki imaj dosyasının boyutu, 64 KB segment boyutunu aştığından ' BX = 0 d e ğ i l ', bu komut direkt kullanılamaz, bir başka deyişle, kaydırmalar yapılamaz. Peki elimiz kolumuz bağlandı mı ki_? Yok. Öyleyse_? Okus pokus. Nasıl_? Şöyle:

    Kaydırma yapılamıyorsa, atarız olur biter. : )

    i_ İmaj dosya kod uzunluğu değişecek ise:


    Kod:
    Microsoft(R) Windows DOS
    (C)Telif Hakkı Microsoft Corp 1990-2001.
    
    C:\WINDOWS\SYSTEM32>DEBUG \ILGRAN~1\IL4E7B~1.JPG
    -L
    -R
    AX=0000  BX=0004  CX=AD63  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
    DS=0D86  ES=0D86  SS=0D86  CS=0D86  IP=0100   NV UP EI PL NZ NA PO NC
    0D86:0100 FFD8          CALL    FAR AX
    -
    -D CS:0100, 01E4
    0D86:0100  FF D8 FF E1 00 AC 45 78-69 66 00 00 4D 4D 2A 00   ......Exif..MM*.
    0D86:0110  08 00 00 00 05 00 1A 01-05 00 01 00 00 00 4A 00   ..............J.
    0D86:0120  00 00 1B 01 05 00 01 00-00 00 52 00 00 00 28 01   ..........R...(.
    0D86:0130  03 00 01 00 00 00 00 00-00 00 13 02 03 00 01 00   ................
    0D86:0140  00 00 00 00 00 00 69 87-04 00 01 00 00 00 5A 00   ......i.......Z.
    0D86:0150  00 00 00 00 00 00 48 00-00 00 01 00 00 00 48 00   ......H.......H.
    0D86:0160  00 00 01 00 00 00 06 00-00 90 07 00 04 00 00 00   ................
    0D86:0170  FC F3 DF 03 01 91 07 00-04 00 00 00 FC F3 DF 03   ................
    0D86:0180  00 A0 07 00 04 00 00 00-FC F3 DF 03 01 A0 03 00   ................
    0D86:0190  01 00 00 00 00 00 00 00-02 A0 04 00 01 00 00 00   ................
    0D86:01A0  9B 03 00 00 03 A0 04 00-01 00 00 00 B0 04 00 00   ................
    0D86:01B0  FF E0 00 10 4A 46 49 46-00 01 01 01 00 60 00 60   ....JFIF.....`.`
    0D86:01C0  00 00 FF FE 00 1F 4C 45-41 44 20 54 65 63 68 6E   ......LEAD Techn
    0D86:01D0  6F 6C 6F 67 69 65 73 20-49 6E 63 2E 20 56 31 2E   ologies Inc. V1.
    0D86:01E0  30 31 00 FF C0                                    01...
    -
    -M CS:01AE, 01C1 CS:01CF
    -
    -E CS:01CF FF D8
    -
    -H AD63 00CF
    AE32  AC94
    -
    -RCX
    CX AD63
    :AC94
    -
    -W 01CF
    4AC94 bayt yazılıyor
    -
    -Q
    
    C:\WINDOWS\SYSTEM32>DIR /D \ILGRAN~1\IL4E7B~1.JPG
     C sürücüsündeki birimin etiketi yok.
     Birim Seri Numarası: 40DA-CC8A
    
     C:\ILGRAN~1 dizini
    
    Il Grande Blek N99.jpg
                   1 Dosya          306,324 bayt
                   0 Dizin   13,116,649,472 bayt boş
    
    C:\WINDOWS\SYSTEM32>DEBUG \ILGRAN~1\IL4E7B~1.JPG
    -L
    -R
    AX=0000  BX=0004  CX=AC94  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
    DS=0D86  ES=0D86  SS=0D86  CS=0D86  IP=0100   NV UP EI PL NZ NA PO NC
    0D86:0100 FFD8          CALL    FAR AX
    -
    -D CS:0100, 0115
    0D86:0100  FF D8 FF E0 00 10 4A 46-49 46 00 01 01 01 00 60   ......JFIF.....`
    0D86:0110  00 60 00 00 FF C0                                 .`....
    -
    -Q
    
    C:\WINDOWS\SYSTEM32>
    ; Normalde CS:0102, 01AF adres aralığı atılmalıdır, lakin bu da önünde sonunda kaydırma gerektirir, ki demek ki işe yaramaz.
    ; Öyleyse, CS:0100, 01AD adres aralığı atılır ve CS:01AE artık başlangıç adresidir.
    ; CS:01AE, 01AF başlangıç adres aralığı |FF D8| -> Start Of Image ' olmalıdır. Hâlihazırdaki içeriği ise |00 00|.
    ; CS:01B0, 01C1 |FF E0| JFIF segment ' marker aralığıdır.
    ; 01C1 — 01AE = 13
    ; |FF C0| -> SOF0 ' Start Of Frame 0 marker başlangıç adresi CS:01E3
    ; 01E3 — 1 — 13 = 01CF
    ; CS:01AE, 01C1 aralığı CS:01CF ve sonrasına taşınmalıdır, ki artık başlangıç adresi de CS:01CF olur, ki komutlar da şudur:


    M CS:01AE, 01C1 CS:01CF

    E CS:01CF FF D8 ; Niçin_? CS:01AE, 01AF -> CS:01CF, 01D0 aralığına taşınmaktadır ve |00 00| değil |FF D8| olmalıdır.

    ;................................................. .................................................. ..........................................

    ; Başlangıç, şu şekilde de olabilirdi ' ki elde edilecek sonuç da farksızdır ':

    E CS:01AE FF D8

    M CS:01AE, 01C1 CS:01CF

    ;................................................. .................................................. ..........................................

    -H AD63 00CF
    AE32 AC94

    ; BX:CX = 4AD63 ve imajın başlangıç adresi artık CS:0100 değil, CS:01CF. Niçin_? Başlangıç bytes' ı attığımız için. Öyleyse,

    ; BX:CX — 00CF = 4AC94 ' BX:0004, CX:AC94 '


    -RCX
    CX AD63
    :AC94

    W 01CF ; CS:01CF adresinden itibaren imaj dosyasını diske yaz.





    j_ İmaj dosya kod uzunluğu değişmeyecek ise:

    -H AD63 00CF
    AE32 AC94
    -
    -RCX
    CX AD63
    :AC94

    Tek fark, bu komutların kaldırılmasıdır.

    Artık herhangi bir JP[E]G dosyasından Exif metadata verilerinin kaldırılamaması imkânsızdır. Ne o_? Yoksa öyle değil mi ki_? : )




  5. #5
    Ç. R. Düzenleme
    Üyelik Tarihi
    Nov 2015
    Mesajlar
    346

    Seviye: 37 
    Tecrübe: 1,079,716
    Sonraki Seviye: 1,209,937

    Beğenmiş
    1,742
    Beğenilmiş
    1,580
    Adı Geçen
    0 Konu
    Etiketlendiği
    0 Konu



    II - Elementary Analiz:

    i_ İmaj dosya kod uzunluğu değişecek ise:

    _ Hex Editor -> *.JP[E]G

    ' 00000002 - 00000047 aralığı için ' Cut: Ctrl+X, Shift+Del

    ' 0000005A - 0000007A aralığı için ' Cut: Ctrl+X, Shift+Del






    _ Exit: Alt+F4

    Hex Editor

    Do you want to save changes to the following document(s)?

    Yes No Cancel

    Yes : )








    j_ İmaj dosya kod uzunluğu değişmeyecek ise:

    Artık bunun için uğraşmak gereksizdir.




  6. #6
    Ç. R. Düzenleme
    Üyelik Tarihi
    Nov 2015
    Mesajlar
    346

    Seviye: 37 
    Tecrübe: 1,079,716
    Sonraki Seviye: 1,209,937

    Beğenmiş
    1,742
    Beğenilmiş
    1,580
    Adı Geçen
    0 Konu
    Etiketlendiği
    0 Konu
    III-I - Flavor Analiz:

    *.JP[E]G -> *.WEBP & Internet Explorer -> Address çubuğu: ' Afili Web tarayıcılarından herhangi biri de olabilir tabii ki. '

    C:\Il Grande Blek\Il Grande Blek N99.WEBP

    Kopyala & Başlat -> Çalıştır -> Aç: mspaint






    mspaint:

    Düzen -> Yapıştır: Ctrl+V

    ' Orijinal Genişlik x Yükseklik ve Çözünürlükte olup olmadığının kontrolü için ' Resim -> Öznitelikler...: Ctrl+E

    Genişlik: 640 Yükseklik: 840, Çözünürlük: 102 x 108 dpi

    Genişlik x Yükseklik değişmese de, Çözünürlük, 96 x 96 dpi d e ğ i l. Doğrusu enteresan. : )






    Dosya -> Farklı Kaydet...





    Kod:
    Microsoft(R) Windows DOS
    (C)Telif Hakkı Microsoft Corp 1990-2001.
    
    C:\WINDOWS\SYSTEM32>DEBUG \ILGRAN~1\IL4E7B~1.JPG
    -L
    -R
    AX=0000  BX=0001  CX=43F0  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
    DS=0D86  ES=0D86  SS=0D86  CS=0D86  IP=0100   NV UP EI PL NZ NA PO NC
    0D86:0100 FFD8          CALL    FAR AX
    -
    -D CS:0100, 0115
    0D86:0100  FF D8 FF E0 00 10 4A 46-49 46 00 01 01 01 00 60   ......JFIF.....`
    0D86:0110  00 60 00 00 FF DB                                 .`....
    -
    -Q
    
    C:\WINDOWS\SYSTEM32>\HEX2DEC.EXE 143F0
    
    0x143F0 = 82928
    
    
    C:\WINDOWS\SYSTEM32>DIR /D \ILGRAN~1\IL4E7B~1.JPG
     C sürücüsündeki birimin etiketi yok.
     Birim Seri Numarası: 40DA-CC8A
    
     C:\ILGRAN~1 dizini
    
    Il Grande Blek N99.jpg
                   1 Dosya           82,928 bayt
                   0 Dizin   12,913,106,944 bayt boş
    
    C:\WINDOWS\SYSTEM32>



    N.B.: BX=0004, CX=ACFB ' 0x4ACFB = 306427 byte ' iken, BX=0001, CX=43F0 ' 0x143F0 = 82928 byte ' olmuştur, ki bu da imaj dosya kod uzunluğunun ziyadesiyle ' ~3.7 kat ' azaldığı anlamına gelir, lakin her zaman böyle olmaz.





    İ ç t e n l i k l e...

    Sevgiyle...

  7. #7
    Ç. R. Düzenleme
    Üyelik Tarihi
    Nov 2015
    Mesajlar
    346

    Seviye: 37 
    Tecrübe: 1,079,716
    Sonraki Seviye: 1,209,937

    Beğenmiş
    1,742
    Beğenilmiş
    1,580
    Adı Geçen
    0 Konu
    Etiketlendiği
    0 Konu
    III-J - Flavor Analiz:

    *.JP[E]G -> Birlikte Aç -> Program Seç... XML Editor ->







    Internet Explorer -> Address çubuğu: C:\Il Grande Blek\Il Grande Blek N99.jpg

    Resmi Farklı Kaydet... -> Kayıt türü: Bit Eşlem (*.bmp) ' JPEG (*.jpg) o l m a z. '






    Düzenle -> mspaint: Dosya -> Farklı Kaydet... -> Kayıt türü: JPEG (*.JPG;*.JPEG;*.JPE;*.JFIF)





    Kod:
    Microsoft(R) Windows DOS
    (C)Telif Hakkı Microsoft Corp 1990-2001.
    
    C:\WINDOWS\SYSTEM32>DIR /D \DOCUME~1\EQUES\BELGEL~1\RESIML~1\*.JPG
     C sürücüsündeki birimin etiketi yok.
     Birim Seri Numarası: 40DA-CC8A
    
     C:\DOCUME~1\EQUES\BELGEL~1\RESIML~1 dizini
    
    Il Grande Blek N99.JPG
                   1 Dosya           82,928 bayt
                   0 Dizin   12,423,684,096 bayt boş
    
    C:\WINDOWS\SYSTEM32>DEBUG \DOCUME~1\EQUES\BELGEL~1\RESIML~1\ILGRAN~1.JPG
    -L
    -R
    AX=0000  BX=0001  CX=43F0  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
    DS=0D86  ES=0D86  SS=0D86  CS=0D86  IP=0100   NV UP EI PL NZ NA PO NC
    0D86:0100 FFD8          CALL    FAR AX
    -
    -D CS:0100, 0115
    0D86:0100  FF D8 FF E0 00 10 4A 46-49 46 00 01 01 01 00 60   ......JFIF.....`
    0D86:0110  00 60 00 00 FF DB                                 .`....
    -
    -Q
    
    C:\WINDOWS\SYSTEM32>

    N.B.: III-I & III-J ile elde edilen *.JP[E]Gs' in identik oldukları aşikâr. Tek fark ise şu:

    MS-DOS 8.3 formunda, Il Grande Blek N99.jpg için kısaltma IL4E7B~1.JPG idi. Ne var ki bu defa ILGRAN~1.JPG. Yoksa hexadecimal checksum değişti de ondan mı değişti ki_?

    MS-DOS 8.3 formunda, Il Grande Blek N101.jpg için de kısaltma ILGRAN~1.JPG' tir, ki Il Grande Blek N99.jpg ile de identiktir. Doğrusu enteresan. : )






    İ ç t e n l i k l e...

    Sevgiyle...

FACEBOOK'TA PAYLAŞ
profesyonel web tasarım
© Copyright 2021. Tüm Hakları Saklıdır. Çizgili Kitap | Çizgili Kitap Forum Kuralları