elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 ... 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 [44] 45 46 47 48 49 50 51 52 53 54 55 56
431  Programación / ASM / Re: Como hacer el Sound en ASM? en: 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  Programación / Programación C/C++ / Re: (Duda) Pregunta readprocessmemory array en: 13 Abril 2011, 02:24 am
as que retorne un puntero al array y luego solo accedes a sus items....

Salu2!
433  Programación / Ingeniería Inversa / Cracked SmartFTP - aPLib compresion (Algoritmo). en: 9 Abril 2011, 19:27 pm
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
  1. 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  Seguridad Informática / Bugs y Exploits / Re: [Taller] Creando una shellcode (x86 | win) en: 9 Abril 2011, 18:12 pm
muy bueno eh... ahora solo una pregunta tu no eres el moderador de la zona en asm en el .com? D:
435  Programación / Ingeniería Inversa / Re: Sugerencias en: 7 Abril 2011, 19:07 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  Programación / Ingeniería Inversa / Re: Sugerencias en: 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  Seguridad Informática / Análisis y Diseño de Malware / Re: duda de cómo se introducen cadenas en la pila (manualmente). en: 4 Abril 2011, 04:37 am
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
  1. Inyeccion PROC
  2.  
  3. cdq; EDX=0
  4. mov EDX, fs:[edx+30h]; EDX = &PEB
  5. mov eax, [edx+0Ch]; EAX = PEB->PPEB_LDR_DATA
  6. mov esi, [eax+1Ch]; ESI = &PEB->PPEB_LDR_DATA->InInitializationOrderModuleList[0]
  7. SiguienteModulo:
  8. mov eax, [esi+08h]; EAX = PEB->PPEB_LDR_DATA->InInitializationOrderModuleList[i].BaseAddress
  9. mov edi, [esi+20h]; EDI = PEB->PPEB_LDR_DATA->InInitializationOrderModuleList[i]. NameModule
  10. mov esi, [esi]; ESI = PEB->PPEB_LDR_DATA->InInitializationOrderModuleList[i].flink (NextModule)
  11. cmp byte ptr[edi+6*2], '3'  ;// NameModule[6] == '3' ¿?
  12. jne SiguienteModulo
  13.  
  14. mov ebp,eax ; EBP = base kernel32
  15. assume eax: ptr IMAGE_DOS_HEADER
  16. add eax,[eax].e_lfanew; BaseKernel32 + 3Ch = PEHeader, Como es RVA + BaseKernel32
  17.  
  18. assume eax:ptr IMAGE_NT_HEADERS
  19. mov edi,[eax].OptionalHeader.DataDirectory[0].VirtualAddress; PEHeader + 78h = .edata
  20. add edi,ebp ;Como es RVA
  21.  
  22. assume edi:ptr IMAGE_EXPORT_DIRECTORY
  23. mov esi,[edi].AddressOfNames; .edata + 20h = AddressOfNames
  24. add esi,ebp ; Como es RVA
  25. xor edx,edx
  26. assume eax:nothing ; Para Evitar Errores
  27.  
  28. Busqueda:
  29. mov eax,[esi]
  30. add eax,ebp
  31. cmp word ptr [eax+0Ch],"ss"
  32. jne Siguiente
  33. cmp dword ptr [eax+04h], "Acor"
  34. jne Siguiente
  35. cmp dword ptr [eax+00h], "PteG"
  36. jne Siguiente
  37. cmp dword ptr [eax+08h], "erdd"
  38. jne Siguiente
  39. mov eax,[edi].AddressOfNameOrdinals; .edata + 24h = AofNamesOrdinal
  40. add eax,ebp ; Como es RVA
  41. movzx ebx,word ptr [edx*2+eax]; Como es una entrada de WORDS multiplico * 2 al contador
  42. ; EBX = Asi obtendremos el puntero al ordinal de la funcion GetProcAddress
  43. mov eax,[edi].AddressOfFunctions; .edata + 1Ch = AddressOfFunction
  44. add eax,ebp ; RVA ._.
  45. ;EAX = AddressOfFunction
  46. ;EBX Puntero al ordinal
  47. ;Multiplicamos *4 el puntero al ordinal de GPA porque la tabla es de dwords.
  48. mov ebx,[ebx*4+eax]; EBX = RVA de GetProcAddress
  49. add ebx,ebp ; EBX = GetProcAddress
  50. jmp Listo ; Salimos :)
  51.  
  52. Siguiente:
  53. add esi,4
  54. inc edx; EDX = CONTADOR
  55. cmp edx,[edi].NumberOfNames
  56. jne Busqueda
  57.  
  58. Listo:
  59. assume edi:nothing ; Evitamos Errores D=
  60. mov edx, ebp
  61.  
  62. ;00402044  4C 6F 61 64 4C 69 62 72  LoadLibr
  63. ;0040204C  61 72 79 41 00           aryA.
  64.  
  65. mov ebp, esp
  66. sub ebp, 10h
  67. mov byte ptr [ebp - 0Dh], 4Ch
  68. mov byte ptr [ebp - 0Ch], 6Fh
  69. mov byte ptr [ebp - 0Bh], 61h
  70. mov byte ptr [ebp - 0Ah], 64h
  71. mov byte ptr [ebp - 09h], 4Ch
  72. mov byte ptr [ebp - 08h], 69h
  73. mov byte ptr [ebp - 07h], 62h
  74. mov byte ptr [ebp - 06h], 72h
  75. mov byte ptr [ebp - 05h], 61h
  76. mov byte ptr [ebp - 04h], 72h
  77. mov byte ptr [ebp - 03h], 79h
  78. mov byte ptr [ebp - 02h], 41h
  79. mov byte ptr [ebp - 01h], 00h
  80. lea ecx, dword ptr [ebp - 0Dh]
  81.  
  82. push ecx
  83. push ebp
  84. call ebx;
  85. nop
  86. nop
  87. ret
  88.  
  89. 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  Seguridad Informática / Análisis y Diseño de Malware / Re: duda de cómo se introducen cadenas en la pila (manualmente). en: 3 Abril 2011, 06:38 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  Seguridad Informática / Análisis y Diseño de Malware / Re: duda de cómo se introducen cadenas en la pila (manualmente). en: 30 Marzo 2011, 01:05 am
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
  1. ;00402044  4C 6F 61 64 4C 69 62 72  LoadLibr
  2. ;0040204C  61 72 79 41 00           aryA.
  3.  
  4. mov ebp,esp; ebp puntero al stack
  5. sub esp, 0Dh; reservamos espacio
  6. xor ecx,ecx
  7. mov byte ptr [ebp - 0Dh], 4Ch
  8. mov byte ptr [ebp - 0Ch], 6Fh
  9. mov byte ptr [ebp - 0Bh], 61h
  10. mov byte ptr [ebp - 0Ah], 64h
  11. mov byte ptr [ebp - 09h], 4Ch
  12. mov byte ptr [ebp - 08h], 69h
  13. mov byte ptr [ebp - 07h], 62h
  14. mov byte ptr [ebp - 06h], 72h
  15. mov byte ptr [ebp - 05h], 61h
  16. mov byte ptr [ebp - 04h], 72h
  17. mov byte ptr [ebp - 03h], 79h
  18. mov byte ptr [ebp - 02h], 41h
  19. mov byte ptr [ebp - 01h], cl
  20. lea ecx, dword ptr [ebp - 0Dh]
  21.  
  22. push ecx
  23. push edx; BaseKernel
  24. call ebx; GPA
  25. 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  Seguridad Informática / Análisis y Diseño de Malware / Re: duda de cómo se introducen cadenas en la pila (manualmente). en: 29 Marzo 2011, 23:41 pm
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!
Páginas: 1 ... 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 [44] 45 46 47 48 49 50 51 52 53 54 55 56
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines