powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Внедрение DLL и подключение к ресурсам EXE
3 сообщений из 3, страница 1 из 1
Внедрение DLL и подключение к ресурсам EXE
    #40081917
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Данный пример содержит модуль инжекта ActiveX DLL в нужный поток процесса, а также показывает как подсоединится к работающему EXE и получить доступ к его VB.Global объекту. Это позволяет к примеру вызывать методы открытых форм/контролов/App и т.д.

Модуль инжекта позволяет создавать объекты в других потоках и получать отмаршаленую ссылку - методы можно вызывать прямо из IDE. В примере запускается EXE и вызываются методы его формы:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    If CreateProcess(StrPtr(App.Path & "\..\dummy\dummy.exe"), 0, ByVal 0&, ByVal 0&, 0, 0, ByVal 0&, 0, tSI, tPI) = 0 Then
        MsgBox "CreateProcess failed"
        Exit Sub
    End If
   
   . . .
   
    Set cVBGetGlobal = CreateVBObjectInThread(tPI.dwThreadId, App.Path & "\..\dll\GetVBGlobal.dll", "CExtractor")
    Set cForms = cVBGetGlobal.Forms
   
    Set frmMain = cForms(0)
   
    ' // Change back color of picturebox
    frmMain.Controls("picTest").BackColor = vbRed
   
    ' // Draw line on picturebox
    frmMain.Controls("picTest").Line (0, 0)-Step(100, 50), vbGreen, BF
    frmMain.Caption = "Test"



Сам код доступа к объекту VB.Global находится в ActiveX DLL, которая внедряется в процесс с помощью модуля инжекта. Вообще доработав логику можно еще дополнительно поизвлекать переменные и в модулях.

Ссылка.
...
Рейтинг: 0 / 0
Внедрение DLL и подключение к ресурсам EXE
    #40081975
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для чего на практике это можно использовать?
...
Рейтинг: 0 / 0
Внедрение DLL и подключение к ресурсам EXE
    #40081977
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eolt,

Управление чужим EXE, например заполнение полей, извлечение информации и т.д. Ну а вообще любые задачи которые требуют инжекта либы (сабклассинг окон в другом процессе и т.п.) Просто обычно для VB6 это довольно нетривиальная задача (не подойдут обычные методы инжекта), а тут инжектится ActiveX либа + отладка в remote-процессе.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Внедрение DLL и подключение к ресурсам EXE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]