Loading

pycharm 破解脚本解析

// 这行代码检查传递给脚本的命令行参数中是否包含名为"elevate"的参数。WScript.Arguments.Named是一个集合,用于存储脚本接收的命名参数。如果未找到名为"elevate"的参数,条件判断为真,执行紧接着的代码块。

If Not WScript.Arguments.Named.Exists("elevate") Then
  CreateObject("Shell.Application").ShellExecute WScript.FullName, """" & WScript.ScriptFullName & """ /elevate", "", "runas", 10
  //CreateObject("Shell.Application") 创建了一个Shell应用程序对象,允许执行与Windows Shell相关的操作。
  /WScript.FullName获取当前WScript引擎的完整路径
  //WScript.ScriptFullName获取当前脚本的完整路径
  // 以管理员权限重新运行该脚本
  WScript.Quit
  //执行完上述命令后,使用这个命令终止当前脚本的执行
End If

Set oShell = CreateObject("WScript.Shell")
Set oEnvSystem = oShell.Environment("SYSTEM")
Set oFS = CreateObject("Scripting.FileSystemObject")

Dim sBasePath, sJarFile
sBasePath = oFS.GetParentFolderName(oFS.GetParentFolderName(WScript.ScriptFullName))
sJarFile = sBasePath & "\ja-netfilter.jar"

If Not oFS.FileExists(sJarFile) Then
    MsgBox "ja-netfilter.jar not found", vbOKOnly Or vbCritical
    WScript.Quit -1
End If

MsgBox "It may take a few seconds to execute this script." & vbCrLf & vbCrLf & "Click 'OK' button and wait for the prompt of 'Done.' to pop up!"

Dim sEnvKey, sEnvVal, aJBProducts
aJBProducts = Array("idea", "clion", "phpstorm", "goland", "pycharm", "webstorm", "webide", "rider", "datagrip", "rubymine", "appcode", "dataspell", "gateway", "jetbrains_client", "jetbrainsclient", "studio", "devecostudio")

Set re = New RegExp
re.Global     = True
re.IgnoreCase = True
re.Pattern    = "^\-javaagent:.*[\/\\]ja\-netfilter\.jar.*"

Sub RemoveEnv(env)
    On Error Resume Next

    For Each sPrd in aJBProducts
        sEnvKey = UCase(sPrd) & "_VM_OPTIONS"
        sEnvVal = oShell.ExpandEnvironmentStrings("%" & sEnvKey & "%")
        If sEnvVal <> ("%" & sEnvKey & "%") Then
            env.Remove(sEnvKey)
        End If
        Next
End Sub

RemoveEnv oShell.Environment("USER")

Dim sVmOptionsFile
For Each sPrd in aJBProducts
    sEnvKey = UCase(sPrd) & "_VM_OPTIONS"
    sVmOptionsFile = sBasePath & "\vmoptions\" & sPrd & ".vmoptions"
    If oFS.FileExists(sVmOptionsFile) Then
        ProcessVmOptions sVmOptionsFile
        oEnvSystem(sEnvKey) = sVmOptionsFile
    End If
Next

Sub ProcessVmOptions(ByVal file)
    Dim sLine, sNewContent, bMatch
    Set oFile = oFS.OpenTextFile(file, 1, 0)

    sNewContent = ""
    Do Until oFile.AtEndOfStream
        sLine = oFile.ReadLine
        bMatch = re.Test(sLine)
        If Not bMatch Then
            sNewContent = sNewContent & sLine & vbLf
        End If
    Loop
    oFile.Close

    sNewContent = sNewContent & "-javaagent:" & sJarFile & "=jetbrains"
    Set oFile = oFS.OpenTextFile(file, 2, 0)
    oFile.Write sNewContent
    oFile.Close
End Sub

MsgBox "Done."

posted @ 2024-06-11 02:21  踩坑大王  阅读(48)  评论(0编辑  收藏  举报