{"id":13840833,"url":"https://github.com/evilsocket/brutemachine","last_synced_at":"2025-09-17T23:31:49.263Z","repository":{"id":57500301,"uuid":"95668227","full_name":"evilsocket/brutemachine","owner":"evilsocket","description":"A Go library which main purpose is giving an interface to loop over a dictionary and use those words/lines as input for some custom logic such as HTTP file bruteforcing, DNS bruteforcing, etc.","archived":false,"fork":false,"pushed_at":"2017-07-03T14:51:04.000Z","size":18,"stargazers_count":55,"open_issues_count":0,"forks_count":18,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-30T20:51:23.010Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/evilsocket.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":"2017-06-28T12:46:23.000Z","updated_at":"2024-11-13T16:49:34.000Z","dependencies_parsed_at":"2022-08-29T16:40:15.923Z","dependency_job_id":null,"html_url":"https://github.com/evilsocket/brutemachine","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/evilsocket%2Fbrutemachine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evilsocket%2Fbrutemachine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evilsocket%2Fbrutemachine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evilsocket%2Fbrutemachine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evilsocket","download_url":"https://codeload.github.com/evilsocket/brutemachine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233430268,"owners_count":18675061,"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-04T17:00:57.759Z","updated_at":"2025-09-17T23:31:42.929Z","avatar_url":"https://github.com/evilsocket.png","language":"Go","readme":"# BruteMachine\n\nThis is a Go library which main purpose is giving an interface to loop over a dictionary and use those words/lines as input for some \ncustom logic such as HTTP file bruteforcing, DNS bruteforcing, etc. Brute-Machine will take care of parallelism, job dispatching and\nso on, allowing you to focus on what matters most, the actual logic of your software.\n\n[![baby-gopher](https://raw.githubusercontent.com/drnic/babygopher-site/gh-pages/images/babygopher-badge.png)](http://www.babygopher.org) \n\n## Example\n\nThe following is an example of how to use `brutemachine` to perform HTTP files bruteforcing.\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n    \"net/http\"\n    \"strings\"\n\n    \"github.com/evilsocket/brutemachine\"\n)\n\nconst base = \"http://some-url.com/\"\n\nfunc DoRequest(page string) interface{} {\n    url := strings.Replace(fmt.Sprintf(\"%s%s\", base, page), \"%EXT%\", \"php\", -1)\n    resp, err := http.Head(url)\n    // Only pass valid responses to the handler.\n    if err == nil \u0026\u0026 resp.StatusCode == 200 {\n        return url\n    }\n\n    return nil\n}\n\nfunc OnResult(res interface{}) {\n    fmt.Printf(\"@ Found '%s'\\n\", res)\n}\n\nfunc main() {\n    m := brutemachine.New( -1, \"dictionary.txt\", DoRequest, OnResult)\n    if err := m.Start(); err != nil {\n        panic(err)\n    }\n\n    m.Wait()\n\n    fmt.Printf(\"\\nDONE:\\n\")\n    fmt.Printf(\"%+v\\n\", m.Stats)\n}\n```\n\n## Installation\n\n    go get github.com/evilsocket/brutemachine\n\n## License\n\nThis project is copyleft of [Simone Margaritelli](http://www.evilsocket.net/) and released under the GPL 3 license.\n\n","funding_links":[],"categories":["Go","Go (531)"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevilsocket%2Fbrutemachine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevilsocket%2Fbrutemachine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevilsocket%2Fbrutemachine/lists"}