如何在vbScript中加扰函数名称[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在vbScript中加扰函数名称[关闭]相关的知识,希望对你有一定的参考价值。

我想在定义函数时隐藏源代码中的函数名称。我已经测试了下面的逻辑,将名称分成两部分但不起作用:

function convertName(x)
    convertName= x & "tion"
end function

function convertName("myFunc")(text)
    convertName("myFunc")= text
end function

response.write myFunction("test")

还有另一种方法可以扰乱功能名称吗?

答案

阅读OP问题评论我确信这不是OP需要的(Ansgar Wiechers是完全正确的,这只会使代码变得模糊,但根本不提供任何安全性),但它是如何处理已经存在的一种方式的示例请求。

为了防止有人发现它有用,基本的想法是

Sub scrambledName( data )
    WScript.Echo data
End Sub 

    Set originalName = GetRef("scrambledName")
    originalName "this is a test"

也就是说,我们使用带有原始名称的变量来保存对加扰名称后面的代码的引用。

作为样本:

Option Explicit

' Scrambled named code
'------------------------------------------------------------------------------
Sub Sbesttu29348( inputText )
    WScript.Echo "data=" & inputText
End Sub 

Function Fceinnostttu6953( a, b, c)
    Fceinnostttu6953 = a + b + c
End Function 
'------------------------------------------------------------------------------

    ' Map original names to scrambled ones
    prepareFunctions Array( "testSub", "testFunction" )

    ' Call functions using original names
    testSub "this is a test"
    WScript.Echo testFunction(1, 2, 3)


'Scramble handling code
'------------------------------------------------------------------------------
' Function used to find a scrambled name for the original function
' This simply concatenates input text sorted characters with a simple hash
Function scramble( inputText )
Dim a(256), i, s, h
    For i = 1 To LenB( inputText )
        s = AscB(MidB(inputText, i, 1)) 
        If s > 0 Then a(s) = a(s) & Chr(s)
        h = ((h2)Xor(((h And 1)*65535)And&hffff))+s
    Next
    scramble = Trim(Join(a,"")) & h
End Function 

' Map original names to scrambled names
' It just defines new variables for the original names pointing to the scrambled names
Sub prepareFunctions( aFunctions )
Dim f, s
    For Each f in aFunctions
        s = s & "Set " & f & "=GetRef(""" & scramble(f) & """)" & vbCrLf
    Next 
    ExecuteGlobal s
End Sub
'------------------------------------------------------------------------------

以上是关于如何在vbScript中加扰函数名称[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在名称作为参数提供的用户定义函数中加入表?

VBScript执行成功后如何关闭CMD提示窗口

通道扰频器[关闭]

Thinkphp3.2关闭调试模式以后第二次打开页面就会出现报错,请问一般问题在哪里?怎么解决?

如何在后台找到运行 VBScript 的文件位置? [关闭]

如何在VBScript中使用ADODB结果集? [关闭]