sound? no es una instruccion standard pero parece que quieres producir un sonido, pues usa la api messagebeep D:
Salu2!
Salu2!
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ú0078F487 > $ E8 8D050000 CALL SmartFTP.0078FA19
Cita de: apuromafo en 6 Abril 2011, 19:50 PM
aun no, y eso que cada 15 dias normalmente le consulto a su mail que esta en la pagina, siempre dice, que le falta poco, pero no dice nada
yo hasta el momento aprendi un poco de ingles y uso el PID, el cual ya uso un beta, pero no es nada oficial hasta que se corrijan ciertos detalles, pero bueno
si es de escanear, siempre se puede depurar y comprobar los packers por si mismo, el otro dia escaneaba uno y nada, al depurarlo era themida, asi que hay nuevas cosas siempre, pero las bases son iguales, aprender , depurar , revisar y verificar
saludos Apuromafo
Cita de: [Zero] en 3 Abril 2011, 16:25 PM
No, Karcrack no usa nada de la sección .data :S. Y bueno, si la shellcode no es para hacer malware, debería de ir en Bugs y Exploits, no aquí, así que bueno, para la próxima ya sabes.
Saludos
Inyeccion PROC
cdq; EDX=0
mov EDX, fs:[edx+30h]; EDX = &PEB
mov eax, [edx+0Ch]; EAX = PEB->PPEB_LDR_DATA
mov esi, [eax+1Ch]; ESI = &PEB->PPEB_LDR_DATA->InInitializationOrderModuleList[0]
SiguienteModulo:
mov eax, [esi+08h]; EAX = PEB->PPEB_LDR_DATA->InInitializationOrderModuleList[i].BaseAddress
mov edi, [esi+20h]; EDI = PEB->PPEB_LDR_DATA->InInitializationOrderModuleList[i]. NameModule
mov esi, [esi]; ESI = PEB->PPEB_LDR_DATA->InInitializationOrderModuleList[i].flink (NextModule)
cmp byte ptr[edi+6*2], '3' ;// NameModule[6] == '3' ¿?
jne SiguienteModulo
mov ebp,eax ; EBP = base kernel32
assume eax: ptr IMAGE_DOS_HEADER
add eax,[eax].e_lfanew; BaseKernel32 + 3Ch = PEHeader, Como es RVA + BaseKernel32
assume eax:ptr IMAGE_NT_HEADERS
mov edi,[eax].OptionalHeader.DataDirectory[0].VirtualAddress; PEHeader + 78h = .edata
add edi,ebp ;Como es RVA
assume edi:ptr IMAGE_EXPORT_DIRECTORY
mov esi,[edi].AddressOfNames; .edata + 20h = AddressOfNames
add esi,ebp ; Como es RVA
xor edx,edx
assume eax:nothing ; Para Evitar Errores
Busqueda:
mov eax,[esi]
add eax,ebp
cmp word ptr [eax+0Ch],"ss"
jne Siguiente
cmp dword ptr [eax+04h], "Acor"
jne Siguiente
cmp dword ptr [eax+00h], "PteG"
jne Siguiente
cmp dword ptr [eax+08h], "erdd"
jne Siguiente
mov eax,[edi].AddressOfNameOrdinals; .edata + 24h = AofNamesOrdinal
add eax,ebp ; Como es RVA
movzx ebx,word ptr [edx*2+eax]; Como es una entrada de WORDS multiplico * 2 al contador
; EBX = Asi obtendremos el puntero al ordinal de la funcion GetProcAddress
mov eax,[edi].AddressOfFunctions; .edata + 1Ch = AddressOfFunction
add eax,ebp ; RVA ._.
;EAX = AddressOfFunction
;EBX Puntero al ordinal
;Multiplicamos *4 el puntero al ordinal de GPA porque la tabla es de dwords.
mov ebx,[ebx*4+eax]; EBX = RVA de GetProcAddress
add ebx,ebp ; EBX = GetProcAddress
jmp Listo ; Salimos :)
Siguiente:
add esi,4
inc edx; EDX = CONTADOR
cmp edx,[edi].NumberOfNames
jne Busqueda
Listo:
assume edi:nothing ; Evitamos Errores D=
mov edx, ebp
;00402044 4C 6F 61 64 4C 69 62 72 LoadLibr
;0040204C 61 72 79 41 00 aryA.
mov ebp, esp
sub ebp, 10h
mov byte ptr [ebp - 0Dh], 4Ch
mov byte ptr [ebp - 0Ch], 6Fh
mov byte ptr [ebp - 0Bh], 61h
mov byte ptr [ebp - 0Ah], 64h
mov byte ptr [ebp - 09h], 4Ch
mov byte ptr [ebp - 08h], 69h
mov byte ptr [ebp - 07h], 62h
mov byte ptr [ebp - 06h], 72h
mov byte ptr [ebp - 05h], 61h
mov byte ptr [ebp - 04h], 72h
mov byte ptr [ebp - 03h], 79h
mov byte ptr [ebp - 02h], 41h
mov byte ptr [ebp - 01h], 00h
lea ecx, dword ptr [ebp - 0Dh]
push ecx
push ebp
call ebx;
nop
nop
ret
Inyeccion endp
Cita de: [Zero] en 3 Abril 2011, 01:08 AM
Pero si el lío se lo metiste tú pusheando dos dword's al principio, y el quiso hacer lo mismo con una cadena de 7 bytes . Para pushear con bytes, no hay problema, para pushear con dwords puedes hacer lo que te dijo Karcrack de hacer un xor con el 'xoreado' o hacer lo que hizo Nox con un mov. O hacer lo que te dije yo, que ocupa menos con cadenas de más de 7 bytes, pero que deja nulos.
Saludos
;00402044 4C 6F 61 64 4C 69 62 72 LoadLibr
;0040204C 61 72 79 41 00 aryA.
mov ebp,esp; ebp puntero al stack
sub esp, 0Dh; reservamos espacio
xor ecx,ecx
mov byte ptr [ebp - 0Dh], 4Ch
mov byte ptr [ebp - 0Ch], 6Fh
mov byte ptr [ebp - 0Bh], 61h
mov byte ptr [ebp - 0Ah], 64h
mov byte ptr [ebp - 09h], 4Ch
mov byte ptr [ebp - 08h], 69h
mov byte ptr [ebp - 07h], 62h
mov byte ptr [ebp - 06h], 72h
mov byte ptr [ebp - 05h], 61h
mov byte ptr [ebp - 04h], 72h
mov byte ptr [ebp - 03h], 79h
mov byte ptr [ebp - 02h], 41h
mov byte ptr [ebp - 01h], cl
lea ecx, dword ptr [ebp - 0Dh]
push ecx
push edx; BaseKernel
call ebx; GPA
add esp, 0Dh; Balanceamos la pila