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 - Иōҳ

#431
ASM / Re: Como hacer el Sound en ASM?
13 Abril 2011, 02:41 AM
sound? no es una instruccion standard  :-\ pero parece que quieres producir un sonido, pues usa la api messagebeep D:

Salu2!
#432
as que retorne un puntero al array y luego solo accedes a sus items....

Salu2!
#433
Hola... bien esta es la primera vez que intento hacer algo como esto XD, asi que he estado mirando el SmartFTP que es muy bueno, pero a la vista que no hay craks o es dificil encontrar ( yo por lo menos no lo eh encontrado ), me decide a hacerlo por mi cuenta y aprender un poco mas ;D.

Bien el SmartFTP, en versiones anteriores lo tenia y recuerdo que me aparecia una nag la cual me decia que tenia 30 dias de validacion, pero bueno, esta version 4.0 no me aparece o por ahora no lo hace recien tengo 0 dias de uso :xD, y segun vi usa

aPLib Compresion (Algoritmo)
Microsoft C++ 6.0

y cuando lo abro con el olly el EP para en

Código (mpasm) [Seleccionar]
0078F487 > $  E8 8D050000   CALL SmartFTP.0078FA19

y segun el olly

Memory map, item 23
Address=007E3000
Size=00199000 (1675264.)
Owner=SmartFTP 00400000
Section=.rdata
Contains=imports
Type=Imag 01001002
Access=R
Initial access=RWE

estamos en la sección imports D:, bueno antes de ponerme en onda lo que hice fue correr haber si se podia, y si normal se pudo, para mi sorpresa, fue al disassemble, click derecho view -> SmartFTP
y pues me encontre con el OEP, le puse un BP y di un restart



bien luego comenze a correr ah me olvidaba que para que corra complemante da algunas excepciones, shitf + F9 y corre sin problemas  :P, y pues paro alli, ahora esta es mi pregunta

aPLib compresion (Algoritmo), es un algoritmo de compresion, pero necesita que sea "uncompresar", la aplicacion?, nunca me he tocado con este tipo de "compresion" e tocado crackmes con uno que otro packersillo, pero esto =/ y estaba viendo en el buscador de la web de ricardo y pues solo hay un tuto que habla sobre aPLib compresion y efectivamente dumpea la aplicacion y hace el mismo procedimiento como si fuera un packer... y pues me trae dudas porque las apis me parece no se, si sea necesario =/.

Es lo poco que he visto y necesito que me oriententacion.

link de descarga porseacaso D:  :-\  :silbar:

http://www.smartftp.com/download/

Meta:
Crackear y talvez tute XD

Salu2!




#434
muy bueno eh... ahora solo una pregunta tu no eres el moderador de la zona en asm en el .com? D:
#435
Ingeniería Inversa / Re: Sugerencias
7 Abril 2011, 19:07 PM
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

se es que hace mucho tiempo que deje los tutos de ricardo y los estoy retomando de nuevo... asi que ando por la sección unpack al upx, pero siempre es bueno informarse ya que las herramientes que el usaba en ese entonces ya existen versiones superiores de las mismas...
Y como nunca he debuggeado para ver que packer es.. jeje, pues no sabria como identificar alguno :P.

Salu2!
#436
Ingeniería Inversa / Re: Sugerencias
6 Abril 2011, 18:59 PM
creo que hace ya varios meses pude conseguir el RDG packer detector 0.6.7 pero lo que pasaba era que aunque le daba doble click no habria la GUI y cuando me iba a otra pc si me habria pero se crasheaba... me parece que no seria la oficial... ahora que ya paso un tiempo me pregunto ya saco la version 0.6.7??

Salu2!
#437
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

y nMagic donde lo declara? D:.. no se tal vez entendi mal  :-\, esta usando una direccion de memoria de su propia aplicacion pero para una shellcode creo que no sirviria no se corrijeme nunca he codeado una D:.

@black_flowers creo que le llevas dedica muxo tiempo, y esto amerita que te deje este code.. miralo y espero que resuelvas tus problemas :xD.

Código (asm) [Seleccionar]

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


pd: agradezco la portabilidad ha... YSK... me ayudo sobre el peb :)
pd2: cuando hagas una shellcode si no me equivoco tiene que ser lo menos pesado posible (perdon por el horro de terminos =B), asi que como veras pasarle de manara la string no es muy buena que digamos asi que podes usar el no se el mov que te dije al principio.

Salu2! Nox
#438
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  :xD. 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

creo que lo que quiere hacer el es una shellcode, por eso tanto lio de los bytes nullos, si es asi no podria usar el metodo de karcrack ni el tuyo, ya que karcrack usa una direccion creada en la sección .data, y especificamente para ella si el la querra usar G_G, bueno si usa la tuya ya sabemos bytes nullos D:.
Creo que ya sabe que hacer

Salu2!
#439
bien bien pero parece que no resolvimos ese problema de tu code el del principio mira yo use este code para loadlibrary, y me funciona perfectamente checa como le reservo la pila... si solo cambias los caracteres debe funcionar

Código (asm) [Seleccionar]

;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


pd: la pila se balancea para poder evitar errores, puede que haya un tipo de seguridad que mire la pila, y si a la hora de volver por ejemplo al programa la pila no esta como antes crash! y aunque no te de ese problema cuando lo haces una aplicacion autonoma, es por buena costumbre que lo harias :).

Salu2!
#440
el code que te pase funciona como te dije fijate si queda desbalanceada la pila o antes de eso le podes reservar espacio en la pila luego la balanceas.. con lo que te doy ya tenes una idea si no quieres hacer mov puedes hacer que esp apunte 3 posiciones antes con un lea, y luego haces el push te evitas de hacer mov, y luego restauras a esp, en fin miles de ideas, te recomiendo que usaes algun debugger asi practica practica hasta que te salga!

Salu2!