Parche Indicador de Sonido en Xubuntu 13.10

Como dice el titulo.. este es un parche para tener funcionando el indicador de sonido en el panel usando Xubuntu 13.10 ya que viene roto y no funciona..

--- /usr/share/dbus-1/services/indicator-sound.service  2013-11-02 16:14:21.661081218 -0600
+++ indicator-sound.service 2013-11-02 16:11:49.423258175 -0600
@@ -1,4 +1,3 @@
 [D-BUS Service]
 Name=com.canonical.indicator.sound
-Exec=/usr/lib/indicator-sound-gtk2/indicator-sound-service
-
+Exec=/usr/lib/x86_64-linux-gnu/indicator-sound/indicator-sound-service

WHMCS 5.2.8 Crack!

Modificar el hostname que esta en la linea que dice master.myhostname.com en un webserver local agregar:

<?php
$postfields = array();
$postfields["status"] = "Valid";
$postfields["checkdate"] = "20130820";
print_r(array_values($postfields));

Reemplazar el archivo class.license.php que se encuentra dentro de includes/classes en su instalación de WHMCS. Usar hasta que esten aburridos y si les gusta el software esta claro que pueden comprarlo, no es caro.
Sigue leyendo

Vida y Leyendas Tehuelches

La serie de relatos contenidos en este presente libro debidos a la pluma de Mario Echeverría Baleta, refleja aspectos de la vida cotidiana de los tehuelches en la faz cultural, espiritual
y material de los mismos, haciéndolos conocer y, por ende, rescatándolos del olvido en un aporte literario que no puede menos que ser elogiado.

La vida de los tehuelches extraída de la memoria del tiempo en los relatos que encierra este libro, historias vigentes en los escritos y testimonios de viajeros, exploradores y estudiosos, con más la propia experiencia de campo del autor, conocedor como pocos de diversos rincones geográficos y extensiones zonales del territorio de Santa Cruz, en una trayectoria que abarca casi toda la vida del autor.

Es así que este trabajo se suma a otros del mismo autor, el cual de siempre se intereso en conocer primero y difundir después la vida aborigen de la Patagonia, especialmente de esta parte sur del río Santa Cruz y hasta el Estrecho de Magallanes, espacio y extensión del desplazamiento y correrías del pueblo aónikenk.

El transcurrir de trece mil años de historia de los tehuelches, digamos una historia no escrita por los actores, pero sí rescatada por aquellos que llegaron a conocerlos en la etapa final de su desarrollo, una evolución interrumpida por circunstancias históricas que se dan entre los pueblos a lo largo del tiempo, de ese bagaje cultural así rescatado como dijimos más arriba, el conocimiento adquirido a través de los últimos exponentes del grupo tehuelche por parte de nuestro autor, es el fruto de estas historias elaboradas por la pluma de Mario Echeverría Baleta.

En un aporte más que hace al conocimiento del manso pueblo tehuelche, el cual cuando vio que su entorno circunstancial de miles de años ya no iba siendo el mismo, en parte se retrajo en sí mismo, pero a su vez se extendió en el tiempo a través del mestizaje.

Estos escritos de Echeverría Baleta nos ilustran sobre multitud de aspectos del pueblo aónikenk, matizándolo con palabras propias del lenguaje tehuelche, lenguaje sin soporte escrito como sabemos, por lo que a pesar de ello los distintos estudiosos del idioma tehuelche, trataron de fijar en el papel yen la cinta grabada las inflexiones lingüísticas de un idioma que va desapareciendo al mismo tiempo que sus portadores.

De cualquier manera, este trabajo, dentro de las dificultades que son propias y naturales de estudios que pertenecen a una cultura en extinción, por una parte, y cambiante, por otra, contribuye a rescatar y difundir las características de rico acervo de un pueblo como el tehuelche y en donde trabajos como el presente propician a su difusión y conocimiento.

Como elegir tu hastag de Twitter

