Welcome guest. Before posting on our computer help forum, you must register. Click here it's easy and free.

Author Topic: Drag a vbs file from one directory and drop in on top another vbs file with .bat  (Read 4102 times)

0 Members and 1 Guest are viewing this topic.

zask

    Topic Starter


    Intermediate

    • Experience: Experienced
    • OS: Other
    Okay i have a batch file that creates a vbs file named "obfuscator.vbs". "obfuscator.vbs" obfuscates other vbs files that you name in a directory that you name with help from the batch file. these names are stored in the variables %PATH% and %FILE%. all i need to do is just pass in the vbs filename "message.vbs" to the script "obfuscator.vbs" as an argument from command line. how do i do this? for example you select a directory that has the vbs file name "message.vbs". it's code displays this. note that all the code below contains 0 errors.

    this is "message.vbs"
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX

    msgbox "message", ,"title"

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX

    if i drag and drop the file "message.vbs" on the "obfucator.vbs" file that is generated by this batch file, the "message.vbs" file will become obfuscated.

    this is the batch file that creates the file "obfuscator.vbs"
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX

    @echo off
    title Vbs Obfuscator
    color 0a

    set /p "PATH=Enter the path of the folder place the obfuscator : "
    set /p "FILE=Enter the filename that you wish to obfuscate (.txt or .vbs) : "

    echo Option Explicit >> "%PATH%\Obfuscator.vbs"
    echo.  >> "%PATH%\Obfuscator.vbs"
    echo Dim oEncoder >> "%PATH%\Obfuscator.vbs"
    echo Set oEncoder = CreateObject("Scripting.Encoder") >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo Dim oFso >> "%PATH%\Obfuscator.vbs"
    echo Set oFso = CreateObject("Scripting.FileSystemObject") >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo Dim oFiles >> "%PATH%\Obfuscator.vbs"
    echo set oFiles = WScript.Arguments >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo Randomize >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo Call EnObfuscate(oFiles) >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo Private function EnObfuscate(oFiles) >> "%PATH%\Obfuscator.vbs"
    echo   Dim sFileName, oFile, sBody, i >> "%PATH%\Obfuscator.vbs"
    echo   Dim sFileOut, sOutput >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo   For i = 0 to oFiles.Count - 1 >> "%PATH%\Obfuscator.vbs"
    echo     sFileName = oFiles(i) >> "%PATH%\Obfuscator.vbs"
    echo     set oFile = oFso.GetFile(sFileName) >> "%PATH%\Obfuscator.vbs"
    echo     sBody = ReadFile(oFile) >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo     sOutput = Encode(Obfuscate(sBody)) >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo     sFileOut = Left(sFileName, Len(sFileName) - 3) ^& "vbe" >> "%PATH%\Obfuscator.vbs"
    echo     WriteFile sFileOut, sOutput >> "%PATH%\Obfuscator.vbs"
    echo   Next >> "%PATH%\Obfuscator.vbs"
    echo End Function >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo Private Function ReadFile(oFile) >> "%PATH%\Obfuscator.vbs"
    echo   Dim oStream >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo   Const IOMODE_FOR_READING = 1 >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo   Set oStream = oFile.OpenAsTextStream(IOMODE_FOR_READING) >> "%PATH%\Obfuscator.vbs"
    echo   ReadFile = oStream.ReadAll >> "%PATH%\Obfuscator.vbs"
    echo   oStream.Close >> "%PATH%\Obfuscator.vbs"
    echo End Function >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo Private Sub WriteFile(sFileOut, sOutput) >> "%PATH%\Obfuscator.vbs"
    echo   Dim oOutputFile >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo   Set oOutputFile = oFso.CreateTextFile(sFileOut) >> "%PATH%\Obfuscator.vbs"
    echo   oOutputFile.Write sOutput >> "%PATH%\Obfuscator.vbs"
    echo   oOutputFile.Close >> "%PATH%\Obfuscator.vbs"
    echo End Sub >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo Private Function Obfuscate(txt) >> "%PATH%\Obfuscator.vbs"
    echo   Dim enc, i >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo   enc = "" >> "%PATH%\Obfuscator.vbs"
    echo   for i = 1 to len(txt) >> "%PATH%\Obfuscator.vbs"
    echo     enc = enc ^& "chr( " ^& form( asc(mid(txt,i,1)) ) ^& " ) & " >> "%PATH%\Obfuscator.vbs"
    echo   next >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo  Obfuscate = "Execute(" ^& enc ^& " vbcrlf " ^& " ) " >> "%PATH%\Obfuscator.vbs"
    echo End Function >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo Private Function form(n) >> "%PATH%\Obfuscator.vbs"
    echo  dim r, k, ret >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo  r = int(rnd * 10000) >> "%PATH%\Obfuscator.vbs"
    echo   k = int(rnd * 3) >> "%PATH%\Obfuscator.vbs"
    echo   if( k = 0) then ret = (r+n) ^& "-" ^& r >> "%PATH%\Obfuscator.vbs"
    echo   if( k = 1) then ret = (n-r) ^& "+" ^& r >> "%PATH%\Obfuscator.vbs"
    echo   if( k = 2) then ret = (n*r) ^& "/" ^& r >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo   form = ret >> "%PATH%\Obfuscator.vbs"
    echo End Function >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo Private Function Encode(txt) >> "%PATH%\Obfuscator.vbs"
    echo   Const Extension = ".vbs" >> "%PATH%\Obfuscator.vbs"
    echo   Const Flags = 0 >> "%PATH%\Obfuscator.vbs"
    echo   Const Language = "" >> "%PATH%\Obfuscator.vbs"
    echo. >> "%PATH%\Obfuscator.vbs"
    echo   Encode = oEncoder.EncodeScriptFile(Extension, txt, Flags, Language) >> "%PATH%\Obfuscator.vbs"
    echo End Function >> "%PATH%\Obfuscator.vbs"

    echo File "Obfuscator.vbs" was placed in the folder "%PATH%".
    pause

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX

    i basically want to obfuscate the "message.vbs" file without having to put anymore effort other than adding the file path and file name. either way how can i do this? i ether need the batch code to do this or the vbscript code to do this.

    this is an example of what im not trying to do
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX

    Dim objShell
    Set objShell = Wscript.CreateObject("WScript.Shell")

    objShell.Run "message.vbs"

    ' Using Set is mandatory
    Set objShell = Nothing

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX

    « Last Edit: February 20, 2016, 05:21:22 PM by zask »

    zask

      Topic Starter


      Intermediate

      • Experience: Experienced
      • OS: Other
      sorry didn't mean to double post that, fixed it

      zask

        Topic Starter


        Intermediate

        • Experience: Experienced
        • OS: Other
        the argument is named oFiles

        zask

          Topic Starter


          Intermediate

          • Experience: Experienced
          • OS: Other
          hmm... maybe it would be more helpful to post the vbs code that "obfuscator.bat" creates?

          Option Explicit
           
          Dim oEncoder
          Set oEncoder = CreateObject("Scripting.Encoder")
           
          Dim oFso
          Set oFso = CreateObject("Scripting.FileSystemObject")
           
          Dim oFiles
          set oFiles = WScript.Arguments
           
          Randomize
           
          Call EnObfuscate(oFiles)
           
          Private function EnObfuscate(oFiles)
            Dim sFileName, oFile, sBody, i
            Dim sFileOut, sOutput
           
            For i = 0 to oFiles.Count - 1
              sFileName = oFiles(i)
              set oFile = oFso.GetFile(sFileName)
              sBody = ReadFile(oFile)
           
              sOutput = Encode(Obfuscate(sBody))
           
              sFileOut = Left(sFileName, Len(sFileName) - 3) & "vbe"
              WriteFile sFileOut, sOutput
            Next
          End Function
           
          Private Function ReadFile(oFile)
            Dim oStream
           
            Const IOMODE_FOR_READING = 1
           
            Set oStream = oFile.OpenAsTextStream(IOMODE_FOR_READING)
            ReadFile = oStream.ReadAll
            oStream.Close
          End Function
           
          Private Sub WriteFile(sFileOut, sOutput)
            Dim oOutputFile
           
            Set oOutputFile = oFso.CreateTextFile(sFileOut)
            oOutputFile.Write sOutput
            oOutputFile.Close
          End Sub
           
          Private Function Obfuscate(txt)
            Dim enc, i
           
            enc = ""
            for i = 1 to len(txt)
              enc = enc & "chr( " & form( asc(mid(txt,i,1)) ) & " ) & "
            next
           
           Obfuscate = "Execute(" & enc & " vbcrlf " & " ) "
          End Function
           
          Private Function form(n)
           dim r, k, ret
           
           r = int(rnd * 10000)
            k = int(rnd * 3)
            if( k = 0) then ret = (r+n) & "-" & r
            if( k = 1) then ret = (n-r) & "+" & r
            if( k = 2) then ret = (n*r) & "/" & r
           
            form = ret
          End Function
           
          Private Function Encode(txt)
            Const Extension = ".vbs"
            Const Flags = 0
            Const Language = ""
           
            Encode = oEncoder.EncodeScriptFile(Extension, txt, Flags, Language)
          End Function

          patio

          • Moderator


          • Genius
          • Maud' Dib
          • Thanked: 1769
            • Yes
          • Experience: Beginner
          • OS: Windows 7
          I like these Topics where you just answer yourself...
          " Anyone who goes to a psychiatrist should have his head examined. "

          zask

            Topic Starter


            Intermediate

            • Experience: Experienced
            • OS: Other
            that doesn't awnser my question, "obfuscator.bat" creates obfuscator.vbs. obfuscator.vbs obfuscates other vbs files. how do i all i need to do is pass in the vbs filename "message.vbs" to the script "obfuscator.vbs" as an argument from command line. this is what im asking for. calling the file wont allow the argument oFiles to obfuscate the program. i need to basically pass the file "message.vbs" through "obfuscator.vbs".

            BC_Programmer


              Mastermind
            • Typing is no substitute for thinking.
            • Thanked: 1140
              • Yes
              • Yes
              • BC-Programming.com
            • Certifications: List
            • Computer: Specs
            • Experience: Beginner
            • OS: Windows 11
            If you want to pass arguments to a VBScript program, you include the arguments at the end of the call that runs the script.
            I was trying to dereference Null Pointers before it was cool.

            zask

              Topic Starter


              Intermediate

              • Experience: Experienced
              • OS: Other
              sorry still dont get what you mean can i have a simple example?

              Geek-9pm


                Mastermind
              • Geek After Dark
              • Thanked: 1026
                • Gekk9pm bnlog
              • Certifications: List
              • Computer: Specs
              • Experience: Expert
              • OS: Windows 10
              The general rule for a command line thing is like this:

              my_script ar1 ar2 ar3

              In this example, my_script is some suitable script or program and the items that follow are the parameters, or values the program needs to have.

              If my_script is a BAT file, it can be called from a bat file:

              call my_script %1 %2 %3

              This is documented somewhere.