{"id":13754653,"url":"https://github.com/mxmssh/idametrics","last_synced_at":"2025-05-10T00:31:04.448Z","repository":{"id":26500104,"uuid":"29952542","full_name":"mxmssh/IDAmetrics","owner":"mxmssh","description":"IDA plugin for software complexity metrics assessment","archived":false,"fork":false,"pushed_at":"2018-01-04T23:34:16.000Z","size":89,"stargazers_count":59,"open_issues_count":18,"forks_count":16,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-16T08:32:34.576Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mxmssh.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":"2015-01-28T05:38:27.000Z","updated_at":"2024-10-14T10:58:16.000Z","dependencies_parsed_at":"2022-09-02T20:02:00.852Z","dependency_job_id":null,"html_url":"https://github.com/mxmssh/IDAmetrics","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/mxmssh%2FIDAmetrics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxmssh%2FIDAmetrics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxmssh%2FIDAmetrics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxmssh%2FIDAmetrics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mxmssh","download_url":"https://codeload.github.com/mxmssh/IDAmetrics/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253346368,"owners_count":21894263,"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-03T10:00:32.288Z","updated_at":"2025-05-10T00:31:04.208Z","avatar_url":"https://github.com/mxmssh.png","language":"Python","funding_links":[],"categories":["\u003ca id=\"c39a6d8598dde6abfeef43faf931beb5\"\u003e\u003c/a\u003e未分类","\u003ca id=\"8c5a692b5d26527ef346687e047c5c21\"\u003e\u003c/a\u003e收集"],"sub_categories":[],"readme":"# IDAMetrics-static.py\nIDA plugins for static software complexity metrics collection.\n\nThis IDA script collects static software complexity metrics \nfor binary executables of x86 architecture.\n\nMinimal requirements:\n\nIDA 5.5.0 (32 bit)\n\nPython 2.5\n\nIDAPython 1.2.0\n\nSupported the following metrics:\n    \n    1. Lines of code (function/module)\n    \n    2. Average lines of code per basic block (module)\n    \n    3. Basic blocks count (function/module)\n    \n    4. Functions count (module)\n    \n    5. Conditions count (function/module)\n    \n    6. Assignments count (function/module)\n    \n    7. Cyclomatic complexity metric (function/module)\n    \n    8. Jilb's metric (function/module)\n    \n    9. ABC metric (function/module)\n    \n    10. Pivovarsky metric (function/module)\n    \n    11. Halstead metric (function/module)\n    \n    12. Harrison metric (function/module)\n    \n    13. Boundary value metric (function/module)\n    \n    14. Span metric (function/module)\n    \n    15. Global variables access count (function/module)\n\n    16. Oviedo metric (function/module)\n\n    17. Chepin metric (function/module)\n\n    18. Card \u0026 Glass metric (function/module)\n\n    19. Henry \u0026 Cafura metric (function/module)\n\n    20. Cocol metric (function/module)\n    \nAdditional functionality:\n\n     - node graph generation (function)\n     \n     - basic block boundaries generation (function)\n\nThe tool is based on [this paper.](https://www.researchgate.net/publication/312577578_Improving_Fuzzing_Using_Software_Complexity_Metrics)\n\nBibTeX:\n```\n@inproceedings{shudrak2015improving,\n    title={Improving fuzzing using software complexity metrics}, \n    author={Shudrak, Maksim O and Zolotarev, Vyacheslav V},\n    booktitle={International Conference on Information Security and Cryptology},  \n    pages={246--261},\n    year={2015},\n    organization={Springer}\n}\n```\n\n# IDAMetrics-dynamic.py\n\nIDA plugins for trace complexity assessment.\n\nThis IDA script allows to calculate complexity of executed trace. The pincc.cpp described\nbelow may be used to extract such trace from an application.\n\n# pincc.cpp\n\nIntel PIN DBI tool that allows to get trace of executed basic blocks.\n\n# Metrics efficiency analysis\n\nWe tested metrics to predict bugs in the following list of vulnerable apps: http://goo.gl/4dKypy\n\nThe raw results are here: http://goo.gl/Kl0qBa\n\n# sorter.py\n\nThis IDA Python script aimed to prioritize some test cases based on their coverage\ncomplexity. By default Halstead B metric is used to get coverage complexity.\nAlso script excludes not unique cases based on executed trace.\n\n\n#Bugs\n\nPlease read attentively current issues before using these scripts. Many metrics\nwere not originally created for binary code, so I made a lot of assumptions \nduring implementation and you should use results of these scripts carefully.\nPlease mail me if you find any inaccuracy or mistakes in the implementation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmxmssh%2Fidametrics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmxmssh%2Fidametrics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmxmssh%2Fidametrics/lists"}