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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22
101  Programación / Programación C/C++ / Re: Ayuda con archivo binario, por favor. en: 23 Abril 2011, 10:25 am
Lo que te pase no debería de comerse ningún numero, si lo dices por la salida por pantalla, es el printf el que no los muestra
Código
  1. printf("Numero %08X Invertido %08X\n",Numero,Invertido);
  2.  
Con esta modificacion muestra tambien los 0 de arriba, pero que no los mostrara no significa que no los invierta. Ese trozo lo puse para que vieras el resultado

Este code esta filtrando en grupos de 2bytes (16bits)
Código
  1. if ( addr & 0x2 )  data = (data>>16)&0xffff ;
  2.  else               data = (data&0x0000ffff) ;
  3.  
102  Programación / Programación C/C++ / Re: Ayuda con archivo binario, por favor. en: 22 Abril 2011, 11:18 am
si quieres invertirlos haz algo así:
Código
  1. long Numero = 0x01020304;//Este es el numero que vamos a invertir
  2. long Invertido = 0;//Lo guardaremos aqui
  3.  
  4. //Cojo la direccion de la variable con & y ago un cast de tipos con (char*)
  5. //para que lo interprete como un array de bytes;
  6. //[X] es el indice del array que siempre empieza en zero; Un long tiene 4 bytes por lo que el mayor indice seria 3 y el menor 0
  7. ((char*)&Invertido)[0] = ((char*)&Numero)[3];
  8. ((char*)&Invertido)[1] = ((char*)&Numero)[2];
  9. ((char*)&Invertido)[2] = ((char*)&Numero)[1];
  10. ((char*)&Invertido)[3] = ((char*)&Numero)[0];
  11.  
  12. printf("Numero %X Invertido %X\n",Numero,Invertido);
  13.  

Lo de leerlos de 4 en 4 o de 1 en 1 solo debería de tener importancia al mostrarlos por pantalla, en el archivo se van a guardar igual porque no modificas lo que recibes, solo afecta a la forma de interpretar el numero.(Lectura)
103  Programación / Programación C/C++ / Re: Ayuda con archivo binario, por favor. en: 21 Abril 2011, 14:19 pm
lo que tu le metes al chip lo guardas en un archivo antes de escribirlo?
Puede ser que ese chip tenga otro orden de bytes diferente. y el otro programa haga una traducción al pasarlo por la consola.
104  Programación / Programación C/C++ / Re: Ayuda con archivo binario, por favor. en: 20 Abril 2011, 22:16 pm
en el archivo se esta escribiendo bien, lo que ocurre es que lo imprimes por pantalla en grupos de 4 bytes. Y la CPU lee de derecha a izquierda, siendo los primeros los de mas bajo valor (little-endian)
105  Programación / Programación C/C++ / Re: (Duda) Pregunta readprocessmemory array en: 15 Abril 2011, 18:49 pm
Hola disculpen que postee de nuevo, tengo una duda!!

yo llamo asi a la funcion:

Código:
long ReadLongVb (long Address)
{
BYTE Array[30];
ReadLong(Address,&Array,30);
return (Array[0]);
}

Esa es la funcion a la que llamo desde vb, seguramente se podra hacer directamente a la funcion ReadLong, pero bueno es la forma mas facil que encontre y funciona bien :P.

Entonces en vb recibo el array 0, pero la pregunta es, como hago para que me retorne todo el array completo?
E intentado muchas cosas pero no logre hacer que me retorne todo el array: 30...

Gracias!
para eso necesitas usar punteros, el problema es que VB no te deja manejar punteros directamente. tambien necesitarias usar memoria dinamica, porque las variables locales son sobrescritas al salir de la funcion que las creo, por lo que si la funcion debuelve un puntero a una variable local en esta no estara el contenido que uno espera.

EDIT:
mirate esta pagina: http://www.psicofxp.com/forums/programacion.313/292049-punteros-en-vb.html
106  Programación / Programación C/C++ / Re: Pregunta readprocessmemory array en: 12 Abril 2011, 22:02 pm
Hola Arcangel_0x7C5, gracias por contestarme... Bueno aver yo la llamo asi mira:
Código:
DWORD dwHP; 
ReadLong(Address,&dwHP,"4");

Pero si en vez de 4 pongo mas, me tira error :(

Esto me devuelve la funcion: "7471216"
Que no se que tiene que ver con: "70 00 72 00 75 00 65 00 62 00 61"

:S Gracias!
porque un DWORD solo permite almacenar 4 bytes. De todas maneras, el 4 entre comillas es una cadena de caracteres y no un numero entero. por lo que me extraña que no te de error

yo haria esto:
Código
  1. BYTE Array[20];
  2. ReadLong(Address,&Array,20);
  3.  
y con DWORD asi:
Código
  1. DWORD Array[20];
  2. ReadLong(Address,&Array,sizeof(DWORD)*20);
  3.  
107  Programación / Programación C/C++ / Re: Pregunta readprocessmemory array en: 12 Abril 2011, 20:34 pm
el parámetro len de ReadProcessMemory(hProcess, (void *) lpAddress, buf, len, 0); le dice cuanto puede leer de maximo.
108  Programación / .NET (C#, VB.NET, ASP) / Re: Conversión de código de MazarD a C# en: 17 Marzo 2011, 23:55 pm
Con DeviceIoControl  puedes comunicarte con el driver desde la GUI.

y recomendaciones....
Solo expreso mi punto de vista. Pero cada uno es libre de hacer las cosas como mejor vea.

Saludos
109  Programación / .NET (C#, VB.NET, ASP) / Re: Conversión de código de MazarD a C# en: 17 Marzo 2011, 23:18 pm
:laugh:... No estoy inyectando código para iniciar mi controlador... de hecho, es todo lo contrario; Inicio mi controlador, para poder inyectar código sin problema alguno... :xD.
Entonces no necesitas portar ese código para inyectar, porque el propio driver puede inyectarte en el proceso que quieras. En Ring0 tiene Acceso al Espacio de memoria de todos los procesos. Pero el código de Ring3 no tiene porque funcionar en el 0.
110  Programación / .NET (C#, VB.NET, ASP) / Re: Conversión de código de MazarD a C# en: 17 Marzo 2011, 22:15 pm
una pregunta, para que necesitas inyectar código para iniciar el servicio del Driver.
La unica razon que se me ocurre es por cuestiones de sigilo. Porque no puedes aprir un proceso con permisos de administrador desde uno que no los tenga (Excepto en caso de algun bug).


Saludos
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines