Skip to content

gGaster7/Smali-Hover-Help

Repository files navigation

Smali Hover Help

An extension for Visual Studio Code that enhances the experience of working with Smali bytecode.

Features

Hover Information

  • Smali Operators: Get descriptions of Smali operators (if-eq, add-int, etc.) when hovering over them
  • Register Values: View register content and origin information
  • Array Operations: Get details about array operations (aput, aget) including array type and index values
  • Label Navigation: Quick access to label definitions and references when hovering over labels

Code Navigation

  • Label Definition: Jump to the definition of a label with a single click
  • Label References: Find all references to a specific label in the code
  • Related Labels: Highlight labels that are connected in the code flow

Code Conversion

  • Java to Smali Conversion: Convert Java fields, loops, and methods to Smali code
  • Smali to Java Pseudo-code: Transform Smali code blocks into readable Java-like syntax

Register Analysis

  • Register Tracking: Track the usage of registers throughout the code
  • Register Highlighting: Highlight related registers to see their connections
  • Highlight Management: Add, remove, and manage register highlights

Visualizations

  • Data Flow Visualization: View graphical representation of data flow between registers
  • Method Structure Visualization: Generate flowcharts of method logic with conditions, jumps, and returns
  • File Structure Visualization: Analyze and display classes, methods, and fields in the file and their relationships
  • Method Call Analysis: See which methods call other methods within the file

Context Menu Options

  • Quick access to all features through the editor context menu
  • Support for multiple commands and operations

Installation

  1. Open VS Code
  2. Go to Extensions (Ctrl+Shift+X)
  3. Search for "Smali Hover Help"
  4. Click Install

Usage

Open any .smali file in VS Code, right-click in the editor and select one of the Smali Hover Help commands from the context menu.

Available Commands

  • Smali: Convert Java to Smali - Converts Java code to equivalent Smali code
  • Smali: Track Register Usage - Highlights and tracks register usage
  • Smali: Convert to Java Pseudo-Code - Converts selected Smali code to Java-like syntax
  • Smali: Clear All Register Highlights - Removes all register highlighting
  • Smali: Manage Register Highlights - Manage which registers to highlight
  • Smali: Visualize Register Data Flow - Shows data dependencies between registers
  • Smali: Visualize Method Structure - Creates a flowchart of the current method
  • Smali: Visualize File Structure - Displays the structure of the entire file with classes, methods, and their relationships

Command Shortcuts

  • Ctrl+Alt+H (macOS: Cmd+Option+H) - Insert Smali Field from Java

Smali Hover Help

Расширение для Visual Studio Code, которое улучшает работу со Smali-байткодом.

Возможности

Информация при наведении курсора

  • Операторы Smali: Получение описаний операторов Smali (if-eq, add-int и т.д.) при наведении курсора
  • Значения регистров: Просмотр содержимого регистров и информации об их происхождении
  • Операции с массивами: Подробная информация об операциях с массивами (aput, aget), включая тип массива и значения индексов
  • Навигация по меткам: Быстрый доступ к определениям меток и ссылкам на них при наведении курсора

Навигация по коду

  • Определение метки: Переход к определению метки одним кликом
  • Ссылки на метки: Поиск всех ссылок на определенную метку в коде
  • Связанные метки: Подсветка меток, которые связаны по потоку выполнения кода

Конвертация кода

  • Преобразование Java в Smali: Конвертация Java-полей, циклов и методов в Smali-код
  • Преобразование Smali в псевдокод Java: Трансформация блоков Smali-кода в читаемый Java-подобный синтаксис

Анализ регистров

  • Отслеживание регистров: Отслеживание использования регистров в коде
  • Подсветка регистров: Подсветка связанных регистров для визуализации их взаимосвязей
  • Управление подсветкой: Добавление, удаление и управление подсветкой регистров

Визуализации

  • Визуализация потока данных: Графическое представление потока данных между регистрами
  • Визуализация структуры метода: Генерация блок-схем логики метода с условиями, переходами и возвратами
  • Визуализация структуры файла: Анализ и отображение классов, методов и полей в файле и их взаимосвязей
  • Анализ вызовов методов: Отображение какие методы вызывают другие методы внутри файла

Опции контекстного меню

  • Быстрый доступ ко всем функциям через контекстное меню редактора
  • Поддержка множества команд и операций

Установка

  1. Откройте VS Code
  2. Перейдите в раздел Расширения (Ctrl+Shift+X)
  3. Найдите "Smali Hover Help"
  4. Нажмите Установить

Использование

Откройте любой .smali файл в VS Code, щелкните правой кнопкой мыши в редакторе и выберите одну из команд Smali Hover Help из контекстного меню.

Доступные команды

  • Smali: Convert Java to Smali - Преобразует Java-код в эквивалентный Smali-код
  • Smali: Track Register Usage - Подсвечивает и отслеживает использование регистров
  • Smali: Convert to Java Pseudo-Code - Преобразует выбранный Smali-код в Java-подобный синтаксис
  • Smali: Clear All Register Highlights - Удаляет все подсветки регистров
  • Smali: Manage Register Highlights - Управляет подсветкой регистров
  • Smali: Visualize Register Data Flow - Показывает зависимости данных между регистрами
  • Smali: Visualize Method Structure - Создает блок-схему текущего метода
  • Smali: Visualize File Structure - Отображает структуру всего файла с классами, методами и их взаимосвязями

Сочетания клавиш

  • Ctrl+Alt+H (macOS: Cmd+Option+H) - Вставить Smali-поле из Java

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors