PDA

Ver la Versión Completa : Blue Pill / Red Pill


seoane
05-08-2006, 15:31:23
Leo hoy en Kriptopolis (http://www.kriptopolis.org/node/2688):


Fueron por lana y salieron trasquilados. Tal y como estaba previsto, Microsoft habló sobre la seguridad de Windows Vista en Black Hat. Mientras tanto, en una sala contigua, la investigadora polaca Joanna Rutkowska mostraba cómo utilizar su técnica Blue Pill para insertar código malicioso en las mismísimas entrañas de una copia de Windows Vista versión 64-bit.


Dejando a un lado que los Rootkit que crea esta mujer dan miedo, y que podría callar algunas bocas que dicen que las mujeres no saben programar. Vamos a centrarnos en su pildorita. Básicamente su Blue Pill (al mas puro estilo matrix) consigue que nuestro windows se ejecute de manera virtual, al vuelo, sin necesidad de reiniciar la maquina ni hacer cambios en el disco duro. De este modo controla todo lo que "ve y siente" windows de hay la referencia a matrix. No voy a entrar en los detalles técnicos, porque estan muy por encima de mi nivel, y además ya lo hace ella en su blog (http://theinvisiblethings.blogspot.com/2006/06/introducing-blue-pill.html), pero en su blog también menciona una sencilla función para detectar si windows se esta ejecutando de forma virtual y, como no podía ser de otra manera, la llamo Red Pill (http://invisiblethings.org/papers/redpill.html). Pues bien, me he tomado la libertad de traducir su función a delphi (espero que nadie se moleste) y aquí os la dejo (código fuente y exe) por si tenéis curiosidad de saber si estáis dentro o fuera de matrix :D

PD: Como la mayoría no estaréis infectados, podéis probar como funciona ejecutándolo dentro de VirtualPC o vmware.

dec
05-08-2006, 15:43:42
Hola,

Muchas gracias como siempre Seoane. :)



/* Itento de comprensión del código fuente */

program Matrix;

uses Windows;

function SwallowRedpill: Boolean;
var
RedPill: array[0..7] of byte; // Hum...
m: array[0..5] of byte; // + Hum...
p: procedure; stdcall; // ++ Hum...
begin
// Vale, vale, por algún sitio hay que empezar...
RedPill[0]:= $0f; RedPill[1]:= $01; RedPill[2]:= $0d; RedPill[3]:= $00;
RedPill[4]:= $00; RedPill[5]:= $00; RedPill[6]:= $00; RedPill[7]:= $c3;

// ¿Pero esto qué es lo que es? :-)
PPointer(@RedPill[3])^:= @m;

// ¿Y adónde vamos ahora?
p:= @RedPill;

// Y ahora ejecutamos... ¿el qué? XD
p();

// Menos mal... ;´)
Result:= m[5] > $d0;
end;

begin
if SwallowRedpill then
// Para que te enteres macho...
MessageBox(0,'Estas dentro de Matrix','Matrix',MB_OK)
else
// A ver qué va a pasar, ¿eh? :)
MessageBox(0,'Estas fuera de Matrix','Matrix',MB_OK);
end.

/* Fin del intento de comprensión del código fuente */

/* Resultados sobre 10: 2 */

/* ¡Ouch! ^_* */

seoane
05-08-2006, 18:05:41
Tienes razón dec, la función quedo bastante extraña al intentar hacer una traducción mas o menos literal de la función en C. Pero viéndolo ahora con mas calma, recuerdo que Delphi permite escribir código en ensamblador sin tener que hacer este tipo de malabares.

La cosa ahora quedaría así:

function SwallowRedpill: Boolean;
var
m: array[0..5] of byte;
begin
// La instruccion SIDT nos devuelve el registro IDRT
asm
SIDT m
end;
// Este valor toma unos valores caracteristicos si el sistema
// se ejecuta de forma virtual, vmware=$FF, VirtualPC=$E8, etc ...
Result:= m[5] > $d0;
end;

begin
if SwallowRedpill then
MessageBox(0,'Estas dentro de Matrix','Matrix',MB_OK)
else
MessageBox(0,'Estas fuera de Matrix','Matrix',MB_OK);
end.

seoane
05-08-2006, 18:09:29
// ¿Pero esto qué es lo que es? :-)
PPointer(@RedPill[3])^:= @m;


Esto querido dec es la traducción mas o menos literal de esto otro:

*((unsigned*)&rpill[3]) = (unsigned)m;


:D ¿Que te parece?

dec
05-08-2006, 22:02:13
Hola,

Bueno... pues con el ensamblador ya lo has terminado de arreglar... :eek: :D :eek:

Pero se agradece el intento. Lo cierto es que no podemos estar en todo, ¿que no? :eek: :D :)

PD. Al menos hoy prefiero verlo así... ;)

Casimiro Notevi
05-08-2006, 22:15:06
Esto querido dec es la traducción mas o menos literal de esto otro:

*((unsigned*)&rpill[3]) = (unsigned)m;

:D ¿Que te parece?

aaahhhh!!!, bueno, eso ya es otra cosa... ahora sí que está claro :D:D:D

Lepe
05-08-2006, 22:24:34
Hola,

Bueno... pues con el ensamblador ya lo has terminado de arreglar... :eek: :D :eek:


Estoy totalmente de acuerdo con dec.

:D :D :D

roman
05-08-2006, 23:53:16
Hola, yo de esto no entiendo nada. Pero nada de nada. Así que asustado me puse a probar la función y obtuve: "Estas dentro de matrix" Pero luego, me puse a ejecutarla varias veces seguidas y unas veces me dice que estoy dentro y otras que estoy fuera, algo casi aleatorio. ¿Me pueden explicar?

// Saludos

mamcx
06-08-2006, 00:54:43
Eso es porque estas corriendo sicodelicamente intentando alcanzar la meta y recibes espamos de realidad.

Ten cuidado, al llegar, te desplomas.

;)

mamcx
06-08-2006, 00:55:32
De todas maneras aunque tampoco me va muy bien con algo tan de bajo nivel conceptualmente es un hack, que viendolo bien, es obvio. Eso es lo mas preocupante.

seoane
06-08-2006, 01:00:45
Yo no entiendo mas que tu, me limite a copiar lo que decía ella. Solo puedo decir que a mi me funciona, si lo ejecuto en un windows real (Windows XP SP2) siempre me da que no es virtualizado. Sin embargo si lo ejecuto en un XP SP2 sobre vmware lo detecta, y si lo hago en un w98 o w2000 sobre VirtualPC también lo detecta.

El método no es infalible, ya que se basa en la suposición de que en un sistema real el contenido del registro IDRT es diferente que en un sistema virtual. De hecho deja entrever que se puede usar el contenido de este registro para identificar el software que se utiliza para la virtualización, y anima a la gente a que mande los diferentes valores que toma, para así hacer una tabla que relacione cada sistema con un valor.

Lo que me asombra es que el contenido del registro, en tu caso Roman, se modifique todo el tiempo. No creo que ese sea un comportamiento normal, pero ¿quien soy yo para decir lo que es normal? :D . De todas formas yo pasaría un detector de rootkits, no esta de mas asegurarse.

http://www.sysinternals.com/SecurityUtilities.html

Y si alguno se anima a probar el programa en su equipo o en alguna maquina virtual, estaría bien que pusiera si funciona bien. Por cierto, el problema ¿te lo da con las 2 versiones o solo con una de ellas?

vtdeleon
06-08-2006, 02:10:31
Me dice que estoy fuera. No importa las veces que lo ejecute.

Win'Xp SP2

Saludos

dec
06-08-2006, 06:25:27
Hola,


Me dice que estoy fuera. No importa las veces que lo ejecute.

Win'Xp SP2

Saludos


Lo mismo puedo decir yo. Además añadiré que probé también el programa original (escrito en C) obteniendo el mismo resultado. ;)

roman
06-08-2006, 06:44:43
Pues parece entonces que estoy dentro o por lo menos algo tiene raro mi pc. Nada más por no dejar dudas les pregunto: ¿han ejecutado varias veces una tras otra en una rápida sucesión? Es que es así cuando me empiezan a aparecer distintos resultados.

// Saludos

dec
06-08-2006, 07:08:46
Hola,


(...) ¿han ejecutado varias veces una tras otra en una rápida sucesión?


Sí; acabo de hacerlo tal como dices y "estoy fuera de Matrix"...

Neftali [Germán.Estévez]
07-08-2006, 09:53:31
Yo he hecho algunas pruebas, y todas me han funcionado perfectamente:

* Windows 2000 ==> OK
* W98 (SE) + VirtualPC ==> OK
* WXP SP2 + VirutalPC ==> OK
* W98 + VMWare ==> OK
* WXP SP2 + VMWare ==> OK

Un saludo.

vtdeleon
07-08-2006, 15:34:53
¿han ejecutado varias veces una tras otra en una rápida sucesión?Como Speedy Gonzalez y todo está correcto.

marceloalegre
07-08-2006, 16:30:48
Muy lindo todo , en un vmware me dice que estoy dentro, sino me dice que estoy fuera...

Pero la funcion SwallowRedpill esta en un idioma que excede totalmente mis conocimientos :confused:

roman
13-01-2007, 01:12:54
Vaya! Ha pasado tiempo desde esto. Finalmente he reinstalado mi pc. O, mejor dicho, estoy con una nueva aquí en el trabajo.

Según esto estoy dentro de Matrix (a veces dentro, a veces fuera) y hasta el momento sólo he instalado cosas como Firefox, Thunderbird, Avast.

:confused:

seoane
13-01-2007, 01:42:52
Vaya! Ha pasado tiempo desde esto. Finalmente he reinstalado mi pc. O, mejor dicho, estoy con una nueva aquí en el trabajo.

Según esto estoy dentro de Matrix (a veces dentro, a veces fuera) y hasta el momento sólo he instalado cosas como Firefox, Thunderbird, Avast.

:confused:

Si que paso tiempo. Aunque el otro día vi este hilo por casualidad, y me pregunte si al final averiguaste porque se comportaba así el programa en tu PC. Aunque veo que el problema continua.

¿Utilizas la segunda versión? la de ensamblador, porque siendo así no se que puede fallar, es una simple instrucción, no puede haber fallo posible. Puede que algún programa de los que instalas, programas legítimos, este jugando con tu equipo. Pero vete a saber, este tema me sobrepasa :p

roman
13-01-2007, 01:56:30
Yo más bien creo que la técnica no es confiable y, como dices, quizá algo en el software o hardware de un resultado inesperado. Porque además, como mencioné anteriormente, el resultado es aleatorio, a veces da positivo, a veces negativo.

Por otra parte, desde entonces me pregunto: esa instrucción, siendo una instrucción directa al procesador, debería poder ejecutarse en Linux, no? En tal caso, qué pasará?

// Saludos

seoane
13-01-2007, 02:01:43
Por otra parte, desde entonces me pregunto: esa instrucción, siendo una instrucción directa al procesador, debería poder ejecutarse en Linux, no? En tal caso, qué pasará?


Funciona perfectamente en linux. Yo lo he probado sobre un Ubuntu y me da que estoy "fuera", y probado sobre un vmware corriendo sobre ubunto me dice que estoy "dentro". El código original en C se puede compilar perfectamente tanto en windows como linux, y parece que funciona.

La pagina de Joanna Rutkowska con el código original
http://invisiblethings.org/papers/redpill.html

roman
13-01-2007, 02:07:10
En casa tengo Linux en la misma laptop donde dice también que estoy dentro de matrix. Creo que es ubuntu (no recuerdo porque antes tenía fedora). En todo caso intentaré probar. Alguna forma sencilla de compilar el código en ubuntu?

// Saludos

seoane
13-01-2007, 02:36:24
Alguna forma sencilla de compilar el código en ubuntu?


Prueba con esto:

gcc redpill.c -o redpill


Luego recuerda asignar los permisos necesarios para ejecutar el programa resultante, y debería de funcionar. Por si te sirve aquí te dejo el programa ya compilado.

roman
17-01-2007, 00:17:22
Hola seoane, gracias por el ejecutable.

Creo que estoy condenado a vivir en matrix. Bueno, lo cierto es que probé tu ejecutable en ubuntu y ahí si es definitivo que estoy fuera de matrix. Pero la pc del trabajo en windows me sigue haciendo lo mismo. Como es máquina me la habían dado ya preinstalada me entró el resquemor y por asegurar la formateé :D Hace mucho que no formateaba una máquina; deje de hacerlo cuando los discos superaron el giga :D Pero lo hice. Instalé el Windows desde cero, el windows original, no se vayan a creer que una copia pirata :p, sino el que venía con la pc. Apenas termino, metí mi usb, ejecuté el redpill y zas, afuera y adentro aleatoriamente.

Es un caso para la araña :eek:

// Saludos

Crandel
20-01-2007, 01:28:04
yo tambien lo ejecute al codigo y siempre estoy afuera.

Roman que valores obtenes????

la verdad es que no entiendo mucho del articulo por mas que lo releo. Tampoco las cosas me cierran mucho las cosas.

It was observed that on VMWare, the relocated address of IDT is at address 0xffXXXXXX, whereas on Virtual PC it is 0xe8XXXXXX.

Si tengo un vector de 6 bytes es logico que obtenga un valor de 12 caracteres hexa. y aca habla de direccion de 4 byte ???

y si mi ingles no me engaña (que puede ser), habla de VMWare y de Virtual PC, en los dos casos no es virtual ???

y ensima el valor que obtengo yo es: 8003F40007FF, tampoco empieza como ninguno de los que nombra. :confused:

aca les dejo la moficación del programa de seoane que devuelve en pantalla el valor del registro.

Edito: me olvidaba de comentar, uso WinXP sp2

roman
20-01-2007, 02:31:09
Cuando dice que estoy dentro: F78A956007FF
Cuando dice que estoy afuera: 8003F40007FF

El único resquicio que veo en mi instalación desde cero es la memoria usb en donde guardé el redpill.exe que ejeucuté apenas terminó la instalación de Windows, antes siquiera de conectar el cable de red.

Quizá debiera

1. formatear otra vez
2. instalar linux
3. desde linux descargar el redpill.exe
4. instalar windows sin ninguna conexión al exterior
5. desde linux copiar el redpill.exe a la partición de windows
6. Correr el redpill.exe en Windows.

:eek:

// Saludos

