Advertisement

06.03.2008 at 11:09PM PDT, ID: 23455698
[x]
Attachment Details

Buffer Bomb Problem

Asked by ckehoe in Assembly Programming Language

Tags: Assembly

Here is the object dump of my the bomb program:


bufbomb:     file format elf32-i386

Disassembly of section .init:

080486c8 <_init>:
 80486c8:      55                         push   %ebp
 80486c9:      89 e5                      mov    %esp,%ebp
 80486cb:      53                         push   %ebx
 80486cc:      83 ec 04                   sub    $0x4,%esp
 80486cf:      e8 00 00 00 00             call   80486d4 <_init+0xc>
 80486d4:      5b                         pop    %ebx
 80486d5:      81 c3 14 1a 00 00          add    $0x1a14,%ebx
 80486db:      8b 93 fc ff ff ff          mov    0xfffffffc(%ebx),%edx
 80486e1:      85 d2                      test   %edx,%edx
 80486e3:      74 05                      je     80486ea <_init+0x22>
 80486e5:      e8 5e 00 00 00             call   8048748 <__gmon_start__@plt>
 80486ea:      e8 41 02 00 00             call   8048930 <frame_dummy>
 80486ef:      e8 ac 0d 00 00             call   80494a0 <__do_global_ctors_aux>
 80486f4:      58                         pop    %eax
 80486f5:      5b                         pop    %ebx
 80486f6:      c9                         leave  
 80486f7:      c3                         ret    
Disassembly of section .plt:

080486f8 <sprintf@plt-0x10>:
 80486f8:      ff 35 ec a0 04 08          pushl  0x804a0ec
 80486fe:      ff 25 f0 a0 04 08          jmp    *0x804a0f0
 8048704:      00 00                      add    %al,(%eax)
      ...

08048708 <sprintf@plt>:
 8048708:      ff 25 f4 a0 04 08          jmp    *0x804a0f4
 804870e:      68 00 00 00 00             push   $0x0
 8048713:      e9 e0 ff ff ff             jmp    80486f8 <_init+0x30>

08048718 <srand@plt>:
 8048718:      ff 25 f8 a0 04 08          jmp    *0x804a0f8
 804871e:      68 08 00 00 00             push   $0x8
 8048723:      e9 d0 ff ff ff             jmp    80486f8 <_init+0x30>

08048728 <random@plt>:
 8048728:      ff 25 fc a0 04 08          jmp    *0x804a0fc
 804872e:      68 10 00 00 00             push   $0x10
 8048733:      e9 c0 ff ff ff             jmp    80486f8 <_init+0x30>

08048738 <signal@plt>:
 8048738:      ff 25 00 a1 04 08          jmp    *0x804a100
 804873e:      68 18 00 00 00             push   $0x18
 8048743:      e9 b0 ff ff ff             jmp    80486f8 <_init+0x30>

08048748 <__gmon_start__@plt>:
 8048748:      ff 25 04 a1 04 08          jmp    *0x804a104
 804874e:      68 20 00 00 00             push   $0x20
 8048753:      e9 a0 ff ff ff             jmp    80486f8 <_init+0x30>

08048758 <calloc@plt>:
 8048758:      ff 25 08 a1 04 08          jmp    *0x804a108
 804875e:      68 28 00 00 00             push   $0x28
 8048763:      e9 90 ff ff ff             jmp    80486f8 <_init+0x30>

08048768 <system@plt>:
 8048768:      ff 25 0c a1 04 08          jmp    *0x804a10c
 804876e:      68 30 00 00 00             push   $0x30
 8048773:      e9 80 ff ff ff             jmp    80486f8 <_init+0x30>

08048778 <memset@plt>:
 8048778:      ff 25 10 a1 04 08          jmp    *0x804a110
 804877e:      68 38 00 00 00             push   $0x38
 8048783:      e9 70 ff ff ff             jmp    80486f8 <_init+0x30>

08048788 <__libc_start_main@plt>:
 8048788:      ff 25 14 a1 04 08          jmp    *0x804a114
 804878e:      68 40 00 00 00             push   $0x40
 8048793:      e9 60 ff ff ff             jmp    80486f8 <_init+0x30>

08048798 <_IO_getc@plt>:
 8048798:      ff 25 18 a1 04 08          jmp    *0x804a118
 804879e:      68 48 00 00 00             push   $0x48
 80487a3:      e9 50 ff ff ff             jmp    80486f8 <_init+0x30>

080487a8 <__ctype_b_loc@plt>:
 80487a8:      ff 25 1c a1 04 08          jmp    *0x804a11c
 80487ae:      68 50 00 00 00             push   $0x50
 80487b3:      e9 40 ff ff ff             jmp    80486f8 <_init+0x30>

080487b8 <fclose@plt>:
 80487b8:      ff 25 20 a1 04 08          jmp    *0x804a120
 80487be:      68 58 00 00 00             push   $0x58
 80487c3:      e9 30 ff ff ff             jmp    80486f8 <_init+0x30>

080487c8 <getopt@plt>:
 80487c8:      ff 25 24 a1 04 08          jmp    *0x804a124
 80487ce:      68 60 00 00 00             push   $0x60
 80487d3:      e9 20 ff ff ff             jmp    80486f8 <_init+0x30>

080487d8 <fopen@plt>:
 80487d8:      ff 25 28 a1 04 08          jmp    *0x804a128
 80487de:      68 68 00 00 00             push   $0x68
 80487e3:      e9 10 ff ff ff             jmp    80486f8 <_init+0x30>

080487e8 <alarm@plt>:
 80487e8:      ff 25 2c a1 04 08          jmp    *0x804a12c
 80487ee:      68 70 00 00 00             push   $0x70
 80487f3:      e9 00 ff ff ff             jmp    80486f8 <_init+0x30>

080487f8 <strcpy@plt>:
 80487f8:      ff 25 30 a1 04 08          jmp    *0x804a130
 80487fe:      68 78 00 00 00             push   $0x78
 8048803:      e9 f0 fe ff ff             jmp    80486f8 <_init+0x30>

08048808 <printf@plt>:
 8048808:      ff 25 34 a1 04 08          jmp    *0x804a134
 804880e:      68 80 00 00 00             push   $0x80
 8048813:      e9 e0 fe ff ff             jmp    80486f8 <_init+0x30>

08048818 <srandom@plt>:
 8048818:      ff 25 38 a1 04 08          jmp    *0x804a138
 804881e:      68 88 00 00 00             push   $0x88
 8048823:      e9 d0 fe ff ff             jmp    80486f8 <_init+0x30>

08048828 <fwrite@plt>:
 8048828:      ff 25 3c a1 04 08          jmp    *0x804a13c
 804882e:      68 90 00 00 00             push   $0x90
 8048833:      e9 c0 fe ff ff             jmp    80486f8 <_init+0x30>

08048838 <fprintf@plt>:
 8048838:      ff 25 40 a1 04 08          jmp    *0x804a140
 804883e:      68 98 00 00 00             push   $0x98
 8048843:      e9 b0 fe ff ff             jmp    80486f8 <_init+0x30>

08048848 <remove@plt>:
 8048848:      ff 25 44 a1 04 08          jmp    *0x804a144
 804884e:      68 a0 00 00 00             push   $0xa0
 8048853:      e9 a0 fe ff ff             jmp    80486f8 <_init+0x30>

08048858 <cuserid@plt>:
 8048858:      ff 25 48 a1 04 08          jmp    *0x804a148
 804885e:      68 a8 00 00 00             push   $0xa8
 8048863:      e9 90 fe ff ff             jmp    80486f8 <_init+0x30>

08048868 <fputc@plt>:
 8048868:      ff 25 4c a1 04 08          jmp    *0x804a14c
 804886e:      68 b0 00 00 00             push   $0xb0
 8048873:      e9 80 fe ff ff             jmp    80486f8 <_init+0x30>

08048878 <puts@plt>:
 8048878:      ff 25 50 a1 04 08          jmp    *0x804a150
 804887e:      68 b8 00 00 00             push   $0xb8
 8048883:      e9 70 fe ff ff             jmp    80486f8 <_init+0x30>

08048888 <rand@plt>:
 8048888:      ff 25 54 a1 04 08          jmp    *0x804a154
 804888e:      68 c0 00 00 00             push   $0xc0
 8048893:      e9 60 fe ff ff             jmp    80486f8 <_init+0x30>

08048898 <tempnam@plt>:
 8048898:      ff 25 58 a1 04 08          jmp    *0x804a158
 804889e:      68 c8 00 00 00             push   $0xc8
 80488a3:      e9 50 fe ff ff             jmp    80486f8 <_init+0x30>

080488a8 <__strdup@plt>:
 80488a8:      ff 25 5c a1 04 08          jmp    *0x804a15c
 80488ae:      68 d0 00 00 00             push   $0xd0
 80488b3:      e9 40 fe ff ff             jmp    80486f8 <_init+0x30>

080488b8 <exit@plt>:
 80488b8:      ff 25 60 a1 04 08          jmp    *0x804a160
 80488be:      68 d8 00 00 00             push   $0xd8
 80488c3:      e9 30 fe ff ff             jmp    80486f8 <_init+0x30>
Disassembly of section .text:

080488d0 <_start>:
 80488d0:      31 ed                      xor    %ebp,%ebp
 80488d2:      5e                         pop    %esi
 80488d3:      89 e1                      mov    %esp,%ecx
 80488d5:      83 e4 f0                   and    $0xfffffff0,%esp
 80488d8:      50                         push   %eax
 80488d9:      54                         push   %esp
 80488da:      52                         push   %edx
 80488db:      68 30 94 04 08             push   $0x8049430
 80488e0:      68 40 94 04 08             push   $0x8049440
 80488e5:      51                         push   %ecx
 80488e6:      56                         push   %esi
 80488e7:      68 00 91 04 08             push   $0x8049100
 80488ec:      e8 97 fe ff ff             call   8048788 <__libc_start_main@plt>
 80488f1:      f4                         hlt    
 80488f2:      90                         nop    
 80488f3:      90                         nop    
 80488f4:      90                         nop    
 80488f5:      90                         nop    
 80488f6:      90                         nop    
 80488f7:      90                         nop    
 80488f8:      90                         nop    
 80488f9:      90                         nop    
 80488fa:      90                         nop    
 80488fb:      90                         nop    
 80488fc:      90                         nop    
 80488fd:      90                         nop    
 80488fe:      90                         nop    
 80488ff:      90                         nop    

08048900 <__do_global_dtors_aux>:
 8048900:      55                         push   %ebp
 8048901:      89 e5                      mov    %esp,%ebp
 8048903:      83 ec 08                   sub    $0x8,%esp
 8048906:      80 3d a8 a1 04 08 00       cmpb   $0x0,0x804a1a8
 804890d:      74 0c                      je     804891b <__do_global_dtors_aux+0x1b>
 804890f:      eb 1c                      jmp    804892d <__do_global_dtors_aux+0x2d>
 8048911:      83 c0 04                   add    $0x4,%eax
 8048914:      a3 6c a1 04 08             mov    %eax,0x804a16c
 8048919:      ff d2                      call   *%edx
 804891b:      a1 6c a1 04 08             mov    0x804a16c,%eax
 8048920:      8b 10                      mov    (%eax),%edx
 8048922:      85 d2                      test   %edx,%edx
 8048924:      75 eb                      jne    8048911 <__do_global_dtors_aux+0x11>
 8048926:      c6 05 a8 a1 04 08 01       movb   $0x1,0x804a1a8
 804892d:      c9                         leave  
 804892e:      c3                         ret    
 804892f:      90                         nop    

08048930 <frame_dummy>:
 8048930:      55                         push   %ebp
 8048931:      89 e5                      mov    %esp,%ebp
 8048933:      83 ec 08                   sub    $0x8,%esp
 8048936:      a1 10 a0 04 08             mov    0x804a010,%eax
 804893b:      85 c0                      test   %eax,%eax
 804893d:      74 12                      je     8048951 <frame_dummy+0x21>
 804893f:      b8 00 00 00 00             mov    $0x0,%eax
 8048944:      85 c0                      test   %eax,%eax
 8048946:      74 09                      je     8048951 <frame_dummy+0x21>
 8048948:      c7 04 24 10 a0 04 08       movl   $0x804a010,(%esp)
 804894f:      ff d0                      call   *%eax
 8048951:      c9                         leave  
 8048952:      c3                         ret    
 8048953:      90                         nop    
 8048954:      90                         nop    
 8048955:      90                         nop    
 8048956:      90                         nop    
 8048957:      90                         nop    
 8048958:      90                         nop    
 8048959:      90                         nop    
 804895a:      90                         nop    
 804895b:      90                         nop    
 804895c:      90                         nop    
 804895d:      90                         nop    
 804895e:      90                         nop    
 804895f:      90                         nop    

08048960 <save_char>:
 8048960:      8b 0d e0 a1 04 08          mov    0x804a1e0,%ecx
 8048966:      55                         push   %ebp
 8048967:      89 e5                      mov    %esp,%ebp
 8048969:      53                         push   %ebx
 804896a:      89 c3                      mov    %eax,%ebx
 804896c:      81 f9 ff 03 00 00          cmp    $0x3ff,%ecx
 8048972:      7f 37                      jg     80489ab <save_char+0x4b>
 8048974:      c0 f8 04                   sar    $0x4,%al
 8048977:      83 e0 0f                   and    $0xf,%eax
 804897a:      0f b6 80 88 9a 04 08       movzbl 0x8049a88(%eax),%eax
 8048981:      8d 14 49                   lea    (%ecx,%ecx,2),%edx
 8048984:      c6 82 02 a2 04 08 20       movb   $0x20,0x804a202(%edx)
 804898b:      88 82 00 a2 04 08          mov    %al,0x804a200(%edx)
 8048991:      89 d8                      mov    %ebx,%eax
 8048993:      83 e0 0f                   and    $0xf,%eax
 8048996:      0f b6 80 88 9a 04 08       movzbl 0x8049a88(%eax),%eax
 804899d:      88 82 01 a2 04 08          mov    %al,0x804a201(%edx)
 80489a3:      8d 41 01                   lea    0x1(%ecx),%eax
 80489a6:      a3 e0 a1 04 08             mov    %eax,0x804a1e0
 80489ab:      5b                         pop    %ebx
 80489ac:      5d                         pop    %ebp
 80489ad:      c3                         ret    
 80489ae:      66 90                      xchg   %ax,%ax

080489b0 <entry_check>:
 80489b0:      55                         push   %ebp
 80489b1:      89 e5                      mov    %esp,%ebp
 80489b3:      8b 45 08                   mov    0x8(%ebp),%eax
 80489b6:      5d                         pop    %ebp
 80489b7:      a3 74 a1 04 08             mov    %eax,0x804a174
 80489bc:      c3                         ret    
 80489bd:      8d 76 00                   lea    0x0(%esi),%esi

080489c0 <illegalhandler>:
 80489c0:      55                         push   %ebp
 80489c1:      89 e5                      mov    %esp,%ebp
 80489c3:      83 ec 08                   sub    $0x8,%esp
 80489c6:      c7 04 24 f0 94 04 08       movl   $0x80494f0,(%esp)
 80489cd:      e8 a6 fe ff ff             call   8048878 <puts@plt>
 80489d2:      c7 04 24 64 98 04 08       movl   $0x8049864,(%esp)
 80489d9:      e8 9a fe ff ff             call   8048878 <puts@plt>
 80489de:      c7 04 24 00 00 00 00       movl   $0x0,(%esp)
 80489e5:      e8 ce fe ff ff             call   80488b8 <exit@plt>
 80489ea:      8d b6 00 00 00 00          lea    0x0(%esi),%esi

080489f0 <alarmhandler>:
 80489f0:      55                         push   %ebp
 80489f1:      89 e5                      mov    %esp,%ebp
 80489f3:      83 ec 08                   sub    $0x8,%esp
 80489f6:      a1 78 a1 04 08             mov    0x804a178,%eax
 80489fb:      c7 04 24 1c 95 04 08       movl   $0x804951c,(%esp)
 8048a02:      89 44 24 04                mov    %eax,0x4(%esp)
 8048a06:      e8 fd fd ff ff             call   8048808 <printf@plt>
 8048a0b:      c7 04 24 64 98 04 08       movl   $0x8049864,(%esp)
 8048a12:      e8 61 fe ff ff             call   8048878 <puts@plt>
 8048a17:      c7 04 24 00 00 00 00       movl   $0x0,(%esp)
 8048a1e:      e8 95 fe ff ff             call   80488b8 <exit@plt>
 8048a23:      8d b6 00 00 00 00          lea    0x0(%esi),%esi
 8048a29:      8d bc 27 00 00 00 00       lea    0x0(%edi),%edi

08048a30 <seghandler>:
 8048a30:      55                         push   %ebp
 8048a31:      89 e5                      mov    %esp,%ebp
 8048a33:      83 ec 08                   sub    $0x8,%esp
 8048a36:      c7 04 24 50 95 04 08       movl   $0x8049550,(%esp)
 8048a3d:      e8 36 fe ff ff             call   8048878 <puts@plt>
 8048a42:      c7 04 24 64 98 04 08       movl   $0x8049864,(%esp)
 8048a49:      e8 2a fe ff ff             call   8048878 <puts@plt>
 8048a4e:      c7 04 24 00 00 00 00       movl   $0x0,(%esp)
 8048a55:      e8 5e fe ff ff             call   80488b8 <exit@plt>
 8048a5a:      8d b6 00 00 00 00          lea    0x0(%esi),%esi

08048a60 <bushandler>:
 8048a60:      55                         push   %ebp
 8048a61:      89 e5                      mov    %esp,%ebp
 8048a63:      83 ec 08                   sub    $0x8,%esp
 8048a66:      c7 04 24 78 95 04 08       movl   $0x8049578,(%esp)
 8048a6d:      e8 06 fe ff ff             call   8048878 <puts@plt>
 8048a72:      c7 04 24 64 98 04 08       movl   $0x8049864,(%esp)
 8048a79:      e8 fa fd ff ff             call   8048878 <puts@plt>
 8048a7e:      c7 04 24 00 00 00 00       movl   $0x0,(%esp)
 8048a85:      e8 2e fe ff ff             call   80488b8 <exit@plt>
 8048a8a:      8d b6 00 00 00 00          lea    0x0(%esi),%esi

08048a90 <usage>:
 8048a90:      55                         push   %ebp
 8048a91:      89 e5                      mov    %esp,%ebp
 8048a93:      83 ec 08                   sub    $0x8,%esp
 8048a96:      89 44 24 04                mov    %eax,0x4(%esp)
 8048a9a:      c7 04 24 98 95 04 08       movl   $0x8049598,(%esp)
 8048aa1:      e8 62 fd ff ff             call   8048808 <printf@plt>
 8048aa6:      c7 04 24 7a 98 04 08       movl   $0x804987a,(%esp)
 8048aad:      e8 c6 fd ff ff             call   8048878 <puts@plt>
 8048ab2:      c7 04 24 98 98 04 08       movl   $0x8049898,(%esp)
 8048ab9:      e8 ba fd ff ff             call   8048878 <puts@plt>
 8048abe:      c7 04 24 bc 95 04 08       movl   $0x80495bc,(%esp)
 8048ac5:      e8 ae fd ff ff             call   8048878 <puts@plt>
 8048aca:      c7 04 24 e4 95 04 08       movl   $0x80495e4,(%esp)
 8048ad1:      e8 a2 fd ff ff             call   8048878 <puts@plt>
 8048ad6:      c7 04 24 00 00 00 00       movl   $0x0,(%esp)
 8048add:      e8 d6 fd ff ff             call   80488b8 <exit@plt>
 8048ae2:      8d b4 26 00 00 00 00       lea    0x0(%esi),%esi
 8048ae9:      8d bc 27 00 00 00 00       lea    0x0(%edi),%edi

