HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
cjdelisle
return-to-abort
Python2017–2017
cjdelisle / return-to-abort · Archived

return-to-abort

return-to-abort() - Using code introspection to prevent stack-smashing

2Distinct people
2Mentions
0Explicit recommenders
37GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

return-to-abort() - Using code introspection to prevent stack-smashing

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by hour2 dated mentions

Observed mentions: 2017-07-10 19:03:47 UTC to 2017-07-11 07:59:01 UTC.

012017-07-10 19:00:00 UTC to 2017-07-10 20:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsJul 10, 19:002017-07-10 20:00:00 UTC to 2017-07-10 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-07-10 21:00:00 UTC to 2017-07-10 22:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-07-10 22:00:00 UTC to 2017-07-10 23:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-07-10 23:00:00 UTC to 2017-07-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-07-11 00:00:00 UTC to 2017-07-11 01:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-07-11 01:00:00 UTC to 2017-07-11 02:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJul 11, 01:002017-07-11 02:00:00 UTC to 2017-07-11 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-07-11 03:00:00 UTC to 2017-07-11 04:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-07-11 04:00:00 UTC to 2017-07-11 05:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-07-11 05:00:00 UTC to 2017-07-11 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-07-11 06:00:00 UTC to 2017-07-11 07:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-07-11 07:00:00 UTC to 2017-07-11 08:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJul 11, 07:00

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Jul 10, 19:002017-07-10 19:00:00 UTC2017-07-10 20:00:00 UTC110
Jul 10, 20:002017-07-10 20:00:00 UTC2017-07-10 21:00:00 UTC000
Jul 10, 21:002017-07-10 21:00:00 UTC2017-07-10 22:00:00 UTC000
Jul 10, 22:002017-07-10 22:00:00 UTC2017-07-10 23:00:00 UTC000
Jul 10, 23:002017-07-10 23:00:00 UTC2017-07-11 00:00:00 UTC000
Jul 11, 00:002017-07-11 00:00:00 UTC2017-07-11 01:00:00 UTC000
Jul 11, 01:002017-07-11 01:00:00 UTC2017-07-11 02:00:00 UTC000
Jul 11, 02:002017-07-11 02:00:00 UTC2017-07-11 03:00:00 UTC000
Jul 11, 03:002017-07-11 03:00:00 UTC2017-07-11 04:00:00 UTC000
Jul 11, 04:002017-07-11 04:00:00 UTC2017-07-11 05:00:00 UTC000
Jul 11, 05:002017-07-11 05:00:00 UTC2017-07-11 06:00:00 UTC000
Jul 11, 06:002017-07-11 06:00:00 UTC2017-07-11 07:00:00 UTC000
Jul 11, 07:002017-07-11 07:00:00 UTC2017-07-11 08:00:00 UTC101

What Hacker News says

2 sources
This isn't very useful, and has some pretty obvious design flaws. Given any routine which ends with the very common pattern: return foo(); Which is assembled to the very common sequence: call foo leave ret This project will instrument it to now look like: call foo jmp $+2 .byte DE, AD leave ret Whatever return address I hijack, I can now just point it at this valid return site, and begin my ROP stack as per normal. What's especially great is that the project guarantees this pattern for us. Now, every function has a path that looks like: call __stack_chk_fail jmp $+2 .byte DE, AD < function frame cleanup > ret This is effectively a no-op for security. I cleaned up the author's code, added a sane makefile, and an example exploit here: https://github.com/zachriggle/return-to-abort
Read the rest
In Return to abort() – Using code introspection to prevent stack-smashing

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.