Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Bb-7

#1
Yo he votado C y Java. A mí me encanta C, aunque admito que Java te simplifica bastante la vida. Pero yo siempre he sido partidario del código nativo, por lo que intento usar C siempre que puedo, no se, son manías mías. Quizás va siendo hora, eso sí, de pasarse al C++.  ;D ;D
#2
Cita de: Leo Gutiérrez. en  5 Julio 2010, 20:28 PM
#include <stdio.h>
int main()
{
    signed int var = 2^3;
    printf("%d\n", var);
    return 0;
}


1

En C no funciona como signo de exponenciación, para eso está la función pow() definida en math.h.
Tienes toda la razón, me había liado. En C sólo funciona como operador XOR. :-[ :-[
#3
Compara los bits de dos bytes y pone a 1 los que sean distintos. P. ej.:
235^143=100

235 -> 11101011
143 -> 10001111 ^
--------------------------
100 -> 01100100

Aparte de eso, también se puede usar como signo de exponenciación, como dice neptun0:
int i=2^2;
printf("%d",i);

4

NOTA: Los ejemplos son de lenguaje C.
#4
Hola. Voy al grano. Un amigo y yo estamos creando un cripter, y yo soy el encargado del stub. Por ahora todo va perfecto, ya que mi stub es capaz de leerse a sí mismo, extraer el ejecutable y las opciones, descifrar el ejecutable, escribirlo, y correrlo.
Ahora, he decidido dar un paso más, y en vez de crear un ejecutable temporal, lo que quiero es inyectar el código directamente en memoria tras haberlo descifrado. Teóricamente no me suponía ninguna dificultad, pero al pasar a la práctica, no me funcionaba. Sé inyectar funciones al estilo de void inyectada(DATOS *str_datos), en un proceso ó DLL, pero leer un ejecutable entero e inyectarlo es lo que llevo tiempo intentando hacer sin éxito, y me gustaría que me ayudarais.
No quiero un código, puesto que no soy de esas personas que copian, pegan y no entienden, no voy por el camino lammeril. Lo que quiero es una explicación teórica de cómo hacerlo, y a partir de ahí seré yo quien cree el código.
Lo que hacía hasta ahora era una vez leído y descifrado el código del ejecutable, meterlo en un puntero void, abrir el proceso notepad.exe, reservar memoria, e inyectarlo allí, y después abrir un thread, pero no pasaba nada, salvo que se cerraba el notepad.
Un saludo y gracias de antemano.
#5
Veréis, es que ahora que he aprendido a manejar archivos aleatorios, me gustaría saber cómo funciona el manejo de archivos binarios, es decir:
Para enviar un archivo desde el servidor al cliente en VB6 (en un troyano, por ejemplo) hay que abrir el archivo a enviar en modo binario, leer su contenido y almacenarlo en una variable; para después enviar el contenido de ésa variable, y que el cliente cree un archivo en binario y le inserte el contenido. Yo lo hacía con éste código:
--SERVIDOR--
Open [ruta_archivo.exe] For Binary As #1
contenido=Input(LOF(1), 1)
Close
socket.SendData(contenido)
//--SERVIDOR--
--CLIENTE--
socket.GetData(datos)
Open [ruta_archivo.exe] For Binary As #1
Put 1, , datos
Close
//--CLIENTE--

Hice las pruebas y no me funcionaba. El cliente me creaba un ejecutable que al abrirlo me mostraba durante un segundo la típica pantalla negra de Windows, y  después se cerraba. Y al hacer ésa misma prueba pero con un archivo de texto (.txt), me creaba un archivo de texto un poco 'raro'.

El caso es que me hará falta el manejo de archivos binarios para modificar ejecutables también (un EditServer, por ejemplo) y no sé cómo funcionan.

¿Alguno puede explicarme esto de los archivos binarios?
Tened en cuenta que he seguido al pie de la letra las instrucciones de mi curso de VB.

Saludos y gracias.
#6
Programación Visual Basic / Re: Dudas en VB6
2 Marzo 2008, 22:21 PM
Pues muchas gracias a todos.
Lo del MsgBox, sospechaba que sería algo así, por lo que hice pruebas, pero claro, no funcionaban. Pero de lo otro no tení ni idea

Gracias.
#7
Programación Visual Basic / Dudas en VB6
2 Marzo 2008, 14:28 PM
Saludos a todos.

Tengo dos dudas sobre Visual Basic:
1. Cuando pongo un MsgBox de pregunta con dos botones, sí ó no ("Texto", vbQuestion+vbYesNo, "Título"), cuando le doy al "sí" pasa a la siguiente acción, pero cuando le doy al "no" hace absolutamente lo mismo. Es decir, ¿cómo puedo hacer para que el MsgBox pueda distinguir entre si le doy al "sí" o si le doy al "no", y que según qué botón pulse haga una cosa u otra?


2. Cuando le doy a la "X" o a Alt+F4 para cerrar el programa, ¿Cómo hago para que el programa antes de cerrarse directamente haga "algo" como lanzar un mensaje diciendo si quieres salir o no, o guardar algún dato con el que se trabajaba para no perderlo, etc.?

Gracias de antemano.
#9
Programación Visual Basic / DoEvents???
15 Febrero 2008, 19:01 PM
He visto la palabra 'DoEvents' en un programa, y mi pregunta es más que obvia:
¿Para qué sirve ésa función?

Gracias.
#10
Pos justamente éso.
He visto un ejemplo que había en un curso de C, pero no especificaba para qué servía el 'getchar();'. Éste es el ejemplo:

#include <stdio.h>

int main()
     {
     char ch;
     char nombre[20], apellido[20], telefono[10];
     printf( "Escribe tu nombre: " );
     scanf( "%[A-Z]s", nombre );
     printf( "Lo que recogemos del scanf es: %s\n", nombre );
     printf( "Lo que había quedado en el buffer: " );
     while( (ch=getchar())!='\n' )
            printf( "%c", ch );
     }


Y lo que daba el programa era ésto:

Escribe tu nombre: GORka
Lo que recogemos del scanf es: GOR
Lo que había quedado en el buffer: ka

Ya sé para qué sirven las demás funciones (scanf, printf, etc.). Sólo quiero saber para qué sirve getchar();.

Saludos y gracias.