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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Dudas sobre el opcode 'ldc.i4'
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dudas sobre el opcode 'ldc.i4'  (Leído 1,989 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.813



Ver Perfil
Dudas sobre el opcode 'ldc.i4'
« en: 27 Diciembre 2014, 21:09 pm »

Buenas!

Quizás esta pregunta sea algo absurda porque no entiendo mucho de este tema... no tengais contemplaciones conmigo :P

Recientemente descubrí que para que una función devolviese siempre True (1) era suficiente con modificar el opcode que guarda el valor False (0) en la pila para convertirlo en True (No 0), eso es algo obvio, pero no sabía como hacerlo, y ahí descubrí que dicho valor es igual al índice del opcode ldc.i4, es decir, el opcode ldc.i4.0 almacena un 0 a la pila (False), y el opcode ldc.i4.1 almacena un 1 en la pila (True)

Eso es lo que nos cuenta la MSDN:
Ldc_I4_0
Ldc_I4_1

Ldc_I4:
Pushes a supplied value of type int32 onto the evaluation stack as an int32.

Mi pregunta es, ¿por que el rango solo va desde ldc.i4.0 hasta ldc.i4.8?, quiero decir, ¿por que no hay un 9, y así hasta el máximo valor Int32?, ¿porque y con que finalidad solo hay 8 índices/valores pre-establecidos de este opcode?.

Saludos!
« Última modificación: 29 Diciembre 2014, 11:00 am por Eleкtro » En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Dudas sobre el opcode 'ldc.i4'
« Respuesta #1 en: 27 Diciembre 2014, 22:01 pm »

Hola!

Mi pregunta es, ¿por que el rango solo va desde ldc.i4.0 hasta ldc.i4.8?, quiero decir, ¿por que no hay un 9, y así hasta el máximo valor Int32?, ¿porque y con que finalidad solo hay 8 índices/valores pre-establecidos de este opcode?.

La verdad, creo que esta es una pregunta para los desarrolladores del CIL  :P. De todas formas, si miras el listado de opcodes (en la parte de ldc.i4) verás que no solo hay constantes de 0 a 8, sinó que también está el -1. Incluso hay una forma corta (short form) de pushear valores de 32 bits al stack de la VM (ldc.i4.s, opcode 0x1F).

Con respecto al ldc.i4, si miraras la secuencia (en bytes) de opcodes para pushear, por ej., el valor 0X000F1ACA, verías algo como:

20 00 0F 1A CA

O bien

20 CA 1A 0F 00

No recuerdo si los numeros se almacenan como bigendian o no.  ;D


Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Tengo varias dudas sobre DVD a formato FLV, y otras cosas sobre FLV
Multimedia
SaintGermain 0 2,244 Último mensaje 30 Mayo 2005, 21:47 pm
por SaintGermain
[DUDAS] Todas las dudas sobre RadASD + MASM aqui « 1 2 3 »
ASM
AleX Inc. 23 20,984 Último mensaje 5 Julio 2010, 11:58 am
por Eternal Idol
Duda sobre OPCODE « 1 2 »
ASM
Debci 10 9,303 Último mensaje 1 Abril 2010, 22:52 pm
por Debci
Duda con opcode sete bl
Ingeniería Inversa
.:UND3R:. 3 2,125 Último mensaje 9 Septiembre 2011, 23:03 pm
por apuromafo CLS
Como saber que Registro esta asociado al opcode
Ingeniería Inversa
x64core 7 4,347 Último mensaje 2 Diciembre 2011, 05:40 am
por x64core
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines