|
101
|
Informática / Electrónica / Problema con oregano
|
en: 5 Enero 2010, 13:50 pm
|
Hola a todos, em decidi a montar mi circuito, y antes de hacerlo de manera fisica, lo hice por simulación, el problema esta en que le emto una alimentacion ac de 220v y al intentar hacer la simulacion em dice que falta nodo de tierra, y es que la toma de tierra de la fuente esta vacia.
Que elemento es un nodo de tierra en oregano?
Saludos
|
|
|
102
|
Programación / Java / [SOURCE]Mini-BotNet en java (Falta arreglar una cosa)
|
en: 5 Enero 2010, 13:19 pm
|
Hola a todos, os traigo una plantilla de una mini-botnet, para que podais crear una red de pc bot, para hacer multiples cosas, desde enviar todos juntos un archivo, a atender un chat irc, en resumen para hacer alguna cosa de manera masiba, o entre varios pc: Os pongo el codigo (que tiene un fallo importante): Servidor.java/* * Servidor.java * * Created on 30-dic-2009, 11:21:52 */ package main; /** * * @author debci */ import java.util.logging.Level; import java.util.logging.Logger; import threads.*; public class Servidor extends javax. swing. JFrame { //Instanciamos el thread que gestiona las conexiones con los bots private static ThreadEjecución thread = new ThreadEjecución(); public static Integer cuantosBots = 0; /** Creates new form Servidor */ public Servidor() { initComponents(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jLabel1 = new javax. swing. JLabel(); numBots = new javax. swing. JLabel(); jLabel2 = new javax. swing. JLabel(); slider = new javax. swing. JSlider(); botsSel = new javax. swing. JLabel(); jLabel4 = new javax. swing. JLabel(); btnEnviar = new javax. swing. JButton(); itemSalir.setText("Salir"); itemSalir.setComponentPopupMenu(PopMenu); itemSalir. setCursor(new java. awt. Cursor(java. awt. Cursor. DEFAULT_CURSOR)); public void actionPerformed (java. awt. event. ActionEvent evt ) { itemSalirActionPerformed(evt); } }); PopMenu.add(itemSalir); jLabel1.setText("Tienes"); numBots.setText("numBots"); jLabel2.setText("bots a tu disposicion."); slider.setMaximum(0); slider.setPaintLabels(true); slider.setPaintTicks(true); slider.setToolTipText("Sleciona cuantos bots quieres realizar para la siguiente ación."); slider.setComponentPopupMenu(PopMenu); public void stateChanged (javax. swing. event. ChangeEvent evt ) { sliderStateChanged(evt); } }); botsSel.setText("0"); jLabel4.setText("bots selecionados."); btnEnviar.setText("Enviar"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(numBots) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel2)) .addGroup(layout.createSequentialGroup() .addComponent(slider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(botsSel, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel4))) . addContainerGap(65, Short. MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() . addContainerGap(128, Short. MAX_VALUE) .addComponent(envComando, javax.swing.GroupLayout.PREFERRED_SIZE, 242, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnEnviar) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(52, 52, 52) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(numBots) .addComponent(jLabel2)) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel4) .addComponent(botsSel))) .addGroup(layout.createSequentialGroup() .addGap(27, 27, 27) .addComponent(slider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) . addPreferredGap(javax. swing. LayoutStyle. ComponentPlacement. RELATED, 62, Short. MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(btnEnviar) .addComponent(envComando, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(63, 63, 63)) ); slider.getAccessibleContext().setAccessibleDescription("Seleciona cuantos bots quieres realizar para la siguiente ación"); pack(); }// </editor-fold> private void sliderStateChanged (javax. swing. event. ChangeEvent evt ) { Integer valorSlider = slider. getValue(); botsSel.setText(valorSlider.toString()); } private void itemSalirActionPerformed (java. awt. event. ActionEvent evt ) { } /** * @param args the command line arguments */ public static void main (String args []) { @SuppressWarnings("static-access") public void run() { new Servidor().setVisible(true); thread.start(); } }); } // Variables declaration - do not modify public static javax. swing. JLabel botsSel ; private javax. swing. JButton btnEnviar ; private javax. swing. JLabel jLabel1 ; private javax. swing. JLabel jLabel2 ; private javax. swing. JLabel jLabel4 ; public static javax. swing. JLabel numBots ; public static javax. swing. JSlider slider ; // End of variables declaration }
ControlBots.java [THREAD]package threads; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.util.logging.Level; import java.util.logging.Logger; import main.Servidor; /** * * @author debci */ public class ControlBots extends Thread { //Para leer datos en el socket //Para escribir datos en el socket //Cadena que envia el thread principal a cada bot //Cadena de texto que el bot envia para informar //Identificador que se le asigna a cada bot //Contador de la lista negra public static Integer contador = 0; { try { signal = envio; id = identificador; Logger.getLogger(ControlBots.class.getName()).log(Level.SEVERE, null, ex); } } public void run() { try { dataOutput.writeInt(id); dataOutput.writeUTF(signal); while (true) { recivido = dataInput.readUTF(); if(recivido.equals("error")) { System. out. println("Se ha producido un error.\n"); }else if(recivido.equals("todo bien")) { System. out. println("Todo transcurre como deberia.\n"); }else { } } ThreadEjecución.listaNegra.put(contador, id); ThreadEjecución.RenovarDatos(); contador++; } } public void EnviarComando (String comando ) { try { dataOutput.writeUTF(comando); Logger.getLogger(ControlBots.class.getName()).log(Level.SEVERE, null, ex); } } }
ThreadEjecución.java [THREAD]package threads; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.Hashtable; import java.util.logging.Level; import java.util.logging.Logger; import main.Servidor; import threads.ControlBots; /** * * @author debci */ public class ThreadEjecución extends Thread { public static Integer idZombie = 0; public static boolean pasoTransitorio = true; //Vector donde vamos almacenando todos los bots zombies que se van conectando public static Hashtable<Integer, Socket> vectorZombies; //Vector donde vamos guardando en que indices quedan vacios public static Hashtable<Integer, Integer> listaNegra; //Thread de control public ControlBots nuevoZombie; //Dato donde guardamos cual hay libre public static Integer contador = 0; //Comprueba que ya se haya eliminado algun bot para poner en practica la //rutina de comprobacion. public static boolean borrado = false; public static Integer disponible = 0; public ThreadEjecución() { //Declaración de variables de instancia para usar durante el proceso //Try para capturar exepciones y tratar posibles errores try { Logger.getLogger(ThreadEjecución.class.getName()).log(Level.SEVERE, null, ex); } } public void run() { while (true) { try { System. out. println("Esperando conexiones..."); Socket zombie = socketServidor. accept(); idZombie++; if(listaNegra.isEmpty()) { System. out. println("Nuevo bot añadido a la BotNet: " + idZombie + "\n"); vectorZombies.put(idZombie, zombie); nuevoZombie = new ControlBots(zombie, "Bienvenid@ a la red de Bots!", idZombie); }else{ for(int i = 0; i < listaNegra.size(); i++) { if(listaNegra.containsKey(i)) { disponible = i; break; } } for(int i = 0; i< listaNegra.size(); i++) { System. out. println("Hay disponible la clave: " + listaNegra. get(i ) + ".\n"); } System. out. println("Nuevo zombie añadido a la BotNet: " + listaNegra. get(disponible ) + "\n"); vectorZombies.put(listaNegra.get(disponible), zombie); nuevoZombie = new ControlBots(zombie, "Bienvenid@ a la red zombie!",listaNegra.get(disponible)); System. out. println("La clave " + listaNegra. get(disponible ) + " ya no esta disponible.\n"); listaNegra.remove(disponible); ControlBots.contador--; } nuevoZombie.start(); Servidor.slider.setMaximum(idZombie); Servidor.numBots.setText(idZombie.toString()); borrado = false; Logger.getLogger(ThreadEjecución.class.getName()).log(Level.SEVERE, null, ex); } } } public static void RenovarDatos() { idZombie--; Servidor.slider.setValue(idZombie); Servidor.slider.setMaximum(idZombie); Servidor.numBots.setText(idZombie.toString()); } public void rutinaComprovacion() { } public void enviarComando (int cuantos, String comando ) { } }
Un ejemplo de clienteVamos a hacer un cliente de echo: package main; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author debci */ public class Cliente { public static Socket socketCliente ; public static String cadenaEnviar ; public static int identificador; public static void main (String args []) { try { socketCliente = new Socket("localhost", 6666); ThreadBot hilo = new ThreadBot(); hilo.start(); Logger.getLogger(Cliente.class.getName()).log(Level.SEVERE, null, ex); Logger.getLogger(Cliente.class.getName()).log(Level.SEVERE, null, ex); } } static class ThreadBot extends Thread { public void run() { try { identificador = dis.readInt(); System. out. println("Soy el bot numero " + identificador + ".\n"); while (true) { try { String recivido = dis. readUTF(); dos.writeUTF(recivido); Logger.getLogger(Cliente.class.getName()).log(Level.SEVERE, null, ex); } } Logger.getLogger(Cliente.class.getName()).log(Level.SEVERE, null, ex); } } } }
Podemos usar esta plantilla para hacer todo tipo de cosas, ojo ninguna que esta fuera del limite de lo legal, lo prohibo explicitamente, y no me haré responsable de los posibles daños que pueda acarrear. El uso es simple solo hace falta saber algo de java, programasmo unc liente y el servidor le envia datos (strings, integers, booleans...) y el cliente responde, todo esto ademas se hace masificado. No es funcional por si solo, haria falta añadrile parte de codigo. Ahora el problema que tengo: Cuando un nuevo bot se añade, se le asigna un id, y cuando se elimina se añade esa id a una lista donde luego cuando otro entre se le asignara para tener todos los id ocupados, de esta manera cuando uno s eva al siguiente se le asigan el id del que se ha ido. Pero el problema reside, en que cuando se desconectan dos simultaneos, luego no funciona como deberia, al siguiente le asigan bien el id pero al otro ya no. Estoy desesperador lelvo como 3 semanas con esto y no salgo de este problema, seguro que es una tonteria, pero no soy capaz de ver donde etsa fallando. Espero que os guste. Saludos a tod@s
|
|
|
103
|
Programación / Java / Problema lógico... [Otro mas..] (pero que cabezota que soy...)
|
en: 30 Diciembre 2009, 15:39 pm
|
Hola a todos, estoy depurando mi aplicacion de red... una tool util que pronto pondre en forma de source y binario en el foro.
Es una aplicacion cliente-servidor que usa sockets, threads y demas...
Bueno uso un sistema de enumeración para ordenarlos en la memoria y poder identificarlos.
La cosa esta en lo siguiente:
Cuando un cliente se conecta al servidor:
Añado 1 al contador (contador++;)
Cuando se desconecta, disminuyo 1 (contador--;)
Pero ocurre el siguiente fallo:
Si abro dos, les doy como id 1 y 2.
Si se va uno, disminuyo y el contador esta en 1 (contador - 1 = 2) y si entra otro se le asigna el 2, ahora tengo dos con el el identificador 2, y uno se remplaza al otro en la tabla de hash.
Me planteé hacerlo que nunca disminuya, pero ocurre el siguiente fallo, cuando quiero hacer un cast a todos, las id que se han desconectado pero sin embargo todavia estan registradas ya no tiene un objeto guardado y produce expeciones cosa mala.
Que puedo hacer?
Saludos
|
|
|
104
|
Seguridad Informática / Materiales y equipos / La tarjeta de mis sueños :P
|
en: 29 Diciembre 2009, 18:34 pm
|
Hola a tod@s, queria preguntar sobre que tarjeta de red comprarme (me refiero a los sticks usb que tan de moda se han puetso) con la que pueda snifar red, hacer juegos con ettercap y auditar seguridad wep de mi red.
Tengo una hercules con driver rt73usb y de entrada no puedo usar el ettercap, no funciona bien con aircrack...
Algun modelo en concreto? La mas fiable, la mas conocida en este mundillo.
Saludos
|
|
|
105
|
Programación / Java / Abrir conexion con sitio web
|
en: 28 Diciembre 2009, 15:57 pm
|
Hola a tod@s, esta vez queria preguntaros sobre como crear una conexion con un sitio web, supongo que debe ser con sockets, la realidad es que quiero provocar un dos en mi propio servidor (o intentarlo) y investigando he llegado a la conclusion de que se puede hacer con envio de paquetes de red.
Como se podria hacer esto en java?
Son fines meramente equitativos e instructivos, para comprobar la seguridad de mi apache ante tal tipo de ataques, que ultimamente andan extendiendose por la red.
Saludos a tod@s
|
|
|
106
|
Seguridad Informática / Hacking / Problema con Ettercap, no me detecta ningun host :s
|
en: 28 Diciembre 2009, 13:26 pm
|
Hola a tod@s, esta tarde me puse a investigar con el ettercap para intentar hacer un mitm a mi propio pc (uno que tengo en lan) y ver si de verdad funciona. El problema, es que cuando le doy a "Scan for host" no me encuentra ninguno dice noseque de mask 255 y no me encuentra ninguno, da pena ver como una herramienta tan potente se rompe en el punto mas sencillo y en teoria menos problematico.
Alguien sabe porque ocurre esto?
Saludos
|
|
|
107
|
Programación / Java / Error tonto con threads y sockets
|
en: 26 Diciembre 2009, 15:39 pm
|
Hola a todos jeje, soy yo otra vez, he vuelto al java xD Mirad estoy constryendo una aplicacion con sockets, que gestiona varios cliente mediante el uso de threads, la cosa esta en que cada vez que se conecta un cliente al servidor, este le abre un thread, y lo deja en ejecucion hasta que el cliente se cierra y le envia un binario, cuando le envia el binario se cumple el bucle y el thread muere, pero ocurre una cosa extraña, mirad el codigo: ClienteGui.java package sockets; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author debci */ public class ClienteGui extends javax. swing. JFrame { /** Creates new form ClienteGui */ public ClienteGui() { initComponents(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jButton1 = new javax. swing. JButton(); public void windowClosed (java. awt. event. WindowEvent evt ) { formWindowClosed(evt); } public void windowClosing (java. awt. event. WindowEvent evt ) { formWindowClosing(evt); } }); jButton1.setText("Enviar"); public void actionPerformed (java. awt. event. ActionEvent evt ) { jButton1ActionPerformed(evt); } }); textoEnv.setColumns(20); textoEnv.setRows(5); jScrollPane1.setViewportView(textoEnv); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() . addContainerGap(337, Short. MAX_VALUE) .addComponent(jButton1) .addContainerGap()) .addGroup(layout.createSequentialGroup() .addGap(21, 21, 21) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) . addContainerGap(117, Short. MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() . addContainerGap(89, Short. MAX_VALUE) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(83, 83, 83) .addComponent(jButton1) .addContainerGap()) ); pack(); }// </editor-fold> private void jButton1ActionPerformed (java. awt. event. ActionEvent evt ) { try { String cadena = textoEnv. getText(); dos.writeBoolean(true); dos.writeUTF(cadena); Logger.getLogger(ClienteGui.class.getName()).log(Level.SEVERE, null, ex); } } private void formWindowClosed (java. awt. event. WindowEvent evt ) { } private void formWindowClosing (java. awt. event. WindowEvent evt ) { try { dos.writeBoolean(false); Logger.getLogger(ClienteGui.class.getName()).log(Level.SEVERE, null, ex); } } /** * @param args the command line arguments */ public static void main (String args []) { public void run() { try { new ClienteGui().setVisible(true); socket = new Socket("localhost", 5557); is = socket.getInputStream(); os = socket.getOutputStream(); Logger.getLogger(ClienteGui.class.getName()).log(Level.SEVERE, null, ex); } } }); } // Variables declaration - do not modify private javax. swing. JButton jButton1 ; // End of variables declaration }
Servidor.javapackage sockets; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import threads.ThreadServidor; /** * * @author debci */ public class Servidor { Servidor servidor = new Servidor(); servidor.ServidorChat(); } public void ServidorChat() { try { while (true) { System. out. println("Esperando conexiones..."); Socket cliente = socketServidor. accept(); Runnable nuevoCliente = new ThreadServidor (cliente ); hilo.start(); } { e.printStackTrace(); } } }
ThreadServidor.javapackage threads; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author debci */ public class ThreadServidor extends Thread { //Socket al que esta conectado el cliente /** Para lectura de datos en el socket */ /** Para escritura de datos en el socket */ private boolean acabado = true; public ThreadServidor (Socket socket ) { try { socket1 = socket; System. err. println("Error de procesamiento de datos: \n" + ex ); } } public void run() { try { while(acabado){ acabado = dataInput.readBoolean(); String mensajeRecivido = dataInput. readUTF(); System. out. println(mensajeRecivido + "\n"); } Logger.getLogger(ThreadServidor.class.getName()).log(Level.SEVERE, null, ex); }
Me explico, la cosa esta en que cuando el cliente, se cierra (formClosing) se envia el booleano al thread que lo esta atendiendo. Si el booleano se cambia, se rompe el bucle while y se muere el thread. El problema, y no se de donde viene, es que cuando cierro un cliente y le pido desconexion y que mate al thread, el servidor libera un error: 26-dic-2009 15:30:55 threads.ThreadServidor run GRAVE: null java.io.EOFException at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:323) at java.io.DataInputStream.readUTF(DataInputStream.java:572) at java.io.DataInputStream.readUTF(DataInputStream.java:547) at threads.ThreadServidor.run(ThreadServidor.java:50) at java.lang.Thread.run(Thread.java:619)
Me da ese error y luego continua atendiendo clientes, cada vez que cierro un cliente me lo da, y no se porque es, y como comprendereis no quiero darle uso a una aplicacon que tiene un defecto claro. Saludos y gracias a todos.
|
|
|
108
|
Informática / Electrónica / [Iniciación] Que pic escojer?
|
en: 17 Diciembre 2009, 18:42 pm
|
Hola a todos, estoy entrando en el mundo de la electronica, y me gustaria saber por que pic empezar, ya tengo idea de circuitos electronicos y electricos (diodos, transistores, leds...) y me gustaria adquirir algun pic sencillito, programable en c o otro que no fuese asm (me mata xD). Y el proceso de como se carga un programa en un pic, porque los que eh estado mirando no tienen ningun sitio donde meterselo, como implanto mi codigo en un pic? Si me diesen los detalles completos, os lo agradeceria ^^ asi como algun modelo en cocnreto barato y que tenga documentacion, no pido que sea muy potente, ram sencillita y una eeprom sencillita tambien.
Saludos a todos
|
|
|
109
|
Programación / Java / Problema lógico con bucle
|
en: 30 Noviembre 2009, 21:56 pm
|
Hola a todos llevo toda la santa tarde rompiendome la cabeza delante del monitor, para sacar una tonteria ( ). Mirad el codigo: /** * * @author debci */ public class Encriptador { private static int numeroCaracteres; private static int ncClave; private String sCadenaInvertida ; public void cifra() { String Subcadena = Clave. substring(Clave. length() / 2 + 1); sCadenaInvertida = ""; cadenaIntroducida = cadenaIntroducida.toLowerCase(); char[] matrizCaracteres = cadenaIntroducida.toCharArray(); char[] matrizCharMovida = Clave.toCharArray(); numeroCaracteres = matrizCaracteres.length; int y = 0; for(int i = 0; i < numeroCaracteres; i++) { if (i == numeroCaracteres - 2 ) { y = 0; } y = i + 1; matrizCaracteres[y] = matrizCharMovida[i]; }
Intento conseguir que se mezclen la dos strings de la siguiente manera: Palabra 1 -> Hola Palabra 2 -> debci Y que quede helci Es decir que coja una letra de cada uno, pero no lo consigo.... En teoria mi bucle lógico tendria que hacerlo pero no hay manera. Estoy frustrado Ayudenme por favor Saludos
|
|
|
110
|
Programación / Java / Duda Planes malvados
|
en: 30 Noviembre 2009, 19:47 pm
|
Juas Juas que malo soy xD Queria haceros una pregunta. Como prodria modificar desde java un sector de memoria directamente, que no sea un archivo, como por ejemplo, el primer byte de un disco duro... ¬¬ Ya me entendeis, leer offsets y direciones de memoria (offsets, segmentos...) desde java. Cuando digo leer digo escribir..
¬¬
Saludos
|
|
|
|
|
|
|