elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Temas
Páginas: 1 2 [3] 4 5
21  Informática / Hardware / ¿Existe algun emu8086 para la arquitectura IA-32? en: 9 Agosto 2020, 17:01 pm
Hola, me preguntaba si alguien conoce algun emulador parecido al conocido emu8086 de la arquitectura IA-32, ya que lo he estado buscando, sin embargo no encuentro mas que maquinas virtuales, cuando yo busco algo mas orientado a la depuracion y la versatilidad que ofrece esta herramienta.

Gracias de antemano y saludos.
22  Seguridad Informática / Análisis y Diseño de Malware / Instruccion SIDT y el virus CIH. en: 9 Agosto 2020, 14:32 pm
Hola,
Tengo una duda un poco tonta que me esta rompiendo la cabeza... el virus CIH, para obtener privilegios del sistema, altera la IDT y modifica la entrada de una excepcion que luego ocasiona. Sin embargo, ¿no son, tanto las instrucciones SIDT y LIDT privilegiadas de antemano? es decir, ¿como el virus accede a la IDT cuando es un simple EXE en modo usuario?:

Citar
MyVirusStart:
push ebp

; *************************************
; * Let's Modify Structured Exception *
; * Handing, Prevent Exception Error *
; * Occurrence, Especially in NT. *
; *************************************

lea eax, [esp-04h*2]

xor ebx, ebx
xchg eax, fs:[ebx]

call @0
@0:
pop ebx

lea ecx, StopToRunVirusCode-@0[ebx]
push ecx

push eax

; *************************************
; * Let's Modify *
; * IDT(Interrupt Descriptor Table) *
; * to Get Ring0 Privilege... *
; *************************************

push eax ;
sidt [esp-02h] ; Get IDT Base Address
pop ebx;

add ebx, HookExceptionNumber*08h+04h ; ZF = 0

cli

mov ebp, [ebx] ;
mov bp, [ebx-04h] ; Entry Point

lea esi, MyExceptionHook-@1[ecx]

;...
23  Seguridad Informática / Análisis y Diseño de Malware / Obtencion de Ring 0 por parte del virus CIH en Windows 9x. en: 7 Agosto 2020, 12:25 pm
Hola,
Hace poco descargue el codigo fuente del virus CIH para entenderlo, pues me parece interesante. Sin embargo me encontre con una parte de el que no entiendo muy bien, como era de esperarse...

Código
  1. ; *************************************
  2. ; * Let's Modify *
  3. ; * IDT(Interrupt Descriptor Table) *
  4. ; * to Get Ring0 Privilege... *
  5. ; *************************************
  6.  
  7. push eax ;
  8. sidt [esp-02h] ; Get IDT Base Address
  9. pop ebx ;
  10.  
  11. add ebx, HookExceptionNumber*08h+04h ; ZF = 0
  12.  
  13. cli
  14.  
  15. mov ebp, [ebx] ; Get Exception Base
  16. mov bp, [ebx-04h] ; Entry Point
  17.  
  18. lea esi, MyExceptionHook-@1[ecx]
  19.  
  20. push esi
  21.  
  22. mov [ebx-04h], si ;
  23. shr esi, 16 ; Modify Exception
  24. mov [ebx+02h], si ; Entry Point Address
  25.  
  26. pop esi

El comentario es bastante descriptivo. Sin duda suficiente para entender el objetivo, sin embargo el medio en si que utiliza en toda profundidad no lo entiendo plenamente:

Código
  1. push eax ;
  2. sidt [esp-02h] ; Get IDT Base Address
  3. pop ebx ;
Aparentemente esta metiendo a EAX en la pila para luego, en sidt [esp-02h], introducir la base de la IDT en EBX pero, ¿por que resta 2? ¿no deberia mas bien sumar 4? recordemos que los valores en la medida que son antiguos en la pila, se encuentran en posiciones de memoria mas altas y, en este caso, hablando de un registro de 4 bytes, precisamente 4 posiciones mas alto.

