Calling a function in C without naming it
This article explores a technical workaround for bypassing function-naming restrictions in a C-based grading environment. It discusses using memory addresses and assembly-level manipulation to execute forbidden functions.
Why it matters
It highlights the challenges of securing automated code-grading systems against sophisticated bypass techniques.
My school has a controlled remote code execution environment to automatically grade the code we submit. The system checks execution, verifies proper formatting and surely has other checks not shown to the user (e.g. a code plagiarism detection tool 1 ). The interface reports results mismatches and compilation errors.
A friend and I started to search for a way to have a single solution that could solve every exercise. The first step in that direction was to have a primitive that could give us arbitrary shell code execution. We assumed there would be an sh binary on the grading VM such that we could simply call execve .
Get smarter about the news
Sign up free for a feed built around what you actually care about, Dive Deeper research on any story, and the full text of every article.
Create free accountAlready have an account? Sign in