08048af0 <validate>:
 8048af0:      55                         push   %ebp
 8048af1:      89 e5                      mov    %esp,%ebp
 8048af3:      81 ec 48 01 00 00          sub    $0x148,%esp
 8048af9:      8b 0d d0 a1 04 08          mov    0x804a1d0,%ecx
 8048aff:      89 5d f4                   mov    %ebx,0xfffffff4(%ebp)
 8048b02:      8b 5d 08                   mov    0x8(%ebp),%ebx
 8048b05:      89 75 f8                   mov    %esi,0xfffffff8(%ebp)
 8048b08:      89 7d fc                   mov    %edi,0xfffffffc(%ebp)
 8048b0b:      85 c9                      test   %ecx,%ecx
 8048b0d:      0f 84 d8 01 00 00          je     8048ceb <validate+0x1fb>
 8048b13:      83 fb 04                   cmp    $0x4,%ebx
 8048b16:      77 58                      ja     8048b70 <validate+0x80>
 8048b18:      3b 1d 74 a1 04 08          cmp    0x804a174,%ebx
 8048b1e:      74 20                      je     8048b40 <validate+0x50>
 8048b20:      c7 04 24 5c 96 04 08       movl   $0x804965c,(%esp)
 8048b27:      e8 4c fd ff ff             call   8048878 <puts@plt>
 8048b2c:      8d 74 26 00                lea    0x0(%esi),%esi
 8048b30:      8b 5d f4                   mov    0xfffffff4(%ebp),%ebx
 8048b33:      8b 75 f8                   mov    0xfffffff8(%ebp),%esi
 8048b36:      8b 7d fc                   mov    0xfffffffc(%ebp),%edi
 8048b39:      89 ec                      mov    %ebp,%esp
 8048b3b:      5d                         pop    %ebp
 8048b3c:      c3                         ret    
 8048b3d:      8d 76 00                   lea    0x0(%esi),%esi
 8048b40:      8b 04 9d 7c a1 04 08       mov    0x804a17c(,%ebx,4),%eax
 8048b47:      c7 05 d8 a1 04 08 01       movl   $0x1,0x804a1d8
 8048b4e:      00 00 00
 8048b51:      83 e8 01                   sub    $0x1,%eax
 8048b54:      85 c0                      test   %eax,%eax
 8048b56:      89 04 9d 7c a1 04 08       mov    %eax,0x804a17c(,%ebx,4)
 8048b5d:      7e 21                      jle    8048b80 <validate+0x90>
 8048b5f:      c7 04 24 af 98 04 08       movl   $0x80498af,(%esp)
 8048b66:      e8 0d fd ff ff             call   8048878 <puts@plt>
 8048b6b:      eb c3                      jmp    8048b30 <validate+0x40>
 8048b6d:      8d 76 00                   lea    0x0(%esi),%esi
 8048b70:      c7 04 24 34 96 04 08       movl   $0x8049634,(%esp)
 8048b77:      e8 fc fc ff ff             call   8048878 <puts@plt>
 8048b7c:      eb b2                      jmp    8048b30 <validate+0x40>
 8048b7e:      66 90                      xchg   %ax,%ax
 8048b80:      8b 15 d4 a1 04 08          mov    0x804a1d4,%edx
 8048b86:      85 d2                      test   %edx,%edx
 8048b88:      0f 85 7f 01 00 00          jne    8048d0d <validate+0x21d>
 8048b8e:      a1 70 a1 04 08             mov    0x804a170,%eax
 8048b93:      85 c0                      test   %eax,%eax
 8048b95:      0f 84 61 01 00 00          je     8048cfc <validate+0x20c>
 8048b9b:      c7 44 24 04 c0 98 04       movl   $0x80498c0,0x4(%esp)
 8048ba2:      08
 8048ba3:      c7 04 24 00 00 00 00       movl   $0x0,(%esp)
 8048baa:      e8 e9 fc ff ff             call   8048898 <tempnam@plt>
 8048baf:      c7 44 24 04 c7 98 04       movl   $0x80498c7,0x4(%esp)
 8048bb6:      08
 8048bb7:      89 85 e0 fe ff ff          mov    %eax,0xfffffee0(%ebp)
 8048bbd:      89 04 24                   mov    %eax,(%esp)
 8048bc0:      e8 13 fc ff ff             call   80487d8 <fopen@plt>
 8048bc5:      85 c0                      test   %eax,%eax
 8048bc7:      89 c6                      mov    %eax,%esi
 8048bc9:      0f 84 76 01 00 00          je     8048d45 <validate+0x255>
 8048bcf:      89 44 24 0c                mov    %eax,0xc(%esp)
 8048bd3:      c7 44 24 08 1b 00 00       movl   $0x1b,0x8(%esp)
 8048bda:      00
 8048bdb:      c7 44 24 04 01 00 00       movl   $0x1,0x4(%esp)
 8048be2:      00
 8048be3:      c7 04 24 c9 98 04 08       movl   $0x80498c9,(%esp)
 8048bea:      e8 39 fc ff ff             call   8048828 <fwrite@plt>
 8048bef:      89 74 24 04                mov    %esi,0x4(%esp)
 8048bf3:      c7 04 24 0a 00 00 00       movl   $0xa,(%esp)
 8048bfa:      e8 69 fc ff ff             call   8048868 <fputc@plt>
 8048bff:      c7 04 24 00 00 00 00       movl   $0x0,(%esp)
 8048c06:      e8 4d fc ff ff             call   8048858 <cuserid@plt>
 8048c0b:      85 c0                      test   %eax,%eax
 8048c0d:      0f 84 19 01 00 00          je     8048d2c <validate+0x23c>
 8048c13:      8d 7d eb                   lea    0xffffffeb(%ebp),%edi
 8048c16:      89 44 24 04                mov    %eax,0x4(%esp)
 8048c1a:      89 3c 24                   mov    %edi,(%esp)
 8048c1d:      e8 d6 fb ff ff             call   80487f8 <strcpy@plt>
 8048c22:      89 7c 24 08                mov    %edi,0x8(%esp)
 8048c26:      c7 44 24 04 e5 98 04       movl   $0x80498e5,0x4(%esp)
 8048c2d:      08
 8048c2e:      89 34 24                   mov    %esi,(%esp)
 8048c31:      e8 02 fc ff ff             call   8048838 <fprintf@plt>
 8048c36:      a1 cc a1 04 08             mov    0x804a1cc,%eax
 8048c3b:      89 5c 24 10                mov    %ebx,0x10(%esp)
 8048c3f:      8d 9d eb fe ff ff          lea    0xfffffeeb(%ebp),%ebx
 8048c45:      c7 44 24 1c 00 00 00       movl   $0x0,0x1c(%esp)
 8048c4c:      00
 8048c4d:      c7 44 24 18 00 a2 04       movl   $0x804a200,0x18(%esp)
 8048c54:      08
 8048c55:      89 44 24 14                mov    %eax,0x14(%esp)
 8048c59:      a1 d0 a1 04 08             mov    0x804a1d0,%eax
 8048c5e:      c7 44 24 08 63 10 03       movl   $0x31063,0x8(%esp)
 8048c65:      00
 8048c66:      c7 44 24 04 cc 96 04       movl   $0x80496cc,0x4(%esp)
 8048c6d:      08
 8048c6e:      89 34 24                   mov    %esi,(%esp)
 8048c71:      89 44 24 0c                mov    %eax,0xc(%esp)
 8048c75:      e8 be fb ff ff             call   8048838 <fprintf@plt>
 8048c7a:      89 34 24                   mov    %esi,(%esp)
 8048c7d:      e8 36 fb ff ff             call   80487b8 <fclose@plt>
 8048c82:      8b 85 e0 fe ff ff          mov    0xfffffee0(%ebp),%eax
 8048c88:      c7 44 24 14 f3 98 04       movl   $0x80498f3,0x14(%esp)
 8048c8f:      08
 8048c90:      c7 44 24 10 01 99 04       movl   $0x8049901,0x10(%esp)
 8048c97:      08
 8048c98:      c7 44 24 0c 06 99 04       movl   $0x8049906,0xc(%esp)
 8048c9f:      08
 8048ca0:      89 44 24 08                mov    %eax,0x8(%esp)
 8048ca4:      c7 44 24 04 1d 99 04       movl   $0x804991d,0x4(%esp)
 8048cab:      08
 8048cac:      89 1c 24                   mov    %ebx,(%esp)
 8048caf:      e8 54 fa ff ff             call   8048708 <sprintf@plt>
 8048cb4:      89 1c 24                   mov    %ebx,(%esp)
 8048cb7:      e8 ac fa ff ff             call   8048768 <system@plt>
 8048cbc:      85 c0                      test   %eax,%eax
 8048cbe:      75 5e                      jne    8048d1e <validate+0x22e>
 8048cc0:      c7 04 24 30 99 04 08       movl   $0x8049930,(%esp)
 8048cc7:      e8 ac fb ff ff             call   8048878 <puts@plt>
 8048ccc:      c7 04 24 ec 96 04 08       movl   $0x80496ec,(%esp)
 8048cd3:      e8 a0 fb ff ff             call   8048878 <puts@plt>
 8048cd8:      8b 85 e0 fe ff ff          mov    0xfffffee0(%ebp),%eax
 8048cde:      89 04 24                   mov    %eax,(%esp)
 8048ce1:      e8 62 fb ff ff             call   8048848 <remove@plt>
 8048ce6:      e9 45 fe ff ff             jmp    8048b30 <validate+0x40>
 8048ceb:      c7 04 24 08 96 04 08       movl   $0x8049608,(%esp)
 8048cf2:      e8 81 fb ff ff             call   8048878 <puts@plt>
 8048cf7:      e9 34 fe ff ff             jmp    8048b30 <validate+0x40>
 8048cfc:      c7 04 24 5c 97 04 08       movl   $0x804975c,(%esp)
 8048d03:      e8 70 fb ff ff             call   8048878 <puts@plt>
 8048d08:      e9 23 fe ff ff             jmp    8048b30 <validate+0x40>
 8048d0d:      c7 04 24 ba 98 04 08       movl   $0x80498ba,(%esp)
 8048d14:      e8 5f fb ff ff             call   8048878 <puts@plt>
 8048d19:      e9 12 fe ff ff             jmp    8048b30 <validate+0x40>
 8048d1e:      c7 04 24 1c 97 04 08       movl   $0x804971c,(%esp)
 8048d25:      e8 4e fb ff ff             call   8048878 <puts@plt>
 8048d2a:      eb ac                      jmp    8048cd8 <validate+0x1e8>
 8048d2c:      8d 7d eb                   lea    0xffffffeb(%ebp),%edi
 8048d2f:      c7 45 eb 6e 6f 62 6f       movl   $0x6f626f6e,0xffffffeb(%ebp)
 8048d36:      66 c7 45 ef 64 79          movw   $0x7964,0xffffffef(%ebp)
 8048d3c:      c6 45 f1 00                movb   $0x0,0xfffffff1(%ebp)
 8048d40:      e9 dd fe ff ff             jmp    8048c22 <validate+0x132>
 8048d45:      c7 04 24 98 96 04 08       movl   $0x8049698,(%esp)
 8048d4c:      e8 b7 fa ff ff             call   8048808 <printf@plt>
 8048d51:      c7 04 24 01 00 00 00       movl   $0x1,(%esp)
 8048d58:      e8 5b fb ff ff             call   80488b8 <exit@plt>
 8048d5d:      8d 76 00                   lea    0x0(%esi),%esi

08048d60 <bang>:
 8048d60:      55                         push   %ebp
 8048d61:      89 e5                      mov    %esp,%ebp
 8048d63:      83 ec 08                   sub    $0x8,%esp
 8048d66:      c7 04 24 02 00 00 00       movl   $0x2,(%esp)
 8048d6d:      e8 3e fc ff ff             call   80489b0 <entry_check>
 8048d72:      a1 dc a1 04 08             mov    0x804a1dc,%eax
 8048d77:      3b 05 cc a1 04 08          cmp    0x804a1cc,%eax
 8048d7d:      74 21                      je     8048da0 <bang+0x40>
 8048d7f:      89 44 24 04                mov    %eax,0x4(%esp)
 8048d83:      c7 04 24 3a 99 04 08       movl   $0x804993a,(%esp)
 8048d8a:      e8 79 fa ff ff             call   8048808 <printf@plt>
 8048d8f:      c7 04 24 00 00 00 00       movl   $0x0,(%esp)
 8048d96:      e8 1d fb ff ff             call   80488b8 <exit@plt>
 8048d9b:      90                         nop    
 8048d9c:      8d 74 26 00                lea    0x0(%esi),%esi
 8048da0:      89 44 24 04                mov    %eax,0x4(%esp)
 8048da4:      c7 04 24 a8 97 04 08       movl   $0x80497a8,(%esp)
 8048dab:      e8 58 fa ff ff             call   8048808 <printf@plt>
 8048db0:      c7 04 24 02 00 00 00       movl   $0x2,(%esp)
 8048db7:      e8 34 fd ff ff             call   8048af0 <validate>
 8048dbc:      eb d1                      jmp    8048d8f <bang+0x2f>
 8048dbe:      66 90                      xchg   %ax,%ax

08048dc0 <fizz>:
 8048dc0:      55                         push   %ebp
 8048dc1:      89 e5                      mov    %esp,%ebp
 8048dc3:      53                         push   %ebx
 8048dc4:      83 ec 14                   sub    $0x14,%esp
 8048dc7:      8b 5d 08                   mov    0x8(%ebp),%ebx
 8048dca:      c7 04 24 01 00 00 00       movl   $0x1,(%esp)
 8048dd1:      e8 da fb ff ff             call   80489b0 <entry_check>
 8048dd6:      3b 1d cc a1 04 08          cmp    0x804a1cc,%ebx
 8048ddc:      74 22                      je     8048e00 <fizz+0x40>
 8048dde:      89 5c 24 04                mov    %ebx,0x4(%esp)
 8048de2:      c7 04 24 d0 97 04 08       movl   $0x80497d0,(%esp)
 8048de9:      e8 1a fa ff ff             call   8048808 <printf@plt>
 8048dee:      c7 04 24 00 00 00 00       movl   $0x0,(%esp)
 8048df5:      e8 be fa ff ff             call   80488b8 <exit@plt>
 8048dfa:      8d b6 00 00 00 00          lea    0x0(%esi),%esi
 8048e00:      89 5c 24 04                mov    %ebx,0x4(%esp)
 8048e04:      c7 04 24 58 99 04 08       movl   $0x8049958,(%esp)
 8048e0b:      e8 f8 f9 ff ff             call   8048808 <printf@plt>
 8048e10:      c7 04 24 01 00 00 00       movl   $0x1,(%esp)
 8048e17:      e8 d4 fc ff ff             call   8048af0 <validate>
 8048e1c:      eb d0                      jmp    8048dee <fizz+0x2e>
 8048e1e:      66 90                      xchg   %ax,%ax

08048e20 <smoke>:
 8048e20:      55                         push   %ebp
 8048e21:      89 e5                      mov    %esp,%ebp
 8048e23:      83 ec 08                   sub    $0x8,%esp
 8048e26:      c7 04 24 00 00 00 00       movl   $0x0,(%esp)
 8048e2d:      e8 7e fb ff ff             call   80489b0 <entry_check>
 8048e32:      c7 04 24 76 99 04 08       movl   $0x8049976,(%esp)
 8048e39:      e8 3a fa ff ff             call   8048878 <puts@plt>
 8048e3e:      c7 04 24 00 00 00 00       movl   $0x0,(%esp)
 8048e45:      e8 a6 fc ff ff             call   8048af0 <validate>
 8048e4a:      c7 04 24 00 00 00 00       movl   $0x0,(%esp)
 8048e51:      e8 62 fa ff ff             call   80488b8 <exit@plt>
 8048e56:      8d 76 00                   lea    0x0(%esi),%esi
 8048e59:      8d bc 27 00 00 00 00       lea    0x0(%edi),%edi

08048e60 <Gets>:
 8048e60:      55                         push   %ebp
 8048e61:      89 e5                      mov    %esp,%ebp
 8048e63:      57                         push   %edi
 8048e64:      56                         push   %esi
 8048e65:      53                         push   %ebx
 8048e66:      83 ec 0c                   sub    $0xc,%esp
 8048e69:      8b 1d c8 a1 04 08          mov    0x804a1c8,%ebx
 8048e6f:      c7 05 e0 a1 04 08 00       movl   $0x0,0x804a1e0
 8048e76:      00 00 00
 8048e79:      8b 75 08                   mov    0x8(%ebp),%esi
 8048e7c:      85 db                      test   %ebx,%ebx
 8048e7e:      74 72                      je     8048ef2 <Gets+0x92>
 8048e80:      bf 01 00 00 00             mov    $0x1,%edi
 8048e85:      c7 45 f0 00 00 00 00       movl   $0x0,0xfffffff0(%ebp)
 8048e8c:      8d 74 26 00                lea    0x0(%esi),%esi
 8048e90:      a1 c0 a1 04 08             mov    0x804a1c0,%eax
 8048e95:      89 04 24                   mov    %eax,(%esp)
 8048e98:      e8 fb f8 ff ff             call   8048798 <_IO_getc@plt>
 8048e9d:      83 f8 ff                   cmp    $0xffffffff,%eax
 8048ea0:      89 c3                      mov    %eax,%ebx
 8048ea2:      74 60                      je     8048f04 <Gets+0xa4>
 8048ea4:      83 f8 0a                   cmp    $0xa,%eax
 8048ea7:      74 5b                      je     8048f04 <Gets+0xa4>
 8048ea9:      e8 fa f8 ff ff             call   80487a8 <__ctype_b_loc@plt>
 8048eae:      8b 00                      mov    (%eax),%eax
 8048eb0:      f6 44 58 01 10             testb  $0x10,0x1(%eax,%ebx,2)
 8048eb5:      74 d9                      je     8048e90 <Gets+0x30>
 8048eb7:      8d 43 d0                   lea    0xffffffd0(%ebx),%eax
 8048eba:      83 f8 09                   cmp    $0x9,%eax
 8048ebd:      89 c2                      mov    %eax,%edx
 8048ebf:      76 0f                      jbe    8048ed0 <Gets+0x70>
 8048ec1:      8d 43 bf                   lea    0xffffffbf(%ebx),%eax
 8048ec4:      83 f8 05                   cmp    $0x5,%eax
 8048ec7:      8d 53 c9                   lea    0xffffffc9(%ebx),%edx
 8048eca:      76 04                      jbe    8048ed0 <Gets+0x70>
 8048ecc:      8d 53 a9                   lea    0xffffffa9(%ebx),%edx
 8048ecf:      90                         nop    
 8048ed0:      85 ff                      test   %edi,%edi
 8048ed2:      74 4c                      je     8048f20 <Gets+0xc0>
 8048ed4:      31 ff                      xor    %edi,%edi
 8048ed6:      89 55 f0                   mov    %edx,0xfffffff0(%ebp)
 8048ed9:      eb b5                      jmp    8048e90 <Gets+0x30>
 8048edb:      90                         nop    
 8048edc:      8d 74 26 00                lea    0x0(%esi),%esi
 8048ee0:      83 f8 0a                   cmp    $0xa,%eax
 8048ee3:      74 1f                      je     8048f04 <Gets+0xa4>
 8048ee5:      88 06                      mov    %al,(%esi)
 8048ee7:      0f be c0                   movsbl %al,%eax
 8048eea:      83 c6 01                   add    $0x1,%esi
 8048eed:      e8 6e fa ff ff             call   8048960 <save_char>
 8048ef2:      a1 c0 a1 04 08             mov    0x804a1c0,%eax
 8048ef7:      89 04 24                   mov    %eax,(%esp)
 8048efa:      e8 99 f8 ff ff             call   8048798 <_IO_getc@plt>
 8048eff:      83 f8 ff                   cmp    $0xffffffff,%eax
 8048f02:      75 dc                      jne    8048ee0 <Gets+0x80>
 8048f04:      c6 06 00                   movb   $0x0,(%esi)
 8048f07:      a1 e0 a1 04 08             mov    0x804a1e0,%eax
 8048f0c:      c6 84 40 00 a2 04 08       movb   $0x0,0x804a200(%eax,%eax,2)
 8048f13:      00
 8048f14:      8b 45 08                   mov    0x8(%ebp),%eax
 8048f17:      83 c4 0c                   add    $0xc,%esp
 8048f1a:      5b                         pop    %ebx
 8048f1b:      5e                         pop    %esi
 8048f1c:      5f                         pop    %edi
 8048f1d:      5d                         pop    %ebp
 8048f1e:      c3                         ret    
 8048f1f:      90                         nop    
 8048f20:      8b 45 f0                   mov    0xfffffff0(%ebp),%eax
 8048f23:      bf 01 00 00 00             mov    $0x1,%edi
 8048f28:      c1 e0 04                   shl    $0x4,%eax
 8048f2b:      8d 04 02                   lea    (%edx,%eax,1),%eax
 8048f2e:      88 06                      mov    %al,(%esi)
 8048f30:      0f be c0                   movsbl %al,%eax
 8048f33:      83 c6 01                   add    $0x1,%esi
 8048f36:      e8 25 fa ff ff             call   8048960 <save_char>
 8048f3b:      e9 50 ff ff ff             jmp    8048e90 <Gets+0x30>

08048f40 <getbufn>:
 8048f40:      55                         push   %ebp
 8048f41:      89 e5                      mov    %esp,%ebp
 8048f43:      81 ec 08 02 00 00          sub    $0x208,%esp
 8048f49:      8d 85 00 fe ff ff          lea    0xfffffe00(%ebp),%eax
 8048f4f:      89 04 24                   mov    %eax,(%esp)
 8048f52:      e8 09 ff ff ff             call   8048e60 <Gets>
 8048f57:      b8 01 00 00 00             mov    $0x1,%eax
 8048f5c:      c9                         leave  
 8048f5d:      c3                         ret    
 8048f5e:      66 90                      xchg   %ax,%ax

08048f60 <testn>:
 8048f60:      55                         push   %ebp
 8048f61:      89 e5                      mov    %esp,%ebp
 8048f63:      83 ec 18                   sub    $0x18,%esp
 8048f66:      c7 45 fc ef be ad de       movl   $0xdeadbeef,0xfffffffc(%ebp)
 8048f6d:      c7 04 24 04 00 00 00       movl   $0x4,(%esp)
 8048f74:      e8 37 fa ff ff             call   80489b0 <entry_check>
 8048f79:      e8 c2 ff ff ff             call   8048f40 <getbufn>
 8048f7e:      89 c2                      mov    %eax,%edx
 8048f80:      8b 45 fc                   mov    0xfffffffc(%ebp),%eax
 8048f83:      3d ef be ad de             cmp    $0xdeadbeef,%eax
 8048f88:      74 0e                      je     8048f98 <testn+0x38>
 8048f8a:      c7 04 24 f0 97 04 08       movl   $0x80497f0,(%esp)
 8048f91:      e8 e2 f8 ff ff             call   8048878 <puts@plt>
 8048f96:      c9                         leave  
 8048f97:      c3                         ret    
 8048f98:      3b 15 cc a1 04 08          cmp    0x804a1cc,%edx
 8048f9e:      74 12                      je     8048fb2 <testn+0x52>
 8048fa0:      89 54 24 04                mov    %edx,0x4(%esp)
 8048fa4:      c7 04 24 91 99 04 08       movl   $0x8049991,(%esp)
 8048fab:      e8 58 f8 ff ff             call   8048808 <printf@plt>
 8048fb0:      c9                         leave  
 8048fb1:      c3                         ret    
 8048fb2:      89 54 24 04                mov    %edx,0x4(%esp)
 8048fb6:      c7 04 24 1c 98 04 08       movl   $0x804981c,(%esp)
 8048fbd:      e8 46 f8 ff ff             call   8048808 <printf@plt>
 8048fc2:      c7 04 24 04 00 00 00       movl   $0x4,(%esp)
 8048fc9:      e8 22 fb ff ff             call   8048af0 <validate>
 8048fce:      c9                         leave  
 8048fcf:      c3                         ret    

08048fd0 <getbuf>:
 8048fd0:      55                         push   %ebp
 8048fd1:      89 e5                      mov    %esp,%ebp
 8048fd3:      83 ec 18                   sub    $0x18,%esp
 8048fd6:      8d 45 f4                   lea    0xfffffff4(%ebp),%eax
 8048fd9:      89 04 24                   mov    %eax,(%esp)
 8048fdc:      e8 7f fe ff ff             call   8048e60 <Gets>
 8048fe1:      b8 01 00 00 00             mov    $0x1,%eax
 8048fe6:      c9                         leave  
 8048fe7:      c3                         ret    
 8048fe8:      90                         nop    
 8048fe9:      8d b4 26 00 00 00 00       lea    0x0(%esi),%esi

08048ff0 <test>:
 8048ff0:      55                         push   %ebp
 8048ff1:      89 e5                      mov    %esp,%ebp
 8048ff3:      83 ec 18                   sub    $0x18,%esp
 8048ff6:      c7 45 fc ef be ad de       movl   $0xdeadbeef,0xfffffffc(%ebp)
 8048ffd:      c7 04 24 03 00 00 00       movl   $0x3,(%esp)
 8049004:      e8 a7 f9 ff ff             call   80489b0 <entry_check>
 8049009:      e8 c2 ff ff ff             call   8048fd0 <getbuf>
 804900e:      89 c2                      mov    %eax,%edx
 8049010:      8b 45 fc                   mov    0xfffffffc(%ebp),%eax
 8049013:      3d ef be ad de             cmp    $0xdeadbeef,%eax
 8049018:      74 0e                      je     8049028 <test+0x38>
 804901a:      c7 04 24 f0 97 04 08       movl   $0x80497f0,(%esp)
 8049021:      e8 52 f8 ff ff             call   8048878 <puts@plt>
 8049026:      c9                         leave  
 8049027:      c3                         ret    
 8049028:      3b 15 cc a1 04 08          cmp    0x804a1cc,%edx
 804902e:      74 12                      je     8049042 <test+0x52>
 8049030:      89 54 24 04                mov    %edx,0x4(%esp)
 8049034:      c7 04 24 ca 99 04 08       movl   $0x80499ca,(%esp)
 804903b:      e8 c8 f7 ff ff             call   8048808 <printf@plt>
 8049040:      c9                         leave  
 8049041:      c3                         ret    
 8049042:      89 54 24 04                mov    %edx,0x4(%esp)
 8049046:      c7 04 24 ad 99 04 08       movl   $0x80499ad,(%esp)
 804904d:      e8 b6 f7 ff ff             call   8048808 <printf@plt>
 8049052:      c7 04 24 03 00 00 00       movl   $0x3,(%esp)
 8049059:      e8 92 fa ff ff             call   8048af0 <validate>
 804905e:      c9                         leave  
 804905f:      c3                         ret    

08049060 <launch>:
 8049060:      55                         push   %ebp
 8049061:      89 e5                      mov    %esp,%ebp
 8049063:      53                         push   %ebx
 8049064:      89 c3                      mov    %eax,%ebx
 8049066:      8d 45 bc                   lea    0xffffffbc(%ebp),%eax
 8049069:      83 ec 54                   sub    $0x54,%esp
 804906c:      25 f8 3f 00 00             and    $0x3ff8,%eax
 8049071:      01 c2                      add    %eax,%edx
 8049073:      8d 42 1e                   lea    0x1e(%edx),%eax
 8049076:      83 e0 f0                   and    $0xfffffff0,%eax
 8049079:      29 c4                      sub    %eax,%esp
 804907b:      8d 44 24 1b                lea    0x1b(%esp),%eax
 804907f:      83 e0 f0                   and    $0xfffffff0,%eax
 8049082:      89 54 24 08                mov    %edx,0x8(%esp)
 8049086:      c7 44 24 04 f4 00 00       movl   $0xf4,0x4(%esp)
 804908d:      00
 804908e:      89 04 24                   mov    %eax,(%esp)
 8049091:      e8 e2 f6 ff ff             call   8048778 <memset@plt>
 8049096:      a1 c4 a1 04 08             mov    0x804a1c4,%eax
 804909b:      85 c0                      test   %eax,%eax
 804909d:      75 15                      jne    80490b4 <launch+0x54>
 804909f:      a1 c8 a1 04 08             mov    0x804a1c8,%eax
 80490a4:      85 c0                      test   %eax,%eax
 80490a6:      74 40                      je     80490e8 <launch+0x88>
 80490a8:      c7 04 24 e5 99 04 08       movl   $0x80499e5,(%esp)
 80490af:      e8 54 f7 ff ff             call   8048808 <printf@plt>
 80490b4:      85 db                      test   %ebx,%ebx
 80490b6:      74 29                      je     80490e1 <launch+0x81>
 80490b8:      e8 a3 fe ff ff             call   8048f60 <testn>
 80490bd:      a1 d8 a1 04 08             mov    0x804a1d8,%eax
 80490c2:      85 c0                      test   %eax,%eax
 80490c4:      75 16                      jne    80490dc <launch+0x7c>
 80490c6:      c7 04 24 64 98 04 08       movl   $0x8049864,(%esp)
 80490cd:      e8 a6 f7 ff ff             call   8048878 <puts@plt>
 80490d2:      c7 05 d8 a1 04 08 00       movl   $0x0,0x804a1d8
 80490d9:      00 00 00
 80490dc:      8b 5d fc                   mov    0xfffffffc(%ebp),%ebx
 80490df:      c9                         leave  
 80490e0:      c3                         ret    
 80490e1:      e8 0a ff ff ff             call   8048ff0 <test>
 80490e6:      eb d5                      jmp    80490bd <launch+0x5d>
 80490e8:      c7 04 24 f6 99 04 08       movl   $0x80499f6,(%esp)
 80490ef:      e8 14 f7 ff ff