Ayuda para pe explorer en ruso. Programas para analizar archivos ejecutables. Cómo solucionar problemas al abrir archivos PE

Antes de atacar cualquier protección superpuesta, es útil saber qué tipo de empacador o protector se utilizó. Con experiencia, podrá identificar la mayoría de los protectores a simple vista, pero para una verificación más precisa, se utilizan analizadores de archivos ejecutables. Además de información sobre el empaquetador o protector, también proporcionan muchos otros datos útiles: con qué compilador se creó el archivo, los tamaños y nombres de las secciones, la relación de compresión, el punto de entrada y el fragmento de código desensamblado que contiene. etc. La lista de funciones puede variar en diferentes programas.



File Format Identifier es un desarrollo muy exitoso de la empresa antivirus china SUCOP, la última versión 1.4 de 2008. El analizador funciona utilizando firmas externas en formato PEiD, pero el valor principal es el desempaquetador estático incorporado de empaquetadores simples. El desempaquetador funciona con tecnología de máquina virtual, lo que significa que no se ejecuta ningún código, lo cual es especialmente importante a la hora de investigar malware. También son herramientas útiles del programa un reconstructor de importaciones, un reconstructor de archivos ejecutables, una calculadora de compensación y un extractor de superposiciones. Si entiende chino, puede descargarlo desde fuera del sitio, pero recomiendo tomar mi ensamblaje del archivo adjunto. Eliminó todo lo innecesario, reemplazó el motor de desempaquetado por uno comercial con funciones mejoradas y agregó una base de datos de firmas externa. Se recomienda tener siempre a mano el Identificador de formato de archivo.



Bit Detector es un nuevo desarrollo, también del equipo árabe de crackers. Bajo el equipo SEH, última versión pública 2.8.5.6 de junio de 2012. Además de la función de determinar el compilador y el empaquetador, incluye varias herramientas útiles y no tan útiles.



DNiD- un programa similar a PEiD, pero centrado en aplicaciones .NET. Le permite identificar varias docenas de versiones diferentes de compiladores, protectores, empaquetadores y ofuscadores de programas .NET.

DNiD.1.0.zip (273.389 bytes)




Escáner de rayos A, el proyecto no se ha actualizado desde hace mucho tiempo, la última versión es 2.0.2.2 de 2005. El programa está destinado únicamente a escanear discos CD/DVD y detecta varias docenas de protecciones de copia para discos. También define algunos empaquetadores y protectores de archivos ejecutables.

A-Ray.Scanner.2.0.2.2.zip (320.892 bytes)




Clon XXL- una utilidad que determina el tipo de protección de los CD. Al igual que el programa anterior, hace tiempo que no se actualiza, la última versión es la 2.0.1.5 del año 2003. Define protecciones: SafeDisc, SecuROM, Discguard, LaserLok, Psx/Lybcrypt, Cactus Data Shield (Audio CD), Lock Blocks, CD Check, ProtectetCD-VOB, CD-Extra y protección basada en la ubicación no estándar de información en el disco. Por defecto la interfaz está en alemán, pero en la configuración cambia al inglés.

ClonyXXL.2.0.1.5.zip (276.879 bytes)


Además de los analizadores universales, existen varias utilidades para protectores específicos. Los más útiles son ASPrINF, VerA, Armadillo Find Protected, Armadillo Informant y Detemida.



ASPRINF de nik0g0r del equipo TLG, otro desarrollo nacional, última versión 1.6 beta. Una pequeña utilidad para determinar con precisión la versión del protector ASProtect que cubre un archivo. Se utiliza análisis dinámico, no análisis de firmas, por lo que la versión se determina con precisión. Además de la versión exacta de ASProtect, la utilidad muestra información sobre a nombre de quién está registrado el protector, de modo que los fabricantes de acciones que utilizan protectores warez rotos para sus manualidades puedan quedar expuestos fácilmente :)

28
Feb
2012

PE Explorer 1.99 R6 Repaquete

Año de fabricación: 2011
Género: editor de archivos
Desarrollador: Software Heaventools
Sitio web del desarrollador: http://www.heaventools.ru
Lenguaje de interfaz: ruso
Tipo de construcción: Reempaquetar
Profundidad de bits: 32/64 bits
Sistema operativo: Windows XP, Vista, 7
Requisitos del sistema: Procesador Intel Pentium® o AMD K5 de 166 MHz, 16 MB de RAM

Descripción: PE Explorer es un programa para ver, estudiar, analizar y editar la estructura interna de archivos ejecutables. Con PE Explorer, puede explorar sus propios programas y bibliotecas, así como aplicaciones de desarrolladores externos a cuyo código fuente no tiene acceso. Esto también incluye el estudio de la estructura de virus, troyanos y otros programas maliciosos.
PE Explorer le permite abrir, ver y editar archivos PE (ejecutables portátiles) de 32 bits para Windows de cualquier tipo: EXE, DLL y ActiveX, SCR (salvapantallas), CPL (applets del panel de control), SYS, DRV, MSSTYLES, MUI. , BPL, DPL y muchos otros.

* Ver qué hay dentro de los archivos ejecutables y para qué están destinados
* Cambiar y personalizar elementos de la interfaz gráfica de los programas.
* Determinar dónde accede la aplicación y qué DLL se llaman desde ella.
* Predecir el comportamiento del programa y la lógica de interacción con otros módulos.
* Verificar la presencia e integridad de la firma digital del expediente, verificar el proveedor
* Obtenga una pista sobre los parámetros de las funciones exportadas desde las bibliotecas del sistema
* Abra directamente archivos empaquetados con UPX, UPack o NSPack
* Soporte especial para aplicaciones escritas en Delphi

* Editor de encabezados y secciones.
* Editor de recursos
* Visor de una lista de funciones exportadas/importadas y sus parámetros
* Desmontador
* Escáner de dependencia
* Visor de firmas digitales
* Desempaquetadores estáticos UPX, UPack y NSPack
* Y mucho más

Capacidad para trabajar con archivos dañados en modo seguro
- Comprobando la integración del archivo ejecutable.
- Descompresión automática de archivos empaquetados con UPX, WinUpack, NSPack
- Guardar cambios como nuevos archivos ejecutables
- Desensamblador para restaurar el código primario del archivo ejecutable.
- Analizador de dependencia para determinar el conjunto mínimo de bibliotecas necesarias para un archivo
- Una herramienta para eliminar la información de depuración contenida en un archivo.
- Herramienta para eliminar la tabla de parches
- Se corrigieron errores que ocurrían al ver archivos en Windows Vista y se eliminaron errores menores.



25
Abr
2011

Reempaquetado de UFS Explorer Professional Recovery 3.19.1

Año de fabricación: 2011
Género: Recuperación de datos







21
Abr
2017

Fraps 3.5.99 Build 15618 RePack de D!akov

