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

#621
Si, solo hasta el 3999... y si, tambien has de añadir un input() :)
#622
... la funcion! :¬¬ :xD

Consiste en convertir de la forma mas corta posible un numero decimal a su version romana... por ejemplo:
200 -> CC
1337 -> MCCCXXXVII


Espero que al menos una persona se digne a participar.. si no sera un fiasco, y destrozara mi ilusion de crear retos en el futuro :-( :-( :laugh:

I saludo! ;)
#623
Discutiendo con un amigo; la forma mas corta que se me ocurrio:
Código (vb) [Seleccionar]
Public Function DecToRoman(ByVal lNum As Long) As String
    DecToRoman = Choose(((lNum Mod 10) / 1) + 1, "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX")
    lNum = lNum - (lNum Mod 10)
    DecToRoman = Choose(((lNum Mod 100) / 10) + 1, "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC") & DecToRoman
    lNum = lNum - (lNum Mod 100)
    DecToRoman = String$((lNum \ 1000), "M") & Choose(((lNum Mod 1000) / 100) + 1, "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM") & DecToRoman
End Function


Saludos ;)
#624
Análisis y Diseño de Malware / Re: mDownloader
15 Diciembre 2010, 23:34 PM
Eso de dejar las cadenas en texto plano no es demasiado profesional, ademas que a los AVs no les gusta encontrarse "URLDownloadToFileA"... :xD

Teniendo en cuenta que esta en ASM te recomiendo sacar tu ruta desde el PEB, y asi te ahorras un par de APIs muy feas :P
Código (asm) [Seleccionar]
        xor  eax, eax
        mov  eax, [FS:eax+0x30]
        mov  eax, [DS:eax+0x10]
        mov  eax, [DS:eax+0x3C]
        ;EAX = Ruta


Todo esto:
        bucle:

            .if byte[eax+ecx] = '#'
                inc ecx
                .if byte[eax+ecx] = '#'
                    inc ecx
                    .if byte[eax+ecx] = '#'
                        inc ecx
                        add eax,ecx
                        mov [espacio],eax
                        jmp salir
                    .endif
                    dec ecx
                .endif
                dec ecx
             .endif

             .if ecx > [larchivo]
                 jmp salir
             .endif

             inc ecx
             jmp bucle

Es para encontrar la firma no? Es un poco cutre este bucle... deberias usar loop... ademas de usar una firma de 4 bytes para poder buscarla de este modo: cmp DWORD[eax+ecx],"####"

Otra cosa! Para sacar las variables de entorno siempre me ha gustado mas ExpandEnvironmentStringA/W.. a la que le pases la ruta del siguiente modo: "%WINDIR%\archivo.exe" y te la completa... ademas de que esta en KERNEL32 y te ahorras importar otra API :)

Un saludo ;)
#625
Pues si tienes el PID del proceso lo unico que has de hacer es abrirlo con OpenProcess() usando PROCESS_QUERY_INFORMATION y con el handle ir comprabando que GetExitCodeProcess() devuelva STILL_ACTIVE ;)
Seria algo como:

dim lPID as long
dim lRet as long

lPID = shell("notepad.exe")
hProc = OpenProcess(PROCESS_QUERY_INFORMATION, false, lPID)
if hProc > 0 then
do
GetExitCodeProcess(hProc,lRet)
loop while (lRet = STILL_ALIVE)
msgbox "Has cerrado el bloc de notas"
end if


Creo que eso deberia ir, aunque aqui no tengo el IDE del VB y no puedo probarlo..
#626
No hay otra opcion que subclasificar... Al menos nadie jamas la ha encontrado.... :xD
#627
si :)
#628
No hay bronca, es navidad :D *casi* :xD

Otra cosa que no me quedo muy clara... porque usas un formulario en el server? (server = parte que se conecta a la parte que escucha)
#629
Comprueba que estes llamando a la version unicode del API... URLDownloadToFileW@URLMON...

La explicacion de porque hay que llamar a las versiones unicode de las APIs es porque al usar StrPtr() sacas el puntero a la cadena en formato unicode... si quisieses por alguna razon usar la version ascii deberias hacer la conversion manualmente por ejemplo con
Código (vb) [Seleccionar]
bvByteArray = StrConv(sCADENA, vbFromUnicode)

Un saludo ;)
#630
Muy interesante el proyecto ;) En cuanto al codigo como siempre, muy bueno... lo unico que no me ha gustado son los 200Kbs del server (aunque tu lo llamas cliente, supongo que por lo de conexion inversa y bla bla) y tampoco me ha gustado que uses el Zombie_Invoke sin darme creditos e incluso has eliminado el header con comments del modulo! :¬¬ :laugh: >:D