El hashtag (#) se ha convertido en uno de los activos más valiosos de cualquier campaña de marketing moderno. Las marcas que crean los más eficaces y saben como utilizarlos aprovechan mucho mejor los beneficios de Twitter. Los que no han invertido el tiempo y pensado cuidadosamente acerca de su hashtag (s) y cómo lo van a utilizar obtienen resultados predecibles.

Para ayudarle a tomar las decisiones correctas cuando se trata de hashtags hemos creado este paso a paso gráfico que detalla las diferentes etapas implicadas a la hora de lanzar una campaña hashtag. Comienza con lo básico: preguntar por qué estás usando un hashtag, con un recordatorio de que los buenos hashtags debe ser fáciles de memorizar, para que sus clientes tengan la posibilidad de recordarlos. Una forma de asegurarse de que el hashtag es fácil de recordar es a través de la integración de los medios de comunicación. Los mejores hashtags están estrechamente integrados con otras actividades de marketing relacionadas a la televisión, anuncios de prensa y material de correo directo. A menudo nos preguntan si un nuevo hashtag siempre tiene que ser creado (en lugar de usar una palabra o frase que las personas ya estén utilizando). La respuesta es, no siempre. Si las personas que ya están utilizando un hashtag, y tienen conversaciones, parte de su trabajo ya está hecho. Toda lo que tiene que hacer su marca es asegurarse de que, cuando se une a la conversación le agregue valor a esta. Es decir evitar comentarios innecesarios.

Una vez creado el hashtag de Twitter puede ayudar a amplificar el mensaje a través de otros procedimientos que usted puede ir tomando.

Twitter Diagrama de hashtags

Twitter Diagrama de hashtags

Si están interesados en leer mas sobre practicas de Twitter y Hashtags pueden visitar el blog de Tecnosur México el cual nos brinda un interesante articulo sobre este tema.

Como crackear CleanPanel para cPanel (2.2.6) SSW.

Yo me pregunto muchas veces cual es la idea de poner un sistema de licencias sobre un script si no vas a proteger el mismo.. o por que simplemente usan sistemas que ya no sirven, en fin, el producto se llama CleanPanel y se instala de la siguiente forma:

wget http://cpaneldesigns.com/scripts/cleanpanel_install.sh
chmod 0755 cleanpanel_install.sh
sh cleanpanel_install.sh

Luego hacemos:

cd /usr/local/cpanel/base/frontend/CleanPanel

Editamos el archivo index.php y removemos el siguiente código:

<?php
function getip(){
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, 'http://clients.cpaneldesigns.com/modules/servers/licensing/ip.php');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $return = curl_exec($curl);
    curl_close($curl);
    return trim($return);
}

function check_license($licensekey,$localkey="") {
    $whmcsurl = "http://clients.cpaneldesigns.com/";
    $licensing_secret_key = "cejab7ateSturatus39xudR4nuswetheHes7u7exUjuwes8efrafR2facr3crub6";
    # Unique value, should match what is set in the product configuration for MD5 Hash Verification
   $check_token = time().md5(mt_rand(1000000000,9999999999).$licensekey);
    $checkdate = date("Ymd"); # Current date
   if (!$usersip = getip()) {
        isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : $_SERVER['LOCAL_ADDR'];
    }
    $localkeydays = 7;
    # How long the local key is valid for in between remote checks
   $allowcheckfaildays = 1;
    # How many days to allow after local key expiry before blocking access if connection cannot be made
   $localkeyvalid = false;
    if ($localkey) {
        $localkey = str_replace("\n",'',$localkey); # Remove the line breaks
        $localdata = substr($localkey,0,strlen($localkey)-32); # Extract License Data
        $md5hash = substr($localkey,strlen($localkey)-32); # Extract MD5 Hash
       if ($md5hash==md5($localdata.$licensing_secret_key)) {
            $localdata = strrev($localdata); # Reverse the string
            $md5hash = substr($localdata,0,32); # Extract MD5 Hash
            $localdata = substr($localdata,32); # Extract License Data
            $localdata = base64_decode($localdata);
            $localkeyresults = unserialize($localdata);
            $originalcheckdate = $localkeyresults["checkdate"];
            if ($md5hash==md5($originalcheckdate.$licensing_secret_key)) {
                $localexpiry = date("Ymd",mktime(0,0,0,date("m"),date("d")-$localkeydays,date("Y")));
                if ($originalcheckdate>$localexpiry) {
                    $localkeyvalid = true;
                    $results = $localkeyresults;
                    $validdomains = explode(",",$results["validdomain"]);
                    if (!in_array($_SERVER['SERVER_NAME'], $validdomains)) {
                        $localkeyvalid = false;
                        $localkeyresults["status"] = "Invalid";
                        $results = array();
                    }
                    $validips = explode(",",$results["validip"]);
                    if (!in_array($usersip, $validips)) {
                        $localkeyvalid = false;
                        $localkeyresults["status"] = "Invalid";
                        $results = array();
                    }
                    if ($results["validdirectory"]!=dirname(__FILE__)) {
                        $localkeyvalid = false;
                        $localkeyresults["status"] = "Invalid";
                        $results = array();
                    }
                }
            }
        }
    }
    if (!$localkeyvalid) {
        $postfields["licensekey"] = $licensekey;
        $postfields["domain"] = $_SERVER['SERVER_NAME'];
        $postfields["ip"] = $usersip;
        $postfields["dir"] = dirname(__FILE__);
        if ($check_token) $postfields["check_token"] = $check_token;
        if (function_exists("curl_exec")) {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $whmcsurl."modules/servers/licensing/verify.php");
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
            curl_setopt($ch, CURLOPT_TIMEOUT, 30);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            $data = curl_exec($ch);
            curl_close($ch);
        } else {
            $fp = fsockopen($whmcsurl, 80, $errno, $errstr, 5);
            if ($fp) {
                $querystring = "";
                foreach ($postfields AS $k=>$v) {
                    $querystring .= "$k=".urlencode($v)."&";
                }
                $header="POST ".$whmcsurl."modules/servers/licensing/verify.php HTTP/1.0\r\n";
                $header.="Host: ".$whmcsurl."\r\n";
                $header.="Content-type: application/x-www-form-urlencoded\r\n";
                $header.="Content-length: ".@strlen($querystring)."\r\n";
                $header.="Connection: close\r\n\r\n";
                $header.=$querystring;
                $data="";
                @stream_set_timeout($fp, 20);
                @fputs($fp, $header);
                $status = @socket_get_status($fp);
                while (!@feof($fp)&&$status) {
                    $data .= @fgets($fp, 1024);
                    $status = @socket_get_status($fp);
                }
                @fclose ($fp);
            }
        }
        if (!$data) {
            $localexpiry = date("Ymd",mktime(0,0,0,date("m"),date("d")-($localkeydays+$allowcheckfaildays),date("Y")));
            if ($originalcheckdate>$localexpiry) {
                $results = $localkeyresults;
            } else {
                $results["status"] = "Invalid";
                $results["description"] = "Remote Check Failed";
                return $results;
            }
        } else {
            preg_match_all('/<(.*?)>([^<]+)<\/\\1>/i', $data, $matches);
            $results = array();
            foreach ($matches[1] AS $k=>$v) {
                $results[$v] = $matches[2][$k];
            }
        }
        if ($results["md5hash"]) {
            if ($results["md5hash"]!=md5($licensing_secret_key.$check_token)) {
                $results["status"] = "Invalid";
                $results["description"] = "MD5 Checksum Verification Failed";
                return $results;
            }
        }
        if ($results["status"]=="Active") {
            $results["checkdate"] = $checkdate;
            $data_encoded = serialize($results);
            $data_encoded = base64_encode($data_encoded);
            $data_encoded = md5($checkdate.$licensing_secret_key).$data_encoded;
            $data_encoded = strrev($data_encoded);
            $data_encoded = $data_encoded.md5($data_encoded.$licensing_secret_key);
            $data_encoded = wordwrap($data_encoded,80,"\n",true);
            $results["localkey"] = $data_encoded;
        }
        $results["remotecheck"] = true;
    }
    unset($postfields,$data,$matches,$whmcsurl,$licensing_secret_key,$checkdate,$usersip,$localkeydays,$allowcheckfaildays,$md5hash);
    return $results;
}

define('FULL_PATH','/usr/local/cpanel/3rdparty/cPanelDesigns/');
$licensekey = trim(file_get_contents(FULL_PATH.'cleanpanel.key'));
$localkey = trim(file_get_contents(FULL_PATH.'cleanpanel.local.key'));

$results = check_license($licensekey, $localkey);

var_dump($results);

if ($results["status"]=="Active") {
    if ($results["localkey"]) {
        file_put_contents(FULL_PATH.'cleanpanel.local.key', $results["localkey"]);
    }
} elseif ($results["description"] === 'Remote Check Failed') {
    // Let them in, server down
} elseif ($results["status"]=="Invalid") {
    if (empty($results["description"])) $results["description"] = 'Invalid';
    echo('Invalid license key: ' . $results["description"]);
    exit;
} elseif ($results["status"]=="Expired") {
    echo('Expired license key');
    exit;
} elseif ($results["status"]=="Suspended") {
    echo('Suspended license key');
    exit;
}

Y listo, ya tenemos CleanPanel gratis.

InstantArticleWizard Como crackearlo en tan solo 10 segundos.

No voy a entrar en un largo tutorial el cual explicara paso a paso, pero si iré mostrando porciones de código para que observen por que muchas veces uno tiene que cuidarse de lo que compra, para mi este es un punto mas que valido a la hora de exponer errores como estos. Dado que programar en C# y VB.NET es básicamente fácil para quienes tienen una idea de estos muchos se aventuran a lanzar productos y no responder por ellos a la hora de presentar soluciones, me sucedió con InstantArticleWizard en su ULTIMA versión estable (3.11).

En fin, vamos a la breve presentación, este programa verifica todo mediante un servidor web remoto, esto (observando las conexiones salientes) me mostró que la verificación del mismo se realizaba mediante el dominio de ellos el cual es http://instantarticlewizard.com/. Una llamada a un archivo iaw3.php nos muestra que la verificación del usuario es bastante BÁSICA e INSEGURA, aquí les muestro el código de la función:

Sigue leyendo

PlayStation 4: ¿Que nos falta conocer?

Con la novedad de lanzamiento de la PlayStation 4 muchas son las dudas e incógnitas que tenemos al momento de obtener información real y segura acerca de este producto de Sony que pretendes revolucionar el mercado. Vamos hacer un recorrido por algunas características propias de la PlayStation 4 como así también otros detalles técnicos que no podemos dejar de tener en cuenta. Si te consideras fanático o simplemente sos un apasionado seguidor de esta consola, no podes perderte esta información.

Para jugar online en la PlayStation 4 es necesario suscribirse a PS Plus

playstation 4Entre todas las ventajas que ofrece la PlayStation 4 en la conferencia de Sony, hubo un detalle importante que puede haber sido pasado por alto por muchos: para jugar la consola PlayStation 4 en linea, debes suscribirse a PlayStation Plus.
Según Sony, el servicio continuará ofreciendo los beneficios de Sigue leyendo