{"id":13755490,"url":"https://github.com/darx0r/stingray","last_synced_at":"2025-05-10T01:31:14.487Z","repository":{"id":2074287,"uuid":"43689676","full_name":"darx0r/Stingray","owner":"darx0r","description":"IDAPython plugin for finding function strings recursively","archived":false,"fork":false,"pushed_at":"2022-05-17T12:55:59.000Z","size":47,"stargazers_count":129,"open_issues_count":2,"forks_count":48,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-02-11T15:55:40.108Z","etag":null,"topics":["ida-plugin","ida-pro","idapython","idapython-plugin","reverse-engineering","static-analysis","string-search"],"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/darx0r.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-10-05T14:34:20.000Z","updated_at":"2024-01-16T16:21:27.000Z","dependencies_parsed_at":"2022-08-09T08:36:07.262Z","dependency_job_id":null,"html_url":"https://github.com/darx0r/Stingray","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/darx0r%2FStingray","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darx0r%2FStingray/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darx0r%2FStingray/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darx0r%2FStingray/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darx0r","download_url":"https://codeload.github.com/darx0r/Stingray/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224900840,"owners_count":17388942,"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":["ida-plugin","ida-pro","idapython","idapython-plugin","reverse-engineering","static-analysis","string-search"],"created_at":"2024-08-03T10:00:55.176Z","updated_at":"2024-11-16T09:30:52.889Z","avatar_url":"https://github.com/darx0r.png","language":"Python","funding_links":[],"categories":["\u003ca id=\"9dcc6c7dd980bec1f92d0cc9a2209a24\"\u003e\u003c/a\u003e字符串"],"sub_categories":["功能"],"readme":"\n\n# Stingray ![](images/Stingray.png)\n\nStingray is an IDAPython plugin for finding function strings. The search is from the current position onwards in the current function.\nIt can do it recursively also with configurable search depth. \nThe results order is the natural order of strings in the BFS search graph. \n\nFor each found string it displays the xref address, the string address, \nthe string type and the of course the string itself.\n\n## Stingray by Example\n\n```C\n#include \u003cstdio.h\u003e\n\nvoid bar()\n{\n\tprintf(\"hello from bar\\n\");\n}\n\nvoid foo()\n{\n\twprintf(L\"hello from foo\\n\");\n\tbar();\n}\n\nvoid foo2()\n{\n\twprintf(L\"hello from foo2\\n\");\n\tbar();\n}\n\nvoid main()\n{\n\tprintf(\"hello from main\\n\");\n\tfoo();\n\tfoo2();\n\n\tgetchar();\n}\n```\n\nMy Stingray was configured to recursive search we depth of 3.\nI put the cursor on main function and hit Shift+S.\nWe get the following Stingray output:\n\n![Example Output](examples/images/example_0_output.png)\n\nNotice the Xrefs are clickable !\n:)\n\n## Requirements\n\n- IDA (Hex Rays Interactive Disassembler) version \u003e= 6 with IDAPython\n- tested on IDA 6.1.1, 7.0, **7.2**\n- IDA 7.4 support was added in branch **7.4** (kudos to @0xricksanchez)\n\nTell us about your experience on higher versions!\n\n## Installation\n\n1. Copy src/Stingray.py file to the plugins directory of IDA (%IDAPATH%\\plugins) \nand restart IDA.\n\n2. You are ready to go :)\n\n## Usage and Menus\n\nload your favourite binary with IDA. \nTo find strings in the current function from your position onwards \nhit **Shift+s**.\n\nStingray can also be found in Edit/Plguins/Stingray menu.\n\nStingray finds strings recursively ! you can configure the search depth in\nthe Stingray Config menu.\n\n### Stingray Config\n\nYou can configure Stingray anytime from Options\\Stingray Config menu.\n\nYou can configure the search depth. For non-recursive search mode\nchoose 0 depth.\n\nBy default, Stingray is in non-recursive mode.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarx0r%2Fstingray","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarx0r%2Fstingray","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarx0r%2Fstingray/lists"}