Tutorial Membuat Auto Injector

    Share

    F2F-Andrie_DK
    Banned
    Banned

    Male
    Thread & Post : 33
    Point Forum : 203098
    Thanks Given : 5012
    Join date : 13.09.11
    Age : 131
    Lokasi : Snutzer - Area

    default Tutorial Membuat Auto Injector

    Post by F2F-Andrie_DK on Fri Sep 16, 2011 8:34 am

    credit : google

    Fitur :
    - Suspend Otomatis
    - Multiple Dll Injection
    - Commond Dialog API <– jadi ga perlu lagi harus pasang component commond dialog

    Bahan VB 6

    http://www.ziddu.com...yshino.zip.html

    Neh Gua Yang PORTABLE ,
    lebih baek kalian cari yang instable

    Tutor :

    1.Buka dan extract VB 6 yang telah di download .
    2.buat 1 form dengan nama form1
    buat 5 command button, masing2 beri nama : command1,command2,cmdInjector,cmdExecute,cmdTerminate.
    untuk cmdInjector beri nama caption “Select DLL For Inject” tanpa tanda kutip
    untuk cmdExecute beri nama caption “Resume”.
    untuk cmdTerminate beri nama caption “Terminate”
    buat timer pada form, masing2 beri nama : timer1 dan timer2

    masukkan listing ini pada form1
    Spoiler:
    ‘Injector By Andrie-DK, Injector Original Pekalongan-Community 1.3 by Rizwanda & Andrie DK

    Private resmue As String
    Private winHwnd As Long
    Private bSuspend As Boolean

    Private Sub cmdExecute_Click()
    resmue = "yes"
    Unload Me
    End Sub

    Private Sub cmdInjector_Click()
    On Error GoTo errLine

    If Not cmdInjector.Caption = "Inject Now" Then
    Dim theTemp As String
    theTemp = OpenDialog(Me, "DLL files (*.dll)|*.dll", "Select DLL File For Inject...", App.Path)
    If Trim$(theTemp) "" Then
    If Dir$(theTemp) "" Then
    sFlDLL = theTemp
    cmdInjector.Caption = "Inject Now"
    Else
    sFlDLL = "None"
    cmdInjector.Caption = "Select DLL For Inject"
    End If
    End If
    Else
    If sFlDLL = "None" Then
    MsgBox "You can't Injector execute", 48, "Error Injector"
    Exit Sub
    Else
    InjectExecute sFlDLL
    sFlDLL = "None"
    cmdInjector.Caption = "Select DLL For Inject"
    End If
    End If

    Exit Sub
    errLine:
    MsgBox "File tidak respon atau tidak support", 48, "Error"
    End Sub

    Private Sub cmdTerminate_Click()
    resmue = "yes"
    On Error Resume Next
    Dim lExitCode As Long
    If MsgBox("Terminate Hackshield sekarang?", _
    vbYesNo + vbExclamation, "Terminate Proses") = vbYes Then
    lExitCode = TerminateTargetOne
    If lExitCode = 0 Then
    MsgBox "Proses terminate gagal.", _
    vbExclamation, "Terminate info"
    cmdTerminate.Enabled = False
    Else
    lExitCode = TerminateTargetTwo
    If lExitCode = 0 Then
    MsgBox "Proses terminate sukses.", _
    vbExclamation, "Terminate info"
    Else
    Unload Me
    End If
    End If
    End If
    End Sub

    Private Sub Command1_Click()
    InjectExecute App.Path & "\example1.dll"
    End Sub

    Private Sub Command2_Click()
    InjectExecute App.Path & "\example2.dll"
    End Sub

    Private Sub Form_Load()
    bSuspend = False
    Me.Left = (Screen.Width - Width) / 2
    ' Me.Top = -1000
    Timer2.Interval = 20
    Timer2.Enabled = True
    FileTargetOne = "PointBlank.exe"
    FileTargetTwo = "HSUpdate.exe"

    End Sub

    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Screen.MousePointer = vbDefault
    End Sub

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

    If bSuspend = True Then

    If Not resmue = "yes" Then

    If MsgBox("Klik Yes untuk Terminate (PB dan HS) dan No Untuk Membatalkan", vbYesNo, "") = vbYes Then
    cmdTerminate_Click
    Else
    Cancel = -1
    End If

    Else
    OpenURL "http:Snutzer-us.n-stars.org", Me.hwnd
    End If
    End If

    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    If bSuspend = True Then SetSuspendResumeThread False
    End
    End Sub

    Private Sub Timer1_Timer()
    winHwnd = FindWindow(vbNullString, "HSUpdate")
    If winHwnd 0 Then
    NTProcessList
    SetSuspendResumeThread True
    cmdTerminate.Enabled = True
    cmdExecute.Enabled = True
    cmdInjector.Enabled = True
    'pengaturan tombol jadi aktif
    Command1.Enabled = True
    Command2.Enabled = True
    bSuspend = True
    Vibrate Me, 100, 20
    MoveToTop
    Timer1.Enabled = False
    Else
    cmdTerminate.Enabled = False
    cmdExecute.Enabled = False
    cmdInjector.Enabled = False
    '-------------------------
    'pengaturan tombol jadi tidak aktif
    Command1.Enabled = False
    Command2.Enabled = False

    Timer1.Enabled = True
    bSuspend = False
    End If
    End Sub

    Private Sub Timer2_Timer()
    Me.Top = (Screen.Height - Height) / 2
    Timer2.Enabled = False
    Timer1.Enabled = True
    Timer1.Interval = 20
    End Sub

    Sub SlideWindow(frmSlide As Form, iSpeed As Integer)
    While frmSlide.Top - frmSlide.Height < Screen.Height
    DoEvents
    frmSlide.Top = frmSlide.Top + iSpeed
    Wend
    End Sub

    Private Sub MoveToTop()
    Dim currentTop As Long
    Dim TargetTop As Long
    Dim currentLeft As Long
    Dim TargetLeft As Long

    Dim i As Long
    currentTop = Me.Top
    TargetTop = (Screen.Height - Height) / 50

    For i = currentTop To TargetTop Step -2
    Me.Top = i
    Next i

    currentLeft = Me.Left
    TargetLeft = (Screen.Width - Me.Width) - 100

    For i = currentLeft To TargetLeft Step 2
    Me.Left = i
    Next i
    End Sub

    Private Sub Vibrate(Frm As Form, rScale As Integer, Times As Integer)
    Dim Lft As Long, Tp As Long
    Dim i
    Lft = Frm.Left
    Tp = Frm.Top
    For i = 1 To Times
    Frm.Move Lft + Sgn(rScale)
    Pause 20
    Frm.Move Lft + rScale
    Pause 20
    Frm.Move Lft, Tp + Sgn(rScale), Frm.Width, Frm.Height
    Pause 20
    Frm.Move Lft, Tp + rScale, Frm.Width, Frm.Height
    Pause 20
    Next i
    End Sub

    Private Sub Pause(ms)
    Dim secs
    Dim g
    secs = ms / 1000
    g = Timer
    Do While Timer - g < secs
    DoEvents
    Loop
    End Sub

    3. kemudian langkah selanjutnya, buat 4 modul masing beri nama ModCDialog,ModInjector, ModBrowser, dan ModProcess
    masukkan kode berikut pada ModCDialog

    4. Buat 4 Module
    5.Setiap Module diberi nama
    Modul 1 = ModCDialog
    Modul 2 = ModInjector
    Modul 3 = ModBrowser
    Modul 4 = ModProcess

    Kemudian copykan code di bawah ini pada modul 1 (ModCDialog)
    Spoiler:
    Option Explicit

    'Common Dialog
    Private Type OPENFILENAME
    lStructSize As Long
    hWndOwner As Long
    hInstance As Long
    lpstrFilter As String
    lpstrCustomFilter As String
    nMaxCustFilter As Long
    nFilterIndex As Long
    lpstrFile As String
    nMaxFile As Long
    lpstrFileTitle As String
    nMaxFileTitle As Long
    lpstrInitialDir As String
    lpstrTitle As String
    Flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
    End Type

    Public Const OFN_READONLY = &H1
    Public Const OFN_OVERWRITEPROMPT = &H2
    Public Const OFN_HIDEREADONLY = &H4
    Public Const OFN_NOCHANGEDIR = &H8
    Public Const OFN_SHOWHELP = &H10
    Public Const OFN_ENABLEHOOK = &H20
    Public Const OFN_ENABLETEMPLATE = &H40
    Public Const OFN_ENABLETEMPLATEHANDLE = &H80
    Public Const OFN_NOVALIDATE = &H100
    Public Const OFN_ALLOWMULTISELECT = &H200
    Public Const OFN_EXTENSIONDIFFERENT = &H400
    Public Const OFN_PATHMUSTEXIST = &H800
    Public Const OFN_FILEMUSTEXIST = &H1000
    Public Const OFN_CREATEPROMPT = &H2000
    Public Const OFN_SHAREAWARE = &H4000
    Public Const OFN_NOREADONLYRETURN = &H8000
    Public Const OFN_NOTESTFILECREATE = &H10000
    Public Const OFN_NONETWORKBUTTON = &H20000
    Public Const OFN_NOLONGNAMES = &H40000 ' force no long names for 4.x modules
    Public Const OFN_EXPLORER = &H80000 ' new look commdlg
    Public Const OFN_NODEREFERENCELINKS = &H100000
    Public Const OFN_LONGNAMES = &H200000 ' force long names for 3.x modules
    Public Const OFN_SHAREFALLTHROUGH = 2
    Public Const OFN_SHARENOWARN = 1
    Public Const OFN_SHAREWARN = 0

    Private Declare Function GetOpenFileName Lib "COMDLG32.DLL" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
    Private Declare Function GetSaveFileName Lib "COMDLG32.DLL" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long

    'Browse Folder Declarations
    Private Type BrowseInfo
    hWndOwner As Long
    pIDLRoot As Long
    pszDisplayName As Long
    lpszTitle As Long
    ulFlags As Long
    lpfnCallback As Long
    lParam As Long
    iImage As Long
    End Type
    Private Const BIF_RETURNONLYFSDIRS = 1
    Private Const MAX_PATH = 260
    Public Const BIF_STATUSTEXT = &H4&
    Public Const BIF_DONTGOBELOWDOMAIN = 2
    Public Const WM_USER = &H400
    Public Const BFFM_INITIALIZED = 1
    Public Const BFFM_SELCHANGED = 2
    Public Const BFFM_SETSTATUSTEXT = (WM_USER + 100)
    Public Const BFFM_SETSELECTION = (WM_USER + 102)

    Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
    Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
    Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
    Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long

    Function OpenDialog(Form1 As Form, Filter As String, Title As String, InitDir As String) As String
    Dim ofn As OPENFILENAME
    Dim A As Long
    Dim theTemp As String

    ofn.lStructSize = Len(ofn)
    ofn.hWndOwner = Form1.hwnd
    ofn.hInstance = App.hInstance
    If Right$(Filter, 1) "|" Then Filter = Filter + "|"
    For A = 1 To Len(Filter)
    If Mid$(Filter, A, 1) = "|" Then Mid$(Filter, A, 1) = Chr$(0)
    Next
    ofn.lpstrFilter = Filter
    ofn.lpstrFile = Space$(254)
    ofn.nMaxFile = 255
    ofn.lpstrFileTitle = Space$(254)
    ofn.nMaxFileTitle = 255
    ofn.lpstrInitialDir = InitDir
    ofn.lpstrTitle = Title
    ofn.Flags = OFN_HIDEREADONLY Or OFN_FILEMUSTEXIST
    A = GetOpenFileName(ofn)

    If (A) Then
    theTemp = Trim$(ofn.lpstrFile)
    If Asc(Right$(theTemp, 1)) = 0 Then theTemp = Left$(theTemp, Len(theTemp) - 1)
    OpenDialog = theTemp
    Else
    OpenDialog = ""
    End If
    End Function

    Public Function BrowseForFolder(hWndOwner As Long, sPrompt As String) As String
    '**************************************
    ' Name: Win95DirectoryPrompt
    ' Description:Prompting the User for a D
    ' irectory in Win95. Windows' common dialo
    ' gs are great if you want the user to sel
    ' ect a file, but what if you want them to
    ' select a directory? Call the following f
    ' unction, which relies on Win32's new SHB
    ' rowseForFolder function:
    ' By: Found on the World Wide Web
    Dim iNull As Integer
    Dim lpIDList As Long
    Dim lResult As Long
    Dim sPath As String
    Dim udtBI As BrowseInfo

    With udtBI
    .hWndOwner = hWndOwner
    .lpszTitle = lstrcat(sPrompt, "")
    .ulFlags = BIF_RETURNONLYFSDIRS
    End With
    lpIDList = SHBrowseForFolder(udtBI)

    If lpIDList Then
    sPath = String$(MAX_PATH, 0)
    lResult = SHGetPathFromIDList(lpIDList, sPath)
    Call CoTaskMemFree(lpIDList)
    iNull = InStr(sPath, vbNullChar)

    If iNull Then
    sPath = Left$(sPath, iNull - 1)
    End If
    End If
    If InStr(LCase$(sPath), "\nethood") > 0 Then
    MsgBox "The item that you selected is a folder shortcut, not a folder.", vbCritical, "Browse Folders"
    BrowseForFolder = ""
    Else
    BrowseForFolder = sPath
    End If
    End Function

    6.masukkan kode berikut pada ModInjector
    Spoiler:
    Option Explicit

    Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
    Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
    Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
    Private Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As Long, lpAddress As Any, ByVal dwSize As Long, ByVal fAllocType As Long, flProtect As Long) As Long
    Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
    Private Declare Function CreateRemoteThread Lib "kernel32" (ByVal ProcessHandle As Long, lpThreadAttributes As Long, ByVal dwStackSize As Long, ByVal lpStartAddress As Any, ByVal lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long
    Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    Public Function InjectDll(DllPath As String, ProsH As Long)
    Dim DLLVirtLoc As Long, DllLength, Inject As Long, LibAddress As Long
    Dim CreateThread As Long, ThreadID As Long
    Dim Bla As VbMsgBoxResult

    g_loadlibary:
    LibAddress = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA")
    If LibAddress = 0 Then
    Bla = MsgBox("Can't find LoadLibrary API from kernel32.dll", vbYesNo, "ERROR")
    If Bla = vbYes Then
    GoTo g_loadlibary
    Else
    Exit Function
    End If
    End If

    g_virutalallocex:
    DllLength = Len(DllPath)
    DLLVirtLoc = VirtualAllocEx(ProsH, 0, DllLength, &H1000, ByVal &H4)
    If DLLVirtLoc = 0 Then
    Bla = MsgBox("VirtualAllocEx API failed! - try again?", vbYesNo, "ERROR")
    If Bla = vbYes Then
    GoTo g_virutalallocex
    Else
    Exit Function
    End If
    End If

    g_writepmemory:
    Inject = WriteProcessMemory(ProsH, ByVal DLLVirtLoc, ByVal DllPath, DllLength, vbNull)
    If Inject = 0 Then
    Bla = MsgBox("Failed to Write DLL to Process! - try again?", vbYesNo, "ERROR")
    If Bla = vbYes Then
    GoTo g_writepmemory
    Else
    Exit Function
    End If
    End If

    g_creatthread:
    CreateThread = CreateRemoteThread(ProsH, ByVal 0, 0, ByVal LibAddress, ByVal DLLVirtLoc, 0, ThreadID)
    If CreateThread = 0 Then
    Bla = MsgBox("Failed to Create Thead! - try again?", vbYesNo, "ERROR")
    If Bla = vbYes Then
    GoTo g_creatthread
    Else
    Exit Function
    End If
    End If

    MsgBox "Dll Injection Successful!", 64, "Success"

    End Function

    Public Sub InjectExecute(ByVal sFlDLL As String)
    Dim lProcInject As Long
    lProcInject = OpenProcess(PROCESS_ALL_ACCESS, 0, IdTargetOne)
    If lProcInject > "0" Then
    Call InjectDll(sFlDLL, lProcInject)
    End If
    Call CloseHandle(lProcInject)

    End Sub

    7.masukkan kode berikut pada modbrowser
    Spoiler:
    'modul buka browser
    Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long

    Public Sub OpenURL(situs As String, sourceHWND As Long)
    Call ShellExecute(sourceHWND, vbNullString, situs, vbNullString, vbNullString, 1)
    End Sub

    8.masukkan kode berikut pada modprocess
    Spoiler:
    Option Explicit

    Public Declare Function FindWindow Lib "USER32" Alias "FindWindowA" (ByVal Classname As String, ByVal WindowName As String) As Long
    Public Declare Function PostMessage Lib "USER32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Public Declare Function Process32First Lib _
    "kernel32" (ByVal hSnapShot As Long, _
    uProcess As PROCESSENTRY32) As Long
    Public Declare Function Process32Next Lib _
    "kernel32" (ByVal hSnapShot As Long, _
    uProcess As PROCESSENTRY32) As Long
    Public Declare Function CloseHandle Lib _
    "kernel32" (ByVal hObject As Long) As Long

    Public FileTargetOne As String
    Public FileTargetTwo As String
    Public sFlDLL As String

    Public IdTargetOne As Long
    Private IdTargetTwo As Long

    Private Const TH32CS_SNAPHEAPLIST = &H1
    Private Const TH32CS_SNAPPROCESS = &H2
    Private Const TH32CS_SNAPTHREAD = &H4
    Private Const TH32CS_SNAPMODULE = &H8
    Private Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or _
    TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)
    Private Const MAX_PATH = 260
    Public Const PROCESS_ALL_ACCESS = &H1F0FFF

    Private Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szExeFile As String * MAX_PATH
    End Type

    Private Type MODULEENTRY32
    dwSize As Long
    th32ModuleID As Long
    th32ProcessID As Long
    GlblcntUsage As Long
    ProccntUsage As Long
    modBaseAddr As Long
    modBaseSize As Long
    hModule As Long
    szModule As String * 256
    szExePath As String * 260
    End Type

    Private Type THREADENTRY32
    dwSize As Long
    cntUsage As Long
    th32ThreadID As Long
    th32OwnerProcessID As Long
    tpBasePri As Long
    tpDeltaPri As Long
    dwFlags As Long
    End Type

    Private Const THREAD_SUSPEND_RESUME = &H2
    Private Declare Function OpenThread Lib _
    "kernel32.dll" (ByVal dwDesiredAccess As Long, _
    ByVal bInheritHandle As Boolean, _
    ByVal dwThreadId As Long) As Long
    Private Declare Function ResumeThread Lib _
    "kernel32.dll" (ByVal hThread As Long) As Long
    Private Declare Function SuspendThread Lib _
    "kernel32.dll" (ByVal hThread As Long) As Long
    Private hThread As Long

    Private Declare Function CreateToolhelp32Snapshot Lib _
    "kernel32" (ByVal lFlags As Long, _
    ByVal lProcessID As Long) As Long

    Private Declare Function Module32First Lib _
    "kernel32" (ByVal hSnapShot As Long, _
    uProcess As MODULEENTRY32) As Long
    Private Declare Function lstrlen Lib _
    "kernel32" Alias "lstrlenA" ( _
    ByVal lpString As String) As Long
    Private Declare Function GetFileTitle Lib _
    "COMDLG32.DLL" Alias "GetFileTitleA" ( _
    ByVal lpszFile As String, _
    ByVal lpszTitle As String, _
    ByVal cbBuf As Integer) As Integer

    Private Declare Function Thread32First Lib _
    "kernel32.dll" (ByVal hSnapShot As Long, _
    ByRef lpte As THREADENTRY32) As Boolean
    Private Declare Function Thread32Next Lib _
    "kernel32.dll" (ByVal hSnapShot As Long, _
    ByRef lpte As THREADENTRY32) As Boolean

    Public Declare Function OpenProcess Lib _
    "kernel32" (ByVal dwDesiredAccess As Long, _
    ByVal bInheritHandle As Long, _
    ByVal dwProcessId As Long) As Long

    Private Declare Function TerminateProcess Lib _
    "kernel32" (ByVal hProcess As Long, _
    ByVal uExitCode As Long) As Long

    Public Function NTProcessList() As Long
    On Error Resume Next
    Dim FileName As String, ExePath As String
    Dim hProcSnap As Long, hModuleSnap As Long, _
    lProc As Long
    Dim uProcess As PROCESSENTRY32, _
    uModule As MODULEENTRY32
    Dim intLVW As Integer
    hProcSnap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&)
    uProcess.dwSize = Len(uProcess)
    lProc = Process32First(hProcSnap, uProcess)
    Do While lProc
    If uProcess.th32ProcessID 0 Then
    hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, uProcess.th32ProcessID)
    uModule.dwSize = Len(uModule)
    Module32First hModuleSnap, uModule
    If hModuleSnap > 0 Then
    ExePath = StripNulls(uModule.szExePath)
    FileName = GetFName(ExePath)
    If FileTargetOne = FileName Then IdTargetOne = uProcess.th32ProcessID
    If FileTargetTwo = FileName Then IdTargetTwo = uProcess.th32ProcessID
    End If
    End If
    lProc = Process32Next(hProcSnap, uProcess)
    Loop
    Call CloseHandle(hProcSnap)
    Call CloseHandle(lProc)
    End Function

    Function StripNulls(ByVal sStr As String) As String
    StripNulls = Left$(sStr, lstrlen(sStr))
    End Function

    Public Function GetFName(fn) As String
    Dim f%, n%
    GetFName = fn
    f% = InStr(fn, "")
    Do While f%
    n% = f%
    f% = InStr(n% + 1, fn, "")
    Loop
    If n% > 0 Then GetFName = Mid$(fn, n% + 1)
    End Function

    Private Function Thread32Enum(ByRef Thread() As THREADENTRY32, _
    ByVal lProcessID As Long) As Long
    On Error Resume Next
    ReDim Thread(0)
    Dim THREADENTRY32 As THREADENTRY32
    Dim hThreadSnap As Long
    Dim lThread As Long
    hThreadSnap = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, lProcessID)
    THREADENTRY32.dwSize = Len(THREADENTRY32)
    If Thread32First(hThreadSnap, THREADENTRY32) = False Then
    Thread32Enum = -1
    Exit Function
    Else
    ReDim Thread(lThread)
    Thread(lThread) = THREADENTRY32
    End If
    Do
    If Thread32Next(hThreadSnap, THREADENTRY32) = False Then
    Exit Do
    Else
    lThread = lThread + 1
    ReDim Preserve Thread(lThread)
    Thread(lThread) = THREADENTRY32
    End If
    Loop
    Thread32Enum = lThread
    Call CloseHandle(hThreadSnap)
    End Function

    Public Function SetSuspendResumeThread(SuspendNow As Boolean) As Long
    Dim Thread() As THREADENTRY32, hPID As Long, hThread As Long, i As Long
    hPID = IdTargetOne
    Thread32Enum Thread(), hPID
    For i = 0 To UBound(Thread)
    If Thread(i).th32OwnerProcessID = hPID Then
    hThread = OpenThread(THREAD_SUSPEND_RESUME, False, (Thread(i).th32ThreadID))
    If SuspendNow = True Then
    SetSuspendResumeThread = SuspendThread(hThread)
    Else
    SetSuspendResumeThread = ResumeThread(hThread)
    End If
    End If
    Next i
    Call CloseHandle(hThread)
    End Function

    Public Function TerminateTargetOne() As Long
    Dim hPID As Long
    hPID = OpenProcess(PROCESS_ALL_ACCESS, 0, IdTargetOne)
    TerminateTargetOne = TerminateProcess(hPID, 0)
    Call CloseHandle(hPID)
    End Function

    Public Function TerminateTargetTwo() As Long
    Dim hPID As Long
    hPID = OpenProcess(PROCESS_ALL_ACCESS, 0, IdTargetTwo)
    TerminateTargetTwo = TerminateProcess(hPID, 0)
    Call CloseHandle(hPID)

    End Function

    10. jika semua sudah selesai ,
    Pilih menu file, dan klik Make project1.exe

    Ingat : perhatikan kode command1 dan command2 pada listing code pada form1

    Private Sub Command1_Click()
    InjectExecute App.Path & "\example1.dll"
    End Sub

    Ganti example.Dll dengan Dll kamu sendiri.

    Credit By Andrie Danang Kurniawan

      Waktu sekarang Mon Dec 05, 2016 11:27 am