Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - 3n31ch

#1
GNU/Linux / Que distribución de linux usar
18 Agosto 2021, 22:11 PM
Hola gente, que tal. Verán, en temas de SO, Redes y Hardware no soy muy bueno así que me gustaría hacerles una pregunta. Quizás me puedan guiar.

Estoy cambiando la M.2 de mi notebook (tengo un "HP pavilion gaming", con Ryzen 7 y una GTX 1650 [la tarjeta gráfica comparte ram con el equipo  >:(] ). El tema es que estoy pensando en crear dos particiones, una con linux y otra con windows.

Entonces, con la partición de linux, estoy hecho un lío con que distribución ocupar. Antaño he ocupado fedora, ubuntu y debian. (Soy una total basura en el uso de cualquiera de ellas, así que da igual cual usar... la idea es intentar aprender un poco mas ahora). El tema es que en este notebook ya tengo una partición de ubuntu, la cual no uso porque no he podido instalar un controlador de tarjeta gráfica que me permita tener dos pantallas (conectarle otra pantalla al notebook para trabajar, me es "indispensable" para programar). No importa que tanto probara no pude hacerlo (probé como 8 controladores diferentes, el que mejor funcionó fue el que venía por defecto). ¿Que distribución/configuración creen que me podría servir?.
#2
WarZone / Hack-Web_EAS funciona?
13 Agosto 2021, 05:11 AM
Hola,

Quería evitar preguntar sobre la prueba, pero tengo la duda de si realmente sigue funcional.
¿Es normal que al loguearse el iframe no muestre nada? (ya vi lo de debug, y el recuerdame me tira 404).

De ser normal no quiero ninguna pista, es solo para estar seguro, ya que me está costando entender que hacer con el dichoso iframe.

Saludos.
#3
WarZone / Problema con Hack-Web_Cross
5 Agosto 2021, 08:12 AM
Al pasar la prueba y hacer click en el link "meter mi código" falla. (Si copias y pegas el código en el link meter mi codigo funciona). Lo dejo por si acaso.
#4
Hola, tenía una duda sobre la website de elhacker.net. ¿En algún momento se han planteado la posibilidad de hacerle alguna pequeña mantención de código o upgrade de algún tipo?. Quiero decir, entiendo la estética del foro y de la pagina, de hecho resulta hasta nostálgico el mantener el mismo diseño y todo eso, pero a nivel de código hay algunas cosas que se podrían mejorar.

Hoy por recomendación de WHK decidí meterme en la warzone y me llamó mucho la atención un menú lateral que te sigue cuando haces scroll hacia abajo. Se estaba moviendo raro, como vibrando, al ver el código me doy cuenta que tiene una posición absoluta que se recalcula con javascript, y que de hecho, al parecer, los submenu no están anidados al mismo, así que se mueven en paralelo.
En la actualidad existen cosas como "position: sticky" que hacen lo mismo solo que mucho mas facilmente, sin esa vibración ni delay, y sobre todo sin necesidad de javascript.

No sé hasta que punto sería viable (o seguro) subir ese código a algún repo (incluso privado, al que solo tengan acceso miembros del staff) y poder hacer pull request o algo que permita optimizar o mejorar esos detallitos de forma paulatina y con la ayuda de la propia comunidad.

Saludos,
#5
No se si estoy vuelto loco, pero recuerdo que antes había una forma de reportar un tema/post en caso de que incumpliera las normas del foro. Entiendo que eso despues lo veian los moderadores.

Creo que hay 3 respuestas posibles:

1. Si estaba pero se quito
2. Nunca estuvo, hazte ver
3. En efecto existe esa opción pero eres incapaz de encontrarla. (aca se admite añadir un insulto).

Si es la 1, ¿porque la quitaron?
Si es la 2 ¿no estaría bueno encontrarlo?
Si es la 3 ¿donde está  >:(?
#6
No tengo ni la menor idea de donde tenía que poner esto, así que lo hago acá.




Fue interesante lo de hacer el generador de palabras. Parecía mas simple al inicio hahaha. Al final si usé hilos. El primer intento fue con un solo hilo de ejecución y se demoraba un webo, D:

MODIFICADO: He cambiado el mensaje de este tema con el link del repo, ya que incumplia las reglas del subforo. Lamento el error.
#7
Hola, hace un par de días volví a visitar el foro (saludos a todos :D), y bueno.. me enteré sobre lo de wolfbcn (QDEP)  :-\. Por curiosidad quería ver su primera noticia, pero al ir a la primera pagina del canal de noticias me di cuenta que estaba fechado por el 2010. Al buscar en otros subforos me di cuenta que el primer post de todos tenian fechas similares.  Y bueno, a menos que sea una especie de efecto mandala, estoy totalmente seguro de que este foro está abierto desde 100 A.C. así que eso del 2010 no me cuadra. ¿En algún momento se eliminaron mensajes antiguos o se mudó el foro a otro sistema / base de datos?. ¿Se tiene registro del primer post de wolfbcn o del primer post de todos?

PD: Quizás estoy un poco loco, pero en mi época elburjo no comentaba tanto. Me sorprendió ver tantos mensajes suyos al volver  :xD.  Saludos especiales por si ves esto.
#8
Hola a todos, ¡tanto tiempo! Espero que todos estén genial.

Lamento si este tema no va acá (pero teniendo en cuenta las tecnologías seleccionadas... bueno, está es la mejor opción) :-\. Verán, quiero hacer una aplicación de escritorio utilizando HTML y CSS (y ya que estamos, javascript), la razón es simple: Es mucho mas fácil hacer interfaces gráficas atractivas con tecnologías web, ademas de la gama de librerías para generación de gráficos disponibles en internet.

Y bueno, dada mis necesidades, creo que lo único disponible es Electron.

No quería reinventar la rueda, y por eso vi algunas integraciones con VUE, el problema es que no quiero abrir un puerto web (debido a temas de seguridad, no debe ser accesible desde un navegador. La aplicación será instalada en hospitales y controlará equipo medico costoso [ya evalué la opción de crear una especia de api key, e incluso hacer un sistema "cerrado" donde se generara automáticamente una clave única que fuera entregada al front-end sin ningún tipo de trasmisión web {ya que estará el servicio VUE con Electron en el mismo equipo} ]... pero bueno, es un lío que preferiría ahorrarme).

Por otro lado probe iniciando un proyecto muy simple con electron y una especie de framework (inventado) con una arquitectura similar a Laravel para simular una un patrón MVC con middlewares y rutas... esto va genial (incluso me ayuda con otros temas de manejo de datos y servicios que serían dificiles de sobrellevar en una aplicación REST)... Pero bueno, hacer este "framework" tomará muchas horas para que sea lo suficiente maduro para soportar un proyecto como en el que estoy, por tanto, querría saber si hay otros métodos, librerías o frameworks especializados para esto.

(Lamento la biblia, no sé si puedan responderme esto ya que es muy especifico. Pero de todas formas me trae buenos recuerdos publicar en este foro  ;D).

Si no quieren leer todo, solo vean lo que está en negrita y se harán una idea  :laugh:

Reitero mis saludos!, de vez en cuando me acuerdo del foro y me paso por acá para ver que tal va  mi tema de las convenciones en java, hahaha. Es genial ver a algunos usuarios de mi época que siguen activos (y que lo estaban desde antes de que llegara, unos grandes todos ustedes).
#9
Desarrollo Web / JQuery, ¿obsoleto?
28 Septiembre 2018, 08:56 AM
Hola, aprovecho que estoy por acá para iniciar una breve discusión y saber cual es la opinión de otros desarrolladores.

Como algunos sabrán GitHub hace un tiempo declaro que ya no hace uso de JQuery en su sitio web, ya que se encuentra obsoleto (o tiende a la obsolescencia). Lo anterior, fue justificado a partir de la premisa de que JQuery es utilizado para hacer que el código javascript sea compatible con todos los navegadores (como una especie de middleware) y que muchas de las características que hacia la librería tan especial ya están implementado en javascript "nativo". Ademas de que aquellas características que no hace javascript de por sí (de forma sencilla), las están haciendo otras librerías mas eficientes como React, o similares.

¿Que opinan? ¿Es hora de dejar JQuery de lado para optimizar nuestros proyectos? (24kb menos creo que se ahorraron los de GitHub, ademas de una mejora en el rendimiento del sitio).

---

En partícula opino que es útil JQuery sobre todo para el manejo de plugins y cosas por el estilo.  pero creo que en vista de las evidencias, es hora de ir dejando poco a poco esta librería de lado. Aunque extrañaré su signo $.

Saludos.-
#10
Hola chicos, ¿como están? hace tiempo que no comento nada (ya saben, mucho trabajo, estudios, pereza...). Y bueno, reinicio actividad con una pregunta, que seguro esta en google, pero no se como expresarla adecuadamente. Así que acudo a ustedes:

Necesito hacer una plataforma que maneje todo el aspecto de registro, administración e identificación de usuarios por separado (se me ocurre hacer un webservice o api, pero me falta un detalle...) Me explico mejor con un ejemplo:

Google maneja un único sistema de administración de usuarios, esta se utiliza para Gmail, Youtube y otros. Necesito hacer algo similar: que si un usuario accede a la plataforma A, también este logueado en la B, aunque éstas estén separadas y su código no tenga nada que ver.

Se me ocurre que puedo hacer lo siguiente: Crear una API REST consultable únicamente desde los servidores que manejo yo, haciendo uso de un token y validando la IP. Cuando un usuario acceda a la plataforma A, el servidor de la misma enviara los datos del usuario hacia al webservice, para que posteriormente este le conteste con los datos del usuario si es true. En caso de ser false solo contestara con un false. Pero hay un problema: Si el usuario entra mediante la plataforma B tendrá que loguear otra vez (cosa que no quiero). Lo ideal es que si ya esta logueado en la plataforma A, también lo este en la B... Se me ocurre hacer un par de re-direcciones extrañas para que la cookie quede en el servidor de Administración de usuarios y que luego esta informe a los otros sistemas mediante POST... pero se me hace muy engorroso e inseguro. Lo otro es utilizar un identificador que tenga el browser pero también me parece mala idea... la IP ni hablar.

De verdad no se que hacer, cuales son los protocolos adecuados ni nada. Quiero hacerlo lo mas profesional posible.

¿Que se les ocurre?

EDITO:

He busco mas y he encontrado algo... mas o menos como lo que pensé, pero aun así me resulta complejo y difícil de mantener:

https://stackoverflow.com/questions/4306728/how-to-create-a-shared-login-service-across-multiple-domains

Se me ocurren formas de mejorar un poco el concepto y hacerlo mas seguro y sencillo encapsulando código en una librería utilizada por todas las aplicaciones vinculadas. ¿pero es la respuesta optima? ¿que opinan?
#11
Básicamente mi pregunta es como puedo iniciar un programa especifico en un linux (o mas bien, la base de linux) de tal forma que al bootear el SO inicie el programa sin necesidad de cargar ningún otro tipo de funcionalidad ni nada (ni login, ni desktop, ni nada, solo el programa. Casi como si se tratara de correr un programa sobre el kernel.

Y para poner hacer mas difícil que me respondan... seria genial que dicho programa fuera Java (osea, cargar lo básico del SO, la JVM y correr el programa en Java)




El requerimiento surge a partir de que se necesita ejecutar un único programa en una plataforma y que dicho programa inicie lo mas rápido posible (dicho programa preferentemente estará desarrollado en Java que para joder mas es gráfico)

¿Es imposible lo que pido? ¿Alguien tiene algún doc en el que me pueda basar?...

No suelo poner este tipo de cosas pero es "urgente", ya que necesito tener una respuesta para el viernes. Seria genial que alguien con la experiencia me dijera si es posible o no, y en caso de serlo como hacerlo o me pasara una url de algún  documento o algo básico para yo tirarle para delante, e intentar hacer un "Hola Mundo" para el viernes.

(Creo que me explique fatal... si no se entiende díganme)

#12
Creo este tema para discutir el clásico enfrentamiento que se da en este foro. Ya hay muchos hilos que se han desvirtuado por lo mismo y como el tema da para largo creo que seria mejor comentarlo en un único hilo, este.




Inicio preguntando respecto a lo que menciona Constance de las vibraciones, en donde por lo que tengo entendido si dos cosas vibran a la misma frecuencia estas se atraen, extrapolandolo al pensamiento/deseos en donde si tu piensas en cosas buenas tus pensamientos vibraran a la misma frecuencia que las cosas buenas por tanto atraerás cosas buenas (así lo he entendido yo).

Por mi parte digo que las cosas que vibran a la misma frecuencia no se atraen, pero si vibran "juntas" (haciendo referencia a la resonancia y frecuencia natural). Sin embargo, esto no se extrapola a los pensamientos/deseos ya que no "vibran" de una manera u otra dependiendo de la moralidad de los pensamientos.

Espero Constance que no te sientas atacada ni nada por el estilo, solo busco tener una discusión racional.




Vi tu respuesta en el otro tema (en el cual me citaste como 4 veces cuando realmente tenias que citar a engel, pero ok). Mi pregunta es: ¿Si dos cosas vibran a la vez, se atraen? [SI/NO] Porque? En caso de ser SI como puedo realizar un experimento que lo demuestre. En caso de ser NO no entiendo que tiene de especial la resonancia en tu hipotesis.




Respecto a lo que dices:

CitarQué quieres que te diga?? que porque lo dice la Fisica Cuántica me lo tengo que creer?? pues no,  el experimento aplica las leyes cuánticas, pero el gato no es un sistema cuántico. La cuántica actúa a escala subatómica y sólo bajo determinadas condiciones. Sólo es válida en partículas aisladas: ualquier interacción con el entorno hace que las leyes cuánticas dejen de aplicarse.

El experimento intenta llevar la cuántica a una escala de lo que conocemos como "física normal". Esa es la gracia.

De igual forma, lo que dices no tiene mucho que ver con lo que te intenta explicar Engel. Engel dijo que si todo depende del pensamiento y tu quieres que el gato viva no importa que la probabilidad sea 50/50 siempre vivirá. ( o al menos eso le entendí).
#13
Hola estoy leyendo un paper sobre sensores: Mutual Exclusion in Wireless Sensor and Actor Networks (2006)

Y se mencionan muchas veces los conceptos de:
1. greedy centralized approach
2. distributed and fully localized approach

Los que me confunden un poco (supongo que es por falta de vocabulario).

En el caso 1 (greedy centralized approach) no entiendo como aplica el concepto de "greedy".

Y En el caso 2 (distributed and fully localized approach) no comprendo a que se refieren con localizado (no quiero hacer una suposición estúpida)




Para quien lo necesite el paper trata sobre como aplicar mutual exclusión en sensores con actores, los sensores son los que perviven el ambiente y los actores los que actúan sobre el ambiente. por ej: Un sensor de humedad que activa rociadores(actores) cuando la humedad esta por debajo del limite deseado. (Aborda la exclusión mutua no como el acceso de un archivo o base de datos sino mas bien como la mínima cantidad de activación de actores para cumplir un objetivo, es muy fácil de entender el paper y lo recomiendo si a alguien le interesa el tema)

Saludos.-




EDITO: Creo que se refiere al algoritmo de solución, yo pensaba que hablaba de la arquitectura. (de esa forma me hace mas sentido)
#14
No lo pongo en sugerencias ya que no lo es. Solo quiero saber su opinión.

Viendo un hilo me di cuenta de un comentario con el cual me sentí identificado:

Cita de: PalitroqueZ en 26 Mayo 2017, 16:06 PM
2 posteos y ya está, no se le vuelve a saber de él.

hay foros, en donde para abrir temas tienes que acumular cierta cantidad de mensajes y tener cierta antigüedad en el foro.

No comente ahí mismo para que el tema no se alejara de su idea principal pero ese sentimiento (y digo sentimiento porque me da no se que) también lo tengo. Y no se si soy yo el del problema o existen mas que lo piensan.

Jode de sobremanera que te tomes el tiempo de contestar una duda y luego esa persona desaparezca sin dar ni las gracias. (Y no lo hago por las gracias, pero no deja de molestarme).

Pero cuando lo pienso mas detenidamente recuerdo que mi tercer post fue un tema que aun utilizo como recomendación cuando veo que alguien no programa bien:

https://foro.elhacker.net/java/aporte_mejores_practicas_en_java-t428462.0.html;msg1991034#msg1991034


No se que opinan ustedes de este tema... Pero en mi caso me genera ideas contrapuestas.

Me quería desahogar un poco, que hace tiempo que pienso igual.
#15
Hola mundo, que tal.

Estoy haciendo unos tutoriales de Java y como es un lio llegar y escribirlos en el foro estoy haciendo la versión en word y luego lo paso al foro. Todo esta bien ya que así puedo poner la tutorial descargable.

El problema es que al inicio todo era muy bonito, porque era todo bla bla, pero ahora que estoy con el codigo es un lio poner codigo en Word, y mas si quiero que siga los colores adecuados.

No quiero poner imagenes (aunque parece que es lo unico que me quedaria por probar) ya que haria que todo se retrasara mucho.

Existe alguna forma de hacerlo?.. algun contenedor especial o algo por el estilo?. La version de word no es un problema. (Asuman que puedo tener cualquiera)

Creo que notepad++ hay algo para exportarlo con los colores y todo. Lo probare, pero seria mejor que fuera algo interno de word y no una truculencia de otro programa externo.
#16
Java / [CURSO] Programación en Java
13 Mayo 2017, 08:24 AM
[CURSO] Programación en Java


Introducción

En este post podrás ver todo lo que necesitas para empezar a programar desde cero con Java y todo lo que necesitas saber para desarrollarte en el mundo laboral con este lenguaje de programación.

Se abordarán temas como:


  • Fundamentos de programación
  • Algoritmos básicos y complejos
  • Crear aplicaciones de consola
  • Crear aplicaciones de escritorio
  • Crear aplicaciones web
  • Crear aplicaciones en Android
  • Crear videojuegos

Dispondrás de tutoriales, videos, ejercicios y ejemplos para mejorar tu aprendizaje.

Debido a que planeo hacer un tutorial gigantesco lo iré desarrollando día a día e intentare tener como mínimo un tutorial por semana.

Al finalizar este "curso" se espera que poseas los conocimientos para poder abordar cualquier proyecto con Java y desempeñarte tanto en el mundo académico como laboral de forma íntegra.


Índice

Introducción a Java


   
      
      
      
TutorialVideo TutorialEjerciciosSolucionesOtros
Introducción a Java y la Programación Orientada a Objetos (POO)No DisponibleNo AplicaNo Aplica.DOCX Descargable
Historia muy breve de JavaNo DisponibleNo AplicaNo Aplica.DOCX Descargable

Instalación y Uso de Herramientas


   
      
      
      
TutorialVideo TutorialEjerciciosSolucionesOtros
Instalación de herramientas para programar en JavaNo DisponibleNo AplicaNo Aplica.DOCX Descargable
Proyectos en JavaNo DisponibleNo AplicaNo Aplica.DOCX Descargable


Java SE Básico


   
      
      
      
      
      
      
   
      
   
      
   
      
       
      
   
      
      
      
      
      
   
      
   
      
      
      
      
      
      
      
      
      
      
      
      
      

   
      
TutorialVideo TutorialEjerciciosSolucionesOtros
Impresión de mensajesNo DisponibleNo DisponibleNo Disponible.DOCX Descargable
Variables y ConstantesNo DisponibleNo DisponibleNo Disponible.DOCX Descargable
Operadores AritméticosNo DisponibleNo DisponibleNo Disponible.DOCX Descargable
ConcatenaciónNo DisponibleNo DisponibleNo Disponible.DOCX Descargable
Inputs por consola - ScannerNo DisponibleNo DisponibleNo Disponible.DOCX Descargable
Operadores lógicos y relacionales
Sentencias condicionales - if y else
Sentencias condicionales - switch y case
Comentarios
Arrays (Colecciones) - Unidimencionales
Arrays (Colecciones) - Multidimencionales
Bucles - while y do while
Bucles - for y foreach
Excepciones - try y catch
Input por consola - BufferedReader
Clases y objetos
Métodos
Documentación
POO - Abstracción
POO - Encapsulamiento
Sobrecarga
Static
Clase String
Wrappers
POO - Herencia
POO - Polimofismo
Clases Abstractas
Interfaces
Ejemplo Practico

Java SE Intermedio


   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      

   
      
TutorialVideo TutorialEjerciciosSolucionesOtros
Excepciones - throws and throw
Excepciones - Crear Exepciones
Thread - Thread
Thread - Synchronized
JDBC
Sockets - Servidor
Sockets - Clientes
Ejemplo Practico

Java SE GUI


   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      

   
      
TutorialVideo TutorialEjerciciosSolucionesOtros
Hola Mundo
JFrame
JLabel
JTextField, JPasswordField y JTextArea
JButton
Listener - ActionListener
Layout - FlowLayout
Layout - GridLayout
Layout - BorderLayout
JPanel
JCheckBox
JRadioButton
JComboBox
JMenu
Ejemplo Practico

EN ESTE PUNTO YA PUEDES TOMAR EL CURSO DE COMO CREAR TU VIDEOJUEGO EN JAVA

Java EE Básico


   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
TutorialVideo TutorialEjerciciosSolucionesOtros
¿Qué son peticiones y respuestas HTTP?
Entendiendo como trabaja Java en web.
Introducción JSPs
Introducción Servlets
¿Qué son los objetos HttpRequest y HttpResponse?
Majenado objetos HttpRequest y HttpResponse
Pasando valores por medio de HttpRequest al JSP
¿Qué son taglibs? Usando taglibs
¿Qué es EL? usando EL con taglibs (jstl)
¿Qué es el objeto HttpSession y cómo funciona?
¿Qué son cookies y cómo funcionan?
Manejando sesiones.
Introducción AJAX
Envío y recibo de JSON entre AJAX y Servlets.
Ejemplo Practico

Java EE Intermedio


   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
   
      
TutorialVideo TutorialEjerciciosSolucionesOtros
JPA - introducción
JPA 2 - Mapeo de tablas
JPA 3 - Relaciones
DataSources
EJB 1 - Stateless
EJB 2 - Staeful
EJB 3 - Singleton
EJB Local y EJB Remote
Introducción a WebServices
WebService SOAP (JAX-WS)
WebService REST (JAX-RS)
Haciendo un cliente REST con Jersey
JAXB - Marshall
JAXB 2 - Unmarshall
Ejemplo Practico

Los videos se empezaran a desarrollar cuando finalice la primera parte del curso (ademas de los cursos asociados)

Este tema estará bloqueado para evitar desordenarlo por tanto cualquier pregunta que tengas puedes realizarla en este mismo foro creando un nuevo tema e intentare responderte lo antes posible.

Agradecimientos a:

  • Eleкtro (por utilizar sus poderes divinos de mod para ayudarme)
  • MCKSys Argentina (por recomendaciones)
  • NEBIRE (por recomendaciones)

Agradecimientos especiales a:


  • n-utz
  • Ragaza
  • Reina_Negra
  • gabriel1995

Sin estos usuarios este curso no seria posible, ya que ellos han sido los que me han dado ánimos para continuar dando sus agradecimientos por mensajes privados. Muchas gracias!
#17
Me he dado cuenta que cuando inicio sesión mediante un comentario (no desde arriba, sino  que hago click en escribir un comentario y si estoy logout me envía al login) Este siempre falla. (No importa que ponga bien la clave). Luego me redirige al login de toda la vida y ahi me puedo logear... (Aunque estoy semi-seguro que me genera un problema en la sesión)

Espero que no sea un XSS-Pishing y que puse mi pass en un login falso  :-(
#18


Hola, ayer ante-ayer se me ocurrió hacer un tutorial enorme sobre como hacer un juego en Java. La idea era hacerlo completo y desde 0 sin usar ningún framework (osea, controlar los gráficos, el gameloop, etc.)

Aun lo estoy desarrollando, y seguramente lo termine la próxima semana, pero de igual forma me gustaría saber su opinión y si me pueden ayudar (con sprites 16x16, o sonidos libres, etc.)

En la actualidad solo se trata de sobrevivir a la oleada de enemigos que al tocarte te hacen daño, para eso te mueves con: ASDW y atacas con el mouse.

Existe un sistema de "niveles", pero es particularmente especial. El sistema te permite distribuir tus atributos en: "vida", "velocidad", "daño", "velocidad de disparo", "delay de disparo".

Pero no puedes subir de nivel en el juego... es imposible. He aquí la particularidad, el juego te pedirá tu id (luego explico cual es) y con ella entrara a tu perfil de elhacker.net, tu experiencia serán tus mensajes!

Tu ID la puedes ver al entrar a tu perfil (no al modificarlo, sino que al entrar como si fueras otro usuario), en la url veras algo como esto:

http://foro.elhacker.net/profiles/nacho-u537557.html

Tu id para el juego esta marcada en negrita



Para distribuir tus puntos de habilidad tendrás que poner en tu firma lo siguiente:

[color:#ff0000]
[life:0]
[attack:0]
[speed:1]
[shootSpeed:0]
[shootDelay:0]


(por cierto, se que seria mas apropiado health, realmente no se en que pensaba  :xD)

El color te permite cambiar el color de tu personaje, por lo que no requiere ningun mensaje ni nada.

El resto son valores que tu les tienes que entregar (pero cuidad, tienes un máximo de puntos, si no los respetas el programa no te hará caso).

Lo siguiente es el valor de cada punto de cada cosa:

10 mensajes por cada 1 de vida
20 mensajes por cada 1 de ataque
200 mensajes por cada 1 de velocidad
100 mensajes por cada 1 de velocidad del disparo
10 mensajes por cada 1 de reducción de delay de disparo


En el caso de las velocidades el máximo es 5 y en el caso del delay el máximo es 900.
(los demás no tienen máximo)

En mi perfil encontraran un ejemplo de como se  hace todo, por lo demás dejo el link de descarga del .jar (utiliza la ultima versión de java, y aun puede que tenga errores):


https://mega.nz/#!alVmQYyI!RSXCPX7yOd-xhLw29sdrmyiHuWS3475OQf4zRxiYVWo


Imagen:



Cualquier cosa me dicen, estaré pendiente y por cierto... hay algunos usuarios que tienen cosas especiales. (Y seguiré agregando mas, pero necesito seguir programando)

El tutorial estará para la sub-siguiente semana ya que tengo esta semana para terminar lo que me falta (que es muuucho) Cualquier idea es Bienvenida.
#19
Hola, tengo algunas preguntas:

1. Existe una forma de poner el botón "spoiler" al postear o crear un tema? (Creo que haré un mega tutorial en Java y lo necesitare).

2. Existe una forma de ver los usuarios registrados en el foro (una lista)?
#20
Abril negro / Editor de diccionarios de claves
24 Abril 2017, 02:59 AM
Este es un script pequeño que cree con el objetivo de editar los gigantescos diccionarios de passwords que hay en la red.

Muchas veces utilizamos un diccionario de claves grande pensando que es lo mejor, pero no nos detemos a pensar que en ese diccionario hay claves como "%" y si vemos con mas detalle la mayoria de los sitios restringen las claves a un minimo 5-7 caracteres.

Por tanto es importante limitar los diccionarios a las soluciones viables de una password, es por esto que cree Dictditor: Editor de diccionarios por medio de una exprecion regular.

El uso es muy simple:

Usage: python dictditor.py [options]

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -i FILE, --input=FILE
                        Dictionary to modify
  -o PATH, --output=PATH
                        Modified dictionary.
  -r REGEX, --regex=REGEX
                        Regular expression to apply.


(En la url del final podran ver un ejemplo de su uso)

El proyecto en la actualidad lo estoy mejorando para poder reordenar el diccionario y a su vez para generar una base de datos online que permita crear diccionarios. Pero por ahora este es el codigo:

Código (python) [Seleccionar]
__version__ = "1.0"
__author__ = "3n31ch"
__website__ = "http://www.elhacker.net/"

import re
from optparse import OptionParser

def printError(error):
print "[ERROR] ", error

def dictditor(inputPath, outputPath, regex):
inputFile = open(inputPath, "r")
outputFile = open(outputPath, "w")
pattern = re.compile(regex)
for line in inputFile:
word = line.replace("\n", "")
if(pattern.match(word)):
outputFile.write(line)
inputFile.close()
outputFile.close()
return;


def main():

print "DICTDITOR - Dictionary Editor"
print "Author: ",__author__
print __website__

parser = OptionParser(usage="usage: python %prog [options]",
                          version= "%prog "+__version__ )
parser.add_option("-i", "--input",
dest="input",
help="Dictionary to modify",
metavar="FILE");
parser.add_option("-o", "--output",
dest="output",
help= 'Modified dictionary.',
metavar="PATH");
parser.add_option("-r", "--regex",
dest="regex",
help= 'Regular expression to apply.',
metavar="REGEX");

(options, args) = parser.parse_args()

if options.input and options.output and options.regex:
dictditor(options.input, options.output, options.regex)
else:
printError("All options are necessary");
parser.print_help()


if __name__ == '__main__':
main()


Link github: https://github.com/3n31ch/dictditor
#21
Dudas Generales / P2P para crackeo de claves
22 Abril 2017, 06:03 AM
Existe algo como un p2p para crackeo de claves. ¿Que de manera voluntaria prestes tu computadora para crackear claves (todo eso maquinado sobre una arquitectura p2p)?

Se que hay programas para analizar señales "extraterrestres" y también para encontrar posibles enfermedades. Pero existe algo para el crackeo de claves? (Entiendo que se necesitaría de un sistema central que controlara y almacenara los datos, ademas de redundancias para evitar "mentiras").
#22
Es evidente que los aportes destinados a ser educativos como por ejemplo "reproductor mp3 hecho en java, explicado" deben ir en los subforos de programación destinados al lenguaje que se pretende enseñar.

¿Pero que pasa con los aportes desarrollados por la comunidad y para la comunidad?

Hoy mismo Elektro publico parte de su librería (que por cierto, es enorme), y lo hizo como "regalo". El cual, a la larga, se ira perdiendo entre consultas hechas en el sub-foro de .NET.

Por tanto no seria bueno tener un sub-foro de aportes propios? (no hablo de poner un link para descargar kali).

Creo que de alguna forma incentivaría a la comunidad a desarrollar, crear herramientas y utilidades que hagan mas activo al foro.



PD: Lo puse aquí porque realmente no se si ya existe un sub-foro para eso. (O si ya se intento hacer)


-- OPS, me di cuenta que esto tiene que ir en el foro de dudas sobre el foro -- (pense que era solo de sugerencias)  u.u
#23
Hacking / MySQL Injector
20 Abril 2017, 16:42 PM
Hola, soy Nac-Ho (o 3n31ch Si ven las iniciales de mi username).

Me acabo de dar cuenta del tema del abril negro, así que publicare mi software... esta mal pulido pero lo he logrado utilizar en 3 sitios web distintos para obtener información.

Nombre del autor: Nac-Ho / 3n31ch
Nombre de la herramienta: MySQLInjector 3.0
Lenguaje en el que esta diseñado: Python (la razón de que este mal pulido)
Descripción del trabajo:

Es un software que sirve para aplicar sql injection automáticamente. Para el que no sepa de esta técnica es simplemente introducir código SQL no permitido normalmente en un sitio web ya por medio de la url.

Como ejemplo: Si existe un sitio web que tenga en un método get como este: "sitio.com/?page=2", y ustedes al cambiar dicho gen por este "page=2 or '1' = '2'" les entrega una pagina distinta, y luego al poner "page=2  or '1' = '1'" les entrega la pagina correcta quiere decir que el sitio al cual atacan es vulnerable, ya que pueden realizar preguntas binarias del tipo "¿la clave del admin es: XXXXX?"

--- Puedo hacer un post explicando el detalle de esta técnica si quieren ---

La herramienta la cree como hace un año atrás, antes de saber que esta metodología era popular y que existían herramientas similares como SQLMap sin embargo me ayudo bastante para aprender un poco mas de python y sobre la metodología (podría hasta escribir un libro del tema).

La herramienta solo hace preguntas binarias en base a un string que sea TRUE en el sitio web. Aun no aplico respuestas binarias en base al tiempo de carga o similares.

Como aspecto negativo he de decir que tiene muchos bugs aun. y sinceramente como no he visto el código en unos meses me costaría mejorarlo (deje la version 4.0 a medias).

-- Si a alguien le interesa ayudarme a mejorarlo y ponerlo con licencia MIT o GNU, yo estaría mas que contento --

Captura de pantalla:


En la imagen pueden ver que listo las columnas del -s esquema (el cual borre para evitar evitar problemas) luego indique con -t la tabla a la que ataco, luego omitan -c (eso es para hacer un dump de datos, no se porque puse ese atributo cuando no es necesario), posteriormente indique con -url la url que quiero atacar, indicando en donde se tiene que hacer la inyección de  código con la palabra reservada $QRY y luego con -true indique cual es sl String que debe aparecer en el sitio en caso de que el resultado sea true.

Link de Descarga:
https://github.com/3n31ch/MySQLInjector

Puedo explicar como se utiliza y todo, solo díganme si les interesa (mas que nada porque tengo que acordarme como funciona).

--- EDITO ---
Acá hay otras imágenes que encontré:



En la primera listo las columnas, para en la segunda listar datos de la tabla, (los primeros 5 datos -from 0 -to 5. Esto lo hice para poder sincronizar ataques entre distintos usuarios.)
#24
Buenas, espero que estén bien.

Quería saber si es posible generar un evento de teclado o mouse en un programa desde otro. (concreta mente hacerlo desde Python)

Déjenme me explico:

Existe un programa "A" el cual al presionar  sobre el la tecla "X" sucede algo. Pues quiero que desde un programa "B" indicar que presione dicha tecla "X" en el programa "A", sin necesidad de que yo tenga que hacerle focus a dicho programa.

Tengo entendido que si se puede, de hecho, imagino que así funcionan los bots de videojuegos, nose si seria posible que me ayudaran a saber como hacerlo para orientarme un poco.
#25
Hola, Espero que estén bien.

No se si la pregunta va por aquí, pero teniendo en cuenta de que se trata de un "programa" y tengo que modificar su funcionalidad... espero que si.

Necesito modificar una extensión de Google Chrome (sin que Chrome detecte el cambio).
Se que almacena las extensiones en:

"C:\Users\Username\AppData\Local\Google\Chrome\User Data\Default\Extensions" - Windows 10

Pero al acceder y modificar un archivo, Chrome deshabilita la extensión señalando que puede haberse dañado.

Al inicio pensé que podría saberlo con las fechas de ultima modificación que almacena el archivo, así que edite dichas fechas a las originales, y aun asi reconoció el error.

Luego pensé que era el peso del archivo,  así que hice una modificación que no alterara dicho atributo, aun así lo reconoció.

Luego intente hacerlo sin conexión a internet, en caso de que Chrome al acceder comparara el archivo local con alguno de la web... aun así detecto un cambio.

Me gustaría saber como lo hace, o si existe alguna forma de burlar al sistema.

Muchas gracias por adelantado.-
#26
Hacking / Modificar Cabeceras HTTP
27 Febrero 2016, 06:11 AM
Hola, buenas,

Quería hacer pruebas con un sitio web que tengo en local, haciendo uso de HTTP LIVE HEADERS, pero no pude.

Descargue la versión mas nueva y cuando intento repetir, ya sea modificando o no modificando nada, el sitio me lanza un error.

"Bad Request

Your browser sent a request that this server could not understand."

Saben de alguna otra extensión en cualquier browser que me sea de utilidad?

PD: Es la version 0.17
#27
Hola, espero que esten bien, me gustaria saber su opinion sobre mi problematica:

Tengo una base de datos pequeñas la cual maneja los datos de login de un sitio web. En ella se encuentra (entre otras tablas) la tabla user, la cual contiene una enorme cantidad de atributos.

user(
id,
firstname,
lastname,
sex,
birthday,
username,
password,
email
)


ahora... no seria mejor separar dicha tabla en dos:
person(
id,
firstname,
lastname,
sex,
birthday
)
user(
id,
username,
password,
email
)


creo que esto pega mas con el concepto de normalizacion, en concreto creo que el punto 2.

En este caso, la clave foranea ha de estar tanto en person como en user (teniendo en cuenta que una persona solo puede tener un usuario) o solo en user?

Es bueno separar las dos tablas o no?
#28
Foro Libre / Experiencia de hackeo
9 Agosto 2015, 01:48 AM
Hola amigos, hoy he tenido una buena experiencia y quisiera compartirla con ustedes, y a su vez, seria genial que me cuenten su experiencia acerca de este tema.

Hoy "hackie" mi primer sitio web. Este sitio web corresponde a un instituto profesional de mi país, y gracias a una vulnerabilidad del sitio, pude acceder a su intranet. Aun hay muchas mas vulnerabilidades que me gustaría explotar, pero este primer paso me lleno por completo.

Les comento... Hace unos tres días atrás, me tope con este sitio web, y me llamo la atención que todo el sitio era muy "actual", exceptuando el login de su intranet... Gracias a esto pude suponer que el sitio había sido actualizado pero el login no fue tocado en ningua instancia, y es por esto, que también supuse que quizás fuera vulnerable.

Haciendo pruebas, encontré un error fatal, el login de alguna manera era vulnerable a sqlinjection, si bien validaba algunas cosas como que no se pusieran apostrofes, no validaba otras que me fueron de utilidad para acceder.

Pase tres días ocasionando errores en el sitio (durante mis tiempos de osio) y gracias a esto pude obtener los nombres de sus tablas de bases de datos y algunos campos...

Con esto al tercer día logre acceder... Es una estupidez, y ni siquiera merece ser llamado "hackeo" (en el sentido burdo y comercialmente dado a la palabra) Pero de todas maneras me lleno de felicidad.

Posterior a esto localice a un administrador del instituto para indicarle la vulnerabilidad, y explicarles como se puede solucionar.

Sinceramente no pensé que algo tan estúpido me podría hacer tan feliz... Pero lo fue. Asi que solo quería compartirlo con ustedes, y quizás ustedes podrían contar alguna historia.

PD: No creo que este tema este contra las reglas del foro, pero de así serlo, lo lamento mucho
#29
Buenas, como estan?
Les explico el problema: Yo tenia una partición con windows 7 y otra con linux debian (no recuerdo la version) y disidí actualizar a windows 10, lo deje actualizando por la noche y hoy cuando veo la PC me doy cuanta que el grub de linux para seleccionar la partición ha fallado.

Saliendo el siguiente mensaje:

Welcome to GRUB!
error: unknown filesystem.
Entering recuse mode...
grub rescue>_

Supongo que windows toco el archivo del grub, pero no se si seria posible reparar este error sin necesidad de acceder con un live de algo...

PD: probe con esta secuencia que vi en youtube:

set boot=(hd0,msdos6)
set prefix=(hd0,msdos6)/boot/grub
insmod normal
normal

pero cuando pongo insmod normal, me indica el siguiente mensaje:
No such partition


Actualizo:
Al hacer el comando con msdos7 me dice otro mensaje de error:
unknow filesystem
#30
Hacking / Listar los archivos de un sitio web
2 Agosto 2015, 05:06 AM
Hola amigos, he vuelto después de un largo tiempo de inactividad por la universidad y el trabajo. Ahora que tengo las cosas mas controladas espero quedarme en el foro por mas tiempo.

Bueno, posteo este tema debido a una duda que tengo...
¿Es posible o conocen alguna vulnerabilidad para listar todos los archivos de un sitio web?.

Necesito proteger mis sitios, y he decidido estudiar como atacarlos para posteriormente entender como protegerlos.



#31
Hola buenas, ¿como están?.
Bueno, les cuento, hace un tiempo que no he trabajado con bases de datos y he perdido un poco la practica.

Requiero hacer un procedimiento almacenado, cuyo unico propocito sea insertar los datos (email, password, role) en una tabla llamada user.

Quiero que la password se encripte con MD5, pero no hay manera.... no se que estoy haciendo mal. Espero me puedan ayudar. Este es el codigo que estoy utilizando:

Código (sql) [Seleccionar]
CREATE PROCEDURE `sp_user_insert` (IN `sp_email` VARCHAR(255), IN `sp_password` TEXT, IN `sp_role` INT)
BEGIN
DECLARE `sp_encrypted_password` TEXT;
SET `sp_encrypted_password` = (SELECT MD5(`sp_encrypted_password`));
INSERT INTO `user`( `user_email`, `user_password`, `user_role_id`) VALUES ( `sp_email`, `sp_encrypted_password`, `sp_role`);
END


Por si lo requieren, esta es la tabla:

Código (sql) [Seleccionar]
CREATE TABLE IF NOT EXISTS `user` (
 `user_id` int(11) NOT NULL AUTO_INCREMENT,
 `user_email` varchar(255) NOT NULL,
 `user_password` text NOT NULL,
 `user_role_id` int(11) NOT NULL,
 PRIMARY KEY (`user_id`)
);
#32
(Pregunta en negritas abajo del todo)

Buenas. Me siento algo incomodo haciendo esta pregunta después de haber estado tan inactivo en el foro, pero con el trabajo y los estudios no he tenido mucho tiempo. Espero que apenas entre a vacaciones pueda retomar donde lo deje.

Bueno amigos, les explico la razón de esta pregunta:

Estoy haciendo una propuesta de cambio para la gestión de los laboratorios computacionales de una sede educativa.

Dicha sede educativa cuenta con múltiples carreras que van desde diseño de vestuario hasta ingeniería en informática pasando por diseño gráfico, técnicos en sonido, etc.

Cual es la problemática:

Si bien todas las computadoras cuentan con un buen hardware mas que suficiente para su uso (8gb de ram, cpu i7, etc..). Siguen siendo increíblemente "lentas".

La respuesta actual de gestión para estos incidentes es la compra de nuevas computadoras,de similar o mayor potencia pero que al cabo de 2 meses son igual de lentas que las anteriores.

Según mi análisis:
Me he percatado que la problemática corre por otro lado, no el el hardware claramente, mas bien es el soporte y gestión del software. Al existir múltiples carreras educativas la computadora se satura de programas que la hacen lenta. Una gran cantidad de servicios están en constante funcionamiento, ademas de esto el antivirus se ejecuta al iniciar la computadora haciendo una revisión extensiva  (lo cual es un problema ya que para cada clase se prende la computadora y luego se apaga, ademas de que el antivirus limita el uso de la CPU en un 30%) Junto ha esto me he percatado que utilizan un software para congelar el disco duro. De esta manera todos los cambios realizados por un alumno no son guardados. Apenas se apaga la computadora estos desaparecen.
Esto ultimo no me parece malo del todo, sin embargo, los computadores no se actualizan, por lo que siempre están molestando con las actualizaciones de windows.

Aparte de esto no encuentro otra razón.

Solución

Pensé en instalar tune up, o algo similar que bajara todos los servicios que no están en uso, aparte de definir la configuración y correcta mantención cada 2 meses de las computadoras de la sede.

El problema con esto es que tune up es un software caro que no estaran dispuestos a comprar

Asi que crei posible hacer uso de alguna herramienta de gestion que ya posean. Se me vino a la mente Active Directory, para el control de usuarios en windows.

Pregunta:

Existe alguna forma de gestionar los servicios y programas a los que tiene acceso cada usuario por medio de active directory

Y para aquellos que hayan leído todo mi texto bíblico:

Se les ocurre otra razón a esta problemática u otra solución?


Muchas gracias por tomarse el tiempo de leer y mas aun para aquellos que se tomaron el tiempo de responder.

Gracias.
#33
He visto que hay muchas paginas web que al entrar te dan un aviso "Este sitio web utiliza coockies". Y por esta razón tengo la siguiente pregunta:

¿Se esta obligado a dar aviso del uso de coockies?
#34
Foro Libre / Que es un hacker?
16 Marzo 2015, 13:37 PM
Buenas, amigos, hoy he tenido una "batalla" con mi profesora de seguridad informática.

La discusión se armo, porque manejamos ideas opuestas al termino "Hacker".

Mi definición(Y supongo que es la definición real, no la entregada por las noticias): Hacker es una persona que sabe mucho de cualquier área. Y si se habla de informática nos referimos a una persona que sabe mucho de informática, por ejemplo, alguien que crea un sistema es un hacker.

Definición profesora: Hacker es alguien que invade o corrompe sistemas (no necesariamente para hacer un mal). Para ser hacker es necesario invadir sistemas.

Cual es su opinión?
#35
Foro Libre / El mejor firewall del mundo.
4 Marzo 2015, 08:27 AM
Un amigo vio esto en facebook, cuando me lo envío quede o.o, así que pensé en dejarlo por acá (quizás ya todos lo conozcan, pero yo no, y me causo gracia xD)

Citar

Una célula humana contiene 75 MB de información genética.
Un espermatozoide contiene la mitad; eso significan 37.5 MB.
Un ml de semen contiene 100 millones de espermatozoides.
En promedio la eyaculación dura 5 segundos y contiene 2.24 ml de semen.
Esto significa que la producción del miembro de un hombre equivale a 37.5 MB x 100,000,000 x 2.25)/5 = 1,687,500,000,000,000 bytes/segundo = 1,6875 Terabytes/seg
Esto quiere decir que el óvulo femenino soporta este ataque DDoS a 1,5 terabytes por segundo, y solo permite que pase un solo paquete de información lo que lo hace el mejor hardware firewall del mundo.

La mala noticia de esto, es que ese paquete de información que deja pasar, cuelga el sistema por aproximadamente nueve meses.


Buscando por el foro me he dado cuenta que el post esta repetido. Eliminenlo por favor D:

PD: tiene cojones que @synthesize tambien sea el primero que haya posteado en ese otro post
#36
Foro Libre / Estas viviendo, o recordando?
1 Marzo 2015, 02:00 AM
Hace poco, supe de una teoría que me llamo la atención. Antes quiero aclarar que es una simple filosofía, no existe ninguna prueba de que esto siquiera sea posible.

Se supone, que cuando uno esta a punto de morir recuerda toda su vida en lo que son unas milésimas de segundo.

Esta ha sido una de las frases mas repetidas de las personas que han logrado engañar a la muerte y salirse con las suyas.

Pero hay una teoría, que habla que mientras mas cercano estés a la muerte mas detallados serán tus recuerdos.

Y para las personas que mueren se cree que sus recuerdos fueron tan vividos, que prácticamente han vivido nuevamente su vida. Ya que no se logra diferencia entre el recuerdo y la vida misma. Todo esto es una millonésima parte de un nanosegundo.

Pero con esta teoría existe un problema, y es algo que puede sonar muy horrible o muy lindo dependiendo del punto de vista con el que se mire (en mi caso seria horrible)

Si yo al morir recuerdo mi vida exactamente igual como fue... entonces también recordare los momentos en que recuerdo cosas, por lo tanto también recordare el momento en que recuerdo mi vida, y así sucesivamente. Siempre estaré recordando mi vida, y estaré en un ciclo infinito. Un clásico while(true).

Y lo peor de todo (en mi punto de vista) es que los recuerdos son tan vividos y tan reales que ni-siquiera podre distinguir el recuerdo de la realidad. Bajo tal teoria, en este momento no podría saber si realmente estoy apunto de morir o estoy viviendo mi vida normal.

Es algo como esto:


Código (java) [Seleccionar]
main(){
vivir();
}


vivir(){
nacer();
crecer();
reproducirme();
recordar();
}

recordar(){
vivir();
}



Que opinan al respecto. Estas viviendo o recordando?

(En lo personal no creo que es real, pero si lo fuera... menuda putada.)

PD: Se que vivimos del pasado por el simple hecho de que reaccionamos X milésimas de segundo después de que pasa algo, no le busquen la salida estúpida a la pregunta u.u
#37
Hola gente. Tengo otra pregunta  :-\

Bueno, como dice el asunto de este tema. No puedo poner a hibernar mi computadora. Por el simple hecho de que cuando la pongo a hibernar mi computadora no pasan de 2 segundos y se vuelve a encender.

He pensado que debe  haber un proceso que evita que mi computadora hiberne. Lo primero que pensé fue en los anti virus, los cuales desactive y nada. Luego pensé en Skype, y tampoco.

Sinceramente ya no se que hacer. No me apetece apagar la computadora, y las cuentas de la luz ya me están llegando bien duras.  :P

Es posible que sea un malware o algo raro?.
#38
Buenas, antes que todo me gustaría pedir disculpas. Anteriormente publique un post similar en hackeo avanzado, y creo que por mi forma de expresarme se me mal interpreto. Quiero asegurar que esto es únicamente con fines educativos y éticos.

Se  me ha contratado para desarrollar una pagina web. Esta consta con login y bases de datos.

Mi preocupación esta en darle la seguridad mínima necesaria en esta pagina web.

Mi pregunta es la siguiente: Como hackear una pagina web con las siguientes características?

Lenguaje de programacion: Java
Bases de datos: Oracle data base (11g express o 12c) (Aun no se decide, aunque lo mas probable es que sea 11g express)

Funcionalidades:
Tiene un apartado de contacto en donde se puede enviar un mensaje de contacto (correo electrónico)
Cuenta con un sistema de login.
Las cuentas de usuario solo se pueden crear por un administrador
Existen usuarios, cada uno con distintos privilegios (unos pueden ver algunas cosas y otros otras)
Se pueden subir imagenes.
Y se pueden crear post (como si de un foro o blog se tratase)

No tengo mas información que esa, ya que es la información que me dieron. Supongo que lo mas probable sea que la pagina web este alojada en linux, y este en el mismo servidor que la base de datos.

La razón que les pido ayuda de como hackear y no asegurar es porque me gustaría también hacer las pruebas de que realmente todo funcione bien.

Agradezco cualquier aporte. Muchas gracias y lamento las molestias que habrán causado el post anterior. (Solo podría excusarme diciendo que eran las 6 AM cuando lo postie y no había dormido nada. En serio lo lamento.)




PD: Puedo montar maquinas virtuales en linux o windows.
#39
Windows / Como acceder a este usuario?
15 Febrero 2015, 02:24 AM
Instale Oracle Data Base el cual me creo un usuario en windows. Este usuario estaba oculto y lo hice visible modificando los registros. Pero no puedo acceder a el (no me aparece la opción al cambiar de usuario).

Creo necesitar acceder a este usuario para poder eliminar una carpeta. (No puedo eliminarla ni como administrador)
#40
Bases de Datos / Como eliminar oracle db 12c?
15 Febrero 2015, 01:07 AM
Buenas, instale oracle db 12c, pero tuve un error en la instalación, quedo al 87%.
Intente borrar los avances como pude... pero me queda una carpeta (supongo que entre muchas otras cosas rotas) que no puedo eliminar.

Me pide permisos de administrador (el cual se los doy) y nada.

es un carpeta que tiene todo, la app/OracleDB usualmente. No se si se necesita mas info, cualquier cosa me dicen y edito.

(Windows 7)

PD: Elimine registros y baje servicios (tengo entendido que oracle me creo una cuenta de usuario, pero no la veo)

PD: No sabia si poner esto aca, o en software, o nose realmente..  :xD




La cuenta de usuario estaba escondida, ya la logre hacer visible, pero no se como acceder a ella (no me da la opción de acceder cuando cambio de usuario)




Solucione eliminando la carpeta con Star Unlocker

PD: Creo que este tema no ha de ir acá (y abrí otro tema "similar" en Windows) así que preferiría que lo borrasen u.u (lamento la confusión).
#41
Hace nada había un tema raro, escrito totalmente en ingles, creado por un usuario nuevo. No tenia nada que ver con el foro... y  entiendo la razón por la cual lo eliminaran (yo también lo haría)

Pero que base legal tuvieron?  :-X

Hay una regla de no poder publicar en ingles. Yo leí las reglas completas y no recuerdo ninguna  ;D
#42
Buenas, con un compañero del foro estamos pensando en hacer video tutoriales en youtube. Pedí el permiso indicado a el-brujo para poder usar elhacker.net como "patrocinador".

Me puse en ello... Y lo primero que hice fue intentar recrear el logo en un gran tamaño para poder utilizarlo en los videotutoriales.

Pues... tuve problemas para extraer una parte del logo, así que simplemente la rehice... y con ello empece a rehacer mas y mas cosas (intentando mantener la escencia, pero modificando un poco el estilo).

Una cosa llevo a la otra, y termine haciendo el mismo header de la pagina, solo que con el nuevo logo, (y algunos detalles distintos).

me gustaría saber su opinión, y quizás ofecerlo de "tributo" al foro.  :xD

(aunque no se si pegue mucho, ya que el foro como tal es bien retro o eso me da a entender a mi)






Este hice para header de foro... no me termina de gustar del todo, pero lo cuelgo igual

#43
Buenas, me gustaría saber si alguien de este foro por casualidades de la vida tiene el Shuriken del logo de la pagina.

Lo intente extraer manualmente pero me encontré con un dilema... hay unos bordes que por mas que trato no me concuerdan, lo que me hace pensar que hay algo en medio del shuriken.



La circunferencia azul representa el área del shuriken y las lineas rojas representarían el borde del shuriken
#44
Buenas, alguien sabe cual es la fuente (font) de texto usado en el logo de elhacker.net:silbar:
#45
Saludos gente, en este aporte busco dar un primer paso para el desarrollo de videojuegos 2D de escritorio en Java.

Quiero dar entender que esta no es la mejor manera para desarrollar un videojuego en java y que tanpoco representa una arquitectura completa. Con esto ultimo me refiero a que el proyecto que mostrare de ejemplo no esta terminado y faltan piezas importantes para ser viable. (La razón por la cual no hice un proyecto completo es porque no busco imponer la forma en la cual programo, y a que no puedo encontrar un patrón ideal para el desarrollo de este tipo de proyectos ya que son muy variados).

Si gustan pondré mas ejemplos y ahondare mas en el tema a futuro, pero como no se cual es el real interés de este foro para este tipo de proyectos no explicare con mucho detalle el presente documento.

Se recomienda saber como funcionan los elementos Thread, JFrame y JPanel de java para poder comprender este documento.

En el presente documento se trataran los siguientes puntos:

  • Como controlar los gráficos (Muy básico, no se hablaran de sprites ni nada por el estilo).
  • Como controlar los FPS. (Intentare detallar en el tema)
  • Como recibir datos del teclado.

Este documento utilizara herramientas de las librerías java.awt y javax.swing (no se utilizara JavaFX).

Lo único que se hará en este proyecto es dibujar un simple cuadrado el cual se moverá por la pantalla utilizando teclado.



Empecemos creando un proyecto (no importa el nombre que le des). crea un paquete (nuevamente no importa el nombre) y posterior crea dos clases:

GameEsta contendrá el método de inicio donde se creara la ventana del juego.
GamePanelEsta clase sera el motor principal del videojuego en donde se dibujaran los gráficos y captara los datos del teclado.

Primero trabajaremos con la clase Game la cual contendrá el siguiente código:

Código (Java) [Seleccionar]

package net.elhacker.game;

import javax.swing.JFrame; /* Importamos JFrame necesario para crear la ventana */

public class Game {

   public static void main(String[] args) {
       JFrame window = new JFrame("Title"); /* Creamos la ventana del juego */
       window.setContentPane(new GamePanel()); /* Establecemos el panel del juego */
       window.setResizable(false); /* Bloqueamos el tamaño de la ventana */
       window.pack(); /* Ajustamos el tamaño de la ventana al tamaño del juego */
       window.setLocationRelativeTo(null); /* Colocamos la ventana en el centro */
       window.setVisible(true); /* Hacemos la ventana visible */
       window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /* Indicamos que al cerrar la ventana finaliza el proceso */
   }
   
}


No te preocupes es normal que de error en este momento el método setContentPane

Bien, explicare los aspectos mas importantes de esta clase:

El método setContentPane nos permite cambiar el panel por defecto de JFrame por nuestro panel en el cual dibujaremos los gráficos del videojuego.

Establecemos en el método setResizable que sea imposible alterar el tamaño del JFrame (A menos que lo hagamos nosotros por código) Este método inhabilita la opción de agrandar la ventana.

El método pack nos permite ajustar el tamaño de la ventana al tamaño del panel. (De esta manera no tendremos que preocuparnos de las medidas del panel)

el método setLocationRelativeTo(null) nos ahorrara mucho trabajo a la hora de posicionar la ventana de nuestro juego en medio. (Con este método nos ahorramos el tener que hacer cálculos para posicionar la ventana en medio de la pantalla)

En este momento window.setContentPane(new GamePanel()) da error debido a que GamePanel no es aun un panel, ahora trabajaremos con GamePanel y arreglaremos esto.

El código de GamePanel es el siguiente (No te preocupes se que es extenso pero intentare explicar cada  una de las partes por separado.)

Código (java) [Seleccionar]
package net.elhacker.game;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JPanel;

public class GamePanel extends JPanel implements Runnable, KeyListener {
   
   public static final int GAME_WIDTH = 640; /* Ancho sin escala del panel */
   public static final int GAME_HEIGHT = 480; /* Largo sin escala del panel */
 
   
   private int expectedFps = 60; /* FPS esperados */
   private Thread gameThread; /* Thread del juego  */
   
   private final Rectangle rectangle = new Rectangle(0,0,32,32); /* Rectangulo blanco */
                                                                 /* Los primeros dos valores son las cordenadas */
                                                                 /* Los siguientes dos son el ancho y largo */
   
   
   public GamePanel() {
       this.setPreferredSize(new Dimension(
               GamePanel.GAME_WIDTH, GamePanel.GAME_HEIGHT)); /* Se establece el tamaño del juego */
       this.gameThread = new Thread(this); /* inicializamos el thread del juego */
   }

   /*
    * Thread que controla los FPS del juego
    */
   
   @Override
   public void run() {
       long start;        
       long elapsed;      
       long wait;
       while(true){
           start = System.nanoTime();  /* Tomamos tiempo de inicio */
           this.repaint();
           elapsed = System.nanoTime(); /* Tomamos tiempo de fin */
           wait = 1000/expectedFps - (elapsed-start)/1000000; /* Utilizamos formula de FPS */
           wait = (wait < 0)? 0 : wait;  /* Prevenimos posibles errores */
           try {
               Thread.sleep(wait); /* Pausamos el thread */
           } catch (InterruptedException ex) { /* Reportar Error */ }
           
       }
   }
   
   
   /*
    * Este metodo inicializa el motor del juego
    */
   
   private void init(){
       this.gameThread.start();    /* iniciamos el motor del juego */
       this.addKeyListener(this);  /* Hacemos que el juego capte las teclas del teclado */
       this.setFocusable(true); /* Hacemos que sea posible hacer un focus a la ventana */
       this.requestFocus();    /* Establecemos el foco al juego */
   }
   
   /*
    * Este metodo se activa al hacer visible el juego
    */
   
   @Override
   public void addNotify() {  
       super.addNotify();
       init(); /* se inicia el motor del juego */
   }
   
   /*
    * Metodo para pintar
    */
   
   @Override
   public void paintComponent(Graphics g) {
       g.setColor(Color.DARK_GRAY); /* Seleccionamos el color gris oscuro */
       g.fillRect(0, 0, GamePanel.GAME_WIDTH,
               GamePanel.GAME_HEIGHT); /* Pintamos el fondo gris oscuro */
       
       g.setColor(Color.WHITE); /* Seleccionamos el color blanco */
       g.fillRect(rectangle.x, rectangle.y, rectangle.width, rectangle.height); /* Pintamos el rectangulo */
   }
   
   
   

   @Override
   public void keyTyped(KeyEvent e) { }

   
   /*
    * Metodo de escucha que nos permite realizar acciones dependiendo de las
    * teclas presionadas
    */
   @Override
   public void keyPressed(KeyEvent e) {
       switch(e.getExtendedKeyCode()){
           case KeyEvent.VK_LEFT:
               rectangle.x-=32;
               break;
           case KeyEvent.VK_RIGHT:
               rectangle.x+=32;
               break;
           case KeyEvent.VK_UP:
               rectangle.y-=32;
               break;
           case KeyEvent.VK_DOWN:
               rectangle.y+=32;
               break;
       }
   }

   @Override
   public void keyReleased(KeyEvent e) {
   
   }


Partamos por esta parte:

Código (java) [Seleccionar]
public class GamePanel extends JPanel implements Runnable, KeyListener

Heredamos de JPanel el cual nos permitirá transformar nuestra clase a una clase tipo Container (GamePanel hereda de container) la cual repara el error de window.setContentPane(new GamePanel()). GamePanel tiene un método de doble buffer el cual nos permitirá controlar mas fácilmente las imágenes.

También implementamos Runnable el cual utilizaremos para crear el Thread que permitirá controlar los FPS de nuestro juego e implementamos KeyListener el cual nos permitirá escuchar datos del teclado.

Bien Ahora veamos los atributos de nuestra clase:

Código (java) [Seleccionar]
public static final int GAME_WIDTH = 640; /* Ancho sin escala del panel */
public static final int GAME_HEIGHT = 480; /* Largo sin escala del panel */

private int expectedFps = 60; /* FPS esperados */
private Thread gameThread; /* Thread del juego  */

private final Rectangle rectangle = new Rectangle(0,0,32,32); /* Rectangulo blanco */
                                                             /* Los primeros dos valores son las cordenadas */
                                                             /* Los siguientes dos son el ancho y largo */


GAME_WIDTH y GAME_HEIGHT serán las que indicaran respectivamente el ancho y largo de la ventana.

expectedFps representaran a los FPS esperados (FPS = Frames Per Second)

gameThread sera el thread que utilizaremos para repintar nuestro juego cada X milisegundos utilizando.

rectangle sera en este caso nuestro cuadrado blanco que se moverá por la pantalla (representando a un elemento del juego). Los dos primeros valores representan las cordenadas y los dos ultimos el ancho y largo.

Posterior a esto declaramos nuestro constructor en donde define el ancho y largo de nuestra ventana. Ten en cuenta que esto lo hacemos por el método PreferredSize y no por el método setSize (esto es necesario ya que pack() funciona teniendo en cuenta el tamaño preferido, no el real). Y en el mismo contructor crearemos nuestro Thread señalando que se utilizara la misma clase como Thread.

Código (java) [Seleccionar]
public GamePanel() {
   this.setPreferredSize(new Dimension(
           GamePanel.GAME_WIDTH, GamePanel.GAME_HEIGHT)); /* Se establece el tamaño del juego */
   this.gameThread = new Thread(this); /* inicializamos el thread del juego */
}


Ahora definiremos el método run (el cual implementamos de runnable)

Código (java) [Seleccionar]
@Override
   public void run() {
       long start;        
       long elapsed;      
       long wait;
       while(true){
           start = System.nanoTime();  /* Tomamos tiempo de inicio */
           this.repaint();
           elapsed = System.nanoTime(); /* Tomamos tiempo de fin */
           wait = 1000/expectedFps - (elapsed-start)/1000000; /* Utilizamos formula de FPS */
           wait = (wait < 0)? 0 : wait;  /* Prevenimos posibles errores */
           try {
               Thread.sleep(wait); /* Pausamos el thread */
           } catch (InterruptedException ex) { /* Reportar Error */ }
           
       }
   }
   
   
Nos detendremos un poco acá para explicar un par de cosas:

Las películas, videojuegos o cualquier animación no son mas que un montón de fotografías pasadas a una gran velocidad. La velocidad por la cual pasan estas fotografías es medida en FPS(Framies Per Second) (Cuadros Por Segundo)  y  la velocidad optima son unos 60 fotografías por segundo en el caso de los videojuegos.

Entonces nuestro thread tiene como objetivo pintar 60 fotografías por segundo, para esto se utiliza un algoritmo que explicare a continuación.

bien te explico, utilizando el metodo repaint() obligamos a nuestro panel volver a pintarse, luego utilizando Thread.sleep() hacemos que nuestro Thread se detenga por una cantidad minúscula de tiempo ya que si no hiciéramos esto el Thread no pararía de pintar a la mayor velocidad posible. Lo cual ocasionaría problemas de rendimiento (Esto tenemos que evitarlo. Claro, porque despues dicen que java es lento) pues bien aqui es cuando entra el concepto de FPS, ¿Cuanto tiempo es necesario que duerma nuestro Thread para lograr que se pinte 60 veces por segundo?

Sabiendo que Thread.sleep() recibe como parámetro milisegundos usaremos la siguiente formula 1000/60. De esta manera cada unos 16.6 milisegundos nuestro programa pintara un nuevo cuadro (esto medido en 1 segundo serán 60 cuadros).

Código (java) [Seleccionar]
while (true) {
this.repaint();
Thread.sleep(1000/60);
}


Pero si fuera tan fácil porqué a algunos videojuegos le cuesta tanto llegar a los 60 cuadros por segundo?

Pues esto es porque la formula no termina acá. nos ha faltado algo importante. Y es que no tuvimos el cuenta la cantidad de tiempo que se demora en repintar nuestro panel.

Te daré un ejemplo simple. Imagina un pintor. Este pintor tiene por obligación pintar un cuadro todos los días.
Su obligación es empezar a pintar a las 8AM y se puede ir a dormir cuando termine de pintar el cuadro.

Si el primer día se demora 12 horas en pintar el cuadro el hombre podrá dormir 12 horas.
Si el segundo día se demora 10 horas en pintar el cuadro entonces el pintor dormirá 14 horas.
Pero si el tercer día se demora 23 horas en pintar el cuadro, el pobre hombre solo podrá dormir una hora.

Pues bien, si nuestro programa se demora 3 milisegundos en pintar el cuadro entonces tendremos que restar esos 3 milisegundos a los 16.6 milisegundos lo que daria un total de 13.6 milisegundos. El problema es que nosotros no sabremos cuanto se demora en pintar el cuadro ya que esto depende de cuantos recursos disponibles hay en el sistema (si la computadora esta ejecutando el antivirus mientras juegan nuestro juego, lo mas natural es que nuestro juego no funcione al 100% de velocidad)

Para saber cuanto se demora en pintar el cuadro necesitaremos tomar el tiempo antes de pintar, y después de pintar el cuadro luego hacer una resta y obtendremos el tiempo. Este tiempo lo restamos a los 1000/60 y obtendremos el tiempo real en que nuestro thread puede dormir.

Si te fijas bien para prevenir errores verifique que el tiempo nunca sea menor a 0.

Código (java) [Seleccionar]

start = System.nanoTime();  /* Tomamos tiempo de inicio */
this.repaint();
elapsed = System.nanoTime(); /* Tomamos tiempo de fin */
wait = 1000/expectedFps - (elapsed-start)/1000000; /* Utilizamos formula de FPS */
wait = (wait < 0)? 0 : wait;  /* Prevenimos posibles errores */
try {
   Thread.sleep(wait); /* Pausamos el thread */
} catch (InterruptedException ex) { /* Reportar Error */ }


sleep puede causar errores, por eso se utiliza un try-catch

Posterior mente declararemos el método init, en el cual pondremos todo lo necesario para que nuestro juego sea funcional y visible, para esto iniciamos el Thread previamente declarado, y hacemos que la ventana pueda escuchar las teclas presionadas en el teclado.

Código (java) [Seleccionar]
private void init(){
   this.gameThread.start();    /* iniciamos el motor del juego */
   this.addKeyListener(this);  /* Hacemos que el juego capte las teclas del teclado */
   this.setFocusable(true); /* Hacemos que sea posible hacer un focus a la ventana */
   this.requestFocus();    /* Establecemos el foco al juego */
}


(para que el juego capte las teclas del teclado tenemos que hacer que sea posible hacer focus en el panel, si tienes una duda respecto a esto comentalo e intentare responderte a la brevedad.)

La siguiente parte no es nada complicada, solo redefinimos el metodo addNotify (Este método se activa cuando hacemos el juego visible) y agregamos nuestro metodo init() el cual a su vez hará que nuestro Thread se ejecute.

Código (java) [Seleccionar]
@Override
public void addNotify() {  
   super.addNotify();
   init(); /* se inicia el motor del juego */
}


Ahora redefinimos el método paintComponent que es el encargado de dibujar los gráficos de nuestro juego.

Código (java) [Seleccionar]
@Override
public void paintComponent(Graphics g) {
   g.setColor(Color.DARK_GRAY); /* Seleccionamos el color gris oscuro */
   g.fillRect(0, 0, GamePanel.GAME_WIDTH,
           GamePanel.GAME_HEIGHT); /* Pintamos el fondo gris oscuro */
   
   g.setColor(Color.WHITE); /* Seleccionamos el color blanco */
   g.fillRect(rectangle.x, rectangle.y, rectangle.width, rectangle.height); /* Pintamos el rectangulo */
}


Graphics funciona como si utilizaras paint, primero le indicas el color y luego lo que quieres hacer, en este caso primero indicamos el color gris oscuro y pintamos un cuadrado del mismo tamaño que nuestro panel (de esta manera hacemos un fondo oscuro), luego seleccionamos el color blanco y pintamos nuestro rectángulo.

Ahora solo es necesario redefinir los métodos del teclado (cada vez que se apreté una tecla se hará algo que nosotros queramos). En este caso solo redefiniremos keyPressed (este se activa al presionar una tecla)

Código (java) [Seleccionar]
/*
* Metodo de escucha que nos permite realizar acciones dependiendo de las
* teclas presionadas
*/
@Override
public void keyPressed(KeyEvent e) {
   switch(e.getExtendedKeyCode()){
       case KeyEvent.VK_LEFT:
           rectangle.x-=32;
           break;
       case KeyEvent.VK_RIGHT:
           rectangle.x+=32;
           break;
       case KeyEvent.VK_UP:
           rectangle.y-=32;
           break;
       case KeyEvent.VK_DOWN:
           rectangle.y+=32;
           break;
   }
}

@Override
public void keyReleased(KeyEvent e) { }



Con ayuda de un switch y case haremos cada caso posible.

  • Si se aprieta la direccional izquierda nuestro cuadro se mueve 32 pixeles a la izquierda
  • Si se aprieta la direccional derecha nuestro cuadro se mueve 32 pixeles a la derecha
  • Si se aprieta la direccional arriba nuestro cuadro se mueve 32 pixeles a la arriba
  • Si se aprieta la direccional abajo nuestro cuadro se mueve 32 pixeles a la abajo

Ten en cuenta que los pixeles se miden desde el extremo superior izquierdo de la pantalla por esta razón tienes que restar para ir hacia arriba y sumar para ir hacia abajo.

Intentalo tu:

  • Actualmente el cuadrado puede salir de los bordes, intenta evitar que esto sea posible.
  • Intenta crear un segundo cuadra que se mueva con las teclas ASDW
  • Intenta crear una cuadricula amarilla que se se haga visible al apretar la tecla c, y si se apreta nuevamente esta se haga invisible otra vez

Espero la tutorial les haya sido de ayuda. Estoy pensando en hacer un vídeo ya que entiendo que puede ser difícil de entender con tan solo esto. Por otro lado, para los mas experimentados, se que esta tutorial es simple y que no abordo algunos temas importante, pero la verdad es que no se como sera recibido por la comunidad así que no quería hacer algo muy complejo.