|
631
|
Programación / Programación General / Saber si sepude manejar algún puerto de la PS2 con YaBasic
|
en: 31 Diciembre 2016, 10:30 am
|
Hola Casi en el siglo pasado me lelgó una demo oficial con el programa YaBasic, en el cual se puede programar e incluye ejemplos como la serpiente para jugar y tus programas lo guardas en la Memory Card. También está en version PC, lo que me sorprende, aún se actualiza, impresionante. En mi caso prefiero primero hacer pruenas en el PC porque trabajo más rápido y luego lo paso a PS2 copiándo de nuevo con el teclado que se puede, solo por mera curiosidad. Quiero saber si se puede controlar algo de la PS2, un hardware, como un puerto USB o algo, crear un archivo de texto y pasarlo a un pendrive. Web oficial de YaBasic. http://www.yabasic.de/download.html¿Alguna sugerencia? Feliz fin de año 2016.
|
|
|
633
|
Informática / Electrónica / ¿Cómo se hace un array de C# a Arduino?
|
en: 30 Diciembre 2016, 08:31 am
|
Hola: Tengo un array tipo byte[] en C# que es este: byte[] rawData = { 0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0x48, 0x00, 0x48, 0x00, 0x00, 0xFF, 0xDB, 0x00, 0x43 };
¿Cómo es en Arduino? Quiero la misma información que el de C#. ¿Cómo se envía por el puerto serie al pulsar un botón esos datos? Saludos.
|
|
|
636
|
Programación / .NET (C#, VB.NET, ASP) / Re: Modificar el array de byte[]
|
en: 30 Diciembre 2016, 04:43 am
|
Para mi que tu quieres guardar malware o alguna cosa rara en tu programa y parace te estas haciendo una especie de shellcode para guardarlos y que estén cifrados o alguna cosa rara y descifrarlos en tiempo de ejecución de tu "programa". Que risas cogí. Curiosidad como se hace, para lo que sospechas, hay ya hechos de forma fácil y muy eficiente. Eso si, quiero ocultar información dentro de otra información, nada de malware o lo que se te pase por la cabeza. Bueno si eso o alguna otra a mi me da igual Una alternativa "simple" es que le aplicas un xor a todo ese arreglo de bits y ya cuando lo quieres "descifrar" se lo vuelves a aplicar Supongamos que a tu arreglo originalmente le aplicaste un xor 10 pues bastaria con le volvieras a aplicar ese xor 10 asi: for (int i = 0; i < rawData.Length; i++) { rawData[i] = (byte)(rawData[i] ^ 10); }
Asi tu archivo o imagen seria restaurado a su estado original, quien tenga duda de la foto vea este enlace: https://i.gyazo.com/6762c171d0871999e12d04c5b627df69.pngPD: Aplicar desplazamiento de bit sin cuidado va a terminar dejando el archivo corrupto aunque se aplique el desplazamiento inverso. Muy buena lo del XOR. Quiero hacerlo al revés con tu código. ¿Cómo sería? El programa me funciona tal como me lo haz contado. using System; using System.IO; // No olvidar. namespace Byte_Hex_ocultos_6 { class Program { byte[] rawData = { 0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0x48, 0x00, 0x48, 0x00, 0x00, 0xFF, 0xDB, 0x00, 0x43 }; static void Main(string[] args) { Console.Title = "Imagen oculto."; Program variable = new Program (); variable.Cosas(); } public void Cosas() { Console.WriteLine("Escribiendo archivo desde el arreglo de bytes"); // ############################################## for (int i = 0; i < rawData.Length; i++) { rawData[i] = (byte)(rawData[i] ^ 10); } // ############################################## File.WriteAllBytes("fotón.jpg", rawData); // Crea un archivo nuevo. Console.WriteLine("¡Hecho! ¿Deseas ver la foto? Sí / No"); string input = Console.ReadLine(); if ((input == "Yes".ToLower()) || (input == "Y".ToLower()) || (input == "Sí".ToLower()) || (input == "S".ToLower())) { Console.WriteLine("Mostrando imagen..."); //Process.Start("fotón.jpg"); File.WriteAllBytes("fotón.jpg", rawData_XOR10); // Crea un archivo nuevo. Console.WriteLine("Imagen cargada."); } else { Console.WriteLine("Saliendo..."); } } } }
He puesto otra variable con elXOR 10 ya codificado en vez de poner la original, la foto,claro. Ya sería. byte[] rawData_XOR10 = { 0xF5, 0xD2, 0xF5, 0xEA, 0x0A, 0x1A, 0x40, 0x4C, 0x43, 0x4C, 0x0A, 0x0B, 0x0B, 0x0B, 0x0A, 0x42, 0x0A, 0x42, 0x0A, 0x0A, 0xF5, 0xD1, 0x0A, 0x49,
Quiero probar el efecto contario, si no me equivoco.. for (int i = 0; i < rawData_XOR10.Length; i++) { rawData_XOR10[i] = (byte)(rawData_XOR10[i] ^ -10); }
Lo de desplazamiento de byte tienes que tener en cuenta el bit de acarreo, por eso pasa lo que dices. No es lo mismo (0)11111111 que al desplazar un bit a la derecha (1)01111111. Es más complejo de lo que aparenta porque cada byte con su bit de acarreo y programarlo es más complicado de lo que uno pienza. Estoy acostumbrado al asm de los PIC. Estoy haciendo pruebas gracias a ti y aprendiendo. Para curiosos. https://msdn.microsoft.com/es-es/library/zkacc7k1.aspxhttps://www.youtube.com/watch?v=tPfTZbEzcmMFelices fiestas.
|
|
|
637
|
Programación / .NET (C#, VB.NET, ASP) / Modificar el array de byte[]
|
en: 30 Diciembre 2016, 02:42 am
|
Hola: Tengo hecho un mini programa en consola C#. using System; using System.IO; // No olvidar. using System.Diagnostics; namespace Byte_Hex_ocultos_2 { class Program { byte[] rawData = { 0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0x48, 0x00, 0x48, 0x00, 0x00, 0xFF, 0xDB, 0x00, 0x43 }; static void Main(string[] args) { Console.Title = "Imagen oculto."; } public Program() { Console.WriteLine("Escribiendo archivo desde el arreglo de bytes"); File.WriteAllBytes("fotón.jpg", rawData); Console.WriteLine("¡Hecho! ¿Deseas ver la foto? Sí / No"); string input = Console.ReadLine(); if ((input == "Yes".ToLower()) || (input == "Y".ToLower()) || (input == "Sí".ToLower()) || (input == "S".ToLower())) { Console.WriteLine("Mostrando imagen..."); Process.Start("fotón.jpg"); Console.WriteLine("Imagen cargada."); } else { Console.WriteLine("Saliendo..."); } } } }
Justo abajo hay un array tipo byte[] indicaco justo abajo. byte[] rawData = { 0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0x48, 0x00, 0x48, 0x00, 0x00, 0xFF, 0xDB, 0x00, 0x43 };
Estos son pocos byte para probar, en realidad pueden ser millones. Quiero hacer de alguna manera, modificar a mi antojo cada byte[] del array, por ejemplo, hacerlo de forma básica para probar como curiosidad, lograr desplazar cada bit una vez a la derecha. Esto lo hará otro programa en C#. En el indicado arriba tiene que usar la misma fórmula pero al revés, los byte del array ahora tienen que moverlo a la izquierda una vez para que tengan su posición normal. Así de paso no es tan fácil detectar lo que hay en el archivo de C#. ¿Alguna idea? Les dejo el enlace de descarga del proyecto completo, solo tienes que ejecutarlo con Visual Community 2015 y pueden ver que foro tengo escondido, pueden mostrarlo por aquí si les pica la atención. DescargarFelices fiestas 2016.
|
|
|
638
|
Programación / .NET (C#, VB.NET, ASP) / Ejecutar un ejecutable entro de un recurso
|
en: 29 Diciembre 2016, 22:04 pm
|
Hola: Tengo un ejecutable llamado Validar.exe en un recurso. Más información poner o quitar reursos. He creado una palicación en consola con C#. using System; using System.Diagnostics; using System.IO; using System.Reflection; namespace Ejecutable_dentro_de_recursos_consola_01 { class Program { static void Main(string[] args) { Console.Title = "Ejecuta Validar.exe dentro de C#."; Console.WriteLine("Funcionando C#..."); CopiarRecurso(Assembly.GetExecutingAssembly(), "Recursos.Validar.exe", "Validar.exe"); ProcessStartInfo info = new ProcessStartInfo ("Validar.exe"); Process.Start(info); } public static void CopiarRecurso(Assembly pAssembly, string pNombreRecurso, string pRuta) { using (Stream s = pAssembly.GetManifestResourceStream(pAssembly.GetName().Name + "." + pNombreRecurso)) { if (s == null) { throw new Exception ("No se puede encontrar el recurso '" + pNombreRecurso + "'"); } byte[] buffer = new byte[s .Length]; s.Read(buffer, 0, buffer.Length); using (BinaryWriter sw = new BinaryWriter (File .Open(pRuta, FileMode .Create))) { sw.Write(buffer); } } } } }
Error: Excepción no controlada del tipo 'System.Exception' en Ejecutable_dentro_de_recursos_consola_01.exe
Información adicional: No se puede encontrar el recurso 'Recursos.Validar.exe'¿Algo se me escapa? Ni poniendo la ruta completa, me hace caso. Da el mismo error. Felices fiestas 2016.
|
|
|
640
|
Programación / .NET (C#, VB.NET, ASP) / Intentar leer texto desde una clase externa
|
en: 27 Diciembre 2016, 21:31 pm
|
Hola: Quiero leer un texto que puse como string desde la Class2 y no me sale. Dejo el código. Program.csusing System; namespace Textos_Clases_02 { class Program { static void Main(string[] args) { Console.Title = "Métodos y funciones C#"; Console.WriteLine("Que muestre los textos desde la clase externa llamada Class1.cs"); Class1 txt = new Class1 (); // Crear un objeto. txt.MostrarTextoClass1(); // Mostrar textos de la Class1. Class2 txt2 = new Class2 (); // Crear un objeto. Console.WriteLine(txt2.metodo()); // Mostrar textos de la Class2. Console.ReadKey(); // Pulsa cualquier tecla para salir. } } }
Class1.csusing System; namespace Textos_Clases_02 { class Class1 { public void MostrarTextoClass1() { Console.WriteLine("Hola desde Class1 con el método MostrarTextoClass1"); } } }
Class2.csnamespace Textos_Clases_02 { class Class2 { public string metodo(string variable) { variable = "Texto variable de la clase Class2 y método o función metodo."; return variable; } } }
¿Cuál es la mejor forma de hacerlo? En resumen: Quiero añadir textos en clases externas, así cualquier método lleno de textos no los tengo en el programa principal y me ahorro leer muchos códigos que se que funcionan.En el programa principal solo los llamo. Saludos.
|
|
|
|
|
|
|