Claro, no me niego tampoco a las clases Atómicas, seria ilógico que no me diera cuenta del resultado si en el mensaje puse el output donde se ve clarisimamente el 10
Ese ejemplo lo puse mas bien pensando a futuro en fileteruso, porque estoy 100% que le tocara aplicar un lock
rub'n muy interesante, una pregunta como hace para detectar ese tipo de malware??
Pues obviamente por el código, siempre y cuando no este ofuscado, cifrado etc, incluso ofuscado algunas veces puedes llegar a interpretar, pero no es lo ideal,
A parte debes conocer el lenguaje de dicho malware, te ayudara mas rápido a su entendimiento.
Que fuerte me parece siendo tu de Venezuela que solo te preocupe ver un policía con un casco yo estoy en tu país y me tiro a la calle con una escopeta para matar a ese mamón.
Lo malo que me matarán a mi antes.
No digas eso, no es tan fácil así nada mas y ya. y listo y solución , que luego persigan a tu familia, o te den una golpiza en un dia común y corrient tu tomando el sol, por querer ofender a paco, hay presos politicos, por andar en esa, que mueren hasta de hambre,
y quizas el popular PalitroqueZ ya hasta el tema de maduro le aburra, y por eso comenta lo del poli, ha mi me harta la política, por eso casi no me verán mucho leyendo sobre esto. me conformo con trabajar y mandar el mother fucking money a mi familia en Vzla que mas da dog.
fileteruso que tal usa geshi, para que en un entorno de concurrencia un recurso compartido se actualize de manera correcta necesitas un lock con synchronized usandolo tanto en el método(no recomendado) y/O forma de bloque.
@ivancea96 con clases Atómicas no basta para que un recurso compartido sea actualizado correctamente por múltiples hilos a la misma ves, tampoco basta con volatile se necesita un lock, para asegurar la correcta sincronización.
Lo podemos ver con un ejemplo simple con 20 Hilos, linea 18, y usando un ExecutorService que es mejor que usar directamente la clase Thread o Runnable.
Ese resultado de arriba es única y llanamente debido por que no se tiene un lock lo comente apropósito al invocar al método withAtomicInteger() en la linea 21, y cada Hilo entra a modificar el recurso count, e incluso lo ideal siempre es un bloque lock, es decir no usar synchronized en el método debido a que hay mas costo en el performance de ejecución, es mejor localizar justo el recurso que se modificara, tarea no tan fácil de hacer la mayoría de las veces
Otro ejemplo con 3 hilos, lo hize por la brevedad, nasty, usando atomic Integer y con lock comentado
la sincronizacion tiene un efecto bastante duro por el abuso del mismo,DEADLOCK, cuando varios hilos necesitan acceso exclusivo al recurso bloqueandolo/manteniendo el bloqueo, siendo también un bug difícil de detectar
Mmm ya va, el IMEI se sabe que hay herramientas q lo sobreescriben Aka( IMEI repair )generando otro IMEI, pudiendo ser válido un tiempo, dependiendo el terminal, por ejemplo Samsung, ciertos certificados se le reescriben pudiendo bypassear el bloqueo por IMEI, en la mayor parte del mundo se aplica, siendo ilegal en muchas...a menos que se justifique el cambio de este por mal flasheo y/o problemas de software etc...
Muchos Operadores también han creado cierto convenio para compartir sus listas negras de teléfonos bloqueados/reportados por IMEI, pero aún así, se logra burlar eso.
Y mira que hace con el archivo, quizás te de mas información acerca de su extensión o de como esta cifrado.
saludos.
Hola Fary que estés bien dog, sabes que en unos de esos días logre solucionar, pues resulta que el stub.dll en realidad es un .jar(pero no funciona con solo renombrarlo a .jar y ya), algún método se uso para comprimir los bytecode dentro de una .dll, lo desconozco pero si se que hay la forma, el codigo para extraer el stub.dll es el siguiente, lo que hace es leerlo completamente y guardarlo en un .jar
19:08:06.783[main] INFO CrearJar - Desinstala.class
19:08:06.783[main] INFO CrearJar - Principal.class
19:08:06.783[main] INFO CrearJar - extra/ClassLoaderMod.class
19:08:06.783[main] INFO CrearJar - extra/Constante.class
19:08:06.783[main] INFO CrearJar - extra/Constantes.class
19:08:06.783[main] INFO CrearJar - extra/RegistryUtils.class
19:08:06.799[main] INFO CrearJar - opciones/Archivo.class
19:08:06.799[main] INFO CrearJar - opciones/DesUAC.class
19:08:06.799[main] INFO CrearJar - opciones/EnviarFile.class
19:08:06.799[main] INFO CrearJar - opciones/Informacion.class
19:08:06.799[main] INFO CrearJar - opciones/Instalador.class
19:08:06.799[main] INFO CrearJar - opciones/Interface_.class
19:08:06.799[main] INFO CrearJar - opciones/Kille.class
19:08:06.799[main] INFO CrearJar - opciones/Opcion1.class
19:08:06.799[main] INFO CrearJar - opciones/Opcion10.class
19:08:06.799[main] INFO CrearJar - opciones/Opcion12.class
19:08:06.799[main] INFO CrearJar - opciones/Opcion13.class
19:08:06.799[main] INFO CrearJar - opciones/Opcion14.class
19:08:06.799[main] INFO CrearJar - opciones/Opcion2.class
19:08:06.799[main] INFO CrearJar - opciones/Opcion5.class
19:08:06.799[main] INFO CrearJar - opciones/Opcion6.class
19:08:06.799[main] INFO CrearJar - opciones/Opcion7.class
19:08:06.799[main] INFO CrearJar - opciones/Opcion7b.class
19:08:06.799[main] INFO CrearJar - opciones/Opcion8.class
19:08:06.799[main] INFO CrearJar - opciones/Opcion9.class
19:08:06.799[main] INFO CrearJar - opciones/Opcion9b.class
19:08:06.799[main] INFO CrearJar - opciones/OrdenCaptura.class
19:08:06.799[main] INFO CrearJar - opciones/PassAll.class
19:08:06.799[main] INFO CrearJar - opciones/Pina.class
19:08:06.799[main] INFO CrearJar - opciones/WebBot.class
19:08:06.799[main] INFO CrearJar - opciones/a.class
19:08:06.799[main] INFO CrearJar - opciones/interfaceInfo.class
19:08:06.799[main] INFO CrearJar - opciones/passFilezilla.class
19:08:06.799[main] INFO CrearJar - opciones/passIDM.class
19:08:06.799[main] INFO CrearJar - opciones/passNoip.class
Aquí esta la main class, el servidor lee el password contenido en un .xml, para descifrar los bytecodes en runtime y cargarlos en memoria por medio del custom classloader, se ven otras versiones de arabes donde esa contraseña esta alojada en un json
Clase que descifra contenida solo en el servidor, la linea 19, en el método init() se le setea un dos es decir Cipher.DECRYPT_MODE
Gracias por la respuesta. Si efectivamente tengo un puerto configurado para que las peticiones que lleguen por ese puerto se envíen a la ip del ESP8266.Si ya había visto esa posibilidad pero el problema que veía era para mantener la IP actualizada, porque si es en un PC puedes descargarte la aplicación de NO-IP. Por lo que he visto es posible realizar la actualización mediante código ya que este dispositivo que se programa con arduino lo hace mediante Dyndns: https://www.open-electronics.org/arduino-ddns-dynamic-dns/ Ahora me toca ver como funciona su codigo y adaptarlo, muchas gracias por la orientación
Bueno, el bombillo es tuyo, y quizas yo sea algo paranoico o aburrido, bueno siempre ando con aburrimiento al maximo, deja tu bombilla no ha plena vista donde alguien la pueda tomar y hacerle modificaciones, por ejemplo,
Quitarla de donde la tengas, cambiarle el firmware y leer el password de tu wifi.(No tan facil como se lee claro)
Un modulo bastante vulnerable por lo visto, dada su flexibilidad. habría que implementar comunicación SSL/TLS entre otras cosas...ya muchos fabricantes an actualizados módulos de bombilla parecidos, añadiendo auntenticación TLS, info sobre POC explotando uno de estos módulos.
Otra cosa mas ya vi tu aplicación web, yo programe una parecida pero sin el modulo de wifi, solo arduino, de donde el servlet le hace escritura al puerto serial aka (serial port) con una API que implementa internamente el mismo IDE de arduino JSSC(Java Simple Serial Connection) by Alexey Sokolov , uso patrón Observer/Observable(pero con este framework se usa websockets para hacer el push y actualizar desde el server al cliente), para que se refleje el cambio del bombillo y del CheckBox en todas las UI que estén conectadas. créditos a estos dos
Luego continuare con ese mini proyecto me estaba gustando..
Desventajas es que tienes que conectar el arduino directo a la pc que ejecuta la aplicación web siendo una limitante, porque si quiero subir esa app a un hosting, la app puedo hostearla, pero desde un navegador web, no se puede acceder al puerto serial así tal cual(Ejemplo que abras la app desde otro navegador desde internet y escribas en mi puerto serial por medio del arduino, en local si que se puede tranquilamente), según investigue ahí otros protocolos de escritura de puerto serie remotos para estos casos, la gente de Arduino tienen una aplicación propia que maneja bien esto.
Solución potencial, conexion inalámbrica, por medio de una shield, sin hacer conexión vía serial, solo vía sockets, HttpRequest ...
Versión inicial bastante fea la UI , pero funcionaba, use el tipico rele de 5voltios
Luego un toque mas de cariño, aunque me pase de capas con inkscape , aqui cambie el circuito y use un triac bt136 mas un octoacloplador moc3021
Gracias por leer mi duda. Me gustaría saber cómo ciertos dispositivos conectados a una red WIFI doméstica puedes comunicarte con ellos desde un móvil que no esté conectado a la red Wifi doméstica. Por ejemplo, un robot de limpieza tipo Roomba que lo puedes controlar desde cualquier sitio. No entiendo cómo se produce la comunicación ya que es de suponer que la IP pública sea dinámica y por tanto no comprendo cómo una aplicación móvil se puede comunicar si la dirección IP cambia
Mi duda me viene porque estoy programando un módulo ESP8266-01, consigo comunicarme con el fuera de mi red Wifi siempre que conozca mi IP pública (y que tenga cobertura en mi móvil) pero como cambie mi IP pública adiós comunicación. Muchas gracias.
Un saludo.
Claro, usa un dns dinámico como NO-ip o Dyndns, este lo que hace es que asocia tu dirección ip publica a un subdominio, que cuando tu ip cambie, siempre apuntara a ese dominio creado por ti,teniendo un tiempo de actividad por 1 mes o algo así. dependiendo del servicio que uses dog.
Te tocaría también abrir los puertos en el router, port forwarding... claro esto es opcional, pero es mas cómodo, para que tu ip publica de servicio a tu aplicación por un determinado puerto en especifico.