|
谁说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。。。效果就是按下按钮,会弹出一个空白框框。。。 |
|