hexforge_modules/search_modules.py (71 lines of code) (raw):

import ida_kernwin import idaapi import binascii import re from hexforge_modules import helper class SearchGoogle(helper.ModuleTemplate): def __init__(self): self.ACTION_NAME = "hexforge::search_google_string" self.ACTION_TEXT = "search string in Google" self.ACTION_TOOLTIP = "search string in Google" def _action(self) -> None: data = helper.get_highlighted_string_from_decompiler() try: formatted_url = f"https://www.google.com/search?q={data}" ida_kernwin.open_url(formatted_url) except Exception as e: print(e) return None class SearchGitHub(helper.ModuleTemplate): def __init__(self): self.ACTION_NAME = "hexforge::search_github" self.ACTION_TEXT = "search string in GitHub" self.ACTION_TOOLTIP = "search string in GitHub" def _action(self) -> None: data = helper.get_highlighted_string_from_decompiler() try: formatted_url = f"https://github.com/search?q={data}&type=code" ida_kernwin.open_url(formatted_url) except Exception as e: print(e) return None class SearchGrepApp(helper.ModuleTemplate): def __init__(self): self.ACTION_NAME = "hexforge::search_grepapp_string" self.ACTION_TEXT = "search string in Grep.app" self.ACTION_TOOLTIP = "search string in Grep.app" def _action(self) -> None: data = helper.get_highlighted_string_from_decompiler() try: formatted_url = f"https://grep.app/search?q={data}" ida_kernwin.open_url(formatted_url) except Exception as e: print(e) return None class SearchVirustotalBytes(helper.ModuleTemplate): def __init__(self): self.ACTION_NAME = "hexforge::search_virustotal_bytes" self.ACTION_TEXT = "search bytes in VirusTotal" self.ACTION_TOOLTIP = "search bytes in VirusTotal" def _action(self) -> None: data = helper.get_selected_bytes() try: hex_data = binascii.hexlify(data).decode('utf-8') formatted_url = f"https://www.virustotal.com/gui/search/content%253A%2520%257B{hex_data}%257D" ida_kernwin.open_url(formatted_url) except (binascii.Error, UnicodeDecodeError) as e: print(e) return None class SearchVirustotalString(helper.ModuleTemplate): def __init__(self): self.ACTION_NAME = "hexforge::search_virustotal_string" self.ACTION_TEXT = "search string in VirusTotal" self.ACTION_TOOLTIP = "search string in VirusTotal" def _action(self) -> None: data = helper.get_highlighted_string_from_decompiler() try: formatted_url = f"https://www.virustotal.com/gui/search/content%253A%2520{data}" ida_kernwin.open_url(formatted_url) except Exception as e: print(e) return None