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


 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Temas
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
1  Foros Generales / Foro Libre / Contar vueltas de hidden protocol en ataques ironing-pass? en: 23 Julio 2020, 22:16
Gracias
2  Programación / Desarrollo Web / Qué estructura y API utilizo para almacenar conversaciones de IA en navegador? en: 18 Mayo 2020, 10:11
 Hice un bot de telegram para navegador y ahora estoy desarrollando una IA conversacional de 0.


Al estar orientado a navegador multiplataforma no puedo manejar archivos del sistema programáticamente. Entonces el esquema que se me ocurrió es tener un archivo online único para cada cliente. El funcionamiento sería el siguiente:


Bot lee 2 mensajes.
Bot asocia el segundo mensaje al primero y le añade el número de ocurrencias:
Bot comprueba tamaño mensaje.
Bot guarda en LocalStorage.
Cuando se supera tamaño máximo el bot sube a una api web como pastebin el localStorage.
Bot limpia LocalStorage, guarda el link en localStorage y se repite el ciclo.


Ahora las dudas:
1. Existe alguna api como pastebin que funcione crossOrigen sin necesidad de token y que solo deje subir archivos sin editarlos ni borrarlos?


2. Como almaceno en localStorage este tipo de info? Json? XML? Todas las propiedades asociadas a una clave? Una clave por cada ocurrencia?


Estoy algo atascado en la implementación de guardar en localStorage.


Gracias!






3  Comunicaciones / Android / Alguien recomienda una lib ligera para tts termux? en: 13 Mayo 2020, 21:32
 Probé la api se termux con el comando termux-tts-speak "test" y nada
4  Programación / Desarrollo Web / [Aporte] Controlar node.js desde navegador, vanilla javascript. en: 13 Mayo 2020, 07:48
Controlar node.js desde un navegador.

Cómo funciona?
Guardas el código node.js como servidor.js en el equipo a ser controlado. Cambia la ip por la tuya actual.
Guardas el código navegador como cliente.html. Cambia la ip por la ip actual del equipo corriendo el servidor.
Ejecuta el código node.js con el comando node servidor.js
Abre el client.html en el equipo que va a controlar el servidor. Escribe @seguido del comando en el priner campo y dale al botón Enter.

Cómo y para qué lo uso yo?
Activo la zona wi-fi en un Android con termux.
Me conecto al wi-fi con otro Android incompatible con Termux.
Controlo el smartphone con node.js y lo uso de servidor para desarrollo, usar bots, herramientas de hacking...

Algo más?
Puedes controlar el node escribiendo directamente sobre la barra de direcciones comandos simples sin espacios ni otros caracteres que tu navegador codifique.
CÓDIGO VULNERABLE A CSRF Y MITM entre otros.


