Tesla.Angela 发表于 2014-5-24 11:47:35

无节操版VB6多线程

谁说VB6不能多线程?谁说VB6不能用CreateThread?我发现用得好好的。前提是线程函数用机器码来写。{:soso_e113:}
Private Sub Command9_Click()
    Dim sc(15) As Byte
    Dim ptr As Long, buffer As Long
    'push 0
    sc(0) = &H6A
    sc(1) = &H0
    'push 0
    sc(2) = &H6A
    sc(3) = &H0
    'push 0
    sc(4) = &H6A
    sc(5) = &H0
    'push 0
    sc(6) = &H6A
    sc(7) = &H0
    'mov eax,MessageBoxA
    sc(8) = &HB8
    sc(9) = &HB8 'addr1
    sc(10) = &HB8 'addr2
    sc(11) = &HB8 'addr3
    sc(12) = &HB8 'addr4
    'call eax
    sc(13) = &HFF
    sc(14) = &HD0
    'ret
    sc(15) = &HC3
    '修正地址
    ptr = GetProcAddress(GetModuleHandleA("user32.dll"), "MessageBoxA")
    RtlMoveMemory VarPtr(sc(9)), VarPtr(ptr), 4
    '复制SHELLCODE
    buffer = VirtualAlloc(0, 16, MEM_COMMIT, PAGE_EXECUTE_READWRITE)
    RtlMoveMemory buffer, VarPtr(sc(0)), 16
    '远程线程
    CreateThread 0, 0, buffer, 0, 0, 0
End Sub
没有做稳定性分析,没有释放内存,just for test。。。效果就是按下按钮,会弹出一个空白框框。。。

zfdyq 发表于 2014-5-24 17:37:57

支持老大~

upring 发表于 2015-3-24 11:24:19

感谢分享{:soso__f73f06b52e0b5055-f4f4f7819eeb3400-ff473bed7b999d0fa688f0eb32c07e20.jpg_1:}
页: [1]
查看完整版本: 无节操版VB6多线程