'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)

dark99 發表在 痞客邦 留言(0) 人氣()