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

#441
Citarpero socket normal?...

Logicamente, toda aplicacion que obtiene datos de internet (navegadores, chats etc etc) hacen uso de sockets. no hay una api para cada caso en particular, existe el conjunto de funciones y tu las aplicas a tus necesidades. despues por ejemplo en este caso, es obligatorio leer el protocolo http.
#442
ASM / Re: Ayuda Urgente?
15 Mayo 2010, 18:02 PM
hay muchos manuales para quitar themida, pero puedes perfectamente hacerte un loader que es menos confuso. explica que es lo que quieres hacer.
#443
ASM / Re: Ayuda Urgente?
15 Mayo 2010, 17:34 PM
si.
#444
El ejemplo no injectara ninguna dll, simplemente el proceso victima intentara ejecutar una direccion invalida y se cerrara, el que quiera meter una dll que haga el las modificaciones a su gusto.

Siempre esta el problema de querer usar CreateRemoteThread en una aplicacion (no malware precisamente) y los antivirus suelen marcar ya el programa como peligroso. ahora bien, CreateThread no es detectado como algo peligroso, pero ¿quien es realmente CreateThread?. Esta funcion es un wrapper, alias o como quieras llamarlo de CreateRemoteThread, aceptando 1 parametro menos ya que si se desensambla la funcion se ve claramente que dentro de esta marca el handle del proceso a -1, o lo que es lo mismo a el proceso que a llamado a la funcion. La cosa es simple, necesitamos un puntero a CreateThread y buscar el call a CreateRemoteThread dentro de la funcion, meter los parametros de la funcion en la pila y hacer un jmp a dicho call. de este modo se a injectado la dll "sin" tener que usar la maldita funcion.

El codigo es una chorrada, es expresamente para poner un ejemplo de la idea en codigo. a la hora de usarlo en una aplicacion real se tienen que tener algunas cosas en cuenta.


format PE GUI 4.0

entry Main

include 'win32a.inc'

section '.data' data readable writeable

cPtr    dd 0

section '.idata' import data readable writeable

library kernel32,'KERNEL32.DLL',\
       user32,'USER32.DLL'

include 'api\kernel32.inc'
include 'api\user32.inc'

section '.text' code  readable writeable executable

Main:
    push 0
    push 0
    push 0
    push InjectaDll
    push 0
    push 0
    call [CreateThread]
    push 6h            ;Esto es solo para la prueba.
    call [Sleep]
    push 0
    call [ExitProcess]


proc InjectaDll
    push edi
    mov eax,0E8h
    mov edi,dword [CreateThread]
S:
    repne scasb
    jnz S
    dec edi
    mov [cPtr],edi
    pop edi
    push 3532      ;Process Id
    push 1
    push PROCESS_ALL_ACCESS
    call [OpenProcess]
    or eax,eax
    jz Fin
    push 0
    push 0
    push 0
    push 41414141h
    push 0
    push 0
    push eax
    jmp [cPtr]  ;CreateRemoteThread
Fin:
    ; En caso de error
endp

#445
Foro Libre / Re: Novedades en el sexo actual
14 Mayo 2010, 04:12 AM
Constance CONTROLA LOS PUNTOS
#446
por ejemplo yo lo hago de este modo, hago un bucle y dentro de el intento obtener un manejador con NtOpenProcess:


   while(!Fin)
   {
    uno.UniqueProcess=(DWORD*)1234;
    NtOpenProcess(&hProc,PROCESS_ALL_ACCESS,&nn,&uno);
    if (hProc!=0)
    {
     printf("OpenProcess OK %X -> Presiona enter para cerrar el proceso.",hProc);
     getchar();
     TerminateProcess(hProc,0);
     Fin=1;
    }


antes de entrar en el while he creado un thread que cambia el pid por el del proceso real que se quiere abrir, en el while abrimos el proceso inexistente con pid 1234. en el otro thread cambio el pid por el que realmente se quiere abrir del mismo modo hasta que Fin es 1 que solo se cumple cuando ya tenemos el manejador del proceso, y el hook a sido burlado. es una forma un poco burra de hacerlo, pero es al instante, asi que es valida.

Como prueba intenta cerrar un proceso que use este metodo desde el taskmgr y veras que te dice acceso denegado, despues usa el ejemplo que puse arriba y veras que es cuestion de segundos.
#447
repasate los punteros.

ptr = View, para eso directamente declara View por ejemplo void *View  ahi tienes siempre tu base.
#448
GNU/Linux / Re: Instalar .bin
12 Mayo 2010, 22:45 PM
desde consola ./archivo.bin tiene que tener permisos de ejecucion.
#449
asi es. aqui dejo un pequeño ejemplo basandome en ese articulo de como burlar la proteccion de un software en modo kernel desde modo usuario http://www.sendspace.com/file/hyt16d

Solo hay que escribir el process id del proceso a testear, este tiene que estar bloqueando OpenProcess desde el kernel.
#450
no claro que no, pero yo personalmente para ese uso no lo conocia. es super sencillo y efectivo ;).