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 - x64core

#591
Pone el codigo entero, al menos todo lo relacionado al problema.
ami me da pereza cuando leo codigos imcompletos por ejemplo tipos de variables, etc
#592
Cita de: silver2050 en 19 Mayo 2013, 23:01 PM
Buenas, a ver si podéis echarme una mano.

Tengo un problema con el ASM, estoy intentando recuperar el valor devuelto por una función, siendo este un puntero a char y me da un error, creo que estoy intentando acceder a una zona de memoria inválida:

En LeeValor quiero devolver un 0 pero ha de ser con el  char * :o

void main (void)
{
printf("\nEl valor es: %s\n", LeeValor (10));
};

char * LeeValor (int NroBit)
{

       char *res = "0";   
       __asm{   
         ; 1ª parte:
         ; Salvamos los registros seguros
   push edi
       mov eax, dword ptr [ebp-4] ;en [ebp-4] tengo la vble local (res)
         ; he probado de esta forma pero no he tenido éxito tampoco
                       ;mov byte ptr [eax], '0'
         ;mov byte ptr [eax+1], 0
       }
}

Saludos y gracias.               

jamas tomar en cuenta y no recomendable que el compilador hara stack frame, puede que el compilador no haga stack frame para optimizar el codigo.

Creo que lo quieres es simplemente debes hacer referencia en la declaración asm a la variable local:
mov eax,res

pero al final si lo que quieres es retornar ese puntero siempre debes hacerlo mediante sintaxis C++, no lo hagas directamente desde asm inline, a menos que uses funciones declaradas como __naked ( VC )






#593
Cita de: lweb20 en 17 Mayo 2013, 19:56 PM
Hola, aquí estoy de nuevo.

Estuve un rato en el foro leyendo algunos post y me hizo acordar sobre una época que logré hacer un driver para Windows 7 ( casi todo copy/past ) para hookear el CreateProcess.

Una vez consulté aquí en el foro sobre una duda y me respondió "Eternal Idol" y me dijo que no es buena idea hookear ya que en 64-bit no funciona, y eso me hizo pensar muchas cosas.

1) ¿Cómo hacen los antivirus para analizar cada proceso que se abre y detener la ejecución antes que empiece?

2) ¿Acaso existe otro método que no sea hookear?

3) ¿Qué mas se pueden hacer con los drivers? ( aparte de usarlo con hardware claro )

Agradecería mucho alguna aclaración.

EDIT: Y por de casualidad. ¿Alguien conoce manuales sobre el kernel de Windows en español? ya que estos temas son complicaditos y difíciles de entender sobre todo cuando está en inglés 100 hojas :P

Hola,

1) Windows provee funciones callbacks para ese tipo de tareas, por ejemplo para monitorizar todo proceso que
es iniciado o cerrado se puede usar la función: PsSetCreateProcessNotifyRoutine. Obviamente y estoy muy seguro que un antivirus no utilizaria este
callback debido a que cuando esta es invocada desde modo kernel el proceso ya ha sido creado ( incluyendo espacio virtual, hilo principal, etc )  y ejecutado, en lugar ellos hookean funciones como Psp,que,Se,Hal debido a que necesitas analizar los argumentos que son pasados porque mantienen
una lista basada en heurística.
por ejemplo Openprocess/NtOpenprocess analizar el numero de identificador del proceso que es pasado como argumento y verificar si no es el del mismo
antivirus, un handle a un proceso con un token con todos los privilegios asignados es casi seguro la terminación de un proceso.

2) Depende de que tipo de tareas, opciones: puede programar un driver de tipo filtro para controlar un NTFS, usar callbacks como dije ( los cuales son limitados, no se puede agregar callbacks inifnitos debido a falta de recursos ),
evitar hooks tanto sea posible.

3) *facepalm*

A menos que te esperes unos cuantos años hasta que llegue la version del libro traducida a tu idioma (generalmente
tardan 4-8 años y eso es si es bastante solicitada en el idioma) de lo contrario aprender Ingles.
Por cierto, Eternal Idol es un capo.  ::)

#594
Las variables en el proceso son simplemente direcciones de memoria, para poder leer el espacio de direcciones de un proceso
se puede usar ReadProcessMemory, pero talvez si explicas con más detalles o un proposito seguramente hay mejores soluciones.
#595
Cita de: moises9633 en  5 Mayo 2013, 02:56 AM
me lansa el mismo error pero con rutas diferentes ya no se que hacer T_T tengo windows 7 Ultimate y ese es el Visual Studio Ultimate 2012 key ORIGINAL!!!! ni para decir que tengo el s.o  dañado recién formatie ya nose que hacer T_T
probe hasta en c:\

Cita de: moises9633 en  5 Mayo 2013, 02:56 AM
me lansa el mismo error pero con rutas diferentes ya no se que hacer T_T tengo windows 7 Ultimate y ese es el Visual Studio Ultimate 2012 key ORIGINAL!!!! ni para decir que tengo el s.o  dañado recién formatie ya nose que hacer T_T
probe hasta en c:\

Prueba creando un proyecto directamente en el escritorio, rutas como %SYSTEMDRIVE%, %SYSTEMDRIVE%\%WINDOWS%, %SYSTEMDRIVE%\%PROGRAMFILES%, etc, se requieren privilegios de administrador si el UAC esta activada.

Yo estoy suponiendo que estas creando un proyecto para .EXE ( verificarlo en propiedades ) y sin ninguna modificación de las
propiedades del proyecto que vienen por defecto.

De lo contrario, un Bug? puedes reportarlo en HELP/AYUDA del menu principal de VS.
#596
Cita de: moises9633 en  5 Mayo 2013, 01:59 AM
alguien sabe xq me sale este error cuando le doy ejecutar?
Link de la imagen
http://imageshack.us/photo/my-images/853/45548661.jpg/

Luce como falta de permisos/privilegios, supongo que para ejecutar/depurar el proyecto.
Talvez otro programa accedio al ejecutable del proyecto, Puedes creando un nuevo proyecto y copiar el codigo fuente y directamente ejecutar/depurar, si aun continua, prueba creando un nuevo proyecto en otra ruta.
#598
Cita de: 0xDani en  3 Mayo 2013, 23:58 PM
Me puedes explicar porqué son ridículas? Supongo que jamás las has usado no?

No empezaremos un Linux VS Windows Cierto?
Es obvio que si es para entorno Windows librerias que mencione no dan lugar aquí.
#599
Cita de: SSantiago90 en  3 Mayo 2013, 22:44 PM
Es exactamente el material que estoy leyendo, me gustaria encontrar una explicacion diferente, gracias

Creo que la explicación ahí es clara. un ejemplo como podrias ver es la funcion Printf, utiliza un numero variable de argumentos
debido que el usuario puede agregar valores tanto como el quiera ( Longitud depende de la implementación, algunas aceptan como longitud maxima de la cadena de formato a 1024, etc )
Dependendiendo de la situacion reemplazo de un puntero a array de punteros.

Yo supongo que el entendimiento de las macros/tipo(s) de Variables que se emplean ha sido comprendido.
#600
Cita de: r00tsec en  2 Mayo 2013, 22:15 PM
Hola, buenos días vengo a preguntar, a ver si alguien me da una mano.. con que puedo empezar a programar cheats para Counter-Strike? Ya me descargue el Visual Studio 2010, pero la verdad no se si esto me sera útil.. quiero armar cheats como el gran Karman =p, mas que todo aprender. Si alguien me da una mano se lo agradecería, perdón si postie en el lado equivocado =/, saludos!

Recomiendo 2012 es mucho más ligero que el 2010. Luego aprender C/C++,ASM,Ingenieria inversa. :D