Código navegador:
Código
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>R.Control</title>
  6. <style>
  7. textarea {
  8. height: 30em;
  9. width: 20em;
  10.  display: block;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <input type="text" id="comando">
  16. <button type="button" id="bEnter">Enter</button>
  17. <textarea id="res"></textarea>
  18. <script>
  19. document.querySelector("#bEnter").onclick=function() {
  20. var xhr = new XMLHttpRequest();
  21. xhr.open("GET", "http://192.168.5.1:8080/?comando=" + document.querySelector("#comando").value , true);
  22. xhr.send();
  23. xhr.onreadystatechange = function() {
  24.  
  25.  if (xhr.readyState == 4) {
  26.  
  27.    if (xhr.status == 0 || xhr.status == 200) {
  28.  
  29.    try {
  30. alert(xhr.getAllResponseHeaders());
  31.  
  32.      document.querySelector("#res").value = xhr.responseText;
  33.      }catch(err){alert(err)}
  34.    }
  35.  }
  36. }
  37. }
  38. </script>
  39. </body>
  40. </html>

Código node.js
Código
  1. const { http } = require("http");
  2. const { fs } = require("fs");
  3. const { url } = require("url");
  4. const { exec } = require("child_process");
  5.  
  6. const PUERTO = 8080;
  7. const IP = "192.168.5.1";
  8.  
  9. http.createServer( function (request, response) {  
  10.  
  11.   var pathname = url.parse(request.url).pathname;
  12.   var q = url.parse(request.url, true);
  13.   var comando = q.query.comando;
  14.   var output = "";
  15.   console.log("Request for " + pathname + " received.");
  16.   if(comando !== undefined) {
  17.     console.log("Comando " + comando);
  18.     if(comando.substr(0,1) == "@") {
  19.       exec(comando.substr(1), (error, stdout, stderr) => {
  20. if(error) {
  21.          console.log("Error: " + error.message);
  22. } if(stderr) {
  23.          console.log("Error: " + stderr);
  24.  return;
  25. }
  26. console.log("Output: " + stdout);
  27. output += stdout;
  28.  
  29. response.setHeader("Access-Control-Allow-Origin", "*");
  30. response.writeHead(200, {'Content-Type': 'text/html'});
  31. response.write(output);
  32. response.end();
  33.  
  34.       });
  35.     }
  36.   }
  37. }).listen(PUERTO, IP);
  38.  
  39. console.log("Server listening at " + IP + ":" + PUERTO);
5  Seguridad Informática / Abril negro / Abril Negro 2020 - RS en: 9 Mayo 2020, 07:33
RS - RatSleep

Qué es? RatSleep es una aplicación Android escrita en Java para controlar remotamente dispositivos Android.

Cómo funciona? Se debe compilar la aplicación creando un nuevo proyecto para Android y añadiendo los archivos de código al proyecto. Modifica el archivo Conexión para remplazar la IP y el Puerto que vienen en el archivo por tu IP y tu puerto de preferencia. El programa recomendado para la compilación es Java N-IDE disponible gratuitamente en la Play Store. Tras compilar el archivo se te generará en la ruta JavaNIDE > rs > app > build > output > app-debug.apk
Solo necesitas instalar el archivo en el dispositivo a ser controlado.
Una vez instalado, cada pocos minutos la aplicación realizará una petición al servidor y puertos indicados.

Características
Puedes controlar el dispositivo con el netcat y otras alternativas que te peemitan comunicarte utilizando texto plano sin ningún protocolo.
Principalmente puedes ejecutar comandos nativos sobre el sistema.
Intentará conectarse en bucle a tu servidor cada 2-3 minutos aproximadamente.
Una vez instalada se autoejecutará hasta que el usuario decida desinstalarla manualmente. Esto quiere decir que se ejecuta tras reinicios, cierres forzados, apagados del dispositivo...
No necesita ROOT.

Por qué?
La idea surgió tras no poder conectarme desde un Android a otro automáticamente. Utilizo un Android de servidor en mi día a día y esta aplicación me permite controlar el dispositivo en cualquier momento con tan solo levantar el WI-FI compartido. Así desde un Android bastante básico puedo utilizar herramientas más avanzadas como Node.js, PHPcli, Postgresql, Radare2...

Estado actual?
Parte del código está mal estructurado, dificultando la integración del RAT con otra apk que se quiera preservar en el sistema por un hipotético usuario.
No tiene funcionalidad básica de ningún tipo utilizando las apis nativas como podrían ser acceso a cámara, galería, grabar audio...
Estas características son fáciles de incorporar y se pueden utilizar directamente con los comandos que vienen incorporados de fábrica en Android.
NO se incluye ningún tipo de cifrado ni protocolo por lo que alguien en tu misma red local, una aplicación instalada o alguien en internet podría realizar un ataque MITM.

Código
Pastebin - activity_main.xml

Pastebin - AndroidManifest.xml

Pastebin - Conexion.java

Pastebin - MainActivity.java

Pastebin - Servicio.java

Pastebin - StartBoot
6  Seguridad Informática / Abril negro / Abril Negro 2020 - JEX en: 9 Mayo 2020, 06:06
JEX - javascript Offline Hex Editor.

Qué es?
JEX es una aplicación web escrita en javascript para analizar y modificar todo tipo de archivos desde cualquier dispositivo que pueda utilizar un navegador.

Cómo funciona?
El funcionamiento es sencillo, abres el documento.html con el navegador y subes cualquier archivo. El botón Compilar sirve para que una vez que modifiques el hexadecimal del archivo se te descargue un nuevo archivo con las modificaciones incorporadas. El botón Info es auto descriptivo y para manejar la interfaz lo único que necesitas es scrollear el hexadecimal.
Pincha aquí para versión online.
También puedes copiar el código, pegarlo y guardarlo como JEX.html . Después lo abres con el navegador.

Características
Le incorporé un análisis a archivos ELF y se puede ampliar el análisis a diferentes archivos.
Detecta los mime type de múltiples archivos muy variados.
Indica la posible extensión del archivo.
Indica la arquitectura/plataforma*.
Indica la ordenación de bytes*.
Indica la cpu*.
Indica el tamaño del archivo.
Facilmente extendible.
*Para ELF.

Todo el código está en un solo archivo para hacerlo más accesible.

Por qué?
La idea surgió con la finalidad de ofrecer esta característica a dispositivos Android antiguos incompatibles con software que sí permitiría hacer estes análisis. También preservar su funcionamiento 100% offline para que no sea necesario trabajar en la red para no esponer el malware con el que se esté trabajando.

Estado actual?
El proyecto presenta un problema que me hizo no continuar temporalmente con el desarrollo. No se pueden subir archivos que superen los pocos kilobytes (600KB+). La opción que valoré para poder procesar archivos grandes pasa por utilizar WebAssembler, en el cual aún no tengo proficiencia suficiente y por eso no continué el desarrollo. No lo descarto en el futuro o tomar otras alternativas.

Código
Pastebin - JEX
7  Foros Generales / Foro Libre / Mi opinión sobre la gestión del gobierno español en la crisis del Covid19 en: 9 Mayo 2020, 04:42
Reflexiones e incógnitas ante la política, la sociedad y las crisis.

Antes de empezar, quiero remarcar que todas la conclusiones y posibilidades que expongo aquí, son meras especulaciones. No tengo ni la más mínima prueba que cerciore de ninguna forma las teorías. Es mera opinión. Simplemente es algo que me ronda la cabeza y me apetece compartir con vosotros.

Recuerdo la primera vez que me interesé por la política. Era cerca del 2003. Tenía yo por aquella época 10 años. Recuerdo que colindaba con la fecha del atentado a las torres gemelas que se produjo en el 2001. Me eboca a la época de mi infancia.
 Uno de mis primeros recuerdos fue con 3-4 años. Era la noche de navidad. Mi madre actuó de una forma poco común esa noche. Me dijo: "Tienes que ir a la habitación de tu abuela vale? " Mi padre abrió la puerta y abandonó la casa. Sabía que era la noche de navidad y me olía lo que pasaba, no me gustaba que me engañaran y me tomasen por tonto. Subí y mi abuela me regaló dinero y me intentaba entretener para que no abandonase su habitación. Era la primera vez en mi vida que entraba a esa habitación. Yo no quería el dinero porque me di cuenta de todo, salí corriendo y pillé a mi padre entrando con una bicicleta por la puerta. Mi madre le riñó porque les pillé. Yo le dije que ya lo sabía, ella estaba totalmente convencida de que yo no lo sospechaba ni lo más mínimo y le mentía para ocultar mi dolor. Se intentaba autoengañar, como podía permitirse asumir que por su culpa su queridísimo hijo había perdido la inocencia. Creo que ese día cambió algo en mi. Me paré a reflexionar pensando, cuantas más cosas serán mentira? Unos días después mi madre estaba en la cocina con el hornillo encendido, me dijo que no metiera la mano, que me iba a quemar. No dudé, metí la mano directamente hacia el fuego y efectivamente me quemé. Aún recuerdo esa dolorosa sensación.

Creo que gran parte de mi forma de ser procede de ese día. No como un trauma que me marcase, porque ya me lo esperaba y no me sorprendió, y menos con esa edad. Si no como el efecto mariposa.

Esa etapa era muy aburrida, era una casa grande de pueblo, sin vecinos de mi edad, y todo lo que tenía a mano eran mis familiares, 4 animales y algunas revistas.

Me pasé hasta mis 6 años que se murió mi abuela, viviendo en aquella casa aburrido, sin mucho más que hacer que jugar con los saltamontes y sentarme largas tardes a pensar, dejar volar mi imaginación.

Tenía unas ganas terribles de poder ir al colegio para estudiar, me parecía increhíblemente entretenido en comparación a las tardes dibujando o jugando yo solo a la pelota en el patio de mi casa.

Recuerdo mi etapa en la que tenía la mayor curiosidad que he tenido en la vida, con 7 años.

Ya en aquella época era totalmente libre. Me quedaba con los amigos desde las 4 de la tarde hasta las 6 o 7. Después me iba a casa de mis primos desde las 7 de la tarde hasta que anochecía cerca de las 10-11. Después me volvía a casa solo de noche. Era exageradamente paranoico, miraba hacia todos los lados todo el rato. Mis padres jamás me habían advertido de los peligros reales que ahora comprendo, pero probablemente tampoco estaba tan espuesto, era el más rápido corriendo de mi clase y cualquier ruido por mínimo que fuese llamaba mi atención. Me imaginaba todo el rato como sería si alguien me intentase atacar, así el miedo no me paralizaría y podría salir disparado sin dudas.

No es que mis padres fuesen irresponsables, o al menos mi madre no lo era, pero mi capacidad de convencimiento para con los demás era más que elevada.

Me encantaba mirar las estrellas, el tema que más me apasionaba sin duda alguna era el espacio. Intentaba comprenderlo, me imaginaba estrellas y planetas acercándose unos a otros, intentaba aplicar la lógica de la tierra en como serían las órbitas cuando se acercasen, me fascinaba imaginármelo asi como también reflexionar sobre mi mismo, el sentido de la vida...

Mi interés en la política y la sociedad vino poco después. El desencadenante fue que empecé a posponer las tareas para salir al parque con los amigos, jugar al Pokémon, y me quedaba despierto hasta las tantas para ver Buenafuente. Creo que era el único programa en la época que respetaba al espectador y no lo trataba como un imbécil de *****. Mis compañeros veían los Lunis o incluso los Teletabis y me daba verguenza ajena, no lo comprendía, eran tan básico predecible y aburrido, cómo les podía gustar? Era todo tan básico y aburrido...

 Me acostaba tarde y cuando me despertaba tenía miedo a las riñas en clase asique hacía los deberes corriendo.
No me daba tiempo asique dije, y si me pongo el despertador antes? Me lo puse a las 6 de la mañana. Encendí la tele y empecé a hacer zapping, todo en la tele era aburridísimo y absurdo, menos una cosa. Las noticias de TVE. Se hablaba de un montón de cosas que no entendía y eso me fascinaba.

Me ponía a hacer los deberes con las noticias de fondo, noche cerrada, sin ruidos... Era una sensación que me agradó tanto que repetí durante años.

Soñaba con tener una empresa. Pensaba guau, creo que se me daría increhíblemente bien tener una empresa!! Qué maldita mala suerte no tener un padre que tuviese una empresa que yo pudiese manejar. Me imaginaba a otras personas que si tendrían al suerte con mi edad pero que probablemente eran como mis compañeros y no sabría aprovechar semejante oportunidad, puede que incluso lo detestasen. Me daba mucha rabia. Quería tener una oficina a la que ir de camisa para tratar asuntos interesantes como los que veía en las noticias.

Obviamente siendo un númerito más diario en las audiencias de TVE, también empecé a conocer la política. Salía Zapatero por aquella época, era mi favorito porque siempre estaba sonriendo y afrontaba a la prensa sin esconderse, hablaba directamente con el presentador del telediario y parecía alguien muy inteligente y sin demasiadas malas intenciones. Finalmente ganó esas elecciones generales y también las siguientes.

Vino la crisis y adios PSOE, hola PP. Empezaron a salir escándalos y críticas por todos los lados y se perdió bastante la confrontación dialéctica de argumentos para pasar a personajes como Esperanza Aguirre que recordaban más al propio Jesús Gil comiéndose un zanco de pollo en una bañera que a otra cosa.

En la actualidad 2020 la política es un tema candente y que ha crecido exponencialmente en los últimos años. Ha pasado a ser el nuevo corazón donde seguimos a los personajes como si estuviésemos viendo Friends. Tener cabezas políticas quita responsabilidad a las siglas de cada partido, simplifica todo el debate político.
Durante estos 2 últimos años he sido un gran fan de las intervenciones políticas en medios, debates, noticias...
Estaba presenciando como la política se iba a hundir, o más bien la clase política. Y justo en el momento exacto que gana el PSOE aparece la crisis del coronavirus... Otra vez? Ummm... Y la vuelve a cagar... Ummm... Pero esta vez hay una diferencia, no tengo 10 ni 14 años. El PSOE que nos ha engañado a la gran mayoría en uno de los mayores alardes de inteligencia que jamás he presenciado, pues resulta que es totalmente incapaz de ver venir el virus, tomar las medidas adecuadas a tiempo, y gestionar correctamente hasta las cosas más básicas tras saber de que va la historia y tener referencias y un supuesto equipo de (aún más supuesto) expertos. Pero si lo veía venir yo a kilómetros... Qué no tengo ni p**a idea! Cómo es posible entonces que ellos no?
Aquí es donde empiezo a especular sobre que está pasando. Empiezo a generar teorías que explicarían esta discrepancia y me surgen muchas, demasiadas. Incluso puede que varias sean verdad simultaneamente, o que absolutamente ninguna lo sea.

Todas ellas derivan de 3 ideas principales que paso a exponer:

1. El PSOE está lleno de chimpancés que se creen totalmente por encima de la inteligencia colectiva. En realidad ellos están siendo totalmente controlados por las verdaderas inteligencias del mundo sin olérselo ni lo más mínimo dada su baja suficiencia mental.

La política estaba fracasando y las empresas y la sociedad podrían estar empezando a controlar el cotarro. La mayor amenaza para las élites. Si no hay pobres, no hay ricos, esto es así aquí y en Pekín. Quien coño se va a deslomar a picar piedra día y noche por dos duros si no pasa hambre? Si no hay picapiedras no hay quien sostenga la economía.

2. La clase política se adora, se admira y se hacen pajas pensando los unos en los otros. Se creen la élite del mundo y disfrutan tirándose los trastos a la cabeza y metiéndose en el fango. Con la deportividad propia de los peleadores de los deportes de contacto de se lían a hostias delante de la cámara para crear espectáculo y detrás de cámaras se van todos juntos a entrenar y a emborracharse.

A más crisis, peores decisiones y más muertos, pues mayor es la rabia que impulsa a votar. Y a mayor número de votos más dinero para todos. "Cuanto peor para todos, mejor. Mejor para mi el suyo. Beneficio político."

3. La política está llena de paletos sin valores o están tan enfrascados mirándose los unos a los otros que son totalmente incapaces de ver quien toca a la puerta.

La verdad es que me da bastante rabia ver tantas malas decisiones una tras otra, que cualquiera puede ver venir de lejos y que se toman a conciencia.
Por ejemplo la desescalada actual, es obvio que va ha haber repunte. Es absurdo desescalar o esto de la fases. Habría que continuar con el confinamiento hasta que se reduzca a un número muy pequeño los casos, y entonces ir alternando entre desconfinamiento y confinamiento para mantener siempre las infecciones en una cifra baja. Con las medidas tomadas no se va a mejorar la economía, se abrirá hasta que revienten los hospitales y entonces no les quedará otra que cerrar todo de nuevo o ser linchados públicamente. Y qué es mejor? Tener la infección controlada y mantener abiertos los negocios tomando medidas, o dejar ahora salir a todo dios y que a los 3 meses las empresas tengan que hacer todas otro parón con lo que eso supone?
Quizás esté todo previsto para cargarse a la pequeña y mediana empresa, y como la demanda no se va a desplomar se benefician las grandes empresas. La verdad es que no entiendo la motivación del gobierno por la desescalada. Supongo que quieren que se vaya infectando todo el mundo de forma controlada cuanto antes. Pero se van a cargar a millones de personas si hacen esto... Se lo ahorran de pensiones.
8  Foros Generales / Foro Libre / Colores favoritos? en: 5 Mayo 2020, 03:46
 Me gustaría saber la preferencia en general de los usuarios del foro.
9  Comunicaciones / Android / Scraper cutre de los mensajes recientes del foro.Java, Js, Ncat, WebView, Termux en: 2 Mayo 2020, 08:43
Código
  1. package com.stringmanolo.elhrecent;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.webkit.WebView;
  6. import android.webkit.WebChromeClient;
  7. import android.webkit.JsResult;
  8. import android.os.Handler;
  9. import com.stringmanolo.elhrecent.R;
  10.  
  11. /*
  12.  
  13. Este código ha sido desarrollado y probado en el siguiente entorno:
  14.  
  15. Sistema: Android.
  16.  
  17. IDE: Java N-IDE.
  18.  
  19. Software adicional: Termux/netcat y google chrome.
  20.  
  21. */
  22.  
  23.  
  24. /*
  25.  
  26. Como funciona?
  27. Pones un servidor a la escucha y abres esta aplicación.
  28.  
  29. Como compilar?
  30. Debes crear un nuevo proyecto para Android y añadir el codigo.
  31.  
  32. Este es el MainActivity.java
  33.  
  34. Añade también el permiso de acceso a internet en el manifest y añade un webview en el activity_main.xml con id navegador
  35. android:id="@+id/navegador"
  36.  
  37. */
  38.  
  39. public class MainActivity extends Activity {
  40.  @Override
  41.  protected void onCreate(Bundle savedInstanceState) {
  42.    super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
  43.  
  44. /* id.navegador definido en activity_main.xml */
  45.    final WebView Navegador;
  46.    Navegador = (WebView)findViewById(R.id.navegador);
  47.  
  48. /* Habilita javascript */ Navegador.getSettings().setJavaScriptEnabled(true);
  49.  
  50. /* Utiliza chrome de cliente HTTP. */
  51.    Navegador.setWebChromeClient(new WebChromeClient() {
  52.      @Override
  53.      public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
  54. /* Habilita el alert */
  55.        return super.onJsAlert(view, url, message, result);
  56.      }  
  57.    });
  58.  
  59. /* Cambia el userAgent para que no salga el confirm de tapatalk */ Navegador.getSettings().setUserAgentString("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36");
  60.  
  61. /* Carga la página con mensajes recientes del foro. */ Navegador.loadUrl("https://foro.elhacker.net/recent.html");
  62.  
  63. /* Handler para zumbar el script en el contexto de la página del foro. Con espera asíncrona. */
  64.    final Handler jsh = new Handler();
  65.    jsh.postDelayed(new Runnable() {
  66.      @Override
  67.      public void run() {
  68.  
  69. /* Código desglosado:
  70.  
  71. javascript:
  72. Pseudoprotocolo. Permite ejecutar el script en el contexto de la página actual.
  73.  
  74. document.querySelectorAll(\".bordercolor\");
  75. Obtiene todos los elementos de la página con la clase bordercolor.
  76.  
  77. tags+=links[i].outerHTML;tags+=\"<p></p>\";
  78. Obtiene el código de todos los elementos en un string y los separa utilizando etiquetas <p>.
  79.  
  80. return \"SFRUUC8xLjEgMjAwIE9LDQoNCg==\" +''+btoa(tags);
  81. En la llamada a la funcion Scrap() retorna un ok status 200 codificado en base64 y codifica a base64 el código de todos los elementos obtenidos de la página.
  82.  
  83. r.open('GET','http://127.0.0.1:8080/q?codigo='+Scrap(), 1);
  84. Envia una petición GET a la dirección 127.0.0.1 puerto 8080 el parámetro y en la propia url el retorno de la función Scrap()
  85.  
  86. */
  87. Navegador.loadUrl("javascript:function Scrap(){var links=document.querySelectorAll(\".bordercolor\");var tam=links.length;var tags=\"\";for(var i=1;i<tam;++i){tags+=links[i].outerHTML;tags+=\"<p></p>\";}return \"SFRUUC8xLjEgMjAwIE9LDQoNCg==\" +''+btoa(tags)}r=new XMLHttpRequest();r.open('GET','http://127.0.0.1:8080/q?codigo='+Scrap(), 1);r.send();r.onreadystatechange=function(){r.readyState==4&&r.status==200?alert(r.responseText):1}");  
  88.      }
  89.    }, 15000); /* Esperar 15 segundos para conexiones lentas. */
  90.  }
  91. }
  92. /* Se debe poner a la escucha previamente un servidor en la dirección y puerto que asignes en el script.
  93.  
  94. Yo utilizo el siguiente comando:
  95.  
  96. $ netcat -l -v 127.0.0.1 8080 | grep -Po '(?<=(codigo=)).*(?=HTTP)' | base64 -d > codigoH.html | netcat -l -k 127.0.0.1 8081 < codigoH.html | echo -e "\r\n\r\n\r\n"
  97.  
  98. Comando desglosado:
  99.  
  100. netcat -l -v 127.0.0.1 8080
  101. Pone a la escucha y logea la actividad en la ip 127.0.0.1 y puerto 8080. Según tu versión de netcat puede cambiar la sintaxis.
  102.  
  103. | grep -Po '(?<=(codigo=)).*(?=HTTP)'
  104. Obtiene solo el string entre codigo= y HTTP. Es decir, solo el 200 ok status y el código extraido de la página codificado en base64.
  105.  
  106. | base64 -d > codigoH.html
  107. Decodifica de base64 y guarda el stream en un archivo codigoH.html
  108.  
  109. | netcat -l -k 127.0.0.1 8081 < codigoH.html
  110. Pone a la escucha el netcat también en la dirección 127.0.0.1 con puerto 8081 y responde con una petición y el contenido html. De esta forma netcat actual de servidor válido para el navegador. Al poner http://127.0.0.1:8081 recibes el código. Según tu navegador puede que necesites preformatear el documento en un html válido y añadirle algunas cabeceras o etiquetas meta para la codificación.
  111.  
  112. echo -e "\r\n\r\n\r\n"
  113. Añade el fin de la petición para que el navegador carge la página y rompe el netcat.
  114.  
  115. */


