

Lumen писал(а):Каждый плагин экспортирует функцию LoadDll() которая возвращает строку с названием плагина. Вызываю эту функцию спомощью связки LoadLibrary - GetProcAddress - CallWindowProc. Хотел узнать, как можно узнать имя этого плагина?
Хотел узнать, как можно узнать имя этого плагина?
Каждый плагин экспортирует функцию LoadDll() которая возвращает строку с названием плагина.



PluginName = Left(retPName, InStr(1,retPName, vbNullChar) -1 )
retPName = String(255,0)

Lumen писал(а):плагины от PEiD





A.A.Z. писал(а):А, As Long! Да еще и ByVal! Да еще и sz!А в API-Viewer'е ByRef pOleChar As Byte
Спасибо!

Public Function GetPluginName(plPath As String) As String
Dim hLib As Long, hProc As Long, stext As Long
hLib = LoadLibrary(plPath)
hProc = GetProcAddress(hLib, "LoadDll")
stext = CallWindowProc(hProc, Form1.hwnd, "", 0, 0)
GetPluginName = StrConv(SysAllocString(ByVal stext), vbFromUnicode)
End Function

Lumen писал(а):Плиз, объясните, что я не так делаю...



Public Function GetPluginName(plPath As String) As String
Dim hLib As Long, hProc As Long, stext As Long
hLib = LoadLibrary(plPath)
hProc = GetProcAddress(hLib, "LoadDll")
stext = CallWindowProc(hProc, 0, "", 0, 0)
GetPluginName = SysAllocStringByteLen(stext, lstrlen(stext))
FreeLibrary hLib
End Function


Lumen писал(а):Всем привет!
Заодно второй вопрос. Тоже по плагинам. Почему некоторые плагины (плагины от PEiD) нельзя вызвать с помощью способа указанного выше? Не получается вызвать плагины Crypto Analyzer и Generic OEP Finder...
Спасибо за помощь.

Сейчас этот форум просматривают: Yandex-бот и гости: 16