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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 [7] 8 9 10
61  Foros Generales / Foro Libre / Re: ¿A que edad empezaste a interesarte por la informatica? en: 18 Diciembre 2012, 19:06 pm
Yo siempre tuve una PC en mi casa.

Antes de que naciera, teníamos una Commodore, aunque la vendieron.

Empecé con una 8088 (aunque en esa época ya existían las 486 pero eran caras).

Tenía entre 5 y 7 años cuando lograba hacer correr juegos para EGA en Hercules, que a veces corrían y a veces no. Había un programa .COM que servía para adaptarlos a la Hercules pero no siempre funcionaba, así que lo que hacía era correr y terminar varios juegos caprichosamente, y eso hacía que juegos como Digger corrieran repentinamente (los otros juegos seguramente configuraban algo adicionalmente).

Con unos 8 años traté de aprender BASIC en DOS, aunque solo lograba hacer cosas simples, y lo mismo con archivos BAT. A veces se me ocurría escribir combinaciones Alt+Número al azar en la consola del DOS para ver qué resultado tenía.

Después consiguieron una 386SX. Esta tenía Windows 3 en Alemán, y tenía Wolfenstein 3D. Con esta también aprendí un poco sobre cómo usar antivirus, para eliminar el Sat_Bug.Natas.

Con unos 12 a 13 años tuve una Tandy 1000 prestada, y aprendí a "descifrar" documentos de texto que tenían una fuente solo de símbolos por una fuente normal.

Ya con unos 16 años estudié una carrera de Informática, que fue bastante pobre por lo que puedo ver ahora, pero que es la que me ha permitido extenderme mucho más allá con la base simple que me dio para aprender a programar formalmente.

Estudié Java, Visual Basic 6, Visual Fox Pro 6, y SQL, pero ya casi no me acuerdo de nada de esto. Sé que son cosas necesarias, pero no son el tipo de programación que realmente me divierte. Me divierte más programas cosas de bajo nivel y crear funcionalidad por mi propia cuenta (por ejemplo, compiladores simples, o programas en javascript capaces de interpretar o crear imágenes GIF, BMP, etc.).
_____________________________________________
_____________________________________________
_____________________________________________
_____________________________________________


Y aquí estoy ahora, con una vida que desde siempre tuvo muchos libros de todo tipo, un par de libros técnicos y de programación BASIC para niños, muchas PCs, y curiosidad informática. Aunque todavía no estoy conforme en absoluto con mi capacidad actual, he logrado aprender Ensamblador, un poco de C, javascript/HTML, y una capacidad de nivel intermedio de manejar especificaciones, estándares y algoritmos formales.

Cuando entré a estudiar informática, lo que estaba pensando era: Quiero estudiar esta carrera para poder pasar toda mi vida jugando con la computadora, como cuando era niño (aunque este tipo de juego requiere que aprenda mucho y hasta llega a saber mucho de Matemática; pero siempre y cuando pueda dedicarme a hacer exactamente el tipo de programas que quiero, y no los que alguien más me imponga, estoy cumpliendo mi meta de divertirme constantemente y día tras día, durante todo el día, como lo había querido).
62  Programación / Scripting / Re: Adios SO en: 15 Diciembre 2012, 20:28 pm
Tengo una mala noticia, el sistema operativo que estaba haciendo en batch se fue.
 Tuve un problema con windows (de hecho todavia lo tengo) y no me arranca la pc, por eso no puedo continuar haciendolo. Hay una gran posibilidad de que tenga que formatear la computadora porque todavia no pude reparar el problema.

Voy a hacer un post en la sección windows sobre el problema, si lo llego a solucionar espero poder conservar los datos del disco pero la cosa pinta mal.

Saludos
Esto debería poderse recuperar simplemente conectando el disco a otra PC, ya sea como disco interno o con un adaptador/case USB, y leerlo desde otro sistema Windows.

No debería ser difícil si no hay corrupción de la partición.
63  Programación / ASM / Re: ¿Que libro de asm quisieras leer que no encuentras en la internet ? en: 15 Diciembre 2012, 20:01 pm
La pregunta puede parecer un poco estúpida, pero me aseguro.

¿Esta enfocado a windows, linux o es "universal"?

Un saludo.
Para quienes sabemos ya de ensamblador, es obvio que ese libro está enfocado a explicar la arquitectura x86 en términos generales, igual que los manuales oficiales de los CPUs Intel y AMD de los diferentes años.

Yo tengo guardados varios manuales de Intel y AMD que explican cada detalle de la programación en Ensamblador (aunque para entenderlos siempre se necesitan incluso varios meses o años pero antes un buen tutorial o libro de Ensamblador inicial, que en mi caso fue el libro de Francisco Charte Ojeda).

Actualmente libros, manuales, tutoriales y otros cursos de Ensamblador x86 sobran. Si permite que uno aprenda a desenvolverse en Ensamblador de forma inicial o mejorar, entonces es bueno.

Lo que ese libro tiene (x86 Instruction Set Architecture) es seguramente menos que lo que tienen los manuales, aunque no por eso siempre probablemente más fácil de entender que en los manuales oficiales (pero estos y manejar su complejidad conceptual es indispensable para ser competente).

Este libro tiene apenas unas 1600 páginas, mientras que los manuales de Intel son varios tomos que pueden ser el doble, el triple o más, si consideramos que los de AMD también se necesitan.

Manuales x86 Intel de Octubre del 2003

Manuales x86 Intel de Junio del 2005

Y hay más (no olvidar leer los manuales de optimización y los generales, que hablan de los aspectos de más bajo nivel necesarios para entender a nivel de sistema operativo y de kernel).


Manuales x86 Intel AMD de Marzo del 2005 (AMD64 de 16, 32 y 64 bits)

Si pudiera comprar en este momento ese libro lo haría, pero por ese precio y con lo que he aprendido y los manuales oficiales que sé que existen y se pueden encontrar fácilmente en Internet de sus fuentes primarias, tal vez no me saldría la cuenta.

Hay que tomar en cuenta que no es suficiente con aprender Ensamblador. También hay que aprender formatos de archivos, algoritmos, formatos ejecutables, APIs, progrmación gráfica, procesos, sistemas de archivos, protocolos, otros estándares, programar correctamente los periféricos y otro hardware interno o externo a la computadora base (que tienen también sus propios manuales, a menos que sean partes muy propietarias como las funciones más avanzadas de los GPUs) y cosas parecidas.

Sin saber eso, poder programar en Ensamblador no llega al nivel de conocimiento funcional, y esto lo digo por experiencia.
64  Seguridad Informática / Análisis y Diseño de Malware / Re: Evitar detección de anti virus. en: 3 Diciembre 2012, 00:27 am
Por lo general, antes de cifrar se aplica algún tipo de compresión, para evitar evidenciar redundancias (y obtener mejor cifrado) y después se cifra.

Una opción simple de compresión podría ser LZW con un número no común de bits por bloque comprimido, o con alguna otra característica no estándar.

Otra opción menos simple pero más estándar y probablemente más detectable sin un buen cifrado, sería el algoritmo DEFLATE (el que se usa en los ZIP clásicos).

Y agregar código paso a paso para determinar qué es lo que activa la detección.
65  Programación / ASM / Re: ¿Que libro de asm quisieras leer que no encuentras en la internet ? en: 3 Diciembre 2012, 00:20 am
El de la versión 2009 de Francisco Charte Ojeda. Traté de comprarlo pero ya se había agotado, y no pude comprarlo porque quien lo vende actualmente solo envía a España.

Yo compré el de la versión 2005 hace varios años. Con este aprendí ensamblador originalmente en 6 meses, y también me inspiró a aprender sobre desarrollo de sistemas operativos, porque ahí estaba escrito que uno podía hacer lo que fuera con Ensamblador, desde programas muy compactos, hasta un sistema operativo completo.

También descargué la versión 2009, pero la que existe es un escaneo muy pobre aunque entendible, pero lo malo es que no tiene el código fuente ni el contenido del CD-ROM.

He hecho mirrors de los sitios web que menciona, así que este es quizás el mejor libro sobre Ensamblador x86 existente en Español y por su simplicidad, tal vez en la mayoría de idiomas, para quien desconozca formalmente de Ensamblador..

Aunque podría tratar de escribir uno yo, con más conceptos ya no tan básicos...
66  Programación / ASM / Re: problema con saltos en assembler en: 8 Septiembre 2012, 20:42 pm
Comparar 0 con AX siempre va a dar igual a cero o negativo.

Código:
mov dX,0
CMP dX,aX


Tal vez si se usa JL:

Código:
JL menor;<<<aki es donde no salta o salta cuando no debe

Pero lo mejor sería poner el pseudocódigo, como algo tipo C, para ver si tiene sentido lo que se trata de hacer.

JL comprueba que SF != OF.

JS solo comprueba que SF = 1.

Aquí SF (bandera de signo) siempre va a ser 1 (o sea número negativo) a menos que AX sea 0 porque con cmp dx,ax, siempre se comprueba la resta de 0-AX.
67  Seguridad Informática / Seguridad / Re: Duda con disco duro en: 8 Septiembre 2012, 11:39 am
Hola a todos , bueno pues me ha surgido una duda y aquí os la digo para ver si me podéis echar un cable.

Tengo un disco duro de 1 Tera , y quería saber si por no usarlo mucho se podría estropear?
No, no hay problema. Solo hay que asegurarse de guardarlo en un lugar seco, sin polvo preferiblemente guardado en una bolsa especial contra estática (si es externo o está desconectado de todo). Y tener cuidado de que no pueda golpearse o caerse, que son los verdaderos problemas que pueden destruirlo más fácilmente.


y la segunda duda que tengo es si tiene un disco duro compartido en una red, alguien que se te meta en tu wifi podría coger cosas de ese disco duro?
Y si fuera que si , que medidas debería tomar acerca de la seguridad de la red.

Creo que el post esta en el lugar adecuado si no es asi, por favor cambienlo.
Con una red Wifi es igual de posible que con una red alámbrica. Si es una computadora con Windows, como mínimo hay que ponerle contraseña al usuario, para que si alguien desea entrar a un disco compartido, tenga que escribir esa contraseña.
68  Programación / Desarrollo Web / Preguntas Básicas sobre jQuery en: 30 Agosto 2012, 07:07 am
Preguntas de Programación: jQuery

Pregunta 1. Estoy suponiendo que para jQuery, las tareas se limitan a la siguiente lista de APIs de jQuery. ¿Es así?

jQuery Core, Selectores, Atributos, Traversing, Manipulación, CSS, Eventos, Efectos, Ajax, Utilitidades, jQuery UI

Pregunta 2. ¿Se limita jQuery solo a DHTML, interfaces de usuario y AJAX? ¿Es decir que deja fuera otras cosas como audio, o realmente tiene una forma general de manejar cada etiqueta HTML y propiedad CSS, pero en forma genérica, sin tareas considerablemente más "avanzadas"?

Pregunta 3. ¿Cuáles son las razones principales para usar jQuery aparte de acelerar el desarrollo de interfaces de usuario y no tener que preocuparse por las diferencias de programación de los diferentes navegadores?

Pregunta 4. ¿Cuáles son algunos de los elementos específicos que difieren entre navegadores, o son muchos para ser mencionados aunque sea a grandes rasgos?

Pregunta 5. ¿Debería haber un "Hola Mundo" para cada aspecto de la API?
69  Comunicaciones / Redes / Re: TOR no es seguro en: 30 Agosto 2012, 07:00 am
Tor no está pensado para proteger la anonimidad si uno usa cualquier tipo de plugin, sea ActiveX, Java, Flash, o similares.

