VB 程序内直接执行文本字符串形式的 ShellCode 代码:

    这个没什么说的,黑色加粗的是 Hex 十六进制字符串形式的 ShellCode。注释部分是另外一种执行方法,直接执行 bin 二进制格式的 Byte 数组(可以事先放入到资源中,用的时候再提取出来)。其实字符串形式的 ShellCode,也是先转换为 Byte 数组才执行的,反正最终执行的都是 Byte 数组。

Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Sub Command1_Click()
    Dim Code As String, Exec() As Byte
    Code = "FC686A0A381E686389D14F683274910C8BF48D7EF433DBB7042BE366BB33325368757365725433D2648B5A308B4B0C8B491C8B098B6908AD3D6A0A381E750595FF57F895608B453C8B4C057803CD8B592003DD33FF478B34BB03F5990FBE063AC47408C1CA0703D046EBF13B54241C75E48B592403DD668B3C7B8B591C03DD032CBB955FAB57613D6A0A381E75A933DB5368696E672168746573748BC453505053FF57FC53FF57F8"
    ReDim Exec(Len(Code) / 2 - 1)                                               '全部ShellCode长度减去1
    For i = 0 To Len(Code) / 2 - 1                                              '转换为byte数组
        Exec(i) = Int("&H" & Mid(Code, i * 2 + 1, 2))
    Next
    CallWindowProc VarPtr(Exec(0)), ByVal 0&, ByVal 0&, ByVal 0&, ByVal 0&      '执行处理好的ShellCode
    '
    'Dim Exec() As Byte
    'Exec() = LoadResData(101, "CUSTOM")                                         '提取资源文件到Exec(0)数组
    'CallWindowProc VarPtr(Exec(0)), ByVal 0&, ByVal 0&, ByVal 0&, ByVal 0&      'CallWindowProc是可以直接执行一个byte数组的

End Sub

    VB 程序内直接执行文本字符串形式的ShellCode代码,VB 程序内直接执行文本字符串式的ShellCode代码,VB 程序内直接执行文本字符串ShellCode代码,VB 程序内直接执行字符串ShellCode代码,VB 程序内直接执行文本ShellCode代码,VB 程序内直接执行ShellCode代码,VB 程序内执行ShellCode代码,VB 程序执行ShellCode代码,VB 执行ShellCode代码,VB 执行ShellCode,VB ShellCode代码,VB ShellCode。