Código
  1. mov ebp, [ebx] ; Get Exception Base
  2. mov bp, [ebx-04h] ; Entry Point
Esto no es nada evidente para mi. ¿Mueve, aparentemente, el Entry Point del IDT HookExceptionNumber a ebp, y luego lo que sea que se encuentre 4 bytes antes del mismo en los 16 bits menos significativos de EBP? ¿que sentido tiene?

Código
  1. lea esi, MyExceptionHook-@1[ecx]
Ahora, mas evidentemente mueve el desplazamiento del hook a ESI. Sin embargo, ¿que es -@1[ecx]? ¿alguna forma de relocalizacion? No lo entiendo en absoluto. Aun no he aprendido esa sintaxis... ¿alguien tiene idea de al menos como se llama?

Código
  1. mov [ebx-04h], si ;
  2. shr esi, 16 ; Modify Exception
  3. mov [ebx+02h], si ; Entry Point Address
Mueve a esa misteriosa direccion (EBX-04) el desplazamiento antes mencionado... ¿alguien tiene idea de que hay en los anteriores 4 bytes a un IDT? (evidentemente otro IDT, pero la pregunta es ironica, quiero decir, ¿alguien sabe por que?)

Eso es todo... estoy un poco enredado.
Saludos.
24  Informática / Hardware / [urgente (creo)] Ayuda con resistencia electrica. en: 29 Julio 2020, 12:31 pm
Hola. Bueno, se acaba de dañar mi cargador... y se me ocurrio hacer uno pues aun necesito utilizar mi laptop mientras no compro otro. La cosa es que temo de quemar las resistencias de la computadora. El cable que estoy utilizando la esta alimentando con 20V a 2.25A. El cable original la alimentaba con 19V a 2.37A. Me preguntaba si alguien considera que deberia desconectarla paulatinamente, o que no deberia utilizar este cable en absoluto.

Gracias. (Espero que no se me queme mientras tanto)
Saludos.
25  Sistemas Operativos / Windows / Alternativa a las Virtual Keys de Windows. en: 28 Julio 2020, 19:09 pm
Hola. Estoy programando una utilidad pasiva para mi laptop con Windows que espera la pulsacion de la tecla ALT, graba lo que se teclee en seguida y, si se trata enteramente de una cantidad numerica, envie a la entrada del teclado el caracter ASCII correspondiente a la cifra. Me parecia que interrumpir el programa adecuadamente para verificar que se seguia presionando ALT me parecia bastante complicado hasta que me di cuenta de que Windows representa el teclado a traves de lo que llama Virtual Keys...  :rolleyes:

Mi pregunta es: ¿existe una forma de enviar caracteres ASCII (edito: o UNICODE) a la entrada del teclado en Windows? (el lenguaje es C).

Por ejemplo:
174 («)
175 (»)
...

(es decir, incluyendo caracteres extendidos)

Saludos.
26  Programación / ASM / Distincion entre el Directorio de Paginas y la Tabla de Paginas. en: 25 Julio 2020, 16:26 pm
Hola,
en modo protegido (paginado) la forma de acceso es a traves de un indice en el Directorio de Paginas que a su vez es un indice a la Tabla de paginas del proceso, lo cual resulta al fin y al cabo en la pagina fisica, sobre la cual se calcula la direccion efectiva a traves de los 12 bits menos significativos de la direccion lineal, segun la arquitectura de Intel IA-32. Esto me hace dudar de varias cosas: primero, ¿por que es necesaria una Tabla de Paginas? digo... bastaria con un solo directorio mediante el cual acceder a las correspondientes paginas del sistema, ¿no? (¿por que dos estructuras si una puede hacer mas eficientemente el trabajo?) se que nadie aqui es ingeniero de Intel, pero debe haber una razon; segundo, ¿por que entonces es necesaria la Tabla de Descriptores Global? me explico: la direccion base del Directorio de Paginas se encuentra en el registro CR3 del proceso en cuestion, mediante los 10 bits mas altos de la direccion lineal se deduce el indice en la misma y blablabla, todo lo que dije antes... pero, ¿que caso tiene entonces la GDT? ¿a que viene si la direccion se esta deduciendo basicamente a partir de la sistematica de la paginacion? ¿no se utiliza?

Saludos y, de antemano, gracias por la respuesta.


Resulta que la respuesta estaba en Wikipedia... es una cuestion de multinivel:
https://en.wikipedia.org/wiki/Page_table
27  Sistemas Operativos / Windows / Un problema con WinDbg en modo kernel local. en: 23 Julio 2020, 18:37 pm
Desde ayer quiero leer la GDT y sus amigos. Estoy utilizando WinDbg en modo kernel y como depuracion local. Ya active el modo /debug con BCDEDIT y su configuracion como Local. Sin embargo no puedo leer los valores la memoria virtual; obtengo esta salida en la linea de comandos de KD:

Código:
lkd> d 0 f
00000000  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????

Admito que son mis primeros pasos en la depuracion del kernel. La verdad no tengo ni idea de por que no puedo leer los valores de la memoria. (Y, sin embargo, puedo leer los correspondientes PDEs y PTEs a una direccion virtual, lo cual me confunde).

¿alguien mas listo que yo?

Saludos.
28  Foros Generales / Foro Libre / ¿alguien conoce esta historia? en: 21 Julio 2020, 12:30 pm
Hola,

llevo un rato buscando en Google el nombre de esta historia que lei en algun momento y no encuentro. Con la variedad congnitiva de este foro, me preguntaba si alguien la conoce...

Se trata de una montaña de oro celestial en la cual los reyes y grandes lideres escribian sus nombres, como un simbolo honorable de su reinado en la tierra. Sin embargo, cada vez que un nuevo rey moria, debia borrar el nombre de algun otro para escribir el suyo debido al espacio real limitado.

Saludos y gracias de antemano.
29  Sistemas Operativos / Windows / Esquema (casi) completo del formato PE de Windows. en: 20 Julio 2020, 15:59 pm
Hace tiempo ya que llevo estudiando en profundidad el formato PE, y algo tedioso es revisar la MSDN o a winnt.h a cada rato por referencias de las estructuras, asi que hice un esquema (casi) completo del formato y pense que le podria ser util a alguien:

https://i.imgur.com/TzgDSRz.png
Nota: los numeros a un lado (derecho o izquierdo segun lo considere conveniente) de los miembros de las estructuras definen la direccion relativa a la base de la estrutura de cada uno, para evitar el calculo.

Ademas, para los que no entiendan ni pio ni a buenas primeras, he aqui varias de las referencias que utilice:

https://tech-zealots.com/malware-analysis/pe-portable-executable-structure-malware-analysis-part-2/
https://es.wikipedia.org/wiki/Portable_Executable
https://en.wikipedia.org/wiki/Data_structure_alignment
https://blog.kowalczyk.info/articles/pefileformat.html
30  Programación / ASM / ¿que significa exactamente el alineamiento? en: 14 Julio 2020, 18:44 pm
Hola,

estoy inseguro de si entiendo el significado de "alineamiento" cuando se habla de programacion en ensamblador y otras categorias; segun lo que hasta ahora se, el alineamiento es el ambito de acceso. Sin embargo, ¿es eso exactamente?

Por ejemplo, existe un miembro de la estructura IMAGE_OPTIONAL_HEADER del formato PE llamado FileAlignment (cosa que no entiendo: ¿por que alinear un archivo en disco? ¿o se trata mas bien de informacion para la paginacion?). Ademas, MASM tiene ciertos atributos para la declaracion de segmentos que puede ser BYTE, WORD, PARA, etcetera, ¿se refiere esto solo al ambito del segmento que debe calcular el ensamblador? ¿o va mas alla de esto?.

Gracias de antemano.
Páginas: 1 2 [3] 4 5
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines