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




Link del vídeo donde se muestra como usarse: https://www.youtube.com/watch?v=NdMUQwZ3NII&t=3s


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