|
681
|
Programación / Java / Re: Matches para palabras o silabas
|
en: 10 Febrero 2019, 02:35 am
|
pero no se como implementart las expresiones para por ejemplo una cadena siso me devuelva true pero si es una cadena sis me devuelva false
Esa parte que siso te de true y sis false? quieres decir? Hay tienes para empezar la clase Pattern en su docu ayuda mas private void silabas() { final String silabas = "aeiouy"; final Pattern pattern = Pattern.compile("[aeiyou]+"); final Matcher matcher = pattern.matcher(silabas); System. out. println(matcher. matches()); } private void palabras() { final Pattern pattern = Pattern.compile("[a-zA-Z]+");// falta quitar espacios puntos y comas, con replaceAll("^[.,\\s]+"), voy a dormir XD final Matcher matcher = pattern.matcher(sis); System. out. println(matcher. matches()); // true con ambos String }
|
|
|
682
|
Comunicaciones / Dispositivos Móviles (PDA's, Smartphones, Tablets) / Re: Quiero rootear mi cel Ayuda
|
en: 10 Febrero 2019, 02:04 am
|
Hola tengo un LG G2 stylus y pues ando con ganas de rootearlo (En realida no tengo ni una gana de rootearlo) pero debo hacerlo porque a pesar de ser decente viene con poca memoria de almacenamiento y por eso debo hacerlo para poder usar mi sd para guardar los juegos jeje. Ah y de paso, no viene con 4g ni LTE ¿hay posibilidad de desbloquear eso con root? SALU2. Sinceramente te tocaría probar, y de paso, no tendrás garantía que se desbloquee ese feature 4g LTE.
|
|
|
683
|
Foros Generales / Foro Libre / Re: Entrega de ayuda humanitaria provoca primeras tensiones en la frontera en Venezu
|
en: 9 Febrero 2019, 12:44 pm
|
A mi tampoco me gusta la política pero si mi país lo esta pasando mal y vivo allí me preocuparía bastante la situación de ese país y mas cuando nos afectas a los demás porque al final el conflicto que tenéis en vuestro país se ha vuelto internacional y aquí en España tenemos mucho Venezolanos y nos cuenta lo mal que lo pasan en su país, quieras que no algo nos afecta aunque no seamos de allí.
Si comparto una noticia como que ha llegado la ayuda a tu país lo que menos me preocupa es el casco de la policía que aparece en la foto, lo que me preocuparía es como pasarla a mi país esa ayuda.
Pues si tal cual, cuando llegue a Madrid, me toco muchos meses trabajar en glovo, uber, solo faltaba delivero (y en bicicleta, menos mal que tengo una de ciclismo, mas rápida que una montañera), ese bolso de mi foto es de deliveroo, prestado porque no tenia, que es la que según paga mas el cochino dinero $€ , pero el tema es que, tengo muchisisimos amigos en glovo Venezolanos , y pues, muchos de ellos seguirán en eso, y cada ves que los veo, digo mi jodido dios, dale paciencia a esa gente y que lo malo en sus mentes,no se les cuele dog ...
|
|
|
685
|
Seguridad Informática / Análisis y Diseño de Malware / Re: Analisis de stub.dll con Java
|
en: 8 Febrero 2019, 23:21 pm
|
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.
|
|
|
686
|
Foros Generales / Foro Libre / Re: Entrega de ayuda humanitaria provoca primeras tensiones en la frontera en Venezu
|
en: 7 Febrero 2019, 23:23 pm
|
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.
|
|
|
688
|
Programación / Java / Re: Acceder y modificar una variable global desde distintos threads
|
en: 6 Febrero 2019, 22:57 pm
|
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.
package foro import java.util.Objects; import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Logger; import java.util.stream.IntStream; public class UsoSynchronized { private static final Logger LOGGER = Logger. getLogger(Principal. class. getSimpleName()); private ExecutorService executors = null; private volatile int count = 0; private AtomicInteger atomicInteger = new AtomicInteger(0); public UsoSynchronized() { try { executors = Executors.newFixedThreadPool(20); IntStream.rangeClosed(1,10) .forEach(e -> { executors.submit(()-> withAtomicInteger()); }); }finally { if(Objects.nonNull(executors)) { executors.shutdown(); // ayuda a evitar memory leaks, fugas de memoria } } } public void hola() { synchronized (this) { LOGGER.info("Hola " + (++count)); } } public void withAtomicInteger() { //synchronized (this) { LOGGER.info(""+ atomicInteger.incrementAndGet()); //} } public static void main (String... haga) { new UsoSynchronized(); } } }
Feb 06, 2019 10:48:29 PM foro withAtomicInteger INFORMACIÓN: 5 Feb 06, 2019 10:48:29 PM foro withAtomicInteger INFORMACIÓN: 10 Feb 06, 2019 10:48:29 PM foro withAtomicInteger INFORMACIÓN: 9 Feb 06, 2019 10:48:29 PM foro withAtomicInteger INFORMACIÓN: 8 Feb 06, 2019 10:48:29 PM foro withAtomicInteger INFORMACIÓN: 7 Feb 06, 2019 10:48:29 PM foro withAtomicInteger INFORMACIÓN: 6 Feb 06, 2019 10:48:29 PM foro withAtomicInteger INFORMACIÓN: 2 Feb 06, 2019 10:48:29 PM foro withAtomicInteger INFORMACIÓN: 3 Feb 06, 2019 10:48:29 PM foro withAtomicInteger INFORMACIÓN: 4 Feb 06, 2019 10:48:29 PM foro withAtomicInteger INFORMACIÓN: 1
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 comentadopublic class UsoSynchronized2 { private int count= 0; private AtomicInteger atomicInteger = new AtomicInteger(0); public UsoSynchronized2() { } private void init (final String msg ) { // synchronized (this) { System. out. println(msg + atomicInteger. incrementAndGet()); // } } public static void main (String ... blabl) { UsoSynchronized2 usoSynchronized2 = new UsoSynchronized2(); IntStream.rangeClosed(1,100) .forEach( e -> { new Thread(() -> usoSynchronized2. init("Hilo 1 ")). start(); new Thread(() -> usoSynchronized2. init("Hilo 2 ")). start(); new Thread(() -> usoSynchronized2. init("Hilo 3 ")). start(); }); }
Hilo 1 1 Hilo 2 2 Hilo 3 3 Hilo 3 4 Hilo 1 5 Hilo 2 6 Hilo 1 7 Hilo 2 8 Hilo 3 9 Hilo 3 10 Hilo 2 11 Hilo 3 12 Hilo 2 13 Hilo 1 14 Hilo 2 15 Hilo 1 16 Hilo 1 17 Hilo 2 18 Hilo 2 19 Hilo 1 20 Hilo 1 21 Hilo 2 22 Hilo 1 23 Hilo 2 24 Hilo 3 25 Hilo 1 26 Hilo 1 27 Hilo 3 28 Hilo 1 29 Hilo 1 30 Hilo 3 31 Hilo 1 32 Hilo 2 33 Hilo 2 34 Hilo 1 35 Hilo 3 36 Hilo 2 43 Hilo 3 42 Hilo 3 41 Hilo 2 40 Hilo 2 39 Hilo 1 38 Hilo 1 37 Hilo 2 44 Hilo 3 45 Hilo 1 46 Hilo 1 47 Hilo 1 48 Hilo 2 49 Hilo 3 50 Hilo 2 51 Hilo 2 52 Hilo 3 53 Hilo 1 54 Hilo 2 55 Hilo 2 56 Hilo 1 57 Hilo 1 60 Hilo 3 61 Hilo 2 59 Hilo 2 62 Hilo 3 58 Hilo 1 65 Hilo 2 66 Hilo 3 64 Hilo 1 63 Hilo 3 67 Hilo 1 68 Hilo 2 69 Hilo 3 70 Hilo 1 71 Hilo 1 72 Hilo 3 73 Hilo 3 75 Hilo 1 76 Hilo 3 77 Hilo 2 78 Hilo 2 74 Hilo 1 80 Hilo 1 81 Hilo 2 82 Hilo 3 79 Hilo 2 83 Hilo 1 84 Hilo 3 85 Hilo 1 88 Hilo 3 87 Hilo 2 86 Hilo 3 98 Hilo 1 104 Hilo 3 97 Hilo 2 96 Hilo 1 95 Hilo 2 109 Hilo 2 94 Hilo 3 93 Hilo 3 92 Hilo 1 91 Hilo 1 113 Hilo 1 114 Hilo 1 90 Hilo 1 89 Hilo 1 123 Hilo 1 132 Hilo 2 133 Hilo 3 121 Hilo 2 120 Hilo 1 119 Hilo 2 118 Hilo 2 117 Hilo 3 115 Hilo 2 116 Hilo 3 112 Hilo 2 111 Hilo 3 110 Hilo 3 108 Hilo 1 107 Hilo 3 106 Hilo 3 105 Hilo 1 163 Hilo 3 103 Hilo 1 101 Hilo 1 102 Hilo 3 100 Hilo 2 99 Hilo 2 164 Hilo 3 162 Hilo 3 165 Hilo 2 161 Hilo 2 167 Hilo 3 160 Hilo 1 159 Hilo 3 158 Hilo 3 169 Hilo 2 157 Hilo 3 156 Hilo 2 155 Hilo 3 173 Hilo 3 154 Hilo 1 153 Hilo 1 152 Hilo 2 151 Hilo 3 150 Hilo 3 149 Hilo 1 148 Hilo 2 147 Hilo 1 146 Hilo 3 145 Hilo 2 144 Hilo 3 177 Hilo 2 179 Hilo 3 143 Hilo 3 142 Hilo 2 141 Hilo 2 140 Hilo 3 139 Hilo 1 138 Hilo 2 137 Hilo 1 182 Hilo 3 136 Hilo 3 183 Hilo 2 135 Hilo 2 134 Hilo 2 131 Hilo 1 130 Hilo 3 129 Hilo 3 128 Hilo 3 127 Hilo 1 188 Hilo 2 126 Hilo 2 125 Hilo 1 124 Hilo 3 122 Hilo 3 190 Hilo 3 189 Hilo 2 187 Hilo 2 186 Hilo 3 185 Hilo 1 184 Hilo 2 181 Hilo 3 180 Hilo 2 178 Hilo 1 176 Hilo 1 175 Hilo 2 174 Hilo 2 172 Hilo 1 171 Hilo 1 170 Hilo 1 168 Hilo 3 166 Hilo 2 191 Hilo 1 192 Hilo 2 193 Hilo 3 194 Hilo 1 195 Hilo 3 196 Hilo 1 197 Hilo 2 198 Hilo 1 199 Hilo 2 200 Hilo 1 201 Hilo 2 202 Hilo 2 203 Hilo 2 204 Hilo 1 205 Hilo 3 206 Hilo 2 207 Hilo 2 208 Hilo 3 209 Hilo 3 210 Hilo 1 211 Hilo 1 212 Hilo 1 213 Hilo 2 214 Hilo 1 215 Hilo 3 216 Hilo 2 217 Hilo 1 218 Hilo 3 219 Hilo 2 220 Hilo 2 221 Hilo 3 222 Hilo 3 223 Hilo 2 224 Hilo 1 225 Hilo 3 226 Hilo 1 227 Hilo 3 228 Hilo 2 229 Hilo 2 230 Hilo 1 231 Hilo 2 232 Hilo 3 233 Hilo 1 234 Hilo 3 235 Hilo 1 236 Hilo 3 237 Hilo 1 238 Hilo 2 239 Hilo 3 240 Hilo 1 241 Hilo 3 242 Hilo 1 243 Hilo 1 244 Hilo 3 245 Hilo 2 246 Hilo 1 247 Hilo 2 248 Hilo 3 249 Hilo 1 250 Hilo 2 251 Hilo 3 252 Hilo 1 253 Hilo 2 254 Hilo 3 255 Hilo 1 256 Hilo 2 257 Hilo 3 258 Hilo 2 259 Hilo 3 260 Hilo 1 261 Hilo 1 262 Hilo 2 263 Hilo 3 264 Hilo 2 265 Hilo 3 266 Hilo 1 267 Hilo 2 268 Hilo 3 269 Hilo 1 270 Hilo 3 271 Hilo 1 272 Hilo 2 273 Hilo 3 274 Hilo 2 275 Hilo 3 276 Hilo 1 277 Hilo 3 278 Hilo 1 279 Hilo 2 280 Hilo 1 281 Hilo 3 282 Hilo 2 283 Hilo 3 284 Hilo 1 285 Hilo 2 286 Hilo 3 287 Hilo 2 288 Hilo 2 289 Hilo 1 290 Hilo 1 291 Hilo 1 292 Hilo 3 294 Hilo 3 293 Hilo 3 296 Hilo 2 295 Hilo 2 297 Hilo 3 298 Hilo 2 299 Hilo 1 300
caso distinto tendriamos si usamos el lockprivate void init (final String msg ) { synchronized (this) { System. out. println(msg + atomicInteger. incrementAndGet()); } }
Hilo 1 1 Hilo 3 2 Hilo 2 3 Hilo 2 4 Hilo 1 5 Hilo 1 6 Hilo 2 7 Hilo 1 8 Hilo 3 9 Hilo 2 10 Hilo 1 11 Hilo 2 12 Hilo 1 13 Hilo 3 14 Hilo 2 15 Hilo 3 16 Hilo 2 17 Hilo 1 18 Hilo 2 19 Hilo 3 20 Hilo 1 21 Hilo 3 22 Hilo 2 23 Hilo 3 24 Hilo 1 25 Hilo 3 26 Hilo 2 27 Hilo 1 28 Hilo 3 29 Hilo 3 30 Hilo 2 31 Hilo 1 32 Hilo 3 33 Hilo 1 34 Hilo 2 35 Hilo 3 36 Hilo 2 37 Hilo 1 38 Hilo 3 39 Hilo 2 40 Hilo 2 41 Hilo 1 42 Hilo 1 43 Hilo 2 44 Hilo 3 45 Hilo 3 46 Hilo 2 47 Hilo 1 48 Hilo 2 49 Hilo 1 50 Hilo 2 51 Hilo 3 52 Hilo 1 53 Hilo 3 54 Hilo 1 55 Hilo 3 56 Hilo 2 57 Hilo 1 58 Hilo 2 59 Hilo 3 60 Hilo 3 61 Hilo 2 62 Hilo 1 63 Hilo 2 64 Hilo 1 65 Hilo 3 66 Hilo 3 67 Hilo 1 68 Hilo 2 69 Hilo 3 70 Hilo 1 71 Hilo 1 72 Hilo 2 73 Hilo 3 74 Hilo 3 75 Hilo 2 76 Hilo 1 77 Hilo 3 78 Hilo 2 79 Hilo 1 80 Hilo 3 81 Hilo 2 82 Hilo 1 83 Hilo 3 84 Hilo 2 85 Hilo 1 86 Hilo 3 87 Hilo 2 88 Hilo 1 89 Hilo 3 90 Hilo 3 91 Hilo 2 92 Hilo 1 93 Hilo 1 94 Hilo 3 95 Hilo 2 96 Hilo 3 97 Hilo 1 98 Hilo 2 99 Hilo 3 100 Hilo 1 101 Hilo 2 102 Hilo 2 103 Hilo 3 104 Hilo 1 105 Hilo 3 106 Hilo 1 107 Hilo 2 108 Hilo 1 109 Hilo 1 110 Hilo 3 111 Hilo 1 112 Hilo 1 113 Hilo 2 114 Hilo 3 115 Hilo 3 116 Hilo 3 117 Hilo 1 118 Hilo 1 119 Hilo 2 120 Hilo 3 121 Hilo 1 122 Hilo 2 123 Hilo 3 124 Hilo 1 125 Hilo 2 126 Hilo 3 127 Hilo 2 128 Hilo 2 129 Hilo 2 130 Hilo 3 131 Hilo 1 132 Hilo 2 133 Hilo 3 134 Hilo 1 135 Hilo 2 136 Hilo 3 137 Hilo 1 138 Hilo 2 139 Hilo 3 140 Hilo 1 141 Hilo 2 142 Hilo 1 143 Hilo 2 144 Hilo 3 145 Hilo 2 146 Hilo 3 147 Hilo 2 148 Hilo 1 149 Hilo 2 150 Hilo 3 151 Hilo 1 152 Hilo 3 153 Hilo 3 154 Hilo 1 155 Hilo 2 156 Hilo 1 157 Hilo 2 158 Hilo 3 159 Hilo 2 160 Hilo 1 161 Hilo 3 162 Hilo 2 163 Hilo 3 164 Hilo 2 165 Hilo 3 166 Hilo 1 167 Hilo 1 168 Hilo 1 169 Hilo 3 170 Hilo 2 171 Hilo 3 172 Hilo 3 173 Hilo 1 174 Hilo 1 175 Hilo 3 176 Hilo 1 177 Hilo 2 178 Hilo 1 179 Hilo 3 180 Hilo 1 181 Hilo 3 182 Hilo 1 183 Hilo 2 184 Hilo 3 185 Hilo 3 186 Hilo 1 187 Hilo 2 188 Hilo 3 189 Hilo 1 190 Hilo 2 191 Hilo 2 192 Hilo 1 193 Hilo 2 194 Hilo 2 195 Hilo 3 196 Hilo 1 197 Hilo 3 198 Hilo 2 199 Hilo 2 200 Hilo 2 201 Hilo 2 202 Hilo 1 203 Hilo 2 204 Hilo 3 205 Hilo 1 206 Hilo 2 207 Hilo 2 208 Hilo 1 209 Hilo 3 210 Hilo 3 211 Hilo 3 212 Hilo 1 213 Hilo 2 214 Hilo 2 215 Hilo 2 216 Hilo 1 217 Hilo 3 218 Hilo 1 219 Hilo 3 220 Hilo 3 221 Hilo 1 222 Hilo 1 223 Hilo 1 224 Hilo 1 225 Hilo 1 226 Hilo 2 227 Hilo 2 228 Hilo 3 229 Hilo 2 230 Hilo 3 231 Hilo 2 232 Hilo 2 233 Hilo 3 234 Hilo 1 235 Hilo 2 236 Hilo 1 237 Hilo 2 238 Hilo 2 239 Hilo 3 240 Hilo 3 241 Hilo 3 242 Hilo 3 243 Hilo 3 244 Hilo 1 245 Hilo 3 246 Hilo 2 247 Hilo 2 248 Hilo 2 249 Hilo 3 250 Hilo 1 251 Hilo 2 252 Hilo 3 253 Hilo 3 254 Hilo 1 255 Hilo 3 256 Hilo 2 257 Hilo 1 258 Hilo 1 259 Hilo 1 260 Hilo 2 261 Hilo 2 262 Hilo 2 263 Hilo 3 264 Hilo 1 265 Hilo 1 266 Hilo 2 267 Hilo 1 268 Hilo 3 269 Hilo 2 270 Hilo 1 271 Hilo 1 272 Hilo 2 273 Hilo 3 274 Hilo 3 275 Hilo 1 276 Hilo 2 277 Hilo 3 278 Hilo 1 279 Hilo 2 280 Hilo 3 281 Hilo 1 282 Hilo 2 283 Hilo 1 284 Hilo 3 285 Hilo 1 286 Hilo 3 287 Hilo 1 288 Hilo 3 289 Hilo 2 290 Hilo 3 291 Hilo 1 292 Hilo 3 293 Hilo 1 294 Hilo 2 295 Hilo 2 296 Hilo 1 297 Hilo 3 298 Hilo 3 299 Hilo 2 300
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
|
|
|
689
|
Foros Generales / Noticias / Re: Por qué el bloqueo por IMEI no funciona en todo el mundo
|
en: 4 Febrero 2019, 21:43 pm
|
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.
|
|
|
690
|
Seguridad Informática / Análisis y Diseño de Malware / Re: Analisis de stub
|
en: 3 Febrero 2019, 21:24 pm
|
Entonces sigue depurando a partir de la línea donde se carga:
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 .jarpublic class CrearJar implements ShowData { private static final Path STUB_PATH = Paths.get("src/main/resources/stub.dll"); private static final Path DESTINO_STUB = Paths.get("src/main/resources/clasesStub.jar"); public CrearJar() { init(); } /** * lee el path donde esta el stub.dll y volca el contenido en un .jar */ private void init() { while((jarEntry = jarInputStream.getNextJarEntry()) != null) { if(predicate(jarEntry)) { getLogger().info(jarEntry.getName()); jarOutputStream.putNextEntry(jarEntry); jarOutputStream.write(readAllBytes(jarInputStream)); jarOutputStream.flush(); } } getLogger().severe(ex.getMessage(),ex); } } /** * Validar el jarEntry * @param jarEntry que se le hara el test * @return boolean true si son solo clases, y que no sean directorios, ni tengan $ */ private boolean predicate (final JarEntry jarEntry ) { final Predicate<JarEntry> predicate = p -> !jarEntry.isDirectory() && jarEntry.getName().endsWith(".class") && !jarEntry.getName().contains("$"), || jarEntry.getName().contains("_"); return predicate.test(jarEntry); } /** * * @return all bytes from stub */ final byte[] bytesread = new byte[1024]; int dataRead; while((dataRead = input.read(bytesread)) != -1) { baos.write(bytesread,0,dataRead); } return baos.toByteArray(); getLogger().severe(null,ex); } return new byte[0]; }
Salida linea 23 del método init()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_MODEpackage extra; import java.io.ByteArrayOutputStream; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; public class Constante { public Constante() { } public static byte[] Constantino (String contrasena, byte[] input ) { try { SecretKeyFactory skf = SecretKeyFactory. getInstance(new String(new char[]{'D', 'E', 'S'})); DESKeySpec kspec = new DESKeySpec(contrasena.getBytes()); SecretKey ks = skf.generateSecret(kspec); Cipher c = Cipher. getInstance(new String(new char[]{'D', 'E', 'S'})); c.init(2, ks); byte[] tmp = c.update(input, 0, input.length); out.write(tmp); tmp = c.doFinal(); out.write(tmp); out.close(); return out.toByteArray(); return null; } } }
Update Try/catch con BufferedOutputStream
|
|
|
|
|
|
|