Skip to main content

Port Magic Corrupt Binary Options


Bochs Bochs es un emulador que mejora constantemente para la plataforma x86. Mejora en gran medida el desarrollo del sistema operativo porque la máquina virtual se reinicia mucho más rápido que el hardware real, además de que ofrece una funcionalidad de depuración detallada que puede ayudar mucho durante el desarrollo del kernel. Se recomienda encarecidamente que se obtengan dos instalaciones de Bochs, además de la versión "out-of-the-box" (que bien podría ser una de las descargas binarias), también debería compilar una segunda instancia con el depurador interno habilitado. Algo extraño ocurre que sus herramientas de depuración normales no pueden rastrear, puede comprobarlo con la versión de depuración. También puede habilitar (y utilizar) los puertos de E / S de depuración. Contenido Mensajes de error frecuentes Ejecución en memoria falsa Ha enviado su puntero de código (EIP) a algún área de memoria no inicializada. Esto significa que siguió un puntero NULL (o no inicializado) o dañó la dirección de devolución de su marco de pila. Haga que su código sea más limpio, pruebe los punteros antes de seguirlos, inicialice todos los punteros (especialmente aquellos que están en la pila) y active - Wall en GCC. 3ª excepción sin resolución La CPU no logró invocar un manejador de excepciones y, normalmente, triplicaría la falla. Esto se debe probablemente a un mal contenido de registro IDT, o un descriptor IDT mal. A veces (pero menos probable), también puede ser debido a un error grave en su código de manejador de excepciones. Compruebe que su excepción funciona con instrucciones ASM ilegales como idiv 0. O En varios casos, hay otros mensajes de error anteriores a éste que pueden proporcionar más detalles en el error. Algunos mensajes comunes que se pueden mostrar: interrupt (): descriptor de puerta no es válido sys seg Usted no ha cargado un IDT, o el IDT está corrupto interrupt (): SS selector null Usted no tiene TSS Usted havent set SS0 / ESP0 en el TSS CR0 0xe0000001 CR2 0xe0000001 Sus tablas de páginas no están alineadas en la página Sus tablas de páginas no apuntan a las partes correctas de la memoria E / S Operando Tamaño Bochs realiza algunas comprobaciones bastante paranoicas en el tamaño del operando de E / S. Leer un byte desde el puerto 0x1234 normalmente no es lo mismo que leer un valor de 32 bits. Vuelva a su hoja de datos de chips y compruebe que sus tamaños son correctos. Fetchrawdescriptor: LDTR. valid0 Muchos de ustedes han dicho pero. No tengo un LDT y leí que no era obligatorio. Tienes razón. Y también lo es Bochs. Este mensaje suele significar que su programa intentó cargar un selector con un valor de basura, lo que ocurrió para tener el tercer bit (indicador de tabla) establecido. La CPU tratará de buscar el descriptor en el LDT, pero no hay LDT registrado En la mayoría de los casos, el error proviene de algunos mispairing de push y pop en la pila, que conducen a un valor no selector para ser cargado en un segmento registro. Si sigue estancado, descargue el paquete fuente de Bochs y busque el mensaje que recibió. Entonces, tal vez usted puede agregar información adicional al código de impresión de mensajes (como el desplazamiento defectuoso de un segfault, el límite de segmento, etc). Pero mantenerse alejado de modificar las operaciones de Bochs Cada vez que sospechaba un error en Bochs, estaba malentendiendo el manual de Intel. Diferencias entre Bochs y hardware real Bochs habilita la línea A20 en el BIOS Su PC no necesariamente lo hace. A veces hay una opción de BIOS, a veces no hay. Compruebe su código que permite la línea A20 y asegúrese de que no tiene problemas con hardware más rápido. Bochs borra su memoria En Bochs, la memoria siempre está llena de cero hasta que (o el BIOS) pongan algo más. En un PC normal, la memoria no inicializada tiende a contener basura (la mayoría de las veces todos) o rastros de ejecuciones anteriores. Compruebe sus punteros, inicializarlos, imprimir su código en papel si es necesario. Bochs no emula correctamente la caché de CPU / TLB Aunque Bochs tiene estas construcciones, no funcionan igual que una caché de CPU normal o TLB y no cambian en función de la CPU que se está emulando. Si no está realizando el almacenamiento en caché o TLB se actualiza correctamente, el comportamiento puede ser diferente en Bochs vs. hardware (es decir, puede funcionar en Bochs pero no en hardware o viceversa). Bochs floppy no tiene errores En un PC físico, es común emitir hasta 3 comandos de lectura en un sector / pista antes de que pueda leerse bien. Si no tiene la comprobación / recuperación de errores apropiadas en su sector de arranque, es probable que ejecute algo que no es su núcleo. Bochs es flexible para volver al modo real A pesar de lo que dice el tutorial de modo protegido de Chris Gieses, no tiene que estar en modo protegido de 16 bits para borrar el bit PE de CR0. Si no se introduce el modo protegido de 16 bits en una PC real, se bloqueará, sin dar ninguna indicación de error - no triple fallo o cualquier cosa Bochs temporizador no es tiempo real (a menos que configurarlo más cercano a tiempo real). Esperar 2 segundos en bochs permitirá que cualquier dispositivo virtual que necesite 2 segundos para estar listo esté listo, pero eso podría ser sólo 0.02 segundos para usted. O que podría ser de 200 segundos. Causará interrupciones a intervalos reales, pero puede sobrecargar el sistema operativo emulado con interrupciones PIT y desbordar la pila (si es preemptible). Utilizar la sincronización baja también lo configurará a velocidades en tiempo real, pero con una cantidad constante de ciclos de reloj virtuales entre cada uno Segundo virtual. Tanto para la desaceleración como para el reloj original, es necesario ajustar la cantidad de instrucciones ejecutadas por segundo al valor deseado. CPU siempre Intel / AMD Bochs emula una CPU, por lo que CPUID siempre reportará Intel (si emula un sistema de 32 bits) o AMD (si emula un sistema de 64 bits) independientemente de lo que realmente está en su sistema. Las versiones más recientes de Bochs le permiten especificar la cadena del proveedor en la etiqueta de la CPU: Archivos de imagen de Bochs en pocas palabras Para usar Bochs para arrancar su kernel personalizado, busque las líneas floppya y de arranque en el archivo de configuración de bochsrc. La siguiente configuración le permite usar y arrancar desde la unidad de disco real de su computadora: Para los usuarios de Windows, debería leer: Pero esto es muy lento y pone mucha tensión en el disquete cuando está en un parche apretado - Ciclo make - boot. Bochs ofrece el uso de archivos de imagen, incluyendo una herramienta interactiva para crear un archivo de imagen (bximage. exe). Tenga en cuenta que Bochs emulará los internos del floppys incluso cuando la imagen sea un dispositivo en lugar de un archivo regular. Instalaciones de depuración de Bochs Bochs tiene varias características que facilitan la depuración. Muchos de ellos deben estar habilitados a través de un conmutador de configuración: depurador de GUI Bochs tiene un depurador interno de línea de comandos y una interfaz gráfica encima. Debe compilar Bochs con la opción de configuración y luego editar el archivo bochsrc para habilitar el depurador GUI. Utilizo esta línea en mi archivo bochsrc para habilitar la depuración gráfica en X: En un entorno Windows, agregue esta línea a su bochsrc. bxrc Parece que en Windows, se aceptará el indicador de opción (lo que la línea anterior se leía) Pero la ventana GUI no aparecerá. Macros de depuración de E / S Algunas macros útiles cuando Bochs se compila con los puertos de depuración de E / S habilitados (porte9hack: enabled1 si Bochs 2.4 o más reciente, configure --port-e9-hack si no): Magic Breakpoint Cuando estás usando Bochs con el Depurador interno. Puede activar el depurador a través de una instalación denominada puntos de interrupción mágicos. Para activar un punto de interrupción, puede insertar xchg bx, bx (en la sintaxis GAS, xchgw160bx, 160bx) en cualquier parte del código y Bochs atrapará el depurador tan pronto como lo ejecute. En hardware real esto no tiene ningún efecto, ya que simplemente sustituye el registro BX con sí mismo. Debe poner la siguiente línea en su archivo de configuración de Bochs para que escuche puntos de interrupción mágicos: En versiones anteriores, habilitar el depurador solo no compila en el soporte de punto de interrupción mágico, también deberá especificar - enable-magic-breakpoint al configurar el punto de interrupción. Basarse en esas versiones. Depuración de SMP Cuando se utiliza el depurador interno, puede utilizar el siguiente comando para cambiar las CPU: También encontré que esto era necesario en ocasiones en el depurador GUI, a pesar de que tiene botones para cada CPU. Comandos del depurador interno Puede pasar un archivo que contiene comandos de depuración para ejecutarse automáticamente cada vez que inicie bochs con el depurador interno. (Bochs - rc ltfilegt) Bochs coloca un punto de interrupción automático justo antes de cargar el BIOS, esto se puede omitir automáticamente poniendo continuar como el primer comando en dicho archivo. Depuración de errores triples Al usar el depurador interno, puede cambiar esta línea en su archivo de configuración de Bochs: Esta línea desactiva el restablecimiento del emulador en una falla triple, lo que le permite depurar el código después de que ocurrió un error Triple. Compilación de Bochs desde la fuente Bochs tiene muchas opciones de configuración en tiempo de compilación, algunas de las cuales entran en conflicto y, por lo tanto, una distribución binaria de Bochs puede no ser adecuada para sus propósitos. Encontré que era mejor compilar mi propia copia de Bochs para estar seguro que tenía las características que necesitaba. Además, debe considerar el uso de la versión de instantánea de CVS de Bochs si la versión publicada es antigua y no funciona para usted. Me pareció que esto era necesario hasta la versión 2.4 fue lanzado, por ejemplo. En Ubuntu, puede que tenga que ejecutar e ingresar su contraseña. En otras distribuciones linux, pruebe el equivalente. La matriz de opciones de configuración de Bochs puede ser confusa, y no se puede suponer que los valores predeterminados van a ser sensatos. Estas son las opciones que utilizo, esto puede ayudarle a comenzar: Si está en Windows, esa última línea probablemente debería leer --with-win32. En Linux, usar SDL como la biblioteca de la exhibición sobre X11 es preferible como el funcionamiento parece aumentar grandemente en algunas configuraciones Bochs tiene GDB soporte del trozo, y su propio depurador interno. Estos no pueden ser compilados en el mismo binario Bochs. El depurador interno es muy útil, su indicador es --enable-debugger El GDB stub en Bochs no soporta SMP, la última vez que comprobé. Si no habilita PCI, las tablas de multiprocesamiento de Intel no aparecerán en la memoria. No pude cargar correctamente el depurador GUI sin especificar --disable-plugins. De lo contrario, obtengo errores de símbolo de carga dinámica. Posterior a 2.4.2, varias de las opciones específicas de la CPU se doblaron en la especificación de nivel de CPU y, por lo tanto, están obsoletas. Se han eliminado del ejemplo anterior. La compilación por defecto no admite x86-64, --enable-x86-64 lo activará En muchas distribuciones de Linux es posible instalar Bochs a través de un gestor de paquetes. Por ejemplo, en las distribuciones que usan apt-get podemos hacer para instalar Bochs y el plugin X11 (que puede bloquearse en ubuntu / linux mint: instale el complemento sdl y use sdl en vez de x como la librería en este caso). Tenga en cuenta que existe una gran posibilidad de que el depurador gráfico no esté habilitado en los binarios del gestor de paquetes. Vea también Artículos Comandos de la línea de comandos de LinksWindows 8 Actualizado 01 de junio de 2016 El símbolo del sistema disponible en Windows 8 contiene acceso a alrededor de 230 comandos de línea de comandos. Los comandos disponibles en Windows 8 se utilizan para una variedad de propósitos, incluyendo el diagnóstico y la corrección de ciertos problemas de Windows, la automatización de tareas y mucho más. Nota: Una serie de comandos de comandos de Windows 8 son muy similares a los comandos de MS-DOS. Sin embargo, el símbolo del sistema en Windows 8 no es MS-DOS por lo que los comandos no se denominan correctamente como comandos de MS-DOS. Tengo una lista de comandos del DOS si usted está utilizando realmente MS-DOS y está interesado. También puede ver todos los comandos disponibles, desde MS-DOS a Windows 8, en mi lista de comandos de comandos o consulte una tabla de una página sin los detalles aquí. Si está interesado principalmente en cambios en la disponibilidad de comandos desde Windows 7, consulte Comandos nuevos (y eliminados) en Windows 8. A continuación se muestra una lista completa de comandos, a veces llamados comandos CMD, disponibles desde el símbolo del sistema en Windows 8: los programas pueden utilizar el comando append para abrir archivos en otro directorio como si estuvieran ubicados en el directorio actual. El comando append no está disponible en las versiones de 64 bits de Windows 8. Esta es una migración de la fuente de código fuente encantado del keyfinder de SourceForge. Esto se entiende puramente como un archivo de mi proyecto de sourceforge. Enchanted Keyfinder nació de la voluntad de mantener abierto un proyecto de código abierto para que cualquiera pueda estudiar. Lo que sigue es extractos originales del Web site del ekeyfinder. Hubo un pequeño esfuerzo por llevar la base del código Pascal a Lázaro. Un código abierto Free Pascal IDE, sin embargo, ese esfuerzo fue finalmente abandonado. Acerca de la página web Enchanted Keyfinder es una Magical Jelly Bean Keyfinder (MJB KF) tenedor de la versión de código abierto de MJB KF. Es una utilidad que recupera la clave del producto utilizada para instalar Windows desde su registro o desde una instalación de Windows que no arranca. Funciona en Windows 9X, ME, NT / 2K / XP, y Vista / Win7 y para otro software. Enchanted Keyfinder está escrito en Pascal y se compila en: Delphi 7, Borland Developer Studio 2006, DS Turbo Delphi 2006, Delphi 2007. Puede compilar en otras versiones de Delphi. Este es un resumen de las características y objetivos que se describen actualmente en el proyecto. Esto es algo que mantiene al equipo de EK en camino, pero también para que usted, como usuario, entienda dónde queremos llevar este proyecto. La primera versión estable, v0.2, será lanzada pronto. Puede leer a continuación y ver lo que falta actualmente en la versión estable. Los cambios listados debajo de la Lista de características generales son cambios que se han hecho desde Magical Jelly Bean Keyfinder 2.0.8. Lista de características generales Office 2010, Office 2007, Vista, amplificador y soporte para Windows 7. La recuperación de claves de MS Office 2010 es experimental. Cambie la información de registro de Windows y la clave del producto. Portable, ajustes guardados en un archivo INI. Un archivo de configuración opcional para las búsquedas en serie del software. Exportar las claves encontradas en csv, html, ini o txt. Cargar una copia de seguridad de la sección de registro. Puede comprobar las actualizaciones de los programas y archivos de configuración. Opciones de línea de comandos. No hay instalación de software. Qué es actualmente estable en las betas EK v0.1 (v0.1) Recuperar clave de producto para MS Office 2010. Cambiar la clave de producto de Windows XP de una instalación de Windows. Todas las configuraciones se guardan y se cargan desde un archivo INI. Tenía PortableApps en mente cuando hice esto porque disfruto sus lanzamientos. Ahorro y carga de ajustes de fuente ahora se hacen correctamente. La entrada de menú Archivo gt Refresh que vuelve a cargar el archivo keyfinder. cfg y luego muestra las claves recién detectadas. Gráficos y logos del programa (utilizando la Biblioteca de Iconos de Tango). La lista de claves detectadas (no más entradas en blanco). También el programa falla en Wine en Linux de tipos de datos no válidos al leer el registro. Agregar configuración de configuración para mostrar las teclas en blanco. Actualizaciones de software. Se implementan para las versiones inestables y estables de EK. Para comprobar si hay actualizaciones, haga clic en Ayuda para comprobar actualizaciones en el menú. Esta es la única vez que el programa se conectará a Internet. Archivo keyfinder. cfg definido por el usuario. Se ha implementado la configuración de la ruta de acceso al archivo de configuración. Consulte la documentación en keyfinder. ini. Documentación - Esto se ha terminado para la versión estable. La documentación wiki ha sido escrita y puedo exportarla al esquema xml de mediawiki. Escribí un script python que analiza el esquema xml de mediawiki y genera archivos html como salida. Entonces puedo compilar los archivos generados html en un formato chm todo automatizado. Me tomó 5 o 6 horas para crear pero a partir de ahora la documentación de generación tomará segundos para mí a través de todos mis proyectos. La configuración de los registros es estable, es decir, no hacen nada (que no en MJBKF 2.0.8) y que no para la primera versión estable de EK v0.2. Lo que es inestable pero se terminará para EK v0.2 Stable (v0.2) keyfinder. cfg necesita ser reorganizado en un formato estándar. Una vez que keyfinder. cfg está estandarizado, necesitamos actualizar las claves de exportación para que coincidan con ellas. De esta manera, cuando se exportan las claves, las series encontradas son uniformes. ¿Cuáles son mis planes actuales para la siguiente versión inestable (v0.3)? Esto es algo que ya ha estado en marcha desde MJBKF 2.0.8. Los diálogos están un poco allí pero la implementación no es. Quiero comenzar a conseguir este funcionamiento porque podría ser una característica útil para un sys-admin. Después de que probablemente no haré mucho más porque quiero ekeyfinder para seguir siendo un programa pequeño y simple. Quiero que haga una cosa, y hacerlo bien. Buscar las claves en el registro. Implementar el registro. Exportación a otros formatos Más series Posiblemente recuperación de claves wifi de redes conectadas Cualquier solicitud que un usuario pueda tener que mejor permita al programa realizar su intención original de funcionalidad. Siga adelante y envíe una solicitud si tiene una idea (incluso si la idea es incompleta). Quiero abstraer el código subyacente de la interfaz de usuario. Los desarrolladores anteriores no lo hicieron muy bien. En este momento es muy integrado. Una vez que tengo el código abstraído, entonces puedo empezar a trabajar en una edición Linux de Enchanted Keyfinder que es nativo del sistema operativo Linux (y posiblemente un nativo de Mac). Estaba pensando en hacerlo en Kylix, pero al parecer es difícil conseguir una bodega de lo que voy a ver otros IDEs Pascal como Lazarus. Magical Jellybean Keyfinder 1.51 MJB KF 1.51 fue una fuente cerrada. Era básicamente un archivo RAR autoextraíble. Se extrajo a la carpeta TEMP de Windows cuatro archivos: findkey. exe - Un interfaz de Delphi / Pascal GUI que muestra archivos de texto de la salida de otros programas. Chgxp. vbs - VBScript que cambió la clave de producto de Windows XP. Xpkey. exe - Un ejecutable cli que encontró / descifró Windows XP y debajo de la llave al archivo llano del txt. Officekey. exe - igual que xpkey. exe pero para Office 2003 y más abajo. Magical Jellybean Keyfinder 2.0 MJB KF se convirtió en código abierto en MJB KF 2.0 bajo la licencia GNU GPLv3. Permaneció abierto hasta el año pasado (2010). La última versión de código abierto es 2.0.8. Recover Keys compró el proyecto y cerró la fuente que cerró el proyecto de la comunidad hacia abajo. El actual MJB KF es el producto con menos características en comparación con su producto estrella. Se llevaron a cabo muchas de las entradas keyfinder. cfg con la intención de hacer que vea menos teclas de software. Entradas en el keyfinder. cfg que fueron construidas por los miembros de la comunidad de MJB KF cuando era de código abierto. EK v0.1 nació del original de código abierto MJB KF 2.0.8. Enchanted Keyfinder vs Magical Jellybean Keyfinder de código abierto Aquí están algunas características que EK hace mejor que MJB KF open source. Funciona para Office 2010 Carga Hive es más fiable La documentación es realmente existente Actualizaciones en vivo del software y no sólo un enlace web Capaz de cambiar la clave de producto de Windows XP similar a MJB KF 1.51 Varios otros pequeños errores correcciones También el EK keyfinder. cfg es Construido a partir de las versiones originales de la comunidad de MJB KF keyfinder. cfg. Algunas entradas se han agregado a eso y eventualmente el archivo entero será reformateado para emparejar un estándar. Hay aún más planes para más características que le ayudará con la recuperación de claves de software. Theres más que puede hacer desde el repositorio svn, pero eso es lo que las actuales inestables pueden hacer (EK v0.1). El proyecto Enchanted Keyfinder no intenta copiar el original MJB KF, estaba tratando de convertirlo en algo más con nuestro propio conjunto de características y objetivos en mente.

Comments

Popular posts from this blog

Las Empresas De Forex En Australia

El grupo FXCM (en conjunto, el Grupo FXCM) es un proveedor líder de comercio de divisas, comercio de CFD y servicios relacionados. FXCM Australia Pty. Limited tiene su sede en Sydney con profesionales con conocimientos que proporcionan un servicio excepcional al cliente las veinticuatro horas del día. Estamos regulados en Australia y en varias otras jurisdicciones alrededor del mundo. FXCM proporciona una ejecución rápida y fiable en nuestra galardonada plataforma, MT4 y otras plataformas especiales. Si usted es nuevo en el comercio en línea o tiene la experiencia de comercio e inversión, FXCM cuenta con tipos de cuenta personalizables y servicios para todos los niveles de comerciantes minoristas. Ejecución justa y transparente Desde 1999, FXCM se ha propuesto crear la mejor experiencia comercial en línea en el mercado. Hemos sido pioneros en el modelo de ejecución forex No Dealing Desk, proporcionando una ejecución competitiva y transparente para nuestros operadores. Servicio de atenc...