roman
20-01-2007, 03:04:20
En una de las referencias (http://www.trapkit.de) que se dan en el artículo original, puede verse la herramienta scoopy (http://www.trapkit.de/research/vmm/scoopydoo/index.html), con algo de explicación (http://www.trapkit.de/research/vmm/scoopydoo/README_WIN.txt).

La ejecución de scoopy, me da resultados también variaditos:


####################################################
:: scoopy - A VMware Fingerprinter ::
:: Windows version v1.0 ::

[+] Test 1
IDT base: 0xf78a9560 -> should be VMware (but unknown version)


[+] Test 2
LDT base: 0xdead0000 -> native Win2000/XP/2003 (100%)

[+] Test 3
GDT base: 0x8003f000 -> native WinXP/2003 (100%)

:: by tk, 2003 ::
:: [www.trapkit.de] ::
####################################################


####################################################
:: scoopy - A VMware Fingerprinter ::
:: Windows version v1.0 ::

[+] Test 1
IDT base: 0x8003f400 -> native WinXP/2003 (100%)

[+] Test 2
LDT base: 0xdead0000 -> native Win2000/XP/2003 (100%)

[+] Test 3
GDT base: 0xf78a9160 -> should be VMware (but unknown version)

:: by tk, 2003 ::
:: [www.trapkit.de] ::
####################################################


####################################################
:: scoopy - A VMware Fingerprinter ::
:: Windows version v1.0 ::

[+] Test 1
IDT base: 0xf78a9560 -> should be VMware (but unknown version)


[+] Test 2
LDT base: 0xdead0000 -> native Win2000/XP/2003 (100%)

[+] Test 3
GDT base: 0xf78a9160 -> should be VMware (but unknown version)

:: by tk, 2003 ::
:: [www.trapkit.de] ::
####################################################


// Saludos

Crandel
20-01-2007, 03:44:43
Cual es tu procesador?

xander
20-01-2007, 03:47:49
Me ha sorprendido mas la muchacha que lo inventó, que el código de Seoane...

Beauty and Brains... difícil combinación...

http://common.ziffdavisinternet.com/util_get_image/13/0,1425,sz=1&i=135407,00.jpg

seoane
20-01-2007, 03:51:58
Cual es tu procesador?

:D Ahí le diste Crandel, al parecer el los procesador dual core, cada "core" tiene su IDTR así que dependiendo de en cual este corriendo proceso el resultado es diferente. Por fin, la curiosidad me estaba matando ... :p

roman
20-01-2007, 03:55:15
Cual es tu procesador?

Intel (R) Pentium D CPU 2.80GHz

Y el de la laptop donde sucede los mismo (aunque de ella no puedo responder de su pureza):

Mobile Intel (R) Pentium (R) 4 CPU 3.33 GHz

// Saludos

seoane
20-01-2007, 04:00:15
Me ha sorprendido mas la muchacha que lo inventó, que el código de Seoane...

Beauty and Brains... difícil combinación...


:D No eres el único que lo piensa ...
http://www.clubdelphi.com/foros/showthread.php?t=36871

seoane
20-01-2007, 04:06:27
Intel (R) Pentium D CPU 2.80GHz

Mobile Intel (R) Pentium (R) 4 CPU 3.33 GHz



Vaya :( , lo del dual core explicaría lo del Pentium D. Pero nos deja igual en el caso del Pentium 4.

roman
20-01-2007, 04:14:46
cada "core" tiene su IDTR

¿Estás seguro de esto? Vamos, es que una frase tan sencilla, para mi en realidad es chino.

Ahora, por alguna razón que no pretendo siquiera tratar de entender :D, la laptop, en el administrador de dispositivos marca que tiene dos procesadores, ambos idénticos. Esto debe ser un error pero no sé porqué o si tenga que ver.

// Saludos

seoane
20-01-2007, 04:24:33
¿Estás seguro de esto? Vamos, es que una frase tan sencilla, para mi en realidad es chino.


:D Yo que voy a estar seguro, el que lo dice es este tipo

http://www.mnin.org/?page=vmmdetect&left=off

Exactamente sus palabas son

unless the processor is dual-core, in which case each core has its own IDTR



marca que tiene dos procesadores


No tiene porque ser un error, hay placas con mas de un procesador. Además eso explicaría el baile del IDTR.

PD: Vaya maquinas tienes roman, algunos todavía vivimos con un ATHLON de 1,8 :(

Crandel
20-01-2007, 04:26:46
Debe ser porque tu pentium 4 usa la tecnologia Hyper-Threading

La tecnología Hyper-Threading está habilitada si existen dos gráficos históricos del uso de la CPU en el Administrador de tareas de Windows XP

enlace (http://www.intel.com/support/sp/processors/pentium4/sb/cs-017371.htm)

seoane
20-01-2007, 04:29:27
:D Excelente, caso cerrado.

roman
20-01-2007, 04:37:37
No tiene porque ser un error, hay placas con mas de un procesador. Además eso explicaría el baile del IDTR.

Pero es que no tengo dos procesadores :eek: Pero sí hay dos gráficos :)

[QUOTE=seoane]
PD: Vaya maquinas tienes roman, algunos todavía vivimos con un ATHLON de 1,8 :(

La del trabajo es la primera. Recién estrenadita con un monitor de 19 pulgadas. Estupendo!

Por cierto, ando queriendo armarme una pc para mi casa. ¿Qué tarjeta/procesador me recomiendan?

pd: ¿Puedo entonces concluir que la situación es normal, que no tengo rootkits metidos?

// Saludos

Crandel
20-01-2007, 04:38:13
antes de cerrar el caso señor juez :D cual es la conclución?

que cuando tenemos dos micros o dos procesadores lógicos (Hyper-Threading), el segundo corre como si estuviera virtualizado. :rolleyes:

seoane
20-01-2007, 04:43:09
antes de cerrar el caso señor juez :D cual es la conclución?
que cuando tenemos dos micros o dos procesadores lógicos (Hyper-Threading), el segundo corre como si estuviera virtualizado. :rolleyes:


En mi opinión, que no es que tenga mucho valor :p , simplemente en uno de ellos el IDTR toma un valor que no es habitual. Y como el código se basa en suponer que el IDTR toma unos valores característicos en los sistemas reales, cuando se encuentra con un valor poco habitual no sabe interpretarlo.


pd: ¿Puedo entonces concluir que la situación es normal, que no tengo rootkits metidos?

Si creo que puedes estar tranquilo. :D

roman
20-01-2007, 04:44:53
Si creo que puedes estar tranquilo. :D

Bien! Ahora sí, podemos ocuparnos de la belleza de la chica :)

// Saludos

Crandel
20-01-2007, 04:54:21
Beauty and Brains... difícil combinación...
http://common.ziffdavisinternet.com/util_get_image/13/0,1425,sz=1&i=135407,00.jpg

que combinación mas perfecta :p

Por cierto, ando queriendo armarme una pc para mi casa. ¿Qué tarjeta/procesador me recomiendan?

depende de lo que quieres gastar, pero te atreves a gastar un poco mas de la cuenta yo me compraria un Pentium D, con una mother ASUS, Intel u otra con soporte para memorias DDRII 800 (son caras pero deben volar) y PCI-E

roman
21-01-2007, 18:10:49
En mi opinión, que no es que tenga mucho valor , simplemente en uno de ellos el IDTR toma un valor que no es habitual. Y como el código se basa en suponer que el IDTR toma unos valores característicos en los sistemas reales, cuando se encuentra con un valor poco habitual no sabe interpretarlo.


Tú opinión tiene mucho valor, ni duda cabe, pero no me convences :p :D

La explicación suena muy razonable, pero, ¿por qué al ejecutar el código en Linux no sucede lo mismo? Ahí siempre marca que estoy fuera de matrix.

// Saludos

seoane
21-01-2007, 18:19:24
La explicación suena muy razonable, pero, ¿por qué al ejecutar el código en Linux no sucede lo mismo? Ahí siempre marca que estoy fuera de matrix.


Interesante pregunta, puede que linux no saque ventaja del doble núcleo y solo use uno. Ya se sabe, estos sistemas hechos por aficionados* ... :p

Ahora en serio, puede que tu versión de linux no este preparada para el doble núcleo, o que los maneje de una forma diferente que windows y el IDTR, en ese caso tenga valores, aceptables en ambos núcleos.

Pero bueno, como ya dije antes, aquí ya estoy hablando por hablar porque no se como funciona realmente :p




*Advertencia: Lo de aficionados es broma, no encendáis todavía la hoguera para quemarme en la plaza publica .... :D

roman
21-01-2007, 18:23:10
Veo que, además, tienes dotes de comediante. Casi se me salen las lágrimas de la risa :D

// Saludos

Crandel
21-01-2007, 18:25:22
Creo lo mismo, deberias verificar que tu kernel soporte (o este activado) Hyper-Threading, creo que desde la version 2.6 lo soporta

roman
21-01-2007, 18:35:42
Y esto, ¿cómo lo checo?

// Saludos

roman
21-01-2007, 18:44:18
¡Ah! Creo que ya sé. En Sistema|Administración|Monitor del sistema

En la laptop muestra dos cpus. Supongo entonces que sí usa lo del hyperthreading. El lunes pruebo lo del dual core en la oficina.

Gracias

// Saludos

Crandel
21-01-2007, 18:46:41
Y esto, ¿cómo lo checo?

hasta ahi no llego :D

pero segun dice aca (http://www-128.ibm.com/developerworks/linux/library/l-htl/) el soporte comienza desde la version 2.4.17 ya hace rato.

pero podrias hacer como hace en ese articulo con el comando
cat /proc/cpuinfo

y ver si tienes una salida con dos procesadores

roman
21-01-2007, 18:54:46
Da esto:


roman@toshiba:~$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Mobile Intel(R) Pentium(R) 4 CPU 3.33GHz
stepping : 1
cpu MHz : 1867.000
cache size : 1024 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe constant_tsc pni monitor ds_cpl est tm2 cid xtpr
bogomips : 6672.18

processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Mobile Intel(R) Pentium(R) 4 CPU 3.33GHz
stepping : 1
cpu MHz : 1867.000
cache size : 1024 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe constant_tsc pni monitor ds_cpl est tm2 cid xtpr
bogomips : 6667.52


// Saludos

Crandel
21-01-2007, 23:15:13
Parece estar todo bien, te da como que tenes tus dos micros.

Al principio no te daba tambien alternadamente distintos códigos??? no sera que seoane te paso un programa para que te de que siempre estas fuera de la matrix para ponerte contento??? :D

seoane
21-01-2007, 23:40:57
:D Me pillaste


if (roman)
{
printf("Estas fuera de matrix");
} else ...