'CreateRemoteThread
'創遠端線程
'CRT
'配置記憶體
'Dim AsmCode() As Byte = {&H60, &H8B, &H74, &H24, &H10, &H57, &HC7, &H5, &H9C, &H57, &H0, &H1, &H10, &H0, &H0, &H0, &H61, &HC3}
Dim AsmCode() As Byte = {&H60, &HC7, &H5, &H9C, &H57, &H0, &H1, &H10, &H0, &H0, &H0, &H61, &HC3}
'&H81,&H3D,&H9C,&H57,&H00,&H01,&H07,&H00,&H00,&H00
Dim MyCurrMem As Integer ' = &HFB0000
Dim hThread2, Temp1 As Integer
Dim MySetMemory As Integer
MyGetWindow = FindWindow("踩地雷", vbNullString)
If MyGetWindow = 0 Then
MsgBox("NotePad Not Found。」Exit")
Exit Sub
End If
GetWindowThreadProcessId(MyGetWindow, MyProcessID)
R_OP_2 = OpenProcess(PROCESS_CREATE_THREAD Or PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, MyProcessID)
MyBufferSize = &H1000
MyCurrMem = VirtualAllocEx(R_OP_2, 0&, AsmCode.Length, MEM_COMMIT, PAGE_EXECUTE_READWRITE)
WriteProcessMemory(R_OP_2, MyCurrMem, AsmCode, AsmCode.Length, 0)
MySetMemory = VirtualAllocEx(R_OP_2, 0&, AsmCode.Length, MEM_COMMIT, PAGE_EXECUTE_READWRITE)
WPM_int(R_OP_2, MySetMemory, VarPtr_(AsmCode), AsmCode.Length, 0)
'新的方式 (varptr 替代方式)
'WriteProcessMemory(R_OP_2, MySetMemory, AsmCode, AsmCode.Length, 0)
'另一種方式
'CreateRemoteThread(R_OP_2, 0, 0, MySetMemory, 0, 0, 0)
hThread2 = CreateRemoteThread(R_OP_2, 0, 0, MySetMemory, 0, 0, Temp1)
VirtualFreeEx(R_OP_2, MySetMemory, UBound(AsmCode) + 1, MEM_RELEASE)
'ListBox1.Items.Add(x)
'MsgBox("ok")
CloseHandle(R_OP_2)
'VarPtr_(AsmCode)
目前分類:程式語言 (41)
- Jan 06 Thu 2011 10:11
VarPtr _CreateRemoteThread