{"id":13422823,"url":"https://github.com/patois/HRDevHelper","last_synced_at":"2025-03-15T12:30:53.205Z","repository":{"id":40605357,"uuid":"188281972","full_name":"patois/HRDevHelper","owner":"patois","description":"HexRays ctree visualization plugin","archived":false,"fork":false,"pushed_at":"2024-09-06T16:14:25.000Z","size":1042,"stargazers_count":375,"open_issues_count":0,"forks_count":33,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-11-16T09:34:00.602Z","etag":null,"topics":["ast","ctree","debugging","decompiler","graph","hexrays","hexrays-decompiler","ida","ida-pro","idapython","visualization"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/patois.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-23T17:54:25.000Z","updated_at":"2024-10-26T11:44:23.000Z","dependencies_parsed_at":"2023-01-22T22:00:55.858Z","dependency_job_id":"bd411b58-5467-4e54-a5fc-3ce2f35e0c3c","html_url":"https://github.com/patois/HRDevHelper","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/patois%2FHRDevHelper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patois%2FHRDevHelper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patois%2FHRDevHelper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patois%2FHRDevHelper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patois","download_url":"https://codeload.github.com/patois/HRDevHelper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243731052,"owners_count":20338763,"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":["ast","ctree","debugging","decompiler","graph","hexrays","hexrays-decompiler","ida","ida-pro","idapython","visualization"],"created_at":"2024-07-30T23:00:58.459Z","updated_at":"2025-03-15T12:30:52.769Z","avatar_url":"https://github.com/patois.png","language":"Python","readme":"# HRDevHelper\n\nHRDevHelper is an extension for the Hexrays decompiler written in IDAPython and is meant to be a helpful tool for debugging and developing your own Hexrays plugins and scripts. The plugin draws its usefulness from displaying a graph of a decompiled function's respective ctree and creating visual links between its underlying decompiled code and the graphs' individual items.\n\n![HRDevHelper animated gif](/rsrc/hrdevhelper.gif?raw=true)\n\nWhen invoked, HRDevHelper creates and attaches a ctree graph to the currently active decompiler widget and centers the graph's view on the current ctree item. Subsequently navigating the decompiled code visually highlights corresponding ctree items in the graph.  \n\nThe plugin's default colors and other settings (zoom, dock position etc.) can be configured by\nediting the plugin's configuration file that is created after running the plugin for the first time. The HRDevhelper.cfg configuration file can be found in the [IDA user directory](https://hex-rays.com/blog/igors-tip-of-the-week-33-idas-user-directory-idausr/).\n\n## Installation\nCopy hrdevhelper.py and the hrdh folder to ./IDA/plugins/ and restart IDA.\n\n## Plugin Usage \u0026 Shortcuts\nThe plugin's functionality is accessible via right-click in a decompiler view or otherwise via keyboard shortcuts:\n\n* \"show ctree\" creates a graph of all ctree items of the current decompiled function.\n* \"show sub-tree\" creates a graph of ctree items that belong to the current expression.\n  The subgraph's root is determined via the current decompiler view's text cursor.\n* \"show context\" opens a context viewer that, among other information, displays the current\n  sub-tree's citems as a lambda expression. This expression can be used with and directly copy-pasted into hxtb-shell that comes with the [HexraysToolbox](https://github.com/patois/HexraysToolbox) script.\n\nBy default, HRDevHelper visually highlights all ctree items in a graph that correspond to a current single decompiled line of code. Making a selection of multiple lines highlights nodes accordingly.\n\nThe two screenshots below show the context viewer.\n\n![HRDevHelper context view](/rsrc/hrdevctx.png?raw=true)\n\n![HRDevHelper context view](/rsrc/hrdevctx2.png?raw=true)\n\nIn addition to the keyboard shortcuts that are made available in decompiler views, the graphs created by HRDevHelper have additional keyboard shortcuts in place as shown below. \n\n### Graph Hotkeys (focus on any HRDevHelper graph/subgraph):\n* C: Toggle \"center on current item/node\" functionality (switches synchronization on/off).\n* D: Increase debug/verbosity of particular nodes \n","funding_links":[],"categories":["IDA Plugins","Python (1887)","Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatois%2FHRDevHelper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatois%2FHRDevHelper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatois%2FHRDevHelper/lists"}