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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Temas
Páginas: [1] 2 3 4
1  Informática / Software / Fraps me está volviendo loco :( en: 8 Junio 2013, 20:25 pm
Hola a todos,

Me gustaría comentarles un problema que me está volviendo loco. Hace unos días adquirí una licencia del tan famoso programa FRAPS, todo genial hasta que tuve que grabar algún juego.
Antes de explicar detalladamente el problema, tengo un equipo que es "bastante"(que se vean bien las comillas) potente, con lo cual no tendría que tener ningún problema a la hora de grabar los juegos que a continuación voy a describir.

Componentes mas importantes:

  • Gigabyte GA-X79-UD3
  • Intel Core i7-3820 3.60Ghz Box Socket 2011
  • Sapphire Radeon HD 7970 Dual-X 3GB GDDR5
  • G.Skill RipjawsZ DDR3 1866 PC3-14900 16GB 4x4GB CL9

Vale, el problema es que pierdo una gran cantidad de FPS una vez el vídeo está grabado, me explico con un ejemplo para que pueda tomar forma mi problema:

Grabo el juego Magic: The Gathering – Duels of the Planeswalkers 2013:

  • Resolución: 1920x1080
  • FPS sin activar el FRAPS: 300 de media.
  • FPS activando la grabación: 160 de media.
  • FPS una vez el video está grabado: 17 de media.

Como veis es algo bastante raro, la única solución posible que he encontrado es marcado la casilla de video capture settings y ponerla a 30 FPS, lo cual así si me graba "bien", pero claro me molesta que tenga que grabar a 30 cuando el ordenador tiene potencia para grabar a mas...

También he intentado grabando en los diferentes discos duros, reinstalando drivers, bajándome hasta versiones mas antiguas...

A ver si alguien me puede ayudar.
Muchas gracias a todos por su atención.
2  Programación / PHP / Clase PHP para agilizar CSRF/XSRF y CaptureIP Image en: 27 Febrero 2013, 20:06 pm
Bueno hace tiempo que no revisaba las clases que tenia por el portátil y me encontré con esta, que aunque no sea muy extensa, es bastante útil para alguna que otra tontería. La subí a GIT por si a alguien le interesa.

Definición:
Básicamente es una class para poder capturar la IP/Navegador de un usuario mostrando una imagen, pdf o redirigiendo a otra web, los datos son guardados en una base de datos MySQL.
También nos vale para agilizar CSRF/XSRF ya que añadiendo los parámetros en un array ya estará creado todo el html y la redirección JS.

Enlace:
https://github.com/DaveMTC/executePhoto

Explicación:
Bueno es bastante sencillo el asunto, importamos la clase y luego llamamos a los métodos que queremos, por ejemplo:

Código
  1. <?php
  2.    require('class.executePhoto.php');
  3.  
  4.    // Capturamos los datos de la conexion:
  5.    executePhoto::save_client();
  6.  
  7.    // Imprimimos una imagen remota:
  8.    executePhoto::print_img('http://foro.elhacker.net/Themes/converted/selogo.jpg');
  9.  
  10.    // Imprimimos un PDF:
  11.    executePhoto::print_pdf('http://www.boe.es/boe/dias/2013/02/04/pdfs/BOE-A-2013-1145.pdf');
  12.  
  13.    // Parametros que seran redirigidos:
  14.    $param = array('contrasenya'                => '123456',
  15.                   'repetir_contrasenya' => '123456',
  16.                   'email'                      => 'ejemplo@email.com');
  17.  
  18.    // Ejemplo de ejecucion arbitraria cambio contrasenya:
  19.    executePhoto::redirect_post('http://localhost/', $param);
  20.  
  21.    // Redireccionamos la web y desconectamos a X usuario de la web:
  22.    executePhoto::redirect('http://localhost/logout');
  23. ?>

Tabla:
Los datos que se guardan en la base de datos son el lenguaje del navegador, la ip, el tipo de navegador, la hora y la url de referencia si es que existe.

Código
  1. CREATE TABLE `list_clients` (
  2.  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  3.  `ip` VARCHAR(120) DEFAULT NULL,
  4.  `lang` VARCHAR(200) DEFAULT NULL,
  5.  `browser` VARCHAR(200) DEFAULT NULL,
  6.  `referer` VARCHAR(200) DEFAULT NULL,
  7.  `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  8.  PRIMARY KEY (`id`),
  9.  UNIQUE KEY `ip` (`ip`) USING BTREE
  10. ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1;

htaccess:
Por ultimo también hay un .htaccess, para que la url sea mas amigable al usuario, siempre entra mejor un http://www.miweb.es/lorena-desnuda.jpg aunque también podemos usar acortadores como bit.ly

Código:
RewriteEngine On
RewriteRule ^(.*)\.jpg$ example.php [NC]

Un saludo y ojala le sirva a alguien ^^.
3  Foros Generales / Foro Libre / ¿Cual es para ti el modelo de estado ideal? en: 27 Septiembre 2012, 20:15 pm
Actualmente en España se están viviendo ciertos momentos políticos intensos en los cuales se esta debatiendo el modelo de estado, por ejemplo el tema de Cataluña y el país vasco.

Me gustaría que este debate no solo se centrara en sistemas económicos, sino tb organizativos, como por ejemplo que es preferible un estado centralista o federalista, o bien el actual estado autonómico.

También debatir sobre el sistema político, como por ejemplo cual creéis que representa mas a la ciudadanía, por ejemplo; una república, un sistema presidencialista etc..
4  Foros Generales / Sugerencias y dudas sobre el Foro / Añadir menciones al foro. en: 17 Septiembre 2012, 23:49 pm
¡Hola!

Me gustaría proponer una sugerencia la cual podría ser curiosa e interesante.
La sugerencia consiste en añadir una opción para poder mencionar a usuarios del foro en los post, por ejemplo:
Citar
El usuario: @WarGhosT es un tonto.

Y una vez publicado se enviara un MP a la bandeja de entrada del la otra persona diciendo que ha sido mencionado por tal persona en X post o bien añadir un sistema de notificaciones, al puro estilo de twitter xD.

Esta función se podría editar desde cada perfil por si quieres o no ser mencionado en post.
Creo que seria bastante fácil de implementar un mod que haga dicha función y seria muy interesante sobre todo para dar una conexión mas directa entre usuario-usuario.
5  Seguridad Informática / Nivel Web / Implicaciones legales en bug XSS. en: 11 Septiembre 2012, 04:45 am
¡Hola a todos!

Me gustaría saber hasta que punto es ilegal el uso de bugs XSS no persistentes, por ejemplo ¿es ilegal poner en Twitter una URL de la web Marca y en esta url que haya un XSS que cambie algún resultado etc..?

En principio ni se esta rompiendo nada, ni se esta modificando ningún dato en sus bases de datos, servidores etc.. simplemente es una broma que se ejecuta en el navegador del que abre la URL.

¿Alguien que entienda o sepa algo del tema? :P
Gracias!
6  Programación / Desarrollo Web / Como utilizar BrowserID en: 26 Junio 2012, 14:48 pm
BrowserID:

¿Qué es BrowserID? Browser ID es un nuevo servicio implementado por Mozilla, que permite que los usuarios puedan controlar sus accesos a diferentes sitios de manera más segura, ejecutándose las funciones en el mismo navegador y comprobando la identidad de los usuarios en base a criptografía asimétrica.
En internet ya existen otros servicios parecidos como por ejemplo OpenID o sistema de identificación por Facebook.

¿Cuales son las ventajas de BrowserID?
  • Pueden identificarse con la misma cuanta en cualquier sitio que tenga implementado BrowserID.
  • Su registro es muy sencillo, solo tienes que poner email y contraseña, una vez hecho esto verificarla y listo.
  • Funciona perfectamente en cualquier navegador moderno.
  • Gran soporte y mucha documentación ofrecida por Mozilla, esto facilita la vida a todos los desarrolladores.
  • BrowserID protege la privacidad de nuestra actividad en la web, no filtra datos sobre qué sitios visitan los usuarios a ningún otro servidor.

Para el ejemplo que os voy a mostrar es necesario un servidor con apache/php/openSSL y utilizar el framework JQuery.

El ejemplo su basa en dos ficheros, index.php y process.php luego podéis organizarlo como queráis:

Index.php
Código
  1. <?php session_start(); ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4.    <head>
  5.        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
  6.        <script src="https://browserid.org/include.js" type="text/javascript"></script>  
  7.  
  8.        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  9.    <title>Ejemplo BrowserID</title>
  10.    </head>
  11.  
  12.    <body>
  13.        <script type="text/javascript">
  14.            function gotAssertion(assertion) {  
  15.                if (assertion !== null) {  
  16.                    $.ajax({  
  17.                        type: 'POST',  
  18.                        url: 'process.php',  
  19.                        data: { assertion: assertion },  
  20.                            success: function(res, status, xhr) {  
  21.                                if (res === null) {
  22.                                    //loggedOut();  
  23.                                } else {
  24.                                    var oJson = jQuery.parseJSON(res);
  25.  
  26.                                    if(oJson.status == 'okay'){
  27.                                        switch (oJson.action){
  28.                                            case 'new':
  29.                                                $('#login').html('Bienvenido ' + oJson.email);
  30.                                                break;
  31.                                            case 'old':
  32.                                                $('#login').html('Hola ' + oJson.email);
  33.                                                break;
  34.                                            case 'locked':
  35.                                                $('#login').html('Tu cuenta esta bloqueada ' + oJson.email);
  36.                                                break;
  37.                                            }
  38.                                        } else {
  39.                                            alert('Error');
  40.                                        }
  41.                                    }
  42.                                },  
  43.                                error: function(res, status, xhr) {  
  44.                                    alert("Error de conexion");  
  45.                                }
  46.                            });  
  47.                        } else {  
  48.                            //loggedOut();  
  49.                        }  
  50.                    }  
  51.  
  52.                $(document).ready(function(){
  53.                    $('#browserid').click(function() {  
  54.                    navigator.id.get(gotAssertion, {allowPersistent: true});  
  55.                    return false;  
  56.                });  
  57.            })
  58.        </script>
  59.        <?php if(!isset($_SESSION['email'])){ ?>
  60.        <div id="login">
  61.            <a href="#" id="browserid" title="Sign-in with BrowserID">  
  62.                <img src="https://browserid.org/i/sign_in_grey.png" alt="Sign in">  
  63.            </a>  
  64.        </div>
  65.        <?php } else { echo "hola " . $_SESSION['email']; } ?>
  66.    </body>
  67. </html>

process.php
Código
  1. <?php session_start();
  2.    class browserID {
  3.        const REMOTE_URL = 'https://browserid.org/verify';
  4.  
  5.        /**
  6.           * Datos cifrados de la session.
  7.           * @var string
  8.           */
  9.        private $_assertion;
  10.  
  11.        /**
  12.           * Dominio.
  13.           * @var string
  14.           */
  15.        private $_localURL;
  16.  
  17.        /**
  18.           * Solicitud que se envia a Mozilla.
  19.           * @var array
  20.           */
  21.        private $_QueryHTTP;
  22.  
  23.        /**
  24.           * Respuesta de Mozilla.
  25.           * @var string
  26.           */
  27.        private $_RequestJSON;
  28.  
  29.        /**
  30.          * Contructor principal, define los atributos _assertion y _localURL
  31.          * Una vez definidos carga la solicitud HTTP desde el metodo build_query().
  32.           *
  33.           * @param string $assertion Datos recibidos por el $_POST.
  34.          * @param string $localURL Dominio en el que estas enviando la solicitud.
  35.          */
  36.        public function __construct($assertion, $localURL){
  37.             $this->_assertion = $assertion;
  38.             $this->_localURL = $localURL;
  39.  
  40.             $this->build_query();
  41.        }
  42.  
  43.        /**
  44.          * Comprueba si fue satisfactoria la indetificación y nos devuelve un booleano.
  45.           *
  46.          * @return bool retorna true si es correcto.
  47.          */
  48.        public function get_is_login(){
  49.            if($this->_RequestJSON->status == 'okay') return true;
  50.        }
  51.  
  52.        /**
  53.          * Recogemos la dirección de correo de la indentificación
  54.           *
  55.          * @return string dirección de correo.
  56.          */
  57.        public function get_email(){
  58.            if($this->get_is_login()===true) return $this->_RequestJSON->email;
  59.        }
  60.  
  61.        /**
  62.          * Fecha en la que expira la sessión.
  63.           *
  64.          * @return int retorna la fecha en formato unix.
  65.          */
  66.        public function get_expire(){
  67.            if($this->get_is_login()===true) return $this->_RequestJSON->expires;
  68.        }
  69.  
  70.  
  71.        /**
  72.          * Cambia el dominio.
  73.           *
  74.          * @param string $localURL Dominio en el que estas enviando la solicitud.
  75.          */
  76.        public function set_local_url($url){
  77.            $this->_localURL = $url;
  78.        }
  79.  
  80.        /**
  81.          * Envia la petición anteriormente creada por el metodo build_query.
  82.          *
  83.          * @param bool retorna true si todo salio correcto.
  84.          */
  85.        public function set_http_request(){
  86.            $ctx = stream_context_create($this->_QueryHTTP);
  87.            $fp = fopen(self::REMOTE_URL, 'rb', false, $ctx);
  88.  
  89.            if ($fp) {
  90.                $result = stream_get_contents($fp);
  91.                $this->_RequestJSON = json_decode($result);
  92.  
  93.                return true;
  94.            }
  95.        }
  96.  
  97.        /**
  98.          * Contruimos la petición HTTP que sera enviada a Mozilla.
  99.           *
  100.          */
  101.        private function build_query(){
  102.            $httpArray =    array('assertion' => $this->_assertion,
  103.                                  'audience'  => urlencode($this->_localURL));
  104.  
  105.            $data =     http_build_query($httpArray);
  106.            $this->_QueryHTTP = array('http' => array( 'method'  => 'POST',
  107.                                                       'content' => $data,
  108.                                                       'header'  => "Content-type: application/x-www-form-urlencoded\r\n"
  109.                                                                  . "Content-Length: " . strlen($data) . "\r\n")
  110.                                      );
  111.        }
  112.    }
  113.  
  114.    //Creamos el objeto y damos los argumentos, es importante enviar el dominio correcto.
  115.    $objBrowserID = new browserID($_POST['assertion'], 'www.tusitioweb.com');
  116.  
  117.    if($objBrowserID->set_http_request()){
  118.        if($objBrowserID->get_is_login() === true) {
  119.             //Aqui se tendria que comprobar en nuestra base de datos si existe el usuario o en su defecto, crearlo.
  120.             $_SESSION['email'] = $objBrowserID->get_email();
  121.             $_SESSION['assertion'] = $_POST['assertion'];
  122.  
  123.             $json    = array( 'status' => 'okay',
  124.                               'action' => 'new',
  125.                               'email'  => $_SESSION['email']);
  126.        }
  127.  
  128.        echo json_encode($json);
  129.    }
  130. ?>

Espero que os haya podido ayudar en alguno, para mas información sobre BrowserID: https://developer.mozilla.org/en/BrowserID/
7  Programación / Desarrollo Web / [Recomendado] Recomendando Host (2012) en: 31 Mayo 2012, 15:25 pm
Como se venia haciendo en estos hilos:


Hacemos otro para este año, y así tenemos información mas nueva.

Formato del post:

Empresa:
País:
Servicios:
Precios:
Ventajas:
Desventajas:
Otros datos relevantes:

URL Oficial (no afiliados o sera eliminada):

Ejemplo:

Citar
Empresa: Hospedajes MundialesHOSPEDAJES MUNDIALES
País: España y latino ametica
Servicios: Hostings, Servidores, VPS y Dominios. HOSTING, SERVIDORES, VPS, DOMINIOS
Precios: Dominios desde 5€, Hosting desde 10€.
Ventajas: Muy buenos precios.
Desventajas: Gran soporte
Otros datos relevantes: Nada relevante.

URL Oficial: http://www.url.com/

Por ultimo también podéis votar cual es el mejor hosting desde aquí.
8  Seguridad Informática / Nivel Web / Fallo de seguridad en tuenti. en: 30 Mayo 2012, 18:17 pm
Buenos, no se si alguien sabe la dirección de correo electrónico que utiliza la red social tuenti para reportar fallos de seguridad o bien si es como facebook que tiene un sistema de reportes web.

Un saludo y gracias! y si alguien tiene alguna experiencia reportado fallos de seguridad en esta red social... que me comente su experiencia.

Gracias un saludo
9  Programación / Desarrollo Web / Plugin JS para web modular con AJAX. en: 28 Mayo 2012, 07:04 am
Os dejo aquí un código que usaba hace algún tiempo para poder gestionar una web modular desde AJAX, la verdad deje de usuario por que como mucho ya saben AJAX y Google ademas de incontables problemas con los estándares de accesibilidad.

De todos modos es divertido y para aplicaciones propias es muy interesante.

Primero que nada necesitamos dos Plugins:


Aquí el código XHTML para cargar la web modular:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
       
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
        <script src="js/basic.js" type="text/javascript"></script>
        <script src="js/jquery.history.js" type="text/javascript"></script>

<title>Web Modular.</title>
    </head>

    <body>
        <div id="mainPage">
            <div id="wrapper-xmlHttpRequest">
            </div>
        </div> 
    <body>
</html>

Y aquí el código JS que representaría basic.js:
Código:
goes=true;

function ajaxLoad(address, title, variable, top) {
$("#wrapper-xmlHttpRequest").load("mainfile.php?page=" + address + variable, function() {
if(title!=""){document.title = "Tu sitio web - " + title;}
if(goes==true){
goes=false;
if(top==true){
var b=$("html").offset();
var a=b.top;

$("html, body").animate({scrollTop:a},500, function() {goes=true;});
}
}
});
}

$(document).ready(function(){
$.history.init(function(url) {
var page = location.hash.replace("#","").split("/");

if(page[1]==undefined){
location.hash="#/home/"
} else{
switch(page[1].toLowerCase()){
case "home":
ajaxLoad("home","Portada","", true);
break;
default:
location.hash="#/error/404/";
}
}
});
})

Para añadir un modulo solo tienes que añadir un nuevo case y utilizar la función ajaxLoad, dicha
Citar
funcion tiene 4 argumentos:
address - "dirección del modulo en el fichero php"
title - "titulo de la pagina"
variable - "argumentos que quieras enviar"
top - "si pones true la pagina se eleva hasta arriba, sino se queda como esta."

Como os digo, no recomiendo mucho su uso pq da conflictos con SEO, SEM, Open graph etc... pero si estas en un proyecto pequeño y quieres probar el potencial de ajax viene muy bien.

Espero haber podido ayudar!
Un saludo
10  Seguridad Informática / Nivel Web / Insertar datos con un update, dentro de otro update con SQLi(Mysql) en: 22 Agosto 2011, 19:04 pm
Buenas!!!, estoy haciendo unas pruebas y me gustaría saber si es posible insertar a datos a otra tabla desde un update, como hace select con union, pero con update:
Código:
update tabla set date=80 where ID=3 union update tabla2 set date2=10 where ID=1

Sabéis si existe algún tipo de union pero para update?

query básico:
update tabla set date=80 where ID=3
Páginas: [1] 2 3 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines