domingo, 8 de julio de 2018

Código del Crypter.vbs y del Script de X64DBG Del Vídeo [ ==Decifrar Archivo VBScript Ofuscado Usando X64DBG== ]

Hola amigos aquí les dejo el código del crypter que use en el vídeo Descifrar Archivo VBScript Ofuscado Usando X64DBG espero sea de su agrado, así como el script de x64dbg.

En el vídeo no use breakpoint ni puntos de interrupción para que el script de vbs ofuscado se detuviera en la librería kernelbase.dll, tampoco esta configurado solo tengo las configuraciones por defecto.

otra cosa cuando se detiene en la librería kernelbase.dll el código descifrado se muestra en la dirección EAX+358 en hexadecimal y el peso del archivo esta en la direccion EAX+35C en hexadecimal, por ultimo cuando se detiene en dicha librería los registros  EAX y ESP tienen el mismo valor.



===Codigo Del Crypter.vbs===

option explicit
Randomize
dim op,o,s,oARG,oFSO,File
Set oARG=wscript.Arguments
Set oFSO=createObject("Scripting.FileSystemObject")
If oARG.Count=0 Then WScript.Quit
For Each File In oARG
 Set s=oFSO.OpenTextFile(File,1)
 Set o=oFSO.CreateTextFile("Encrypted___" & File,True)
 op=inputbox("Precione un numero del 1 al 3 para el legir el tipo de cifrado","Tipo de cifrado")
 select case op
    case 1
       o.writeline "Execute(" & read(s.readall,1) & ")"
    case 2
       o.writeline "code=" & chr(34) & read(s.readall,2) & chr(34)
    o.writeline "c=split(code," & chr(34)& "==" & chr(34) & ")"
    o.writeline "for x=0 to ubound(c)"
    o.writeline "   command=command & chr(c(x))"
    o.writeline "next"
    o.writeline "Execute command"
    case 3
       o.writeline "code=" & chr(34) & read(s.readall,3) & chr(34)
    o.writeline "for x=1 to len(code) step 2"
    o.writeline "   command=command & chr(cint(" & chr(34) & chr(38) & chr(72) & chr(34) & " & (mid(code,x,2))))"
    o.writeline "next"
    o.writeline "Execute command"
    case else
       msgbox "Adios"
    wscript.quit
 end select
 msgbox "Archivo  " & File & "  encriptado con exito"
Next

o.close
s.close

Function read(x,y)
dim i,e,d
 for i=1 To Len(x)
    select case y
       case 1
          e=e & "chr("& f(asc(mid(x,i,1)))& ") &"
    case 2
             e=e & asc(mid(x,i,1)) & "=="  
          case 3
      d=hex(asc(mid(x,i,1))) 
      if len(d)=1 then
               e=e & "0" & d
            else 
       e=e & d
            end if   
                 
    end select
  
 next
 if y<>3 then
    read=Left(e,Len(e)-2)
 else
    read=e   
 end if
 
End Function

Function f(n)
dim m,t,u
 m=int(rnd*99)+1
 If n mod m=0 Then
  t=(n/m)& "*"& m
 Else
  u=int(rnd*3)
  If u=0 Then t=(n+m)& "-"& m
  If u=1 Then t=(n-m)& "+"& m
  If u=2 Then t=(n*m)& "/"& m
 End If
 f=t
End Function







===Codigo Del Script De X64dbg===


run      // Este comando ejecuta el programa

mov eax,[esp+358]    // Este toma el valor que se encuentra en la dirección esp+358 y lo pasa a EAX

mov ebx,[esp+35c]   // Este toma el valor que se encuentra en la dirección esp+35C y lo pasa a EBX

savedata C:\Users\Flamer\Desktop\dump_script.txt,eax,ebx  

// toma el valor que se encuentra en la dirección EAX y con el tamaño en bytes que posee EBX y genera un archivo en el escritorio llamado dump_script.txt


msg "el Script a sido extraido con exito, saludos"  // muestra un mensaje

ret  // termina el script






Saludos Flamer y hasta la próxima.....

No hay comentarios.:

Publicar un comentario