blob: 7c6aa252627f015ae8c7c74fdab52457a1516416 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
/*
* Copyright (c) 2024 ZKA Technologies
*/
#include <sci/sci_base.hxx>
typedef SInt32 (*RPCProcKind)(IUnknown*);
/**
* @brief Main procedure for DLL runner.
*/
int main(int argc, char* argv[])
{
if (argc < 4)
return -1;
auto mainDll = LdrOpenDLL(argv[1], argv[2]);
IUnknown* interface = (IUnknown*)LdrGetDLLProc(argv[3], mainDll);
RPCProcKind dllRpc = (RPCProcKind)LdrGetDLLProc(argv[4], mainDll);
if (!dllRpc)
return -1;
if (!interface)
return -1;
auto ret = dllRpc(interface);
LdrCloseDLL(mainDll);
return ret;
}
|