complemento hrtng ida
HRTNG IDA Plugin es una colección de herramientas, ideas y experimentos de diferentes fuentes que he encontrado interesante y útil en mi trabajo de inversión.
Una guía práctica para el reverso de un malware complejo que utiliza el ejemplo de diseccionar un módulo FINSPY con la ayuda del complemento HRTNG IDA en SecurElist
No hay ningún lugar en el menú donde se agrupe toda la funcionalidad del complemento. Elementos del menú HRTNG se colocó más cerca de las funciones de descompilador estándar de rayos IDA y HEX relacionados lógicamente. Los mensajes, los elementos del menú, las ventanas emergentes y los cuadros de diálogo pertenecen a este complemento están marcados con prefijo " [hrt] ".
El complemento requiere presencia de descompilador de rayos hexagonales en su instalación de IDA. El complemento se puede compilar con IDA SDK> = 7.3 pero no bien probado con versiones antiguas.
Un agradecimiento especial a los siguientes a las personas por sus grandes complementos se utilizaron como base para mi trabajo:
- Milan Bohacek, hexrays_tools y hexrays_hlight
- Hexraysdeob de Rolf Rolles y Takahiro Haruyama
- Complemento Karthik Selvaraj Krypton
- Ali Rahbar, Ali Pezeshk y Elias Bachaalany Graphslick Plugin
- Soporte de Markus Gaasedelen AVX para el descompositor Hex-Rays X64
Características del complemento:
Automatización
- Sire los comentarios de Disasm a Pseudocode View
- Renaming automático de variables locales y globales, miembros de Struct
- Sustitución automática de enum
- Com aelor
Transformación de pseudocodos interactivos
- Asistencia de cambio de nombre/retiro interactivo de usuario
- Asiste con el tipo de cambio de tipo de estructura o variable local/global
- reinterpret_cast
- Selección de colapso
- Convertidor "OffsetOf"
Descifrado
- Cadenas/datos/descifrado constante
- Construir cadenas de pila (opcionalmente con descifrado)
- Construir cadenas de matriz (opcionalmente con descifrado)
- Descifrado de cadenas de masas
Lidiar con el código ofuscado
- Descompilar Código ofuscado
- Escanear para los hashes de los nombres de la API
- Inquebrantable
Reconocimiento de código
- Firmas de microcódigo
- Desentrenamiento: detección de funciones en línea
Asistencia de estructuras
- Crear estructuras ficticias
- Asistir brechas divididas en estructuras
Asistencia de llamadas virtuales/indirectas
- Asistencia de llamadas virtuales
- Saltar al destino de llamadas indirectas
- FIJAR PUNTER DE PISTA para una llamada indirecta
Mejoras de IDA UI
- XREFS extendido
- Resalto de la lápices de apoyo a juego
- ENTENDA AUTO ENTRACIÓN DE LA Sincronización de contenido de la ventana 'Funciones'
Características de misk
- Obtener ayuda API
- Avx Lifter
- Volcar cadenas, comentarios y nombres de la base de datos de IDA
- Compensación de la creación de la mesa
- Convertir la función en __usercall, detectar registros mimados
- Establecer convenciones de llamadas un poco más cerca de Go-Lang
Parche
- Patch Area personalizado con NOPS
- Patch desde el depurador / parche del archivo
- Búsqueda y parche
- Crear archivo parcheado (dec)
Ayuda del desarrollador de complementos de IDA
Edificio
- Clon o descargue el código fuente de CRYPTO ++ ® BIBLIOTE CMAKE a la carpeta
hrtng/src/cryptopp-cmake .
cd src
git clone https://github.com/abdes/cryptopp-cmake
- Copie
IDA_DIR/plugins/hexrays_sdk/include/hexrays.hpp archivo en el directorio de include el IDA SDK. (No es necesario para IDA 9.0) - Editar el archivo
hrtng/src/CMakeLists.txt para establecer la ruta correcta y la versión de IDA SDK usado. Para construir más tarde con otra versión SDK, puede cambiar la variable IDASDK_VER de CMake con las herramientas cmake -D , ccmake o cmake-gui . - Crear directorio de compilación, entrar en él, configurar y crear el proyecto CMake
mkdir bld && cd bld
cmake <path-to/hrtng/src>
cmake --build . --config Release -j 4 --clean-first
- En el primer intento de compilación habrá un error de compilación como:
hrtng/src/deob.cpp:912:60: error: ‘class rangeset_t’ has no member named ‘getbag’
fc.create("tmpfc2", ranges.getbag(), 0);//!!! add line into range.hpp, class rangeset_t: "const rangevec_t &getbag() const { return bag; }"
- Para corregir el error, edite el archivo
IDA_SDK/include/range.hpp , agregando línea con la implementación de la función getbag en la declaración class rangeset_t como en el siguiente ejemplo:
class rangeset_t
{
rangevec_t bag;
...
public:
const rangevec_t &getbag() const { return bag; }
...
};
- Copiar binarios construidos en la carpeta
IDA_DIR/plugins Togeter con archivos apilist.txt y literal.txt desde hrtng/bin/plugins - Ganancia
Licencia
Este programa se publica bajo la licencia GPL V3
Autores
- Sergey.belov en kaspersky.com