{"id":13766124,"url":"https://github.com/scrt/avcleaner","last_synced_at":"2025-05-10T21:33:18.084Z","repository":{"id":39598646,"uuid":"273510871","full_name":"scrt/avcleaner","owner":"scrt","description":"C/C++ source obfuscator for antivirus bypass","archived":false,"fork":false,"pushed_at":"2022-03-10T09:58:01.000Z","size":19768,"stargazers_count":1010,"open_issues_count":6,"forks_count":178,"subscribers_count":32,"default_branch":"master","last_synced_at":"2024-11-17T02:33:41.950Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","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/scrt.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}},"created_at":"2020-06-19T14:17:11.000Z","updated_at":"2024-11-10T13:41:37.000Z","dependencies_parsed_at":"2022-07-14T03:40:34.833Z","dependency_job_id":null,"html_url":"https://github.com/scrt/avcleaner","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/scrt%2Favcleaner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scrt%2Favcleaner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scrt%2Favcleaner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scrt%2Favcleaner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scrt","download_url":"https://codeload.github.com/scrt/avcleaner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253486251,"owners_count":21916134,"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":[],"created_at":"2024-08-03T16:00:51.752Z","updated_at":"2025-05-10T21:33:13.069Z","avatar_url":"https://github.com/scrt.png","language":"C","readme":"# avcleaner\nC/C++ source obfuscator for antivirus bypass\n\n![usage example](https://blog.scrt.ch/wp-content/uploads/2020/06/Screenshot-2020-06-18-at-17.50.54-1.png)\n\n# Blog posts\n\nThe implementation is rather complex and this domain in software development is rarely documented in layman's terms. This is why there are blog posts which detail every design choice and go over the quirks of working with the LLVM API.\n\n* https://blog.scrt.ch/2020/06/19/engineering-antivirus-evasion/\n* https://blog.scrt.ch/2020/07/15/engineering-antivirus-evasion-part-ii/\n\n\n\n## Build\n\n```\ndocker build . -t avcleaner\ndocker run -v ~/dev/scrt/avcleaner:/home/toto -it avcleaner bash #adapt ~/dev/scrt/avcleaner to the path where you cloned avcleaner\nsudo pacman -Syu\nmkdir CMakeBuild \u0026\u0026 cd CMakeBuild\ncmake ..\nmake -j 2\n./avcleaner.bin --help\n```\n\n## Usage\n\nFor simple programs, this is as easy as:\n\n```\navcleaner.bin test/strings_simplest.c --strings=true --\n```\n\nHowever, you should know that you're using a compiler frontend, which can only work well if you give it the path to ALL the includes required to build your project. As an example, `test/string_simplest.c` includes headers from the WinSDK, and the script `run_example.sh` shows how to handle such scenarios.\n\n## Common errors\n\n```\nCommandLine Error: Option 'non-global-value-max-name-size' registered more than once! LLVM ERROR: inconsistency in registered CommandLine options\n```\n\nIn case you encounter this error, please use `CMakeLists_archlinux.txt` instead of `CMakeLists.txt` and it should go away. \n\n\n## Contributors\n\nThanks @gituser5555 for the bug fixes.\n","funding_links":[],"categories":["Projects","Malware Analysis"],"sub_categories":["C/C++","Virus/Anti-Virus"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscrt%2Favcleaner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscrt%2Favcleaner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscrt%2Favcleaner/lists"}