El mismo sitio de Tor lo dice (aquí está en Inglés):

https://www.torproject.org/download/download#warning

El problema es que estos plugins no están diseñados para Tor, y conectan al cliente directamente, fuera de la red de Tor.
70  Programación / Programación General / Nanoalgoritmos, Snippets, Instrucciones, Virutas y Más en: 26 Julio 2012, 18:05 pm
En este tema pongo microavances directamente aplicables e implementados sobre cómo llevar a cabo una sub-tarea de un sistema mayor.

Hay que aceptar que no hay otra manera de lograr proyectos complejos que no sea basándose en progresos muy pequeños combinables, tomando en cuenta la limitación de la mente humana, que solo puede manejar muy pocas cosas a la vez, y solamente una principal al mismo tiempo, de forma funcional.

Escribir estos micro progresos demuestra que al final del día el avance y la cantidad de logros concretos es mucho mayor que esperando a completar un gran sistema para organizar ese conocimiento y crear un "diccionario" de pequeños trucos de verdades base (ground truths), e igualmente el aprendizaje y la corrección de errores se aceleran.

Como siempre, todo el contenido en este tema, que yo escriba, está bajo licencia de dominio público, y bajo la licencia Creative Commons 0 1.0 Universal (CC0), que equivale al dominio público, con respaldo legal.

Comienzo con un ejemplo de tipo snippet, que resulta ser la base que voy a usar para redirigir ejemplos mediante IDs pasados por URL.

__________________________________________________________

Convirtiendo un Error 404 en una Redirección Sin Error con PHP (Solo para GET, no para POST)


Requerimientos (2):
-PHP 5+
-Servidor configurado con una página PHP personalizada para el Error 404

En PHP, un error 404 hace que perdamos las variables de POST y GET.

Por lo menos, podemos todavía recuperar las variables GET mediante $_SERVER["REDIRECT_QUERY_STRING"] de forma manual, pero hasta donde sé, las variables POST sí se pierden con este método. Para POST, y otros casos, tal vez lo mejor sea usar mod_rewrite, aunque eso requiere ganar experiencia después de mucha prueba, error y entrenamiento, y por eso es que este snippet es valioso para quien no desee o no pueda manejar la complejidad de mod_rewrite.

Si ante un error 404 usamos la función de PHP header("Location: /alguna_URL"); antes de escribir cualquier contenido de documento al cliente, podemos convertir el error 404 No Encontrado en una condición sin error de redirección 301 Movido Permanentemente o 302 Encontrado.

Si a esto le sumamos el manejo manual de $_SERVER["REDIRECT_URL"] para indicar un script no existente, podemos combinar todo esto para crear una URL de búsquedas o de IDs de documento, como por ejemplo:

http://devel.no-ip.org/debree?id=0

En donde /debree no existe, pero que todavía podemos usar con este snippet.

Como se ve, una ventaja de este método es que podemos usar nombres GET de archivos SIN EXTENSIÓN, y sin la necesidad de configuración adicional al servidor, y con la opción de usar este truco o no, cuando lo necesitemos solamente.

Al inicio de nuestra página PHP para el manejo de errores 404, tendríamos:

