{"id":16343891,"url":"https://github.com/dawoox/efc","last_synced_at":"2025-10-26T00:31:17.803Z","repository":{"id":209146434,"uuid":"723343409","full_name":"Dawoox/efc","owner":"Dawoox","description":"Check if a binary contains banned functions. This program is made for Epitech student (and can be used in automated CI !)","archived":false,"fork":false,"pushed_at":"2024-01-05T10:09:40.000Z","size":79,"stargazers_count":4,"open_issues_count":3,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-31T13:05:52.729Z","etag":null,"topics":["banned-function","checker","ci","epitech"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dawoox.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}},"created_at":"2023-11-25T11:16:36.000Z","updated_at":"2024-12-04T13:44:27.000Z","dependencies_parsed_at":"2024-01-05T11:34:04.136Z","dependency_job_id":"d9ae601e-b965-4ec2-9827-1ccca7b2b42c","html_url":"https://github.com/Dawoox/efc","commit_stats":null,"previous_names":["dawoox/epifunctionchecker","dawoox/efc"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dawoox%2Fefc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dawoox%2Fefc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dawoox%2Fefc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dawoox%2Fefc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dawoox","download_url":"https://codeload.github.com/Dawoox/efc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238235645,"owners_count":19438725,"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":["banned-function","checker","ci","epitech"],"created_at":"2024-10-11T00:26:10.376Z","updated_at":"2025-10-26T00:31:17.434Z","avatar_url":"https://github.com/Dawoox.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [EFC] Epitech Banned Function Checker\n\n![Screenshot of the program running and detecting a banned function inside a binary.](./docs/preview.png \"Screenshot of the program running\")\n\nThis tool allow you to check if your binary contains any function banned in your current subject.\nIt was made to be used in an automated CI.\n\n\u003e **Warning**: The program will only run on UNIX systems.\n\n\u003e ***Note**: The program is only tested on NixOS.*\n\n---\n\n## Dependencies\n\n### On Nix systems\n\nNothing ! Everything is provided by the [flake.nix](./flake.nix) file.\n\n### On other systems\n\n- [GNU binutils](https://www.gnu.org/software/binutils/)\n- [Python 3](https://www.python.org/)\n\n## Usage\n\nIf you don't specify the path to the authorized functions,\nthe program will use the default one: `./bonus/authorized_functions.txt`\n\n### On Nix systems\n\n```bash\nnix run github:Dawoox/efc \u003c/path/to/your/binary\u003e [/path/to/authorized_functions.txt]\n```\n\n### On other systems\n\n```bash\npython3 ./EpiFunctionChecker/main.py \u003c/path/to/your/binary\u003e [/path/to/authorized_functions.txt]\n```\n\n## authorized_functions.txt\n\nThe file must contain the list of authorized functions, one per line. \u003cbr\u003e\n*For example (from the setting_up project):*\n\n```txt\nopen\nread\nwrite\nclose\nmalloc\nfree\nstat\n```\n\nEach line is treated as **a regex expression**, so you can ues wildcard to allow\na full library. \u003cbr\u003e\n*For example (in the my_hunter project) to include all the CSFML functions:*\n\n```txt\nsf*\n```\n\n## Limitations\n\n- On some projects, the TA authorizes some functions without it being writing on the subject. On the setting_up project for example, the TA authorizes the use of `memset` without it being written on the subject.\n- We can't provide a trace back to the line where the banned function is used. We can only provide the name of the function (and the address where it is used, but it won't show up in the output).\n- Doesn't work on library file (.a), see [this issue](https://github.com/Dawoox/efc/issues/1)\n- CSFML colors need to be added to the `authorized_functions.txt` file, see [this issue](https://github.com/Dawoox/efc/issues/5)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdawoox%2Fefc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdawoox%2Fefc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdawoox%2Fefc/lists"}