Hice un scraper cutre para ver los últimos mensajes del foro en el Android.

Se le puede meter el runable como servicio y arrancar al inicio para tenerlo 24/7. Hacer un intento desde un broadcast reciber, meterle un systemclock.pause, cambiar el netcat y demás por sockets, mostrar el código en una preview con notificaciones o en plan widget o ventana... También podeis meterle una interfaz de javascript y controlar el navegador desde el netcat con la interfaz, el pseudoprotocolo, el xhr y el eval. Por ejemplo podrías darte un llama cuelga automáticamente desde un Android a otro cuando alguien publique un nuevo tema en un foro que te interesa xD

Puedes también enchufarle por pseudoprotocolo etiquetas style a lo bruto después del for
tags+=\"<style>td{border-left: 3px solid red;background-color:lightgrey;}</style>\";

Puede reusar la misma metodología para enviar forms, o hacer otras tareas con javascript en otras páginas.

Igual más alante lo mejoro para que se pueda automatizar con interfaz en múltiples páginas.
10  Programación / Desarrollo Web / Usar react offline? en: 1 Mayo 2020, 19:11
Hola, estoy intentando correr React offline y no tengo nada claro cual es el problema.

En su web tienen estos script src:
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>

<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>

Entonces accedí a cada link y usando este programa:
https://github.com/StringManolo/Smpider/blob/master/shortVersion.js

seleccioné el innerHTML de los pre tag de los links y me los descargué como 2 archivos. reactDev.js y reactDevDom.js

Utilicé un ejemplo que tienen en la web y substituí los valores de ambos atributos src por la ruta de los nuevos archivos.

Por último hice un servidor en node.js para responder al navegador con los content-type en la cabecera.

Hago un url.parse con el módulo url y en base a la extensión escribi el content type adecuado.
Algo así:
Código
  1. if (pathname.substr(pathname.length-3 == ".js") {
  2. response.writeHead(200, { "Content-Type": "text/html"});
  3. } else {
  4. response.writeHead(200, { "Content-Type": "text/javascript"});
  5. }
  6. response.write(contenidoArchivo);

Probé varios content-type en lugar de text/javascript, no sé si estará ahí el error.


Cuando cargo el index.html simplemente no carga el botón que se supone que tiene que cargar.

El ejemplo es este de carga react en un minuto con las etiquetas script.
https://reactjs.org/docs/add-react-to-a-website.html



Básicamente quiero poder desarrollar offline y cachear las libs para que con mi caca internet no tarde 5 minutos en descargar las libs cada vez que abra una app en el navegador.
 
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines