{"id":20273606,"url":"https://github.com/astropilot/functionhookingcourse","last_synced_at":"2026-06-04T18:31:14.028Z","repository":{"id":91469935,"uuid":"447665873","full_name":"Astropilot/FunctionHookingCourse","owner":"Astropilot","description":"Light course on \"Function Hooking\" for my Software Security module. Powerpoint + demo included","archived":false,"fork":false,"pushed_at":"2022-01-17T19:22:05.000Z","size":229,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-14T06:13:24.315Z","etag":null,"topics":["course","hook-functions","hooking","school-project","security-vulnerability"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Astropilot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-13T16:12:38.000Z","updated_at":"2022-01-17T19:25:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"b8d96284-75ac-4355-a3ec-e2b478972678","html_url":"https://github.com/Astropilot/FunctionHookingCourse","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Astropilot%2FFunctionHookingCourse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Astropilot%2FFunctionHookingCourse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Astropilot%2FFunctionHookingCourse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Astropilot%2FFunctionHookingCourse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Astropilot","download_url":"https://codeload.github.com/Astropilot/FunctionHookingCourse/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241763755,"owners_count":20016162,"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":["course","hook-functions","hooking","school-project","security-vulnerability"],"created_at":"2024-11-14T12:49:34.821Z","updated_at":"2025-03-04T00:42:51.934Z","avatar_url":"https://github.com/Astropilot.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  Function Hooking Course\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Astropilot/FunctionHookingCourse/blob/master/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/Astropilot/FunctionHookingCourse\"\n         alt=\"MIT License\"\u003e\n  \u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Made%20with-%E2%9D%A4%EF%B8%8F-yellow.svg\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#about\"\u003eAbout\u003c/a\u003e •\n  \u003ca href=\"#demo-usage\"\u003eDemo Usage\u003c/a\u003e •\n  \u003ca href=\"#references-and-authors\"\u003eReferences and Authors\u003c/a\u003e •\n  \u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\n\u003c/p\u003e\n\n## About\n\nAs part of my software security course at ISEP, we had to do a presentation on a low-level security flaw. We chose Function Hooking as a topic because it is for me a game hacking topic that I am passionate about.\nThis github repository contains the powerpoint support (in pdf) used for the presentation as well as the source code and the binary files of the demonstration presented in class.\n\n## Demo Usage\n\nIf you want to directly test the demo the pre-compiled binaries are available in the `DemoBinairies` folder, they have been compiled under Windows 10 and should work on 32 and 64 bits machines.\n\nThe source code of the demo files are also available in the `DemoCode` folder, this is a Visual Studio solution containing two projects, the target program and the malicious program that will perform the detour. You can easily modify and compile this solution. However, be careful to change the address of the function to be detoured because its address may change during a recompilation.\n\n## References and Authors\n\n* [How to Hook Functions - Code Detouring Guide / Guided Hacking](https://guidedhacking.com/threads/how-to-hook-functions-code-detouring-guide.14185/?__cf_chl_f_tk=BkO8RJrrLTrzeAjIDoDRzIU1FPQGjkB.5cW6Jge23A8-1642420247-0-gaNycGzNB6U)\n* [x86 API Hooking Demystified / Jurriaan Bremer](http://jbremer.org/x86-api-hooking-demystified/)\n* [Analysis and detection of online game cheating software / Tomas Curda](https://is.muni.cz/th/qe1y3/bk.pdf)\n\nPresentation created by:\n* Yohann MARTIN\n* Augustin Rousset-Rouviere\n* Matteo Daluz\n* Rohail Shabbir\n* Nathan Longa\n\n## License\n\nMIT - See LICENSE file","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastropilot%2Ffunctionhookingcourse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastropilot%2Ffunctionhookingcourse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastropilot%2Ffunctionhookingcourse/lists"}