EPSファイルの修復
先週ぼそぼそっとやっていたヤツの続きです。サルベージです。ある特定の方は頭の「サル」に反応します。ピポっ…古いです。まあそんなのはどうでも良い事です。データ拾います。でも壊れています。今回のはEPSファイルです。
まあ、良くある話です。数年前のMOとかから取り出そうとすると良く見受けます。色々とディスク修復作業をやった挙げ句読み出したデータが壊れていたとか、全く笑えないわけです。でも、嘆いてばかりではいられません。前へ進む為には血の滲む様な努力が必要な場合もあります。さあ、みなさん、わたしの屍を乗り越えて前へと進んで下さい。
ヘッダが壊れています。しかしながら本体が正常に残っているケースです。
^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C%%BeginSetup %%EndSetup %ImageData: 3796 5526 8 4 0 1 6 "beginimage" %BeginPhotoshop: 15892 % 3842494D04040000000000071C020000020000003842494D0425000000000010 % E8F15CF32FC118A1A27B67ADC564D5BA3842494D03EA0000000017FF3C3F786D ・ ・ ・ M&mSu;Z0;%./s9/lp%K&s4I‾> %%EndBinary grestore end % Image Trailer grestore grestore % EPS grestore [{nextImage} 1 dict begin /Metadata {photoshop_metadata_stream} def currentdict end /PUT pdfmark [/NamespacePop pdfmark こういった場合は他のEPSファイルよりヘッダ部分をコピペして修復します。 %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Photoshop Version 10.0x001 %%Title: dummy.eps %%CreationDate: 10.8.16 10:08 AM %%BoundingBox: 0 0 683 995 %%HiResBoundingBox: 0 0 682.74 995.22 %%SuppressDotGainCompensation %%DocumentProcessColors: Cyan Magenta Yellow Black %ADO_ContainsXMP: MainFirst %%EndComments %%BeginProlog %%EndProlog %%BeginSetup %%EndSetup
この様なのをコピーして来て破壊された部分を差し替えてあげます。データ本体は%ImageData:〜%%EndBinaryまでの部分です。データの仕様は頭のImageData:で記述されています。この部分とBase64でエンコーディングされた本体部分の整合性が取れていれば問題なく開くはずです。なお、フッタが壊れているのはそのまま開く事が可能です。エンコーディングのかかった本体部分の破壊は…あきらめましょう(^-^;)/
もう一つ例を挙げておきましょう。
ÿÿ © %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Photoshop Version 14.2.1 20140207.r.570 2014/02/07:23:00:00 %%Title: ì¬qÇàcï.eps %%CreationDate: 2014/03/25 14:00 %%BoundingBox: 0 0 425 284 %%HiResBoundingBox: 0 0 424.8 283.5 %%SuppressDotGainCompensation %%DocumentProcessColors: Cyan Magenta Yellow Black %ADO_ContainsXMP: MainFirst %%EndComments %%BeginProlog %%EndProlog %%BeginSetup %%EndSetup %ImageData: 2360 1575 8 4 0 1 6 "beginimage" %BeginPhotoshop: 10426 % 3842494D040400000000002C1C015A00031B25471C0200000200001C02370008 % 32303133303833301C023C000B3039353733362B303030303842494D04250000 % 00000010A217CB9E071F9D1A8C414D9CD22C22503842494D043A0000000000E3 % 000000100000000100000000000B7072696E744F757470757400000005000000 % 0050737453626F6F6C0100000000496E7465656E756D00000000496E74650000 % 0000496D67200000000F7072696E745369787465656E426974626F6F6C000000 % 000B7072696E7465724E616D6554455854000000070037003000300044004300 % 5000000000000F7072696E7450726F6F6653657475704F626A63000000056821 % 6B638A2D5B9A00000000000A70726F6F6653657475700000000100000000426C % 746E656E756D0000000C6275696C74696E50726F6F660000000970726F6F6643 % 4D594B003842494D043B00000000022D00000010000000010000000000127072 ・ ・ ・ % FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF % FFFFFFFFFFFFFFFFFFFFFFFFFF000000 %%EndICCProfile %begin_xml_code /pdfmark where {pop true} {false} ifelse /currentdistillerparams where {pop currentdistillerparams /CoreDistVersion get 5000 ge } {false} ifelse and not {userdict /pdfmark /cleartomark load put} if [/NamespacePush pdfmark [/_objdef {photoshop_metadata_stream} /type /stream /OBJ pdfmark /MetadataString 15868 string def % exact length of metadata /TempString 100 string def /ConsumeMetadata { currentfile TempString readline pop pop currentfile MetadataString readstring pop pop } bind def ConsumeMetadata %begin_xml_packet: 15868 <?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151805, 2013/04/09-12:08:21 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:aux="http://ns.adobe.com/exif/1.0/aux/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmp:CreatorTool="Ver.1.00 " xmp:ModifyDate="2014-03-25T14:00:13+09:00" xmp:CreateDate="2013-08-30T09:57:36" xmp:MetadataDate="2014-08-22T09:38:36+09:00" aux:SerialNumber="2004310" aux:LensInfo="180/10 1050/10 35/10 56/10" aux:Lens="18.0-105.0 mm f/3.5-5.6" aux:LensID="158" aux:ImageNumber="3574" aux:ApproximateFocusDistance="282/100" photoshop:DateCreated="2013-08-30T09:57:36.008" photoshop:ColorMode="4" photoshop:ICCProfile="Japan Color 2001 Coated" xmpMM:DocumentID="97E2D477F9329CF9037852CBBD3A51A6" xmpMM:InstanceID="xmp.iid:e864fd57-c50e-47a1-b4f7-e12759b8bd32" xmpMM:OriginalDocumentID="97E2D477F9329CF9037852CBBD3A51A6" dc:format="image/epsf"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:957d69d5-ada1-4c1b-a3c7-3092740c7d99" stEvt:when="2014-03-25T14:00:13+09:00" stEvt:softwareAgent="Adobe Photoshop CC (Macintosh)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from image/jpeg to image/epsf"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from image/jpeg to image/epsf"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:3c3995fd-aaf0-40e1-b9c3-ed11d759c68c" stEvt:when="2014-03-25T14:00:13+09:00" stEvt:softwareAgent="Adobe Photoshop CC (Macintosh)" stEvt:changed="/"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:bfdd0d44-752f-44ec-ba8b-fd8542884dc1" stEvt:when="2014-08-22T09:37:36+09:00" stEvt:softwareAgent="Adobe Bridge CC (Macintosh)" stEvt:changed="/metadata"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:e864fd57-c50e-47a1-b4f7-e12759b8bd32" stEvt:when="2014-08-22T09:38:36+09:00" stEvt:softwareAgent="Adobe Bridge CC (Macintosh)" stEvt:changed="/metadata"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:957d69d5-ada1-4c1b-a3c7-3092740c7d99" stRef:documentID="97E2D477F9329CF9037852CBBD3A51A6" stRef:originalDocumentID="97E2D477F9329CF9037852CBBD3A51A6"/> <dc:rights> <rdf:Alt> <rdf:li xml:lang="x-default"> </rdf:li> </rdf:Alt> </dc:rights> </rdf:Description> </rdf:RDF> </x:xmpmeta> ・ ・ ・ <?xpacket end="w"?> %end_xml_packet [{photoshop_metadata_stream} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark [{photoshop_metadata_stream} MetadataString /PUT pdfmark [/_objdef {nextImage} /NI pdfmark %end_xml_code gsave % EPS gsave /hascolor /deviceinfo where {pop deviceinfo /Colors known {deviceinfo /Colors get exec 1 gt} {false} ifelse} {/statusdict where {pop statusdict /processcolors known {statusdict /processcolors get exec 1 gt} {false} ifelse} {false} ifelse} ifelse def 40 dict begin /_image systemdict /image get def /_setgray systemdict /setgray get def /_currentgray systemdict /currentgray get def /_settransfer systemdict /settransfer get def /_currenttransfer systemdict /currenttransfer get def /blank 0 _currenttransfer exec 1 _currenttransfer exec eq def /negative blank {0 _currenttransfer exec 0.5 lt} {0 _currenttransfer exec 1 _currenttransfer exec gt} ifelse def /inverted? negative def /level2 systemdict /languagelevel known {languagelevel 2 ge} {false} ifelse def /level3 systemdict /languagelevel known {languagelevel 3 ge} {false} ifelse def level2 {/band 0 def} {/band 5 def} ifelse gsave % Image Header gsave gsave newpath 0 0 moveto 0 1 lineto 1 1 lineto 1 0 lineto 0 0 lineto clip newpath 1 setlinewidth /setcmykcolor where {pop 1 1 1 1 setcmykcolor 100 100 moveto 101 101 lineto stroke } if grestore /rows 1575 def /cols 2360 def 424.8 283.5 scale level2 { /DeviceCMYK setcolorspace currentdict /PhotoshopDuotoneColorSpace undef currentdict /PhotoshopDuotoneAltColorSpace undef } if /beginimage level2 {/image load def} {{pop .9 setgray 0 0 moveto 0 1 lineto 1 1 lineto 1 0 lineto fill 0 setgray 0 1 translate 1 cols div 1 rows div scale /ratio {cols 400 div mul} def /Helvetica findfont 15 ratio scalefont setfont 5 ratio -20 ratio moveto (JPEG \211\346\221\234\202\311\202\315\203|\203X\203g\203X\203N\203\212\203v\203g \203\214\203x\203\213 2 \202\252\225K\227v) show /x 128 string def {currentfile x readline {} {pop exit} ifelse (~>) search {pop pop pop exit} {pop} ifelse } loop } def} ifelse 12 dict begin /ImageType 1 def /Width cols def /Height rows def /ImageMatrix [cols 0 0 rows neg 0 rows] def /BitsPerComponent 8 def /Decode [0 1 0 1 0 1 0 1] def /DataSource currentfile /ASCII85Decode filter /DCTDecode filter def currentdict end %%BeginBinary: 3652448 beginimage s4IA>!"M;*Ddm8XA,lT0!!*&R!(-_f!WiH*!sAZ,"9eo1"9eu5"U,&6#R:S>#6tMB #mgnE#mgtI$O[=M$O[@O$k*OQ$k*OQ$k*OQ$k*OQ$k*RE^]5&S"t'^:"9B)7!YGD7 &HDqG!<:jT"9BnM_uS3c!!!6)!<E3%zz"9el/"p"]/#RLhG&-)b4!s8T-!X8l3"9Jc/ Erc=E&Hi(;+VHLq;$I\B,&r/J16J78'sU(M_,A\>1DXHh,]\M,,ssLfP+o6lF2Be& -^1=32A]>'FMlPd#UY01$5aY6PXS';ZrYXU-lV[:o>K/>oOW0!Q)1n-e`HI9G(u<[ [`6n\p,>KCB6T,tVmj^ukP$r,=D2r8R&IO9f]`)Z3D!@fH&7rg\]NOhq'nEt>&&A@ R]<sAg?SP7g&MTc!<<0$!rrH(!'^JZfB'Cm)B_g"N3qqmk22KcjB590)eY)AM&3:n PZFTM9bd?V5<nsF%cci<odMrRg`<W9q@Q7FO6n3m:WjCB`%s7>9ctF(8eO5;__uWH *Qu\Q<N:RQLLHAG!%^YRmErDGj64DLb?NXBe3:%<=o!:@>hCOg7HVZ#5nt7[]G.lB O**PFj3:-D?<epglH%5bb.gD^.@t-r/Qh@?@PRt)3*X2BGP.=CoB"^g6Q:`Q=]c>3 ZY*2,lP!gE0eB0A+)L7L8<T:e.WcYaCYQ`i+8J-?mqjj`ZO%=$nK51*F'q^2\QEZs `2ZV<`H=&8SB<mLP_7q"B:.\Eo#a@cK"P"`;o+"/MeI.7e/fq(dLO$q!dRa,/?s:! T(VU1Hia%kG`[ab_"sRg.g&$:lX(Xa%$3#G8Zq]hL)`K^XX&o&mQ[jsfO9M/$M!HJ "'%"^7=V1N%<"6FE[l1nebTaffT(8bVZ-Y&.3C#ZL&!e!8*0W8D*a1J.HD"YVl9GJ @N)V*9/tbL58M%Eof"6l.\KdGA(Ls$L.t$$oc/^?A.B;r"D5o!i(7i@hs?r(iF]%( >MDeC\&2**mua4sbns_Ikb?/Jpq@EaJs>0-d@2H]?$D4O#XP-VU22[8IrXTNBuHD` 2=!uO?:O?Uh"dX[XP0B)5F1<BHY+/aD^F3k`M2..j2eOKTncHY>kW)tDM(9==-"\= RZ%Do48h2)T?8[KL>l=V5947!6Oqqlh0njBjLN3-d>8//!!JO$D3>:FKrY?6+-7`` l!!lUq.0A0\W;lY]8P2jKS*'Un,6`Drb6.kR4V_lA20Z.^]<c[8a\V]*0b`+8:<d> /7lXb`Q6](T8;][r&aJ.OGBD_)5oINDD^!n_8UeR@u>Qb'rs^?)L\&rq2a'\T9fKW </%-)(oo0*63&P6^H^\4rrA=i>JkS@H.2r#?n/P\2*JeQ`ZI"O)'KI3Vk\G2AC>^7 R3a/)"_r\EjhCQS9fn#U]e<3G+>"h,WfLP/YH1YbG7&nmOp3PnWr.F`.r;qlW+mY[ glDsJo>"5?nu-o8qT@=jTVouI%FqRLq?O9:&OJLDMM/29ii)]hJL%I8a@,H11el0P m\?^2hqJ3=-e?<GLLR0!5I3uTrjZXhqU'^tjh3r+!<cG]g7QD/Fr&P3,H0U4%*DBu $!R;#III<maaFh,gqTdn\28SZ-Y<U_pD>BqI8NZr`2%$d[FgMX@pu^QJ.Z=?2'"q, M>(?ZK2&SS\m();V"Ao_iY`T=*l3uM!\e2fS/QI'dfW)D.l;)8N/iIa4e(X*_"Z-@ ]Ih^2WX*2W&!,+gmmpD[i,Qr%Tl%fiooB]?P$+U<=!"H'*%S'IGQV7;:?-coC6?Ot gVF$:m-LgZ8R<NlhO@Ml&V9AR@tnBF>##-X"\Td.VbA_Q^JT6[7]2+q)"1C%f>=/? 'P^Q>@<ku*mX7Or_+Kg^kg\i_dr"T<;q2Z8;%Z3U0LYQcW?f0'2*+\+_^7(5Bf3*H ;*YXl_j$4I(+(Ma;Liklo_NSsD[iNe\@Pem;0]kC&LDc$L.bs,fVC:@<?V[f^]]mJ rUd6?kT/_b5jkAMrGq;"9/`(a;-I[K3O_jZ(T=CU!kZJ"duf_Ec.EYUcshuMoi@A< N))"H;_]$Od+?:.qdj!f/2@KCPl5!hhdESW^q3"U,q"fZTE.FNaM*_0qR=Wubb<pX .S/G"PWaN<p?dMOIBph7+4b&"m&YI(8L`G>*t/L2.lfb;=,_e*NqKS\W!#"6I<n0# +>p?4?FB=F6>3E:0;;U4G\QF::+a!Zq"S9WV6.1eE,Q#,Y+d&>F]'1GEpHZ_M[P8L bcs<W%esOU"8Z(7XJS%`,*XrK!u8AqD>9U4)jaSOPa)s`No88ch[Ju4MGI#Ee#02Z -Rpe:;lJH#Q;P8_BM;;9cFlanD[KudGo.fSeAurWW8$Ef95AP?=QS#oMFljj,ik1: ]m\5M!Que=QI/2:nNF\K)q73^;qdf.Pd//=',;KiGb5Uf1pR^6,UphM3&+aP]5R)q 9W\Y;]fPE@O=Wp6L(!^CO,6"iiS+H;b1>9s]:(VLQ7ku-+,QVt8aGs3gBL(pO-B+3 )UKRB<!].8<^j$=:YkDmG8c1\U!EK<5f0%Apdt3)^YRWQc-O>[Wt5:tgS*8B/%p,B ;7pc]q9V[?:^';u=I%nPNYG$X^njIaV@c+*Ch/dqLtpVr$BL$=h,nn1ID)2QW^Y*q 1WRcU$dD5?m<B,Na]9U?gb7A''h(--@,!1;<C+)$A0[&'[]e0Nl%KYb3RkYg*fXJ! ?Cj<g#8mu9WYJ&aE[-7ma4dEKf;DB!"/0C;0gl=8[0LLXP6bICdf%ciY<WVGQR!2$ ]1?UE,EYtF\H8GU^gQpTmGaEd%;eY0$+4QY2=MG+/cm]!kW&,1ECaRH$k/i&l:lX! gED_M1<Pp%""U#hL`A\bWdg"IWZ^gRW(Rc9%&(BJ3:d$3r-e)`i`M8EA7dT?4W!3R D7uGD7k@cITfeCQ^FE[iqHE+B43perT&amV8>&9YILhd"(abA^Vms?aAXZ32mhO(_ 1Ks\jnF47mh5jRd;UsL7LX.Gp"gJ[inl@*=3Y-<!JtpjK[/dFs%2pq[=9,DWPCb0o O;)54;BjWRYZ1@7o^Tk,Q.#gip]W'Fp&</9F#2,tMj>d'E8h*%!)J>AXi%eGHDD_d Ko/\_(&<%=MU+E:nuVSG@YbcY@K72hg^]^A<h_%3=O<X>2$UEOis_\LUp3;8Vh#l$ 8+amqf"20d4B?XD$3("=E5_5gp`A)8FW=?)kZYIa<j'i`Ga7$'gjH?G>B;QTOSgs& hs%rn$6tL"-m0'17b`:K*&btqns2aG'e8$,(AVhuj-ja@BNOLn:f&iSq`pTnhfF?B Ys?KMG2,oVLbVoh;M:2meC=Ec<08cEY)fMLT3#Y8W(dRGp4:s2Pf%2)l*JBa-?Wj" 44O8V4'/;)C\&d.l^+D++<0hqU!GTF@El\j\mD.u8l-P>rr?Xurr=onQ7*l=Z7Ok$ `WK'8/1\L2f0$84U7sf"oi.,H.F8R!]sEOPb0f!"E?(MUgS_c)*Ek6FirCPH2U<<; NY\qM*md:^8JuMF7B_.2Q+3O/I\A>9>+.LW#B%'cPTQq@>0mm3HfS7!A<t?qM1fIg %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Photoshop Version 10.0x001 %%Title: test.eps %%CreationDate: 10.8.16 10:08 AM %%BoundingBox: 0 0 683 995 %%HiResBoundingBox: 0 0 682.74 995.22 %%SuppressDotGainCompensation %%DocumentProcessColors: Cyan Magenta Yellow Black %ADO_ContainsXMP: MainFirst %%EndComments %%BeginProlog %%EndProlog %%BeginSetup %%EndSetup %ImageData: 3796 5526 8 4 0 1 6 "beginimage" %BeginPhotoshop: 15892 % 3842494D04040000000000071C020000020000003842494D0425000000000010 % E8F15CF32FC118A1A27B67ADC564D5BA3842494D03EA0000000017FF3C3F786D ・ ・ ・ M&mSu;Z0;%./s9/lp%K&s4I‾> %%EndBinary grestore end % Image Trailer grestore grestore % EPS grestore [{nextImage} 1 dict begin /Metadata {photoshop_metadata_stream} def currentdict end /PUT pdfmark [/NamespacePop pdfmark<sag?sp7g&mtc!<<0$!rrh(!'^jzfb'cm)b_g"n3qqmk22kcjb590)ey)am&3:n pzftm9bd?v5<nsf%cci<odmrrg`<n:rqllhag!%^yrmerdgj64dlb?nxbe3:%<t:e.wcyacyq`i+8j-?mqjj`zo%=$nk51*f'q^2\qezs `2zv<`h="&8SB<mLP_7q"B:.\Eo#a@cK"P"`;o+"/MeI.7e/fq(dLO$q!dRa,/?s:!" t(vu1hia%kg`[ab_"srg.g&$:lx(xa%$3#g8zq]hl)`k^xx&o&mq[jsfo9m="" $m!hj="" "'%"^7="V1N%<c[8a\v]*0b`+8:<gllr0!5i3utrjzxhqu'^tjh3r+!<cg]g7qd fr&p3,h0u4%*dbu="" $!r;#iii<maafh,gqtdn\28sz-y<ku*mx7or_+kg^kg\i_dr"t<;q2z8;%z3u0lyqcw?f0'2*+\+_^7(5bf3*h ;*yxl_j$4i(+(ma;liklo_nssd[ine\@pem;0]kc&ldc$l.bs,fvc:@<?v[f^]]mj="" rud6?kt="" _b5jkamrgq;"9="" `(a;-i[k3o_jz(t="CU!kZJ"duf_Ec.EYUcshuMoi@A<" n))"h;_]$od+?:.qdj!f="" 2@kcpl5!hhdesw^q3"u,q"fzte.fnam*_0qr="Wubb<pX" .s=" " g"pwan <b,na]9u?gb7a''h(--@,!1;<c+)$a0[&'[]e0nl%kyb3rkyg*fxj! ?cj<g#8mu9wyj&ae[-7ma4dekf;db!"="" 0c;0gl="8[0LLXP6bICdf%ciY<WVGQR!2$" ]1?ue,eytf\h8gu^gqptmgaed%;ey0$+4qy2="MG+/cm]!kW&,1ECaRH$k/i&l:lX!" ged_m1<h_%3=o</h_%3=o</b,na]9u?gb7a''h(--@,!1;</ku*mx7or_+kg^kg\i_dr"t</gllr0!5i3utrjzxhqu'^tjh3r+!</c[8a\v]*0b`+8:</n:rqllhag!%^yrmerdgj64dlb?nxbe3:%</sag?sp7g&mtc!<
頭の部分に正常なヘッダが見受けられます。しかし、下へスクロールして行くとデータ領域途中に再びヘッダが現れる例です。
このケースでは、ほとんどの場合2番目のヘッダ以降が最終的に書き込まれたファイルです。2番目のヘッダ以降のデータ構造をチェックしながらフッタまで確認し、構造が正常であれば2番目のヘッダ以前の部分を削除して保存するだけでファイルを抽出する事が出来ます。