Año de fabricación: 2016
Género: Captura de pantalla, Captura de pantalla, FPS
Sitio web del desarrollador: fraps.com
Idioma de la interfaz: ruso
Tipo de construcción: Reempaquetar
Profundidad de bits: 32/64 bits
Requisitos del sistema: Windows XP | Vista | 7| 8| 10
Descripción: Fraps: diseñado para contar el número de FPS (fotogramas por segundo) en aplicaciones que se ejecutan en modos OpenGL y Direct3D. La utilidad puede tomar capturas de pantalla y grabar videos de imágenes de la pantalla. Fraps consta de tres módulos: software de evaluación comparativa, software de captura de pantalla y software de captura de video en tiempo real. Software de evaluación comparativa: muestra cuántos fotogramas por segundo (FP...


07
Abr
2016

Windows 10 PE de Ratiborus v.4.5.1 BootDVD de 64 bits

Año de fabricación: 2016
Género: disco de arranque de Windows 10 PE
Desarrollador: Ru.Board
Sitio web del desarrollador: https://href.li/?http://forum.ru-board.com/topic.cgi?forum=2&topic=5328#1
Idioma de la interfaz: ruso
Tipo de compilación: BootDVD
Profundidad de bits: 64 bits
Sistema operativo: Windows)
Requisitos del sistema: Procesador: 1 GHz o más rápido RAM: 2 GB Resolución de pantalla: 1024 x 768
Descripción: Disco de arranque basado en Windows 10 PE: para reparar computadoras, trabajar con discos duros y particiones, realizar copias de seguridad y restaurar discos y particiones, diagnosticar una computadora y restaurar datos. Agregar. información...


21
Feb
2011

Explorador del mundo de Minecraft 1.4

Año de fabricación: 2010
Género: Arcade
Desarrollador: Robots and Pencils Inc.
Sitio web del desarrollador: http://hq.robotsandpencils.com/
Idioma de la interfaz: ruso
Plataforma: iPhone
Requisitos del sistema: iOS 3.2 y superior
Descripción: Minecraft es un juego increíblemente adictivo: fácil de empezar, pero imposible de detener. Finalmente, puedes crear, jugar y explorar mundos 3D en tu iPad y iPhone.


05
Abr
2011

Explorador Deepnet 1.5.3 Beta + RUS

Año de fabricación: 2006
Género: Navegador
Desarrollador: Seguridad Deepnet
Sitio web del desarrollador: http://www.deepnetexplorer.com/
Idioma de la interfaz: inglés + ruso
Plataforma: Windows XP, Vista, 7
Descripción: Deepnet Explorer es el primer navegador del mundo con lector de noticias RSS, integración de cliente P2P y alarma de phishing. La seguridad superior, la funcionalidad y la facilidad de uso del navegador aún hacen que Deepnet se destaque entre la multitud. Cambie a una experiencia visual como nunca antes. Información adicional Deepnet Explorer es uno de los navegadores web más seguros. Aunque Deepnet Explorer usa IE...


26
Feb
2008

My Phone Explorer 1.6.2 RUS (Nueva versión) (2007)

Año de fabricación: 2007
Género: desarrollador de programas para teléfonos móviles: F.J. WESHSELBERGER
Autor: Mad Max
Tipo de publicación: pirata
Idioma de la interfaz: solo ruso
Medicina: No requerida
Plataforma: PC
Requisitos del sistema: Windows 95,98,2000,me, XP,VISTA,16 MB de RAM
Descripción: El programa más potente para gestionar tu teléfono. Dispone de gestor de archivos, editores de SMS, agenda telefónica, perfiles, etc. También sabe cómo guardar copias de seguridad de todo lo que hay en el teléfono y, en consecuencia, restaurarlas a partir de copias de seguridad. Puede sincronizarse con Outlook. En general, las posibilidades son muy grandes. En teoría debería...


07
Mar
2011

DiskSpace Explorer 3.0.1.328 Edición de inicio

Versión: 3.0.1.328
Año de fabricación: 2004
Género: Catalogador
Desarrollador: Tecnologías EAST
Sitio web del desarrollador: http://www.east-tec.com
Idioma de la interfaz: inglés
Plataforma: Windows 95, 98, Yo, 2000, XP, 2003, Vista, 2008, 7
Requisitos del sistema: procesador Pentium II, 200 MHz, 1 MB de espacio en disco
Descripción: El programa crea gráficos circulares del sistema de archivos. Esto le permitirá ver en qué carpetas hay muchos archivos pesados, lo que es de gran ayuda a la hora de limpiar el disco duro de basura vieja. Grieta incluida.
Agregar. Información: Inicie el instalador. Después de la instalación, coloque el parche en la carpeta del programa, ejecute...


16
Mar
2012

TechSmith Camtasia Studio 7.1.1.1785 + Lite RePack + Portátil + RePack

Año de fabricación: 2011
Género: captura de pantalla, imágenes.
Desarrollador: TechSmith Corporation
Sitio web del desarrollador: http://www.techsmith.com/
Idioma de la interfaz: ruso + inglés
Tipo de montaje: Estándar + Portátil + RePack
Profundidad de bits: 32 bits
Sistema operativo: Windows XP, Vista, 7
Requisitos del sistema: Microsoft DirectX 9 o versión posterior 1,5 GHz, mínimo de un solo núcleo ~ Recomendado: Intel de doble núcleo a 2,0 GHz o mejor 1 GB de RAM como mínimo ~ Recomendado: 2,0 GB o más 500 MB de espacio en el disco duro para la instalación del programa Dimensiones de la pantalla de 1024x768 o mayor
Descripción: Camtasia Studio es un potente programa para...


07
Sep
2012

XnView 1.99.1 Completo + Portátil

Año de fabricación: 2012
Género: editor gráfico, conversor
Desarrollador: XnView
Sitio web del desarrollador: http://www.xnview.com/

Tipo de montaje: Estándar + Portátil
Profundidad de bits: 32/64 bits

Descripción: XnView es una utilidad conveniente para ver y convertir archivos gráficos. Este buen visor de archivos gráficos tiene una alta velocidad de funcionamiento, una interfaz fácil de usar, admite más de 500 formatos gráficos y convierte entre 50 formatos. XnView puede recortar gráficos, cambiar...


10
pero yo
2013

Reempaquetado final de VSO ConvertXtoDVD 5.1.0.2

Año de fabricación: 2013
Género: Conversor de vídeo
Desarrollador: Software VSO
Sitio web del desarrollador: http://ru.vso-software.fr
Idioma de la interfaz: multilingüe (el ruso está presente)
Tipo de construcción: Reempaquetar
Profundidad de bits: 32/64 bits
Sistema operativo: Windows XP, Vista, 7, 8
Descripción: VSO ConvertXtoDVD es un programa diseñado para convertir vídeo a un formato compatible con DVD Video y luego grabar el contenido en DVD. El programa admite archivos de vídeo AVI, Mpeg, Mpeg4, DivX, Xvid, MOV, WMV, WMV HD, DV, MKV, DVD, así como streaming de vídeo. El programa no requiere códecs AVI externos para funcionar, ya que utiliza...


25
Abr
2011

Recuperación profesional de UFS Explorer 3.19.1 32 bits/64 bits

Año de fabricación: 2011
Género: Recuperación de datos
Desarrollador: SysDevSoftware, la división de Desarrollo e Investigación de SysDev Laboratories LLC.
Sitio web del desarrollador: http://www.ufsexplorer.com/
Idioma de la interfaz: ruso + inglés
Plataforma: Windows 2000, XP, XP x64, 2003, 2003 x64, Vista, Vista x64, 2008, 2008 x64, 7, 7 x64
Requisitos del sistema: CPU: compatible con Pentium, 32 y 64 bits.
Disco duro: 10 MB de espacio libre.
RAM: al menos 256 MB.
Descripción: UFS Explorer Professional Recovery es una versión profesional de un producto de software que es potente, completo y fácil...


25
Abr
2011

Recuperación estándar de UFS Explorer 4.9.1 32 bits/64 bits

Año de fabricación: 2011
Género: Recuperación de datos
Desarrollador: SysDevSoftware, la división de Desarrollo e Investigación de SysDev Laboratories LLC.
Sitio web del desarrollador: http://www.ufsexplorer.com/
Idioma de la interfaz: ruso + inglés
Plataforma: Windows 2000, XP, XP x64, 2003, 2003 x64, Vista, Vista x64, 2008, 2008 x64, 7, 7 x64
Requisitos del sistema: CPU: compatible con Pentium, 32 y 64 bits.
Disco duro: 10 MB de espacio libre.
RAM: al menos 256 MB.
Descripción: UFS Explorer Standard Recovery es un producto con todas las funciones creado específicamente para la recuperación de datos. Incluye todo...


30
Sep
2017

Adobe InDesign CC 2017.1 12.1.0.56 Reempaquetado por KpoJIuK 12.1.0.56 Reempaquetado

Año de lanzamiento: 2017
Género: Editor gráfico
Desarrollador: Adobe
Sitio web del desarrollador: www.adobe.com
Idioma de la interfaz: multilingüe (el ruso está presente)
Tipo de construcción: Reempaquetar
Profundidad de bits: 64 bits
Sistema operativo: Windows 7, 8, 8.1, 10
Requisitos del sistema: Procesador Intel Pentium 4 o AMD Athlon 64 Microsoft Windows 7 SP1, Windows 8, Windows 8.1 o Windows 10 2 GB de RAM (se recomiendan 8 GB) 2,6 GB de espacio disponible en el disco duro para la instalación; Se requiere espacio libre adicional para la instalación (no instalado en dispositivos extraíbles x...


22
Jul
2017

AusLogics BoostSpeed ​​9.1.4.0 DC 14/07/2017 RePack (Portátil) por elchupacabra 9.1.4.0 RePack

Año de lanzamiento: 2017
Género: Optimización del sistema
Desarrollador: Auslogics Software Pty Ltd.
Sitio web del desarrollador: http://www.auslogics.com/ru/
Idioma de la interfaz: ruso + inglés
Tipo de construcción: Reempaquetar
Profundidad de bits: 32/64 bits
Sistema operativo: Windows XP, Vista, 7, 8, 8.1, 10
Descripción: Auslogics BoostSpeed ​​​​es un popular conjunto de herramientas para optimizar y ajustar su sistema operativo. Con este programa, puede optimizar significativamente el funcionamiento de su sistema, configurar fácilmente varias configuraciones de Windows, limpiar su disco duro y el registro del sistema de basura y entradas innecesarias, hacer...


05
Feb
2017

Total Commander 9.0a Freemen 17.1 Repack por notn 9.00a final RePack

Año de lanzamiento: 2017.02.03
Género: Administrador de archivos
Desarrollador: Christian Ghisler
Sitio web del desarrollador: http://www.ghisler.com/
Idioma de la interfaz: multilingüe (el ruso está presente)
Tipo de construcción: Reempaquetar
Profundidad de bits: 32/64 bits
Sistema operativo: Windows (XP,2003,Vista,2008,7,2012,8.x,10,2016)
Requisitos del sistema: Windows 7,8,10
Descripción: Total Commander es el administrador de archivos más potente y estable para Windows con una cómoda interfaz de usuario. Total Commander continúa la buena tradición de los administradores de archivos de dos paneles, pero se distingue por una mayor comodidad y funcionalidad, soporte...


El artículo de revisión fue copiado (descaradamente) del sitio fiks-ru.net.

PEID 0,95


PEID- el analizador de archivos ejecutables más popular. Última versión 0.95 de noviembre de 2008. El análisis se lleva a cabo utilizando bases de datos de firmas internas y externas; hay varios niveles de escaneo, desde rápido a profundo; se pueden procesar catálogos completos. La funcionalidad se amplía fácilmente con complementos externos, las firmas se almacenan en un archivo de texto separado, por lo que puede agregar fácilmente las suyas allí. Se escribió un programa especial para trabajar con la base de datos de firmas. PEIDSO. Los desarrolladores de complementos reciben un SDK con ejemplos en diferentes lenguajes de programación y una descripción de la API. El programa externo abandonó la campaña, pero en cualquier caso es mejor descargarlo aquí, ya que de lo contrario tendrías que montar tú mismo el conjunto necesario de complementos y firmas, pero aquí está bastante bien equipado.

Puedes leer la Guía PEiD

Muere 0,65 ruso



Detectarlo Fácil (DiE), desarrollo nacional, traduje la última versión 0.65 al ruso en mi tiempo libre (si no le gusta la traducción, deseche el archivo DiE.RU del directorio; será inglés). Se agregó un emulador a la versión 0.65. Similar a PEiD, pero el énfasis principal está en sus propios analizadores heurísticos, y solo entonces en el análisis de firmas. El programa también proporciona algunas funciones útiles: ver importaciones, secciones, ver un archivo en modo hexadecimal, desensamblador, ver las características principales de PE, obtener hashes MD5 y CRC-32. La funcionalidad se amplía mediante complementos.
Fuera del sitio del programa

DiE (Detectarlo Fácil) 0.70 alfa 12

Actualizar DiE (Detect it Easy) hasta la versión 0.70. El programa ha sido reescrito por completo: antes estaba en Borland Delphi y ahora en Microsoft Visual C++. En este sentido, considero inapropiada su traducción adicional al ruso, ya que ya no se puede dar un volcado y probablemente no valga la pena "atormentar" cadenas codificadas en un editor HEX. El sitio externo del programa ahora está ubicado. Puede descargar la nueva versión directamente desde fuera del sitio (no la agregué al archivo).
PD Gracias a mi amigo de exelab.ru por brindarme información sobre la nueva versión.

ExeInfo PE 0.0.3.2

ExeInfo PE también muy similar a PEiD, última versión 0.0.3.2 del 11 de septiembre de 2012. Firmas incorporadas (667 piezas). El programa tiene una función interesante: si se identifica el protector, proporciona información con qué herramienta puedes intentar descomprimirlo. Para los principiantes, esta información será de gran utilidad. También las herramientas útiles incluyen un extractor de archivos de módulos SFX, búsqueda de cadenas de texto, acceso al registro, ajuste de OEP y otras. Puede descargarlo desde fuera del sitio. También puede descargar un complemento adaptador para PEiD y DiE desde fuera del sitio, que le permite escanear archivos a través de ExeInfo PE.

PE-Scan 3.31

Pe-escaneo de snyper, última versión 3.31, el sitio externo ha dejado de existir. Con un tamaño mínimo, el programa tiene grandes capacidades. Este es un analizador heurístico y de firmas de archivos ejecutables, un desempaquetador de algunos empaquetadores y una búsqueda dinámica de OEP. Además de las herramientas enumeradas, Pe-Scan tiene un analizador probabilístico único para empaquetadores y codificadores de archivos desconocidos (el botón "adv.scan"). Muestra en términos porcentuales cuál de los empaquetadores que conoce es similar al desconocido. Ayuda a identificar empacadores UPX convencionales tratados con varios codificadores y modificadores.

Stud PE 2.6.1.0

Estudiante de educación física, última versión 2.6.1.0 del 2 de junio de 2012. Muy buen programa, además de analizar cómo está empaquetado el archivo, muestra mucha otra información útil: secciones, recursos, tablas de importación y exportación, encabezado de DOS. El editor HEX integrado en Stud_PE resalta los campos seleccionados en el encabezado del archivo, lo cual es muy conveniente al analizar su estructura. También hay un administrador de procesos con un dumper incorporado. La funcionalidad se amplía con la ayuda de complementos, y los complementos de PEiD son adecuados. En el kit se incluye una descripción de la API y el SDK para desarrolladores.

Identificador de formato de archivo 1.4

Identificador de formato de archivo- un desarrollo muy exitoso de la empresa antivirus china SUCOP, la última versión 1.4 de 2008. El analizador funciona utilizando firmas externas en formato PEiD, pero el valor principal es el desempaquetador estático incorporado de empaquetadores simples. El desempaquetador funciona con tecnología de máquina virtual, lo que significa que no se ejecuta ningún código, lo cual es especialmente importante a la hora de investigar malware. También son herramientas útiles del programa un reconstructor de importaciones, un reconstructor de archivos ejecutables, una calculadora de compensación y un extractor de superposiciones. Si entiende chino, puede descargarlo desde fuera del sitio, pero recomiendo tomar este ensamblaje del archivo al final de la publicación. Eliminó todo lo innecesario, reemplazó el motor de desempaquetado por uno comercial con funciones mejoradas y agregó una base de datos de firmas externa. Se recomienda tener siempre a mano el Identificador de formato de archivo.

Identificación de protección 0.6.4.1

Identificación de protección, última versión 0.6.4.0 Un buen programa, utilizado principalmente para analizar discos CD/DVD protegidos. Además, define alrededor de 350 empaquetadores, dongles e instaladores de archivos ejecutables. No requiere archivos adicionales para funcionar, pero no permite agregar tus propias firmas. En las últimas versiones, el autor ha notado una mala tendencia a introducir un montón de basura innecesaria en la utilidad, como un indicador de carga del sistema, un administrador de procesos, un optimizador de memoria y otros excesos.

Detector de empacadores RDG v.0.7.0


RDG Packer Detector, última versión 0.7.0 del 27 de diciembre de 2012. Una buena idea, pero una implementación monstruosa, otro ejemplo para los desarrolladores de en qué NO deben convertir sus programas. Si descubre la fea interfaz, además del analizador, obtendrá varias herramientas más como OEP Detector, Cryptographic Analyzer, que a mí no me funcionaron bien. La última versión se ha agregado al archivo.

FastScanner v.3.0

Escáner rápido del equipo cracker AT4RE, última versión 3.0 El escáner funciona con firmas de PEiD, admite complementos. Una interfaz hermosa, pero el resultado de la verificación de archivos suele ser erróneo. Entre las funciones útiles se encuentra un buen editor de archivos PE en forma de complemento.

Detector de bits 2.8.5.6

Detector de bits- un nuevo desarrollo, también del equipo árabe de crackers Under SEH Team, la última versión pública es 2.8.5.6 de junio de 2012. Además de la función de determinar el compilador y el empaquetador, incluye varias herramientas útiles y no tan útiles.

Explorador MiTeC EXE

Explorador MiTeC EXE- un pequeño visor gratuito de la estructura de los archivos ejecutables. Muestra información del encabezado del archivo, tabla de importación y exportación, TLS, versión del archivo, formularios Delphi, árbol de recursos con la capacidad de ver imágenes y cuadros de diálogo en una forma conveniente y guardarlos en el disco, y también hay una conveniente función de búsqueda de texto. cadenas en el archivo.

El analizador EXE definitivo de Hellspawn 0.6

El analizador EXE definitivo de Hellspawn- Prototipo de analizador DiE. Es más útil para una colección que para un uso práctico, porque está muy desactualizado. Muestra las principales características del archivo EXE, identifica heurísticamente algunos empaquetadores y protectores.

inspector de archivos XL

inspector de archivos XL de ViPER: un analizador antiguo del año 2001 que no se ha actualizado desde entonces. Identifica heurísticamente empaquetadores y compiladores de archivos ejecutables, muestra datos básicos del encabezado, secciones y tablas de importación y exportación de PE. Además del analizador, incluye varias herramientas útiles, por ejemplo, agregar una sección vacía a un archivo o nuevas funciones en la importación, calculadora de RVA a Offset, cambiar la fecha y hora de un archivo, redirección OEP, administrador de procesos y otras. Admite complementos e interfaz multilingüe. Será útil no sólo para la colección, sino también para uso práctico.

ESCANEAR 1.85


Escanealo- analizador de archivos del equipo cracker tPORT. La funcionalidad es pequeña, escanea el archivo usando firmas de PE Tools, admite complementos de algún formato desconocido.

PEpirata 0.51


PEpirata de kosfiz: detector de protectores, compiladores y empaquetadores que se pueden utilizar para empaquetar archivos PE. Escrito en ensamblador, puede escanear directorios y calcular la entropía de un archivo. A menudo comete errores, a pesar de que se le asegura una precisión de acierto del 95-99%.

Abertura 1.01

mirar boquiabierto- analizador del equipo cracker de TLG. Admite firmas de PE Tools y complementos de PEiD. Entre las herramientas, hay una calculadora de entropía funcional y una calculadora de desplazamiento de curvas en el archivo. Sólo útil para una colección.

PeStudio 7.95


Hace tiempo que quería escribir sobre el programa. PeStudio, pero no todas las manos alcanzaron. El sitio externo del programa se ha movido ==>AQUÍ<== версии там последнее время идут одна за одной, просто обновлять не успеваю - уже 7.95 натикало. Было немного времени, глянул у проги ресурсы на предмет локализации. В самом исполняемом файле можно разве что менюшку перекинуть, да и то смысла почти нет - на русском всего несколько слов появится (значит кириллицу до сих пор поддерживает), а вот все остальное у ней походу большей частью в файле PeStudioIndicadores.xml mentiras, y cuando intenté cambiarlas al ruso, todos los significados, por ejemplo, desaparecieron inmediatamente, incluso sin los kryakozyabrs. Por supuesto, aún puede ser inteligente, como cambiar la codificación del notorio utf-8 a la rígida windows-1251 y volver a guardar el documento de Unicode a ANSI (puede usar un bloc de notas normal de Windows), pero lamentablemente no hay Es hora de experimentar, y serán de poca utilidad: las versiones ahora están saltando una por una. En resumen, cualquiera que esté interesado puede probarlo, pero el inglés no me molesta en este programa, por lo que todo parece ser visible.

InspeccionarExe


InspeccionarExe agrega pestañas adicionales a la ventana de propiedades de los archivos ejecutables para ver secciones, importar tablas, recursos, manifiestos y otros datos.

DNiD 1.0

DNiD- un programa similar a PEiD, pero centrado en aplicaciones .NET. Le permite identificar varias docenas de versiones diferentes de compiladores, protectores, empaquetadores y ofuscadores de programas .NET.

Escáner de rayos A 2.0.2.2


Escáner de rayos A, el proyecto no se ha actualizado desde hace mucho tiempo, la última versión es 2.0.2.2 de 2005. El programa está destinado únicamente a escanear discos CD/DVD y detecta varias docenas de protecciones de copia para discos. También define algunos empaquetadores y protectores de archivos ejecutables.

ClonyXXL 2.0.1.5

Clon XXL- una utilidad que determina el tipo de protección de los CD. Al igual que el programa anterior, hace tiempo que no se actualiza, la última versión es la 2.0.1.5 del año 2003. Define protecciones: SafeDisc, SecuROM, Discguard, LaserLok, Psx/Lybcrypt, Cactus Data Shield (Audio CD), Lock Blocks, CD Check, ProtectetCD-VOB, CD-Extra y protección basada en la ubicación no estándar de información en el disco. Por defecto la interfaz está en alemán, pero en la configuración cambia al inglés.

Typedef estructura _IMAGE_FILE_HEADER ( WORD Machine; WORD NumberOfSections; DWORD TimeDateStamp; DWORD PointerToSymbolTable; DWORD NumberOfSymbols; WORD SizeOfOptionalHeader; WORD Characteristics; ) IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
Sólo describiré secamente estos campos, porque... los nombres son intuitivos y representan significados directos, y no VA, RVA, RAW y otras cosas aterradoras e intrigantes de las que hasta ahora solo hemos oído hablar de viejos piratas. Aunque ya nos hemos encontrado con RAW, estos son solo desplazamientos relativos al comienzo del archivo (también se les llama punteros sin formato o desplazamiento de archivo). Es decir, si tenemos una dirección RAW, esto significa que debemos pasar desde el principio del archivo a las posiciones RAW ( ptrArchivo+ CRUDO). Entonces puedes empezar a leer los valores. Un ejemplo sorprendente de este tipo es e_lfnuevo- que discutimos anteriormente en el encabezado Dos.

*Máquina: WORD: este número (2 bytes) especifica la arquitectura del procesador en la que se puede ejecutar esta aplicación.
Número de secciones: DWORD: número de secciones del archivo. Las secciones (en adelante las llamaremos tabla de secciones) siguen inmediatamente después del encabezado (PE-Header). La documentación dice que el número de secciones está limitado a 96.
Sello de fecha y hora: WORD: un número que almacena la fecha y hora en que se creó el archivo.
Puntero a tabla de símbolos: DWORD es el desplazamiento (RAW) de la tabla de símbolos y SizeOfOptionalHeader es el tamaño de esta tabla. Esta tabla está destinada a almacenar información de depuración, pero el destacamento no notó la pérdida de un soldado desde el comienzo de su servicio. La mayoría de las veces este campo se borra con ceros.
Tamaño del encabezado de opción: WORD: el tamaño del encabezado opcional (que sigue inmediatamente al actual) La documentación indica que para un archivo objeto se establece en 0...
*Características: WORD - características del archivo.

*: campos que están definidos por un rango de valores. Las tablas de posibles valores se presentan en la descripción de la estructura en la oficina. sitio web y no aparecerá aquí, porque No llevan nada particularmente importante para entender el formato.

¡Dejemos esta isla! Necesitamos avanzar. El punto de referencia es un país llamado Encabezado Opcional.

“¿Dónde está el mapa, Billy? Necesito un mapa”.
(Isla del tesoro)

Encabezado opcional (IMAGE_OPTIONAL_HEADER)

El título de este continente no es muy bueno. Este encabezado es obligatorio y tiene 2 formatos PE32 y PE32+ (IMAGE_OPTIONAL_HEADER32 e IMAGE_OPTIONAL_HEADER64 respectivamente). El formato se almacena en el campo. magia: PALABRA. El encabezado contiene la información necesaria para descargar el archivo. Como siempre :

IMAGE_OPTIONAL_HEADER

typedef struct _IMAGE_OPTIONAL_HEADER ( WORD Magic; BYTE MajorLinkerVersion; BYTE MinorLinkerVersion; DWORD SizeOfCode; DWORD SizeOfInitializedData; DWORD SizeOfUninitializedData; DWORD AddressOfEntryPoint; DWORD BaseOfCode; DWORD BaseOfData; DWORD ImageBase; DWORD SectionAlignment; DWORD FileAlignment; WORD MajorOperatingSystemVersion; WORD MinorOperatingSystemVersion; WORD VersiónImagenMajor; WORD MinorImageVersion; WORD MajorSubsystemVersion; WORD MinorSubsystemVersion; DWORD Win32VersionValue; DWORD SizeOfImage; DWORD SizeOfHeaders; DWORD CheckSum; WORD Subsystem; WORD DllCharacteristics; DWORD SizeOfStackReserve; DWORD SizeOfStackCommit; DW ORD SizeOfHeapReserve; DWORD SizeOfHeapCommit; DWORD LoaderFlags; DWORD NumberOfRvaAndSizes; IMAGEN _DATA_DIRECTORY Directorio de datos; ) IMAGE_OPTIONAL_HEADE R, *PIMAGE_OPTIONAL_HEADER;


*Como siempre, solo examinaremos los campos principales que tienen el mayor impacto en la comprensión de la descarga y cómo avanzar con el archivo. Estemos de acuerdo: los campos de esta estructura contienen valores con direcciones VA (dirección virtual) y RVA (dirección virtual relativa). Estas no son direcciones RAW y debe poder leerlas (o más bien contarlas). Seguramente aprenderemos a hacer esto, pero primero analizaremos las estructuras que se suceden para no confundirnos. Por ahora, recuerde: estas son direcciones que, después de los cálculos, apuntan a una ubicación específica en el archivo. También encontrará un nuevo concepto: la alineación. Lo consideraremos junto con las direcciones RVA, porque estos están bastante relacionados.

Dirección de punto de entrada: DWORD - Dirección RVA del punto de entrada. Puede apuntar a cualquier punto del espacio de direcciones. Para archivos .exe, el punto de entrada corresponde a la dirección desde la cual el programa comienza a ejecutarse y no puede ser igual a cero.
Base de código: DWORD - RVA del comienzo del código del programa (sección de código).
base de datos: DWORD - RVA del comienzo del código del programa (secciones de datos).
Base de imagen: DWORD: la dirección base preferida para cargar el programa. Debe ser un múltiplo de 64kb. En la mayoría de los casos es igual a 0x00400000.
Alineación de sección: DWORD: tamaño de alineación (bytes) de la sección al descargarla en la memoria virtual.
Alineación de archivos: DWORD: tamaño de alineación (bytes) de la sección dentro del archivo.
Tamaño de imagen: DWORD: el tamaño del archivo (en bytes) en la memoria, incluidos todos los encabezados. Debe ser un múltiplo de SecciónAligment.
Tamaño de encabezados: DWORD: el tamaño de todos los encabezados (DOS, DOS-Stub, PE, Sección) alineados con FileAligment.
NúmeroDeRvaYTamaños: DWORD: el número de directorios en la tabla de directorios (la tabla en sí se encuentra a continuación). Por el momento, este campo siempre es igual a la constante simbólica IMAGE_NUMBEROF_DIRECTORY_ENTRIES, que es igual a 16.
Directorio de datos: IMAGE_DATA_DIRECTORY - directorio de datos. En pocas palabras, se trata de una matriz (de tamaño 16), cada elemento del cual contiene una estructura de 2 valores DWORD.

Veamos qué es la estructura IMAGE_DATA_DIRECTORY:

Typedef estructura _IMAGE_DATA_DIRECTORY ( DWORD VirtualAddress; Tamaño DWORD; ) IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
¿Que tenemos? Tenemos una matriz de 16 elementos, cada elemento de los cuales contiene una dirección y un tamaño (¿qué? ¿Cómo? ¿Por qué? Todo en un minuto). Surge la pregunta de cuáles son exactamente estas características. Para ello, Microsoft dispone de constantes especiales de coincidencia. Se pueden ver al final de la descripción de la estructura. Mientras tanto:

// Entradas de directorio #define IMAGE_DIRECTORY_ENTRY_EXPORT 0 // Directorio de exportación #define IMAGE_DIRECTORY_ENTRY_IMPORT 1 // Directorio de importación #define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 // Directorio de recursos #define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 // Directorio de excepciones #define IMAGE_DIRECTORY_ENTRY_ SECURITY 4 // Directorio de seguridad #define IM AGE_DIRECTORY_ENTRY_BASERELOC 5 / / Tabla de reubicación base #define IMAGE_DIRECTORY_ENTRY_DEBUG 6 // Directorio de depuración // IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 // (uso de X86) #define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE 7 // Datos específicos de la arquitectura #define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 // RVA de GP #define IMAGE_DIRE CTORY_ENTRY_TLS 9 // T Directorio LS # define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 // Cargar directorio de configuración #define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 // Directorio de importación vinculado en encabezados #define IMAGE_DIRECTORY_ENTRY_IAT 12 // Importa tabla de direcciones #define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 13 // Retrasa la carga de descriptores de importación #define IMAGE_DIRECTORY_ENTRY_ COM _DESCRIPTOR 14 // Descriptor de tiempo de ejecución COM
¡Sí! Vemos que cada elemento de la matriz es responsable de la tabla adjunta. Pero ay y ay, estas costas todavía son inaccesibles para nosotros, porque... No sabemos cómo trabajar con direcciones VA y RVA. Y para aprender, necesitamos estudiar qué son las secciones. Ellos son quienes hablarán sobre su estructura y trabajo, luego de lo cual quedará claro por qué se necesitan VA, RVA y alineaciones. En este artículo sólo tocaremos las exportaciones y las importaciones. El propósito de los campos restantes se puede encontrar en la oficina. documentación o en libros. Asi que aqui esta. Los campos reales:

Dirección virtual: DWORD - RVA para la tabla a la que corresponde el elemento de la matriz.
Tamaño: DWORD: tamaño de la tabla en bytes.

¡Entonces! Para llegar a costas tan exóticas como tablas de importaciones, exportaciones, recursos y otras, debemos realizar una misión con secciones. Bueno, grumete, echemos un vistazo al mapa general, determinemos dónde estamos ahora y sigamos adelante:

Y estamos ubicados directamente frente a los amplios espacios abiertos de las secciones. Definitivamente necesitamos descubrir qué esconden y finalmente descubrir otro tipo de direccionamiento. ¡Queremos aventuras reales! Queremos pasar rápidamente a repúblicas como mesas de importación y exportación. Los viejos piratas dicen que no todos pudieron llegar hasta ellos, pero los que sí lo hicieron regresaron con oro y mujeres con conocimientos sagrados sobre el océano. Partimos y nos dirigimos hacia la cabecera del tramo.

“¡Estás depuesto, Silver! ¡Sal del cañón!
(Isla del tesoro)

Encabezado de sección (IMAGE_SECTION_HEADER)


Justo detrás de la matriz Directorio de datos Las secciones se suceden unas a otras. La tabla de secciones representa un estado soberano, que se divide en Número de secciones ciudades. Cada ciudad tiene su propio oficio, sus propios derechos y también un tamaño de 0x28 bytes. El número de secciones se indica en el campo. Número de secciones, que se almacena en el encabezado del archivo. Entonces, veamos la estructura:

Typedef estructura _IMAGE_SECTION_HEADER ( BYTE Nombre; unión ( DWORD PhysicalAddress; DWORD VirtualSize; ) Misc; DWORD VirtualAddress; DWORD SizeOfRawData; DWORD PointerToRawData; DWORD PointerToRelocations; DWORD PointerToLinenumbers; WORD NumberOfRelocations; WORD NumberOfLinenumbers; D WORD Characteristics; ) IMAGE_SECTION_HEADER, *PIMAGE_SECTION _ENCABEZADO;
Nombre: BYTE - nombre de la sección. Actualmente tiene 8 caracteres.
Tamaño virtual: DWORD - tamaño de sección en la memoria virtual.
Tamaño de datos sin procesar: DWORD - tamaño de sección en el archivo.
Dirección virtual: DWORD - Dirección de la sección RVA.
Tamaño de datos sin procesar: DWORD - tamaño de sección en el archivo. debe ser un múltiplo Alineación de archivos.
PunteroARawData: DWORD - RAW desplazado al principio de la sección. También debe ser un múltiplo Alineación de archivos
Características: DWORD: atributos de acceso a la sección y reglas para cargarla en virtual. memoria. Por ejemplo, un atributo para definir el contenido de una sección (datos iniciales, datos no iniciales, código). O acceder a atributos: leer, escribir, ejecutar. Esta no es toda su gama. Las características las establecen constantes del mismo WINNT.h, que comienzan con IMAGE_SCN_. Puede familiarizarse con los atributos de las secciones con más detalle. Los atributos de los libros de Chris Kaspersky también están bien descritos: la lista de referencias se encuentra al final del artículo.

En cuanto al nombre, debes recordar lo siguiente: la sección con recursos siempre debe tener el nombre.rsrc. De lo contrario, los recursos no se cargarán. En cuanto al resto de apartados, el nombre puede ser cualquier cosa. Generalmente hay nombres significativos, por ejemplo .data, .src, etc... Pero también sucede:

Las secciones son un área que se descarga en la memoria virtual y todo el trabajo se realiza directamente con estos datos. La dirección en la memoria virtual, sin desplazamientos, se llama dirección virtual, abreviada VA. Dirección preferida para descargar la aplicación, configurada en el campo Base de imagen. Es como el punto en el que comienza el área de aplicación en la memoria virtual. Y las compensaciones de RVA (dirección virtual relativa) se miden en relación con este punto. Es decir VA = Base de imagen+ RVA; Base de imagen siempre conocemos y teniendo a nuestra disposición VA o RVA, podemos expresar uno a través del otro.

Parece que aquí se han acostumbrado. ¡Pero esto es memoria virtual! Y estamos en lo físico. La memoria virtual para nosotros ahora es como un viaje a otras galaxias que sólo podemos imaginar. Por lo tanto, no podemos acceder a la memoria virtual en este momento, pero podemos descubrir qué habrá allí, porque está tomado de nuestro archivo.

Alineación


Para representar correctamente la carga en virtual. memoria, es necesario comprender un mecanismo como la alineación. Primero, echemos un vistazo a un diagrama de cómo se paginan las secciones en la memoria.

Como puede ver, la sección no se carga en la memoria según su tamaño. Aquí es donde se utilizan las alineaciones. Este es un valor que debe ser múltiplo del tamaño de la sección en la memoria. Si miramos el diagrama, veremos que el tamaño de la sección es 0x28 y el tamaño de la sección es 0x50. Esto se debe al tamaño de alineación. 0x28 “no alcanza” 0x50 y, como resultado, la sección se descargará y el espacio restante en el tamaño 0x50-0x28 se pondrá a cero. Y si el tamaño de la sección fuera mayor que el tamaño de la alineación, ¿entonces qué? Por ejemplo secciónTamaño= 0x78, un secciónAlineación= 0x50, es decir permanecido sin cambios. En este caso, la sección ocuparía 0xA0 (0xA0 = 0x28 * 0x04) bytes en memoria. Es decir, un valor que es múltiplo de secciónAlineación y cubre completamente secciónTamaño. Cabe señalar que las secciones del archivo están alineadas de manera similar, solo por tamaño Alineación de archivos. Habiendo recibido la base necesaria, podemos descubrir cómo convertir de RVA a RAW.

"Esto no es una llanura, el clima aquí es diferente".
(V.S. Vysotsky)

Una pequeña lección de aritmética


Antes de que pueda comenzar la ejecución, una parte del programa debe enviarse al espacio de direcciones del procesador. El espacio de direcciones es la cantidad de RAM direccionada físicamente por el procesador. La "pieza" en el espacio de direcciones donde se descarga el programa se llama imagen virtual. La imagen se caracteriza por la dirección de descarga base (Base de imagen) y el tamaño (Tamaño de imagen). Entonces VA (dirección virtual) es la dirección relativa al comienzo de la memoria virtual y RVA (dirección virtual relativa) es relativa al lugar donde se descargó el programa. ¿Cómo saber la dirección base de descarga de una aplicación? Para ello existe un campo separado en el encabezado opcional llamado Base de imagen. Este fue un pequeño preludio para refrescar la memoria. Ahora veamos una representación esquemática de diferentes direccionamientos:

Entonces, ¿cómo se puede seguir leyendo información de un archivo sin volcarla en la memoria virtual? Para hacer esto, necesita convertir las direcciones al formato RAW. Luego podemos ingresar al archivo hasta el área que necesitamos y leer los datos necesarios. Dado que RVA es la dirección de memoria virtual a la que se proyectaron los datos desde el archivo, podemos hacer el proceso inverso. Para hacer esto necesitamos una clave de aritmética simple de nueve por dieciséis. Aquí hay algunas fórmulas:

VA = Base de Imagen + RVA; RAW = RVA - secciónRVA + sección sin procesar; // rawSection - desplazamiento a la sección desde el principio del archivo // secciónRVA - RVA de la sección (este campo se almacena dentro de la sección)
Como puedes ver, para calcular RAW, necesitamos determinar la sección a la que pertenece RVA. Para hacer esto, debe revisar todas las secciones y verificar las siguientes condiciones:

RVA >= sección Dirección virtual && RVA< ALIGN_UP(sectionVirtualSize, sectionAligment) // sectionAligment - выравнивание для секции. Значение можно узнать в Optional-header. // sectionVitualAddress - RVA секции - хранится непосредственно в секции // ALIGN_UP() - функция, определяющая сколько занимает секция в памяти, учитывая выравнивание
Al juntar todos los rompecabezas, obtenemos este listado:

Typedef uint32_t DWORD; typedef uint16_t PALABRA; typedef uint8_t BYTE; #define ALIGN_DOWN(x, align) (x & ~(align-1)) #define ALIGN_UP(x, align) ((x & (align-1))?ALIGN_DOWN(x,align)+align:x) // secciones IMAGE_SECTION_HEADER; // inicia las secciones de la matriz int defSection(DWORD rva) (for (int i = 0; i< numberOfSection; ++i) { DWORD start = sections[i].VirtualAddress; DWORD end = start + ALIGN_UP(sections[i].VirtualSize, sectionAligment); if(rva >= inicio && rva< end) return i; } return -1; } DWORD rvaToOff(DWORD rva) { int indexSection = defSection(rva); if(indexSection != -1) return rva - sections.VirtualAddress + sections.PointerToRawData; else return 0; }
*No incluí una declaración de tipo o inicialización de matriz en el código, solo proporcioné funciones que ayudarán a calcular direcciones. Como puedes ver, el código no era muy complicado. Sólo un poco confuso. Esto desaparece... si dedicas un poco más de tiempo a modificar el .exe a través del desensamblador.

¡HURRA! Lo descubrimos. Ahora podemos ir a la tierra de los recursos, importar y exportar bibliotecas y, en general, donde nuestro corazón lo desee. Acabamos de aprender a trabajar con un nuevo tipo de direccionamiento. ¡Salgamos a la carretera!

"-¡No esta mal, no está mal! Aún así, ¡recibieron sus raciones para hoy!
(Isla del tesoro)

Exportar tabla


En el primer elemento de la matriz. Directorio de datos RVA se almacena en la tabla de exportación, que está representada por la estructura IMAGE_EXPORT_DIRECTORY. Esta tabla es común a los archivos de biblioteca dinámica (.dll). El objetivo principal de la tabla es relacionar las funciones exportadas con su RVA. La descripción se presenta en la oficina. Especificaciones:

Typedef estructura _IMAGE_EXPORT_DIRECTORY ( Características DWORD; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; DWORD Name; DWORD Base; DWORD NumberOfFunctions; DWORD NumberOfNames; DWORD AddressOfFunctions; DWORD AddressOfNames; DWORD AddressOfNameOrdinals; ) IMAGE_EXPORT_DIRECTORY,*PIMAGE_EXPORT_DIRECTORY;
Esta estructura contiene tres punteros a tres tablas diferentes. Esta es una tabla de nombres (funciones) ( DirecciónDeNombres), ordinales( DirecciónDeNombresOrdinales), direcciones ( Dirección de funciones). El campo Nombre almacena el RVA del nombre de la biblioteca dinámica. Ordinal es como un intermediario entre la tabla de nombres y la tabla de direcciones, y es una matriz de índices (el tamaño del índice es de 2 bytes). Para mayor claridad, considere el diagrama:

Veamos un ejemplo. Digamos que el i-ésimo elemento de la matriz de nombres indica el nombre de la función. Luego, la dirección de esta función se puede obtener accediendo al i-ésimo elemento en la matriz de direcciones. Aquellos. soy un ordinal.

¡Atención! Si toma, por ejemplo, el segundo elemento en una tabla de ordinales, no significa 2: es un ordinal para tablas de nombres y direcciones. El índice es el valor almacenado en el segundo elemento de la matriz de ordinales.

Número de valores en tablas de nombres ( Número de nombres) y los ordinales son iguales y no siempre coinciden con el número de elementos de la tabla de direcciones ( Número de funciones).

“Vinieron por mí. Gracias por su atención. ¡Ahora deben estar matando!
(Isla del tesoro)

tabla de importación


La tabla de importación es una parte integral de cualquier aplicación que utilice bibliotecas dinámicas. Esta tabla ayuda a correlacionar llamadas a funciones de biblioteca dinámica con las direcciones correspondientes. La importación puede realizarse en tres modos diferentes: estándar, importación encuadernada e importación retrasada. Porque El tema de la importación es bastante multifacético y merece un artículo aparte; describiré sólo el mecanismo estándar y el resto lo describiré sólo como un "esqueleto".

Importación estándar-V Directorio de datos La tabla de importación se almacena en el índice IMAGE_DIRECTORY_ENTRY_IMPORT(=1). Es una matriz de elementos de tipo IMAGE_IMPORT_DESCRIPTOR. La tabla de importación almacena (en una matriz) los nombres de las funciones/ordinales y donde el cargador debe escribir la dirección efectiva de esta función. Este mecanismo no es muy efectivo porque Hablando francamente, todo se reduce a buscar en toda la tabla de exportación cada función requerida.

Importación consolidada- con este esquema de trabajo, se ingresa -1 en los campos (en el primer elemento de la tabla de importación estándar) TimeDateStamp y ForwardChain y la información sobre el enlace se almacena en la celda Directorio de datos con índice IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT(=11). Es decir, este es un tipo de indicador para el cargador que necesita para usar la importación vinculada. Además, la “cadena de importaciones consolidadas” tiene sus propias estructuras. El algoritmo operativo es el siguiente: la biblioteca necesaria se descarga en la memoria virtual de la aplicación y todas las direcciones necesarias se "vinculan" en la etapa de compilación. Una de las desventajas es que al recompilar el dll, necesitarás recompilar la aplicación en sí, porque Las direcciones de las funciones se cambiarán.

Importación retrasada- con este método se supone que el archivo .dll está adjunto al ejecutable, pero no se descarga en la memoria inmediatamente (como en los dos métodos anteriores), sino solo cuando la aplicación accede por primera vez al símbolo (esto es lo que se descarga se llaman elementos de bibliotecas dinámicas). Es decir, el programa se ejecuta en la memoria y tan pronto como el proceso llega al punto de llamar a una función desde una biblioteca dinámica, se llama a un controlador especial que carga la dll y distribuye las direcciones efectivas de sus funciones. Para la importación diferida, el cargador se comunica con DataDirectory (número de artículo 15).

Habiendo cubierto un poco los métodos de importación, pasemos directamente a la tabla de importación.

“¡Este es un marinero! Su ropa era náutica. - ¿Sí? ¿Creías que encontrarías un obispo aquí?
(La isla del tesoro - John Silver)

Descriptor de importación (IMAGE_IMPORT_DESCRIPTOR)


Para conocer las coordenadas de la tabla de importación, necesitamos acceder a la matriz Directorio de datos. Es decir, al elemento IMAGE_DIRECTORY_ENTRY_IMPORT (=1). Y lea la dirección RVA de la mesa. A continuación se muestra un diagrama general del camino a seguir:

Luego obtenemos RAW de RVA, de acuerdo con las fórmulas dadas anteriormente, y luego “recorremos” el archivo. Ahora estamos justo frente a una serie de estructuras llamadas IMAGE_IMPORT_DESCRIPTOR. El final de la matriz está indicado por la estructura "cero".

Typedef estructura _IMAGE_IMPORT_DESCRIPTOR ( unión ( Características DWORD; DWORD OriginalFirstThunk; ) DUMMYUNIONNAME; DWORD TimeDateStamp; DWORD ForwarderChain; Nombre DWORD; DWORD FirstThunk; ) IMAGE_IMPORT_DESCRIPTOR,*PIMAGE_IMPORT_DESCRIPTOR;
No pude encontrar un enlace a una descripción de la estructura en msdn, pero puedes verlo en el archivo WINNT.h. Empecemos a resolverlo.

OriginalPrimeroThunk: DWORD - RVA de la tabla de nombres de importación (INT).
Sello de fecha y hora: DWORD - fecha y hora.
Cadena de transporte: DWORD - índice del primer carácter reenviado.
Nombre: DWORD: cadena RVA con el nombre de la biblioteca.
primer pensamiento: DWORD - RVA de la tabla de direcciones de importación (IAT).

Todo aquí es algo similar a exportar. También una tabla de nombres (INT) y también un trapo de direcciones (IAT). También RVA del nombre de la biblioteca. Sólo INT e IAT se refieren a una matriz de estructuras IMAGE_THUNK_DATA. Se presenta en dos formas: para sistemas 64 y 32 y se diferencian únicamente en el tamaño de los campos. Veamos x86 como ejemplo:

Typedef estructura _IMAGE_THUNK_DATA32 ( unión ( DWORD ForwarderString; Función DWORD; DWORD Ordinal; DWORD AddressOfData; ) u1; ) IMAGE_THUNK_DATA32,*PIMAGE_THUNK_DATA32;
Es importante responder que las acciones futuras dependen de la parte más significativa de la estructura. Si está configurado, los bits restantes representan el número del carácter que se importa (importación por número). De lo contrario (se borra el bit más significativo), los bits restantes especifican el RVA del símbolo que se importa (importar por nombre). Si tenemos una importación por nombre, entonces el puntero almacena la dirección en la siguiente estructura:

Typedef estructura _IMAGE_IMPORT_BY_NAME (Sugerencia de WORD; Nombre BYTE;) IMAGE_IMPORT_BY_NAME, *PIMAGE_IMPORT_BY_NAME;
Aquí Pista es el número de función, y Nombre- Nombre.

¿Para qué es todo esto? Todas estas matrices, estructuras... Para mayor claridad, consideremos un diagrama maravilloso con

SDL Passolo 2015 es la utilidad más poderosa para traducir programas a varios idiomas del mundo. Entiende muchos formatos, distingue entre tipos de idiomas. Un editor de recursos de plantillas con capacidades avanzadas diseñado para la localización de software. SDL Passolo 2015 tiene un editor de diálogo visual con varias herramientas de formato convenientes, admite trabajar con casi cualquier recurso, tiene muchas opciones de ajuste, una opción de procesamiento por lotes y un corrector ortográfico integrado. El programa SDL Passolo 2015 puede ayudar al traductor a ahorrar mucho esfuerzo y tiempo al localizar programas. Esto se debe al hecho de que el programa proporciona una función de traducción automática y comprueba el texto traducido en busca de errores más comunes. La función de traducción automática se realiza en presencia de determinados diccionarios, de los cuales abundan en Internet, incluidos los de Microsoft. Si no está satisfecho con los diccionarios ya preparados, puede crearlos usted mismo. Basta con traducir un programa una vez y exportar la lista de traducción a un diccionario. Y en el futuro, este diccionario se podrá utilizar al traducir nuevas versiones de programas. En SDL Passolo 2015, la adaptación visual de los cuadros de diálogo en los programas traducidos está muy desarrollada. Baste decir que no es muy inferior a la edición de formularios en Microsoft Visual Studio.Net. Si dices que Resource Hacker también tiene buenos ajustes de diálogo, entonces no has visto Passolo. La lista de ventajas de Passolo no se limita a esto. Agregar. información: Nuevas características: * La terminología ahora también se proporciona desde las listas de traducción de Passolo. * Los servicios de pretraducción, búsquedas de traducción sueltas, coincidencias y terminología ahora se pueden seleccionar fácilmente en el cuadro de diálogo de opciones. * La búsqueda de traducciones utilizando índices rápidos en proyectos y glosarios acelera enormemente el proceso de búsqueda. * Nueva interfaz de usuario moderna que permite el acoplamiento arbitrario de ventanas de salida. Nueva opción de Ocultar automáticamente para las ventanas de salida. * Los atajos de teclado se pueden cambiar en el cuadro de diálogo Configuración de la barra de herramientas. * La búsqueda de traducciones no estrictas ahora marca las diferencias de coincidencias no estrictas en el texto buscado con textos coloreados. * Cuando se seleccionan, las entradas de terminología se seleccionan desde el menú contextual del texto fuente, apareciendo con información adicional sobre el elemento de terminología que se muestra. * Los archivos se pueden arrastrar y soltar en la ventana del proyecto para agregarlos como archivo fuente o importar información desde ellos. * El historial de todos los cambios en el texto se proporciona con la fecha y el nombre de usuario. Las versiones anteriores de datos se pueden restaurar utilizando la función Rollback. * Las entradas en la ventana del proyecto ahora se pueden filtrar y agrupar. * Las entradas en la ventana del proyecto se pueden filtrar como listas de cadenas.

Si encuentra un error, seleccione un fragmento de texto y presione Ctrl+Entrar.