85 lines
2.4 KiB
QBasic
85 lines
2.4 KiB
QBasic
' =================================================
|
|
'
|
|
' PEiD's Plugin skeleton for PowerBASIC
|
|
' (C) 2004 by Marco Pontello - http://mark0.net
|
|
'
|
|
' This code is to be considered "public domain".
|
|
' Feel free to do what you want with it.
|
|
'
|
|
' -------------------------------------------------
|
|
'
|
|
' PEiD is a file identifier especially tailored for
|
|
' PE (Portable executable) files. It detects most
|
|
' common packers, cryptors and compilers. It also
|
|
' sports a range of useful tools and plugins.
|
|
'
|
|
' PEiD's home: http://peid.has.it/
|
|
'
|
|
' =================================================
|
|
|
|
#COMPILE DLL
|
|
#DIM ALL
|
|
|
|
$PROGRAMVER = "1.0"
|
|
$PROGRAMTITLE = "MyPlugin"
|
|
|
|
#INCLUDE "WIN32API.INC"
|
|
|
|
' --- Global declarations
|
|
|
|
GLOBAL ghDLLInstance AS LONG
|
|
GLOBAL ghPEiDDialog AS LONG
|
|
|
|
' --- Exported functions
|
|
|
|
DECLARE FUNCTION DoMyJob CDECL ALIAS "DoMyJob" (BYVAL hMainDlg AS DWORD, _
|
|
BYREF szfName AS ASCIIZ, BYVAL lpReserved AS DWORD, _
|
|
BYVAL lpVoid AS DWORD) AS DWORD
|
|
DECLARE FUNCTION LoadDll CDECL ALIAS "LoadDll" () AS DWORD
|
|
|
|
' --- Return Plugin Name to PEiD
|
|
' PEiD call this at startup to build a list with the name of all
|
|
' available Plugins
|
|
|
|
FUNCTION LoadDll CDECL ALIAS "LoadDll" () EXPORT AS DWORD
|
|
|
|
STATIC szPluginName AS ASCIIZ * 256
|
|
szPluginName = $PROGRAMTITLE
|
|
FUNCTION = VARPTR(szPluginName)
|
|
|
|
END FUNCTION
|
|
|
|
' --- Main Plugin routine
|
|
' This is called by PEiD when the Plugin is selected/run
|
|
|
|
FUNCTION DoMyJob CDECL ALIAS "DoMyJob" (BYVAL hMainDlg AS DWORD, _
|
|
BYREF szfName AS ASCIIZ, BYVAL lpReserved AS DWORD, _
|
|
BYVAL lpVoid AS DWORD) EXPORT AS DWORD
|
|
|
|
ghPEiDDialog = hMainDlg
|
|
MsgBox "PEiD's file: " & szfName, %MB_SYSTEMMODAL, $PROGRAMTITLE
|
|
FUNCTION = 1
|
|
EXIT FUNCTION
|
|
|
|
END FUNCTION
|
|
|
|
' --- Main DLL entry
|
|
|
|
FUNCTION LibMain (BYVAL hInstance AS LONG, BYVAL fwdReason AS LONG, _
|
|
BYVAL lpvReserved AS LONG) AS LONG
|
|
|
|
SELECT CASE fwdReason
|
|
CASE %DLL_PROCESS_ATTACH
|
|
ghDLLInstance = hInstance
|
|
FUNCTION = 1
|
|
CASE %DLL_PROCESS_DETACH
|
|
FUNCTION = 1
|
|
CASE %DLL_THREAD_ATTACH
|
|
FUNCTION = 1
|
|
CASE %DLL_THREAD_DETACH
|
|
FUNCTION = 1
|
|
END SELECT
|
|
EXIT FUNCTION
|
|
|
|
END FUNCTION
|