{"id":19141799,"url":"https://github.com/nyuuuukie/rainfall","last_synced_at":"2026-06-10T05:30:16.640Z","repository":{"id":129334967,"uuid":"559026183","full_name":"nyuuuukie/rainfall","owner":"nyuuuukie","description":"🔐 Diving into reverse engineering and exploiting","archived":false,"fork":false,"pushed_at":"2023-03-16T21:04:30.000Z","size":260,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-12-16T15:15:56.335Z","etag":null,"topics":["21school","42born2code","42projects","rainfall"],"latest_commit_sha":null,"homepage":"","language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nyuuuukie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-10-28T21:19:47.000Z","updated_at":"2023-04-26T16:54:46.000Z","dependencies_parsed_at":"2023-07-28T15:16:04.457Z","dependency_job_id":null,"html_url":"https://github.com/nyuuuukie/rainfall","commit_stats":null,"previous_names":["nyuuuukie/rainfall"],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyuuuukie%2Frainfall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyuuuukie%2Frainfall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyuuuukie%2Frainfall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyuuuukie%2Frainfall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nyuuuukie","download_url":"https://codeload.github.com/nyuuuukie/rainfall/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240222499,"owners_count":19767458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["21school","42born2code","42projects","rainfall"],"created_at":"2024-11-09T07:24:47.498Z","updated_at":"2026-06-10T05:30:16.557Z","avatar_url":"https://github.com/nyuuuukie.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rainfall\n\nThis project continues the cybersecurity branch.\nThe goal is to pass all the 14 levels:\n\n| Level | Exploit\\Technique\\Breach |\n| ----- | ------- |\n| [level0](/level0/walkthrough.md) | Passing suitable parameter |\n| [level1](/level1/walkthrough.md) | Overwriting return address (to function) |\n| [level2](/level2/walkthrough.md) | Overwriting return address (to shellcode) |\n| [level3](/level3/walkthrough.md) | Format string attack |\n| [level4](/level4/walkthrough.md) | Format string attack |\n| [level5](/level5/walkthrough.md) | Format string attack, GOT rewriting |\n| [level6](/level6/walkthrough.md) | Buffer overflow |\n| [level7](/level7/walkthrough.md) | Buffer overflow, GOT rewriting |\n| [level8](/level8/walkthrough.md) | Buffer overflow (almost) |\n| [level9](/level9/walkthrough.md) | Buffer overflow, ret2shellcode |\n| [bonus0](/bonus0/walkthrough.md) | Buffer overflow |\n| [bonus1](/bonus1/walkthrough.md) | Buffer overflow, local var overwriting |\n| [bonus2](/bonus2/walkthrough.md) | Buffer overflow, ret2libc |\n| [bonus3](/bonus3/walkthrough.md) | Passing suitable parameter |\n\n\n## References\n- [stack protection](https://developers.redhat.com/articles/2022/06/02/use-compiler-flags-stack-protection-gcc-and-clang#control_flow_integrity)\n- [asm instructions at the beginning of the frame](https://reverseengineering.stackexchange.com/questions/15173/what-is-the-purpose-of-these-instructions-before-the-main-preamble)\n- [frame structure](https://reverseengineering.stackexchange.com/questions/14880/basic-reversing-question-about-local-variable/14883#14883)\n- [rpath vs runpath](https://medium.com/obscure-system/rpath-vs-runpath-883029b17c45)\n- [compiling a shared library](https://amir.rachum.com/blog/2016/09/17/shared-libraries/#compiling-a-shared-library)\n- [ret2shellcode](https://wiki.bi0s.in/pwning/stack-overflow/return-to-shellcode/)\n- [stack protector](https://mudongliang.github.io/2016/05/24/stack-protector.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnyuuuukie%2Frainfall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnyuuuukie%2Frainfall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnyuuuukie%2Frainfall/lists"}