Mostrar Mensajes

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

Mensajes - Mortal_Poison

Páginas: 1 ... 9 10 [11]
201
Debates y Reviews / Re:Hacktivismo & CyberSabotaje
« en: Octubre 06, 2017, 03:33:49 pm »
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
Así que por mi parte, apoyo netamente el Hacktivismo. Teniendo realmente una causa, una ideología, un motivo estoy totalmente de acuerdo. Muchos no estarán de acuerdo y es válido. No juzgo, pero para mí, un Defacement a pesar de que a los políticos no les afecte del todo(depende de qué sistema se afecte) crea un mensaje de conciencia. Un mensaje de conciencia que con posibilidades muy altas, hará que cualquier persona que entre a dicho sitio web, cambie su forma de pensar. Y desde que comience a cambiar una persona, comienza a cambiar el mundo. El pueblo no se da cuenta del poder que tiene, lo ignora quizá por desconocimiento/desinterés.

Además de eso, se dice que un Hacker no es un Hacktivista, para mí, lo es. Para mí, la definición de Hacker va más allá, es usar tu inteligencia de otro modo, para demostrar que un sistema es vulnerable a groso modo(porque se proponen retos). ¿Acaso vulnerar es no usar tu inteligencia? para vulnerarla, debes usarla.
+1
Concuerdo con tu definición de Hacker, usar la inteligencia no es solamente programar en muchos lenguajes, memorizar el funcionamiento del hardware o dominar lo último en técnología. Un hacker debe tener una visión crítica frente a la realidad en la que vive -y no me refiero al ciberespacio- para poder utilizar su conocimiento de una forma inteligente y benefica.

Tú lo has dicho @You are not allowed to view links. Register or Login , esa es la verdadera esencia y eso ya se convierte en ésta sociedad actual como una virtud. Un saludo.

202
Debates y Reviews / Re:Hacktivismo & CyberSabotaje
« en: Octubre 06, 2017, 02:26:40 pm »
Hola a [email protected],

Lo mismo iba a planear no hace un par de días, sino hace un par de horas xD.
Me extenderé un poco, así que recomiendo ir por café.

El Hacktivismo... una rama que siempre he considerado tan válida e incluso, tan encantadora como muchos no lo hacen. ¿Por qué encantadora? les comentaré con una situación similar pero en mi país[Colombia].
Hace unos días, me encontraba hablando con un amigo que había sido soldado durante un tiempo, me comentaba cuán difícil había sido.
Sin embargo, llegamos a un punto, a un tope de la conversación, donde entramos a lo político/social. Decidí entrar a dicha situación, debido a que mi amigo es de mente abierta, así que sabía que no iba a haber problema si estábamos en desacuerdo con alguna opinión.

El tope de la conversación era, si tú como campesino, que buscas salud y en el lugar donde te encuentras[selva] no hay médicos y por eso muere tu papá, tu mamá, cualquiera de tus familiares, ¿no te molestaría?. Creo que a cualquier persona que quiera y tenga un amor filial, lo hace. ¿Aprender a publicar un tweet, hacer una publicación en Facebook al gobierno nacional es suficiente?. NO, no lo es. Te ignoran, por muchos que publiquen. Si en algún caso se llegara a viralizar, solo se haría para una parte de donde te encuentras, ¿y los demás qué?. Ese es el motivo principal por el que los campesinos se toman el trabajo de tomar armas y levantarse en contra del gobierno. Alzar la voz, hacerse escuchar mediante cometidos que causen interés, así es como ellos se hacen escuchar, por medio de la guerra. Lastimosamente es una cruda realidad, devastadora para unas familias y enriquecedora para otras; es la guerra.

Pero todo esto viene al hecho de que, las personas siempre, por patología humana diría yo, buscamos una forma de expresión. Pero una forma de expresión que sea recíproca, no unívoca. Te pongo el mismo caso del campesino con una situación tan complicada como Venezuela. Ahora mismo, el Hacktivismo abunda. Esto se debe a que si sales a protestar por tus derechos, tienes tres posibilidades: te reprimen(matándote), quedas herido o no te sucede nada. La mejor manera de hacer protesta es mediante el Hacktivismo. Apoyas la causa, te haces 'escuchar' y además, es una manera donde no corre riesgo tu vida(cosa que no debería pasar en un gobierno 'democrático').

Así que por mi parte, apoyo netamente el Hacktivismo. Teniendo realmente una causa, una ideología, un motivo estoy totalmente de acuerdo. Muchos no estarán de acuerdo y es válido. No juzgo, pero para mí, un Defacement a pesar de que a los políticos no les afecte del todo(depende de qué sistema se afecte) crea un mensaje de conciencia. Un mensaje de conciencia que con posibilidades muy altas, hará que cualquier persona que entre a dicho sitio web, cambie su forma de pensar. Y desde que comience a cambiar una persona, comienza a cambiar el mundo. El pueblo no se da cuenta del poder que tiene, lo ignora quizá por desconocimiento/desinterés.

Además de eso, se dice que un Hacker no es un Hacktivista, para mí, lo es. Para mí, la definición de Hacker va más allá, es usar tu inteligencia de otro modo, para demostrar que un sistema es vulnerable a groso modo(porque se proponen retos). ¿Acaso vulnerar es no usar tu inteligencia? para vulnerarla, debes usarla.

Aparte de todo eso, también es un problema de la sociedad. Cortinas de humo y demás que cegan a la gente, que repercute en que desconozcan situaciones actuales, como lo de Siria. Muertos al día. MUERTOS. PERSONAS.

Realmente es un tema al que me puedo extender, pero que me gustaría leer las opiniones de los demás.

Esa es mi opinión en resumen,


Un saludo.


Posdata: para los que no entendieron un poco el tema de guerra, en Colombia existen grupos subversivos, es decir, al margen la ley. Están algunos frentes de las FARC(Fuerzas Armadas Revolucionarias de Colombia) que no quisieron desmovilizarse al tratado de paz. Existe otro que es el ELN(Ejército de Liberación Nacional) con el cual apenas iban a comenzar un cese bilateral. A lo que me refería es que, los campesinos a modo de protesta, desean ingresar a dichos grupos.

203
Debates y Reviews / Re:Sistema de adopción de novatos
« en: Octubre 06, 2017, 01:38:19 pm »
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
Hola a [email protected],

Quisiera contar mi experiencia cuando apadriné a un chico.
Hace ya algunos años, por medio de mi canal de Youtube conocí a un chico Argentino, él me pidió que le enseñara. Al no tener experiencia alguna de éste tipo, me decidí a hacerlo. Ciertamente poseía muy poco tiempo y esto se veía afectado debido al aprendizaje(quieras o no, ésto ocupa tiempo).
Comencé explicándole lo básico, determinando cómo era su reacción frente al conocimiento. Analicé la situación y noté que me disgustaba algo de él, quería que todo se lo sirvieran en bandeja(como dicen en mi país, haciendo referencia a que le gusta que se lo den todo sin esfuerzo alguno).

Efectivamente eso hizo que pensara bien las cosas, debido a que era una persona que a la final, no quería aprender. No quería esforzarse, no quería indagar, no quería consultar.

En mi universidad pasó exactamente lo mismo. Unos compañeros de mi universidad me pidieron que les enseñara lo que sabía. Con mi experiencia anterior, me negué rotundamente a tal caso, específicándoles paulatinamente que si tenían dudas, yo se las resolvería(hasta me ofrecieron dinero, sabiendo que es lo último que me interesa). Como eran como éste chico, me tildaron como: egocéntrico, envidioso y mala persona.

No es por el hecho de que no quiera compartir conocimiento(sino no tendría el canal de Youtube) es por el hecho de que no les gusta informarse, leer, practicar, aprender. Créanme que los que nos disponemos a resolver distintas dudas, ya pasamos por ese camino, nos tocó quemarnos las pestañas practicando. Incluso, tuvimos que en muchas ocasiones, resolver los problemas sin ayuda alguna. Y esto lo puede certificar cualquier persona de éste foro que lleve ya varios años en éste rubro. A esto se suma que, a mi opinión, es una falta de respeto pedir que te enseñen todo, cuando ni se pasa por tu cabeza el hecho de querer mejorar día a día. Las cosas para mí, incluso para la misma sociedad, siempre se ganan con esmero.

Para eso existen éste tipo de comunidades, para apoyar. Foros, plataformas y entornos donde la gente se dispone a restar de su tiempo para que se cree una retroalimentación de aprendizaje.

En foros como Stackoverflow he visto muchísimas personas que, publican una 'duda' pero no han intentado nada. Cuestión de ideología, suelen darle puntos negativos a dicha pregunta o uno que otro responden con: "Si crees que te vamos a hacer el código, estás equivocado. Cuéntanos qué has intentado, qué has hecho, por qué crees que no te funciona."


Ahí es donde entran a colaborarte.

Es algo que puede causer mucha disensión, sin embargo, como lo ha mencionado @You are not allowed to view links. Register or Login creo que es un aspecto y un criterio muy alto a evaluar. Puede pasar de comunidad, a volverse una 'comunidad' segmentada(nótese el comunidad, porque para mí, ya no sería una comunidad).

En conclusión y a mi perspectiva sin modo de ofender a los que recién empiezan, es que no dependan de una persona que el día de mañana no puede estar y como era tu costumbre, te será un golpe fatal. Crear el hábito de consultar es vital, pues es convertir de nuestro día a día un problema a resolver.

Un saludo.


PD: La respuesta la había escrito hace rato, pero de repente se fue la luz y no se guardó en borrador xd.

Te encuentro la razón en todo, por eso dije que "adoptar" a alguien no es buena idea, a menos que alguien así lo quiera, lo cual estaría en todo su derecho.

Lo que yo propuse es un tipo de "school/escuela", donde se dicte un curso (de lo cual cada usuario debe leer y ser autodidacta como bien dices) pero que se puedan dar tareas, ya que muchos pueden leer y leer y de la lectura pasan a la práctica y es donde tenemos la mayor cantidad de muertes de soldados informáticos, así sería teórico-práctico.

Encuentro podrías ser buena idea si se planeara, a eso le sumamos el foro y el IRCD.

Un saludo a todos!!

¡Entiendo! es perfecto, claro, pero para eso creo que también está la plataforma de YouTube. Sin embargo, yo pensé en eso hace ya varios años, por disposción de $ no podía realizar lo que tenía en mente. Ya comenzaré a trabajar en dicho proyecto que sé que le servirá a más de uno. Ya sabrás que es, y bueno, eso se lo debo gran parte a que la comunidad me quiso apoyar.

Un saludo @You are not allowed to view links. Register or Login.

204
Dudas y pedidos generales / Re:Una pregunta curiosa de un principiante...
« en: Octubre 06, 2017, 09:15:40 am »
No te preocupes, para eso estamos, para ayudar. @You are not allowed to view links. Register or Login.

Un saludo.

205
Debates y Reviews / Aprende a leer código fuente de otras personas
« en: Octubre 06, 2017, 07:14:20 am »
Hola a [email protected],

Bien, éste es mi segundo post y aunque no encontré la sección indicada para publicarlo, creo que el más ideal es éste.
Resulta que a veces se torna complejo el leer código fuente ajeno y que bueno, la verdad pensar lo que pensó en ese determinado momento un programador / desarrollador se puede volver complicadísimo.


Ilustración 1. Tú pensando en cómo leer el código de otra persona.

Recuerdo que hace mucho tiempo decían:
Citar
"SI QUIERES APRENDER MÁS, LEE CÓDIGO FUENTE DE OTRAS PERSONAS".

Yo siempre asemejo esa frase con un escritor. Si deseas ser un escritor y quieres ser uno de los mejores, ¿te basta solo con enfocarte en tu escritura? pues la respuesta es un rotundo no. Para ser un buen escritor, debes ser un lector voráz. Para destacar, para manejar léxico, para aprender estilos, debes aprender a interpretar la escritura de otros escritores ya sean más o menos experimentados que tú.

Existen diversas técnicas para poder leer un código fuente, entre ellas:
  • Cuando el autor del programa ha escrito en un archivo donde explica la estructura del mismo y además, la responsabilidad de cada uno de los módulos.
    En otras palabras, cuando se posee documentación del programa.
  • Revisar los directorios existentes de los cuales se desprende el programa, haciendo posible la deducción de una parte de la escritura del código.
  • Ver los comentarios en las líneas que se hicieron en el programa.

A pesar de tantas técnicas que podemos encontrar, también podemos encontrar tips(la encontré hace ya varios años):
You are not allowed to view links. Register or Login

Cómo leer código fuente de otras personas

He visto a muchos que son programadores. Alguna vez que les he dado un código para la interpretación del mismo, lo único que hacen es desplazarse de arriba a abajo con un cara de amargura e incluso, de desasosiego ante eso. Luego se arrepienten y prácticamente comienzan a excusarse:
  • El código es una mierda.
  • El código está desactualizado, no sirve.
  • Podemos resolver el problema de otras maneras.
Yo diría que es como por etapas. Sicología, ¿dónde? ;D.

Realmente me hacen dudar de su experiencia, pero son personas que no quieren calibrar su forma de desarrollo.

Siguiendo con nuestro querido post, les quiero mencionar a todos que si realmente desean aprender y entender cómo funciona el código de otra persona, la única solución viable que siempre he encontrado es la paciencia.



A continuación, un listado que me han servido a mí y que probablemente les servirá a ustedes cuando se encuentren a éste reto:

  • Build and run!
    Primero debes entender cómo funciona el programa, qué es lo que hace. No me refiero al código, me refiero al programa funcional. Luego de entender cómo funciona, piensa en una nueva función que podrías añadir. Oblígate a mejorar el programa en algo. De ésta manera, tendrás que exigirte a ti mismo saber cómo funciona el código.
  • Distinguish styles
    Distinguir los estilos es muy importante. Saber que en un código nos podemos encontrar con código spaguetti, código refactorizado o con modularidad es indispensable para que podamos apropiarnos y saber qué nos espera. No es lo mismo leer un código el cual lo hicieron por hacerlo, a leer un código bien estructurado.
  • Review main class
    Para mí, esto es muy importante. Si revisas el main o de donde se hacen los llamados a las funciones / clases / métodos, podrás ver a cuál llama primero, luego de eso, podrás irte a la función / clase / método y comenzar a leer línea por línea el por qué lo llama inicialmente. Así mismo para los demás llamados.
  • Become familiar with the new
    Familiarizarse con lo nuevo creo que es radical. A esto no me refiero que vayas a leerte un proyecto de Google si encuentras una función y no sabías lo que hacía xD, me refiero a a que si no entiendes algo, consultalo, aprende para qué sirve y regresa al código. No sirve de mucho 'perder' tiempo cuando se encuentra en tiempo de entregas. Si estás libre, en mi opinión, es válido y sería muy bueno que lo hicieras.
  • Desktop Testing
    Las pruebas de escritorio son muy útiles si te encuentras en una función con for aninados o bueno, algún loop anidado. Si no entiendes algo, haz una prueba de escritorio. Con esto, lograrás saber cuál es el límite de dicho loop(finito o infinito) y deducirás rápidamente el uso que tiene éste adentro del programa.
  • Documentation
    Pragmáticamente lo que concierne éste punto es, si crees que al método / función / clase que estás leyendo le hace falta documentación, documentalo. Me ha pasado varias veces que, leo un código de otra persona, entiendo para qué sirve una función pero cuando vuelvo a leer 'x' línea de código, no recuerdo para qué servía. Eso es tiempo perdido. Puedes evitarlo documentando dicha línea en el código.
  • Modify lines of code
    Modificar trozos de código es muy bueno, deberías hacerlo siempre que tengas la posibilidad.
  • Doubts
    Si posees dudas en una función extraña, que hasta los que la desarrollaron ni la entienden, es momento de preguntar en foros especializados. Así no te frustras y dejas todo tirado(esto para personas impacientes, por eso recalqué lo de la paciencia).
  • print('Mortal_Poison')
    Considerando que no entiendes lo que pasa en una variable, imprime lo que está antes. ¿Para qué tienes la función de impresión? ::) .

A medida que me vaya acordando y observando más consejos útiles, modificaré el tema y los pondré.

Me gustaría que ustedes también pudieran compartir sus experiencias al leer código fuente ajeno, creo que es importante para los que comienzan e incluso, para los que ya hemos tocado código.

Destaco que lo enfoque principalmente a lenguajes de alto nivel. A lenguajes de bajo nivel no tanto, porque no estoy muy familiarizado con dichos lenguajes a pesar de que hace un tiempo los trabajé. Si alguien pudiera dar unos consejos para ese tipo de lenguajes, estaría perfecto.

Para terminar, no puse nada del tema de idiomas(en específico inglés) debido a que asumo que se conoce lo básico-medio para el tema.

Un saludo.

206
Dudas y pedidos generales / Re:Una pregunta curiosa de un principiante...
« en: Octubre 06, 2017, 05:29:21 am »
You are not allowed to view links. Register or Login
Hola, soy un principiante en el mundo de la informática...
¿mi pregunta es qué, si se puede eliminar un virus, troyano o cualquier ejecutable con fines maliciosos dentro de una descarga publica?

Me explico bastante mal... lo que quiero decir es que quiero fl studio 12 y no me fío de los key o cracks que suben por internet... y lo necesito, vale mucho dinero, y no me lo puedo permitir... me gustaría saber si se puede limpiar un archivo infectado..

Gracias de antemano y perdonen mi ignorancia..


Hola Mellamomorador,

Generalmente los cracks vienen con algún tipo de malware, específicamente vienen con backdoor.
Si deseas limpiar algún programa de cualquier índole que haya sido crackeado, te va a tocar hacerle ingeniería inversa al programa si o si.
Puedes usar ollydbg o bueno, cualquier otro que te ayude a desempaquetar lo que está en el crack, así podrás determinar cuán fiable es para tu computador.


Un saludo.

207
Dudas y pedidos generales / Re:bootear kali linux desde un disco duro
« en: Octubre 05, 2017, 03:02:57 pm »
Hola Spartakus,

Es posible hacer el booteo. Sin embargo, ¿tienes los cables para convertir de tu disco duro a USB?. Incluso, hay una cajita que venden y es de éste estilo:


Ilustración 1. Convertidor de HDD a USB.

Las pulgadas cambiarán dependiendo de cómo sea tu disco duro, recuerda que los de antes eran muy grandes. Puedes ver un poco más en detalle esa cajita en éste vídeo:


Así que en caso de que si la tengas, tendrás que descargar algún programa para bootear, como por ejemplo:
-> Universal USB.
-> Unetbootin.
-> Rufus(lo recomiendo).

Luego de eso, con tu ISO la examinas en alguno de esos programas, seleccionas en éste caso el disco duro y ya está, presionas en 'iniciar' y ya tendrías tu HDD Booteable. Recuerda que al presionar click en 'iniciar' se formateará todo lo que esté en tu disco duro.Luego puedes entrar a la BIOS y seleccionar el HDD que está de modo USB y arrancará sin problemas.

Posdata: yo le veo un poco más de 'rollo', yo estando en tu posición, compro un DVD, quemo la ISO, la hago booteable y listo. Incluso, si no tienes la cajita, sería más gastos. Mientras que el disco duro lo dejo para almacenar información(aunque no niego que a pesar de que sea booteable no deje insertar información, porque sí la deja).

Un saludo y espero que te haya servido .

208
Debates y Reviews / Re:Sistema de adopción de novatos
« en: Octubre 05, 2017, 02:44:18 pm »
Hola a [email protected],

Quisiera contar mi experiencia cuando apadriné a un chico.
Hace ya algunos años, por medio de mi canal de Youtube conocí a un chico Argentino, él me pidió que le enseñara. Al no tener experiencia alguna de éste tipo, me decidí a hacerlo. Ciertamente poseía muy poco tiempo y esto se veía afectado debido al aprendizaje(quieras o no, ésto ocupa tiempo).
Comencé explicándole lo básico, determinando cómo era su reacción frente al conocimiento. Analicé la situación y noté que me disgustaba algo de él, quería que todo se lo sirvieran en bandeja(como dicen en mi país, haciendo referencia a que le gusta que se lo den todo sin esfuerzo alguno).

Efectivamente eso hizo que pensara bien las cosas, debido a que era una persona que a la final, no quería aprender. No quería esforzarse, no quería indagar, no quería consultar.

En mi universidad pasó exactamente lo mismo. Unos compañeros de mi universidad me pidieron que les enseñara lo que sabía. Con mi experiencia anterior, me negué rotundamente a tal caso, específicándoles paulatinamente que si tenían dudas, yo se las resolvería(hasta me ofrecieron dinero, sabiendo que es lo último que me interesa). Como eran como éste chico, me tildaron como: egocéntrico, envidioso y mala persona.

No es por el hecho de que no quiera compartir conocimiento(sino no tendría el canal de Youtube) es por el hecho de que no les gusta informarse, leer, practicar, aprender. Créanme que los que nos disponemos a resolver distintas dudas, ya pasamos por ese camino, nos tocó quemarnos las pestañas practicando. Incluso, tuvimos que en muchas ocasiones, resolver los problemas sin ayuda alguna. Y esto lo puede certificar cualquier persona de éste foro que lleve ya varios años en éste rubro. A esto se suma que, a mi opinión, es una falta de respeto pedir que te enseñen todo, cuando ni se pasa por tu cabeza el hecho de querer mejorar día a día. Las cosas para mí, incluso para la misma sociedad, siempre se ganan con esmero.

Para eso existen éste tipo de comunidades, para apoyar. Foros, plataformas y entornos donde la gente se dispone a restar de su tiempo para que se cree una retroalimentación de aprendizaje.

En foros como Stackoverflow he visto muchísimas personas que, publican una 'duda' pero no han intentado nada. Cuestión de ideología, suelen darle puntos negativos a dicha pregunta o uno que otro responden con: "Si crees que te vamos a hacer el código, estás equivocado. Cuéntanos qué has intentado, qué has hecho, por qué crees que no te funciona."


Ahí es donde entran a colaborarte.

Es algo que puede causer mucha disensión, sin embargo, como lo ha mencionado @You are not allowed to view links. Register or Login creo que es un aspecto y un criterio muy alto a evaluar. Puede pasar de comunidad, a volverse una 'comunidad' segmentada(nótese el comunidad, porque para mí, ya no sería una comunidad).

En conclusión y a mi perspectiva sin modo de ofender a los que recién empiezan, es que no dependan de una persona que el día de mañana no puede estar y como era tu costumbre, te será un golpe fatal. Crear el hábito de consultar es vital, pues es convertir de nuestro día a día un problema a resolver.

Un saludo.


PD: La respuesta la había escrito hace rato, pero de repente se fue la luz y no se guardó en borrador xd.

209
Python / Re:Selenium - aprende a crear tus propios bots con Python
« en: Octubre 05, 2017, 02:10:40 pm »
You are not allowed to view links. Register or Login

  @You are not allowed to view links. Register or Login

Es reconfortante ponerse a leer un aporte como el tuyo.
Más allá de la técnica (que es interesante), es la forma que está planteado.

Concatenación lógica de la explicación, claridad e ilustraciones que cooperan en el entendimiento e ilustran a modo de ejemplo.

Me gustó muchísimo tu aporte!

Gracias y + Karma.

Saludos

Gabriela

Gracias a ti @You are not allowed to view links. Register or Login , realmente me agrada mucho que te haya gustado. Espero que nos podamos seguir viendo en el foro :).

Un abrazo.

210
Hola 79137913,

La verdad para ti y para los que lean esto, les quisiera compartir una que uso yo. Cuando necesito una expresión regular en específico, uso ésta herramienta:


Ilustración 1. RegEx101.

Web: You are not allowed to view links. Register or Login

La verdad, viene segmentado para lenguajes de scripting más que todo: Python, PHP, Javascript, entre otros.
Sin embargo, ya es cuestión de cada quién usar la que desee, pero ésta, por lo menos a mi, me ha servido un montón.

Saludos.

211
Python / Re:Selenium - aprende a crear tus propios bots con Python
« en: Octubre 05, 2017, 01:03:56 pm »
You are not allowed to view links. Register or Login
¡¡Muy buen aporte!! Esta explicado muy bien, gracias por compartirlo.

Atr0m

Muchas gracias Atr0m, intenté hacerla lo más detallada posible :). Un saludo.

212
Python / Selenium - aprende a crear tus propios bots con Python
« en: Octubre 05, 2017, 05:43:11 am »
Hola a [email protected],

Éste es mi primer post en underc0de, así que espero que les sea de utilidad.

Hace algún tiempo decidí crear un bot con Python + Selenium(es espléndida), considero que puede llegar a ser de utilidad para las personas que deseen saber cómo funciona un bot en twitter, facebook, gmail, entre otras.

¿Alguna vez te has preguntado cómo funcionan éste tipo de bots?

Funcionan de una manera realmente asombrosa, es el poder hecho script(en muchos casos).

Los bots que muchos conocen de likes, comentarios y demás son posibles automatizarlos mediante Python y cualquier otro lenguaje de programación.  Python, nos ofrece muchas librerías, entre ellas la mejor conocida como SELENIUM.  Selenium es una librería la cual usamos para automatizar lo que haríamos normalmente en el navegador. Les dejo una pequeña descripción que tienen en su sitio oficial:

Citar
Selenium automatiza los navegadores. ¡Eso es! Lo que hagas con ese poder depende totalmente de ti. Principalmente, es para la automatización de aplicaciones web para fines de pruebas, pero ciertamente no se limita a eso. Las tareas de administración basadas en la web pueden (y deberían!) Ser automatizadas también.

Ya definiendo eso y conociendo lo que es, vamos a entrar en un ejemplo más práctico, donde mostraré cómo usarla y en éste caso, lo haré en el sistema operativo de Windows.

Cabe aclarar que Python al ser multiplataforma, es indiferente si usamos Linux, Mac, Windows u otro sistema operativo.




¡USÉMOLO!

Para descargar Selenium, lo podemos hacer en ésta web:

You are not allowed to view links. Register or Login


Ilustración 1. Descarga de Selenium.

Una vez descargado, lo podemos instalar simplemente con nuestro Python(recuerden que lo deben tener en las variables de entorno):


Ilustración 2. Instalación de Selenium.

Luego de la instalación, podemos proceder a lo que nos gusta, el código  :).

Existen diversas formas de programar/desarrollar, lo sabemos. Sin embargo, ustedes pueden adaptar éste código a su manera, a su lógica, a su uso.

En éste caso, realizaré un bot que realice un post 1000 veces(compartir) en Facebook. Se puede poner también un loop infinito.

Antes que nada, importemos selenium.

Para importar selenium lo hacemos de la siguiente manera:

Pero...

Existe un paso muy importante, es el de descargar el webdriver de Mozilla Firefox o en su defecto, el de Google Chrome. El webdriver de Mozilla Firefox se llama Geckodriver y el de Chrome se llama ChromeDriver.

Descargar > You are not allowed to view links. Register or Login
Descargar > You are not allowed to view links. Register or Login

Una vez descargado(a elección y criterio suyo) procedemos a:
1) Ponerlo de variable de entorno / solución más óptima si van a trabajar con Python + Selenium muchas veces.
2) Ponerlo en una carpeta y simplemente pasarle la ruta a nuestro script.

Yo opté por la segunda opción y además, lo haré con Geckodriver(webdriver de Firefox), así que vamos a ello.

Ahora si procedemos a importar algunas declaraciones de importaciones básicas para importar módulos de Selenium.


Ilustración 3. Importación de la librería con sus respectivos módulos.

Luego de importar correctamente nuestra librería, debemos importar nuestro Geckodriver en una línea del script(OJO, SI NO LO TIENEN EN LA VARIABLE DE ENTORNO, SINO, SE SALTAN ESTE PASO).


Ilustración 4. Llamado a Geckodriver para su uso.

--> Recuerden que esa es mi ruta donde tengo el Geckodriver, en su caso, deben poner la ruta donde lo dejaron.


Como vamos a realizar un bot para Facebook, tenemos que ingresar a nuestra cuenta, en ese caso, creamos una función llamada "executeBot()" a la cual le insertaremos nuestra lógica.


Ilustración 5. Datos de acceso de nuestra cuenta.

Nótese que solo estamos poniendo en dos variables nuestro email y nuestra contraseña, pero no estamos insertándolo en el formulario de login de Facebook. con "driver.get(url)" lo que hacemos es acceder a cualquier url que deseemos. Recuerden que driver vendría siendo nuestro objeto de tipo browser.

Ahora bien, ya teniendo nuestros datos, debemos insertarlos en el formulario y además, presionar en el botón de entrar.
Para ello, tenemos que tener un concepto clave antes de seguir. Xpath es lo que usa selenium(sin mencionar los selectores de CSS) para que pueda saber dónde va a ingresar datos, dónde va a hacer click, entre otras. Xpath nos sirve precisamente para recopilar los inputs, botones, clases, id's y demás que necesitemos usar en Selenium.

Resumiendo, tenemos una página web, sacamos el xpath de los input de logeo y eso se lo pasamos a Selenium. Selenium ingresa lo que le hemos indicado con anticipación que ingrese y ya está.

Eso lo haremos ahora mismo. Para sacar los xpath de cualquier página, basta con el inspector de elementos de Chrome / Firefox, pero sino, existen diversas extensiones como lo puede ser Firepath(recomendada).

Yo lo haré con el inspector de firebug, así que lo único que debemos hacer es darle click derecho a los inputs y al botón que deseemos extraer los xpath's y ponerlos en nuestro código. Veámolo en detalle.


Ilustración 6. Extracción de xpath del correo electrónico.


Ilustración 7. Extracción de xpath de la contraseña.


Ilustración 8. Extracción de xpath del botón.

Cada uno de ellos los vamos a pegar en las siguientes líneas de código.


Ilustración 9. Inserción de xpath's en nuestro código.

Lo que está subrayado en amarillo, es cada uno de los xpath's que extraje, en la variable de email, está la del input del email. En la variable de password, está el del input de password. En la variable de button, está el xpath del botón.

EXPLICACIÓN DE LOS MÉTODOS
find_element_by_xpath() --> le indicamos a nuestro navegador que encuentre el xpath que deseamos.
send_keys()                    --> usado para insertar contenido en un campo editable(inputs por ejemplo).
click()                             --> para presionar click en alguna parte de la página web(indicar xpath).

Tenemos ya nuestra sesión de Facebook abierta. Ahora, lo que queríamos era compartir un enlace de facebook, lo haremos de la siguiente forma:


Ilustración 10. Compartir contenido de facebook en nuestro perfil.


Ilustración 11. Compartir contenido de facebook en nuestro perfil.

En la Ilustración 11. podemos notar que existe el botón de "publicar", ahí lo único que se hace es extraer el xpath y luego de eso, pasarselo a nuestro método de find_element_by_xpath para que posteriormente no haya ningún problema con click().

Si notan, en ese campo no pusimos nada, porque en la url ya le estamos pasando el enlace: "You are not allowed to view links. Register or LoginENLACE", sin embargo, podríamos sacarle el xpath a ese textarea e insertarle nuestro contenido. El xpath de ese textarea es(Les ahorro trabajo): //*[@id="u_0_s"]

Nos queda probar nuestro bot, llamamos nuestra función:


Ilustración 12. Llamada de función para ejecución del script.

Y prácticamente eso sería todo. Les dejo el código completo aquí:

Código: (python) You are not allowed to view links. Register or Login
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions
from selenium.common.exceptions import NoSuchElementException

driver = webdriver.Firefox(executable_path='C:/Users/Mortal_Poison/Downloads/geckodriver-v0.19.0-win64/geckodriver.exe')
def executeBot():
input_email_id = "[email protected]"
input_pwd = "our_password"
# Get the page. In this case is loggin attempt of Facebook.
driver.get('https://www.facebook.com/login.php?login_attempt=1&lwv=110')
print("...Facebook is open...")
# We find the xpath for insert our email address.
email = driver.find_element_by_xpath("/html/body/div[1]/div[3]/div[1]/div/div/div[2]/form/div/div[1]/input")
# Put mail.
email.send_keys(input_email_id)
print("Email put.")
# We find the xpath for insert our password.
password = driver.find_element_by_xpath("//input[@id='pass']")
# Put password.
password.send_keys(input_pwd)
print("Password put...")
# We find xpath of button Login.
button = driver.find_element_by_xpath("//button[@id='loginbutton']")
# We click on button of login.
button.click()
# Open session.
print("Facebook account is open.")
x = 0
while x<1000:
driver.get("https://www.facebook.com/sharer.php?u=youtube.com/viinvideoshd")
postbutton = driver.find_element_by_xpath('//*[@id="u_0_1v"]')
postbutton.click()
print("Shared!." , x)
x = x+1

#driver.get("https://www.facebook.com/Underc0de/")
#post_textarea = driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[1]/div/div[2]/div[1]/div/div[2]/div/div[1]/div/button[1]')
#post_textarea.click()
#print("Liked page.")

executeBot()


# [youtube]https://www.youtube.com/viinvideoshd[/youtube]
# https://www.viinacademy.com
# https://underc0de.org -> Mortal_Poison

Si desean hacerlo para móviles, también pueden hacerlo con Selendroid.

Posdata: Lo que está comentado luego del while es para dar like a una página de Facebook, en ese caso puse la página de Facebook de underc0de. Si no ven bien las imagenes, pueden dar click derecho, copiar link de la imagen y pegarla en una nueva pestaña, te aseguro que se verá mejor.

Y bueno [email protected], espero que les haya servido, ya les traeré un post más completo de cómo usar esto pero enfocado netamente a la seguridad ofensiva ;D. Cualquier sugerencia / duda / aporte será bien recibido.

Podrían compartir sus bots con Selenium en éste hilo, y así podríamos crear uno que sea útil para cualquier cosa.

Pueden ver una demo muy corta que creé aquí:



Páginas: 1 ... 9 10 [11]