Código:
<?php
//Aquí vamos a manejar el script inexistente
//"/debree":
///
if($_SERVER["REDIRECT_URL"]==="/debree")
{
 //Como vemos en el IF anterior,
 //$_SERVER["REDIRECT_URL"] solamente contiene
 //el nombre del documento o script, sin contar la
 //parte de la URL para el servidor, y tampoco las
 //variables GET. Esto es ideal para detectar fácilmente
 //si el nombre de script inexistente es el que estamos buscando.
 //
 //Si queremos que no distinga entre mayúsculas y minúsculas, podemos
 //cambiar el código para que las discrimine; pero por ahora distinguir
 //entre unas y otras nos da más posibilidades que si las discrimináramos.
 ///

 //Creamos un arreglo que contiene cada una de
 //las URLs para cada ID de virutas ("debrees" o "debris",
 //un nombre especial para documentos que describen pequeñas
 //combinaciones sintácticas, su valor y efectos, a partir del
 //código de un programa).
 //
 //El ID 0, por "defecto", es el índice de nuestro sitio:
 ///
  $debrees=Array(
                 "/"
                );

 //Aquí reorganizamos manualmente las variables GET.
 //Reemplazamos todos los '&' por '=', y luego partimos la
 //cadena $_SERVER["REDIRECT_QUERY_STRING"] (la cual contiene
 //las variables URL GET) por cada '='.
 //
 //Con esto, sabemos que la cadena en el elemento de arreglo
 //[$x+0] contiene el nombre de la variable URL GET, y
 //el elemento del arreglo [$x+1] contiene el valor.
 //
 //Más adelante verificamos si realmente existe el valor del
 //parámetro, y si no es así, evitamos seguir.
 //
 //Esta implementación la robusteceremos después, con el tiempo:
 ///
  $z=str_replace("&", "=", $_SERVER["REDIRECT_QUERY_STRING"]);
  $z=explode("=", $z);



 //Esta variable indica si encontramos la viruta deseada.
 //Si la encontramos, se pondrá en TRUE y evitará que mostremos
 //el contenido normal de la página de error 404.
 //
 //Pero si no lo encontramos, permanecerá en FALSE y, convenientemente,
 //desplegaremos el error 404.
 ///
  $debree_flag_ok=FALSE;

 //Recorremos todo nuestro arreglo manual de pares
 //de variables/valores GET:
 ///
  for($x=0;$x<count($z);$x+=2)
  {
   //Aquí nos interesa encontrar la variable GET "id":
   ///
    if(strcmp($z[$x],"id")===0)
    {
     //Si encontramos la variable GET "id", vemos
     //si su valor existe, viendo si tiene una longitud
     //de más de 0 bytes, y después de asegurarnos de eso,
     //vemos que la identificación numérica esté dentro del
     //rango existente de URLs en nuestro arreglo de registros
     //de URL, y que de hecho sea numérica con is_numeric.
     ///
     if(strlen($z[$x+1])>0 && is_numeric($z[$x+1]) && ($z[$x+1]+0)<count($debrees))
     {
      //Aquí está nuestro truco principal.
      //La siguiente línea convierte el error 404
      //en una redirección:
      ///
        header("Location: ".$debrees[$z[$x+1]]);

      //Con esto indicamos que hemos encontrado nuestro
      //documento, y no debemos mostrar el contenido
      //de la página de error 404:
      ///
       $debree_flag_ok=TRUE;

      //Detenemos el bucle, para mayor eficiencia, o
      //por lo menos como buena práctica de programación:
      ///
       break;
     }
    }
  }

 //Si encontramos nuestra "viruta",
 //nos detenemos aquí para no mostrar
 //el error 404, lo cual no sería correcto
 //en dicha condición.
 ///
  if($debree_flag_ok) return;
}
?>


Ejemplo de URL que demuestra el uso de este código, que convierte el script inexistente en una URL de consulta válida:

http://devel.no-ip.org/debree?id=0
http://devel.no-ip.org/debree?id=0
http://devel.no-ip.org/debree?id=0
http://devel.no-ip.org/debree?id=0
http://devel.no-ip.org/debree?id=0


Si en lugar de redirigir la URL quisiéramos mostrar contenido válido en la página actual (por ejemplo, para evitar perder la URL escrita originalmente), necesitaríamos esforzarnos más y crear una aplicación PHP completa para el script no existente, manejada desde la página PHP para el manejo del error 404, con los principios que vimos aquí, y emulando un código HTTP 200 OK, que es más difícil de lograr que todo lo anterior, pero que también se logra básicamente con header("HTTP/1.0 200 OK"); y/o similares, además de otros elementos.
Páginas: 1 2 3 4 5 6 [7] 8 9 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines