-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possibly incorrect return address calculation #2
Comments
Hi, Thanks for taking the time to read my writeup. This actually isn't the return from main, but rather, the return from the function at 0x0804866B. And the 96th argument actually isn't the return address, it's just an arbitrary stack address that I used to calculate the offset from the desired return address (which is why I decode it as an integer and add 0xc to it). I'm not actually sure what the 96th argument is pointing to, I just looked for an address close to where the return address was stored. Did I understand your question correctly? If you are attempting to reproduce this exploit locally, ensure you are using the same version of libc as provided with the challenge, ASLR is disabled on your machine, and these values will need to be updated as I hardcoded them: if not REMOTE:
fmt += '%28667x%71$hn'
fmt += '%6453x%72$hn'
fmt += '%28325x%73$hn'
fmt += '%18x%74$hn' |
Hi, Yes, you understood me correctly. If you are overwriting the return address of function |
Oh my mistake, yes, that actually is the address pointing to the return from main (or as I mentioned earlier, an address offset by 0xc). |
In this writeup,
Did you want to calculate the stack address holding the return address from
main
method? If so, it seems not to be stored as the 96-th argument of theprintf
call.The text was updated successfully, but these errors were encountered: