Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8240589
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 7, 20262026-06-07T20:32:17+00:00 2026-06-07T20:32:17+00:00

Recently I’m doing some Return-to-libc attack experiment base on the paper Bypassing non-executable-stack during

  • 0

Recently I’m doing some Return-to-libc attack experiment base on the paper Bypassing non-executable-stack during exploitation using return-to-libc with my Ubuntu11.10.

Before my experiment I closed the ALSR.

According to the paper, I can find address of the environment variable SHELL=”/bin/bash” in gdb(use gdb to debug the program I want to attack):

enter image description here
enter image description here

But I found that this address is wrong when I try to use it to Return-to-libc experiment.

And then I write a simple program to get the environment variable address:

enter image description here

When I run this program in the Terminal, I get the right address:

enter image description here

With this address I can do the attack.

I also find the related question about this. But the answers doesn’t really make sense(the second one may be better).

Just tell me some details about this, please.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-07T20:32:19+00:00Added an answer on June 7, 2026 at 8:32 pm

    From your screenshots, I’ll assume you’re running on an 32-bit intel platform. I haven’t spent the time to fully research an answer to this, but these are points worth noting:

    1. I’ll bet that your entire environment is in about the same place, and is packed together tightly as c-style strings. (try x/100s **(char***)&environ).
    2. When I tried ths on my x86-64 installation, the only thing I saw after the environment was my command line, and some empty strings.
    3. At 0xBffff47A, you’re very close to the top of user address space (which ends at 0xC0000000).

    So, my guess is that what’s going on here is that:

    1. The environment block and command line parameters are, at some point during startup, shoved in a packed form right at the end of user address space.
    2. The contents of your environment are different when you run your program in GDB or in the terminal. For example, I notice “_=/usr/bin/gdb” when running under GDB, and I’ll just bet that’s only there when running under GDB.

    The result is that, while your fixed pointer tends to land somewhere in the middle of the environment block, it doesn’t land in the same place every time, since the environment itself is changing between runs.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Recently I'm doing some work on RTMP streaming, that is using Flowplayer to integrate
Recently, I was asked to compile some of my Android projects, based on the
Recently, we discovered odd behavior in some old code. This code has worked for
Recently downloaded some code for a minor open-source project related to a small webgame
Recently I've been doing quite the project mostly working with the DateTime class. Now,..
Recently, I'm trying to solve all the exercises in CLRS. but there are some
Recently I've been thinking about how to transform a complex polygon into a non-complex
Recently I found some simple source code of a bootloader.The following is the simple
Recently, I started changing some of our applications to support MS SQL Server as
Recently I'm using IBM Websphere Server for some estimates. Include: - WebSphere AS Community

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.