找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 5042|回复: 2

[交流] 无节操版VB6多线程

[复制链接]

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2014-5-24 11:47:35 | 显示全部楼层 |阅读模式
谁说VB6不能多线程?谁说VB6不能用CreateThread?我发现用得好好的。前提是线程函数用机器码来写。{:soso_e113:}
  1. Private Sub Command9_Click()
  2.     Dim sc(15) As Byte
  3.     Dim ptr As Long, buffer As Long
  4.     'push 0
  5.     sc(0) = &H6A
  6.     sc(1) = &H0
  7.     'push 0
  8.     sc(2) = &H6A
  9.     sc(3) = &H0
  10.     'push 0
  11.     sc(4) = &H6A
  12.     sc(5) = &H0
  13.     'push 0
  14.     sc(6) = &H6A
  15.     sc(7) = &H0
  16.     'mov eax,MessageBoxA
  17.     sc(8) = &HB8
  18.     sc(9) = &HB8 'addr1
  19.     sc(10) = &HB8 'addr2
  20.     sc(11) = &HB8 'addr3
  21.     sc(12) = &HB8 'addr4
  22.     'call eax
  23.     sc(13) = &HFF
  24.     sc(14) = &HD0
  25.     'ret
  26.     sc(15) = &HC3
  27.     '修正地址
  28.     ptr = GetProcAddress(GetModuleHandleA("user32.dll"), "MessageBoxA")
  29.     RtlMoveMemory VarPtr(sc(9)), VarPtr(ptr), 4
  30.     '复制SHELLCODE
  31.     buffer = VirtualAlloc(0, 16, MEM_COMMIT, PAGE_EXECUTE_READWRITE)
  32.     RtlMoveMemory buffer, VarPtr(sc(0)), 16
  33.     '远程线程
  34.     CreateThread 0, 0, buffer, 0, 0, 0
  35. End Sub
复制代码

没有做稳定性分析,没有释放内存,just for test。。。效果就是按下按钮,会弹出一个空白框框。。。

5

主题

52

回帖

0

精华

钻石会员

积分
4275
发表于 2014-5-24 17:37:57 | 显示全部楼层
支持老大~

30

主题

693

回帖

0

精华

钻石会员

积分
2815
发表于 2015-3-24 11:24:19 | 显示全部楼层
感谢分享{:soso__f73f06b52e0b5055-f4f4f7819eeb3400-ff473bed7b999d0fa688f0eb32c07e20.jpg_1:}
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表