mirror of
https://github.com/rapid7/metasploit-payloads
synced 2025-04-12 04:12:05 +02:00
Stacks of work getting modules wired up
This commit is contained in:
parent
126c3b8e07
commit
007afeae2a
c/meterpreter
.gitignore
source/extensions/python
workspace/ext_server_python
1
c/meterpreter/.gitignore
vendored
1
c/meterpreter/.gitignore
vendored
@ -32,6 +32,7 @@ Release
|
|||||||
# VS local dbs
|
# VS local dbs
|
||||||
*.sdf
|
*.sdf
|
||||||
*.opensdf
|
*.opensdf
|
||||||
|
*.aps
|
||||||
|
|
||||||
# VS ipch
|
# VS ipch
|
||||||
workspace/ipch/*
|
workspace/ipch/*
|
||||||
|
@ -646,7 +646,7 @@ STDAPI DllCanUnloadNow(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef Py_NO_ENABLE_SHARED
|
#ifndef Py_NO_ENABLE_SHARED
|
||||||
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvRes)
|
BOOL WINAPI CtypesDllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvRes)
|
||||||
{
|
{
|
||||||
switch(fdwReason) {
|
switch(fdwReason) {
|
||||||
case DLL_PROCESS_ATTACH:
|
case DLL_PROCESS_ATTACH:
|
||||||
|
@ -0,0 +1,50 @@
|
|||||||
|
import sys, imp, marshal
|
||||||
|
|
||||||
|
class MetLoader:
|
||||||
|
def __init__(self, libs):
|
||||||
|
self.libs = libs
|
||||||
|
#print libs.keys()
|
||||||
|
|
||||||
|
def load_module(self, name):
|
||||||
|
print 'Searching for: {0}'.format(name)
|
||||||
|
if name in sys.modules:
|
||||||
|
return sys.modules[name]
|
||||||
|
|
||||||
|
if not name in self.libs:
|
||||||
|
print 'No lib: {0}'.format(name)
|
||||||
|
return None
|
||||||
|
|
||||||
|
filename, package, code = self.libs[name]
|
||||||
|
|
||||||
|
imp.acquire_lock()
|
||||||
|
mod = None
|
||||||
|
|
||||||
|
try:
|
||||||
|
mod = imp.new_module(name)
|
||||||
|
sys.modules[name] = mod
|
||||||
|
|
||||||
|
try:
|
||||||
|
mod.__file__ = filename
|
||||||
|
if package:
|
||||||
|
mod.__path__ = [name.replace('.', '\\')]
|
||||||
|
exec code in mod.__dict__
|
||||||
|
mod.__loader__ = self
|
||||||
|
print 'Executed code for: {0}'.format(name)
|
||||||
|
except e:
|
||||||
|
del sys.modules[name]
|
||||||
|
mod = None
|
||||||
|
except:
|
||||||
|
mod = None
|
||||||
|
finally:
|
||||||
|
imp.release_lock()
|
||||||
|
|
||||||
|
print 'Result for {0}: {1}'.format(name, mod != None)
|
||||||
|
return mod
|
||||||
|
|
||||||
|
class MetFinder:
|
||||||
|
def __init__(self, libs):
|
||||||
|
self.loader = MetLoader(libs)
|
||||||
|
|
||||||
|
def find_module(self, name, path = None):
|
||||||
|
return self.loader
|
||||||
|
|
@ -0,0 +1,40 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import os,struct,py_compile,zlib,marshal
|
||||||
|
|
||||||
|
def w(f,c):
|
||||||
|
with open(f,'wb') as f:
|
||||||
|
f.write(c)
|
||||||
|
|
||||||
|
def r(f):
|
||||||
|
with open(f,'rb') as f:
|
||||||
|
return f.read()
|
||||||
|
|
||||||
|
def p(d):
|
||||||
|
return struct.pack('<L', d)
|
||||||
|
|
||||||
|
modules = {}
|
||||||
|
|
||||||
|
here = os.getcwd()
|
||||||
|
folder = '..\\Lib'
|
||||||
|
os.chdir(folder)
|
||||||
|
|
||||||
|
for entry in os.listdir('.'):
|
||||||
|
if os.path.isfile(entry):
|
||||||
|
if entry.endswith('.py'):
|
||||||
|
path = entry.split('.')[0]
|
||||||
|
modules[path] = (entry, False, compile(r(entry), entry, 'exec'))
|
||||||
|
else:
|
||||||
|
for root, _, files in os.walk(entry):
|
||||||
|
for f in [x for x in files if x.endswith('.py')]:
|
||||||
|
path = os.path.join(root, f)
|
||||||
|
modname = path.split('.')[0].replace('\\', '.').replace('.__init__', '')
|
||||||
|
modules[modname] = (path, True, compile(r(path), path, 'exec'))
|
||||||
|
|
||||||
|
os.chdir(here)
|
||||||
|
|
||||||
|
importer = compile(r('met_importer.py'), 'met_importer.py', 'exec')
|
||||||
|
|
||||||
|
content = zlib.compress(marshal.dumps([importer, modules]), 9)
|
||||||
|
w('python_core.cz', p(len(content)) + content)
|
||||||
|
|
BIN
c/meterpreter/source/extensions/python/Resource Files/python_core.cz
Executable file
BIN
c/meterpreter/source/extensions/python/Resource Files/python_core.cz
Executable file
Binary file not shown.
3
c/meterpreter/source/extensions/python/Resource Files/python_core.rc
Executable file
3
c/meterpreter/source/extensions/python/Resource Files/python_core.rc
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#include "python_core.rh"
|
||||||
|
|
||||||
|
IDR_PYTHON_CORE BINARY MOVEABLE PURE "python_core.cz"
|
@ -0,0 +1 @@
|
|||||||
|
#define IDR_PYTHON_CORE 1337
|
@ -3,11 +3,140 @@
|
|||||||
* @brief Definitions for the python command bindings.
|
* @brief Definitions for the python command bindings.
|
||||||
*/
|
*/
|
||||||
#include "Python.h"
|
#include "Python.h"
|
||||||
|
#include "marshal.h"
|
||||||
#include "python_main.h"
|
#include "python_main.h"
|
||||||
#include "python_commands.h"
|
#include "python_commands.h"
|
||||||
|
#include "Resource Files/python_core.rh"
|
||||||
|
|
||||||
|
typedef struct _InitFunc
|
||||||
|
{
|
||||||
|
#ifdef DEBUGTRACE
|
||||||
|
PCHAR name;
|
||||||
|
#endif
|
||||||
|
PyMODINIT_FUNC(*func)(void);
|
||||||
|
} InitFunc;
|
||||||
|
|
||||||
|
#ifdef DEBUGTRACE
|
||||||
|
#define DEC_INIT_FUNC(x) { #x, x }
|
||||||
|
#else
|
||||||
|
#define DEC_INIT_FUNC(x) { x }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern PyMODINIT_FUNC initerrno(void);
|
||||||
|
extern PyMODINIT_FUNC init_functools(void);
|
||||||
|
extern PyMODINIT_FUNC init_socket(void);
|
||||||
|
extern PyMODINIT_FUNC init_weakref(void);
|
||||||
|
extern PyMODINIT_FUNC initarray(void);
|
||||||
|
extern PyMODINIT_FUNC initaudioop(void);
|
||||||
|
extern PyMODINIT_FUNC init_csv(void);
|
||||||
|
extern PyMODINIT_FUNC init_io(void);
|
||||||
|
extern PyMODINIT_FUNC init_multibytecodec(void);
|
||||||
|
extern PyMODINIT_FUNC init_bisect(void);
|
||||||
|
extern PyMODINIT_FUNC init_codecs(void);
|
||||||
|
extern PyMODINIT_FUNC init_collections(void);
|
||||||
|
extern PyMODINIT_FUNC init_heapq(void);
|
||||||
|
extern PyMODINIT_FUNC init_locale(void);
|
||||||
|
extern PyMODINIT_FUNC init_lsprof(void);
|
||||||
|
extern PyMODINIT_FUNC init_random(void);
|
||||||
|
extern PyMODINIT_FUNC init_sre(void);
|
||||||
|
extern PyMODINIT_FUNC init_struct(void);
|
||||||
|
extern PyMODINIT_FUNC init_weakref(void);
|
||||||
|
extern PyMODINIT_FUNC initaudioop(void);
|
||||||
|
extern PyMODINIT_FUNC initbinascii(void);
|
||||||
|
extern PyMODINIT_FUNC initcmath(void);
|
||||||
|
extern PyMODINIT_FUNC initcPickle(void);
|
||||||
|
extern PyMODINIT_FUNC initcStringIO(void);
|
||||||
|
extern PyMODINIT_FUNC initdatetime(void);
|
||||||
|
extern PyMODINIT_FUNC initfuture_builtins(void);
|
||||||
|
extern PyMODINIT_FUNC initgc(void);
|
||||||
|
extern PyMODINIT_FUNC initimageop(void);
|
||||||
|
extern PyMODINIT_FUNC inititertools(void);
|
||||||
|
extern PyMODINIT_FUNC initmath(void);
|
||||||
|
extern PyMODINIT_FUNC init_md5(void);
|
||||||
|
extern PyMODINIT_FUNC initmmap(void);
|
||||||
|
extern PyMODINIT_FUNC initoperator(void);
|
||||||
|
extern PyMODINIT_FUNC initparser(void);
|
||||||
|
extern PyMODINIT_FUNC initnt(void);
|
||||||
|
extern PyMODINIT_FUNC init_sha256(void);
|
||||||
|
extern PyMODINIT_FUNC init_sha512(void);
|
||||||
|
extern PyMODINIT_FUNC init_sha(void);
|
||||||
|
extern PyMODINIT_FUNC initsignal(void);
|
||||||
|
extern PyMODINIT_FUNC initstrop(void);
|
||||||
|
extern PyMODINIT_FUNC init_symtable(void);
|
||||||
|
extern PyMODINIT_FUNC initthread(void);
|
||||||
|
extern PyMODINIT_FUNC inittime(void);
|
||||||
|
extern PyMODINIT_FUNC initxxsubtype(void);
|
||||||
|
extern PyMODINIT_FUNC initzipimport(void);
|
||||||
|
extern PyMODINIT_FUNC init_subprocess(void);
|
||||||
|
extern PyMODINIT_FUNC init_winreg(void);
|
||||||
|
extern PyMODINIT_FUNC initselect(void);
|
||||||
|
extern PyMODINIT_FUNC initunicodedata(void);
|
||||||
|
extern PyMODINIT_FUNC init_ctypes(void);
|
||||||
|
|
||||||
|
// order of these is actually important
|
||||||
|
static InitFunc init_funcs[] =
|
||||||
|
{
|
||||||
|
// the functions below that are commented out are invoked prior
|
||||||
|
// to the python modules being included.
|
||||||
|
//DEC_INIT_FUNC(initerrno),
|
||||||
|
//DEC_INIT_FUNC(initnt),
|
||||||
|
//DEC_INIT_FUNC(init_socket),
|
||||||
|
//DEC_INIT_FUNC(init_functools),
|
||||||
|
DEC_INIT_FUNC(initselect),
|
||||||
|
DEC_INIT_FUNC(initselect),
|
||||||
|
DEC_INIT_FUNC(init_weakref),
|
||||||
|
DEC_INIT_FUNC(initarray),
|
||||||
|
DEC_INIT_FUNC(initaudioop),
|
||||||
|
DEC_INIT_FUNC(init_csv),
|
||||||
|
DEC_INIT_FUNC(init_io),
|
||||||
|
DEC_INIT_FUNC(init_multibytecodec),
|
||||||
|
DEC_INIT_FUNC(init_bisect),
|
||||||
|
DEC_INIT_FUNC(init_codecs),
|
||||||
|
DEC_INIT_FUNC(init_collections),
|
||||||
|
DEC_INIT_FUNC(init_heapq),
|
||||||
|
DEC_INIT_FUNC(init_locale),
|
||||||
|
DEC_INIT_FUNC(init_lsprof),
|
||||||
|
DEC_INIT_FUNC(init_random),
|
||||||
|
DEC_INIT_FUNC(init_sre),
|
||||||
|
DEC_INIT_FUNC(init_struct),
|
||||||
|
DEC_INIT_FUNC(init_weakref),
|
||||||
|
DEC_INIT_FUNC(initaudioop),
|
||||||
|
DEC_INIT_FUNC(initbinascii),
|
||||||
|
DEC_INIT_FUNC(initcmath),
|
||||||
|
DEC_INIT_FUNC(initcStringIO),
|
||||||
|
DEC_INIT_FUNC(initcPickle),
|
||||||
|
DEC_INIT_FUNC(inittime),
|
||||||
|
DEC_INIT_FUNC(initdatetime),
|
||||||
|
DEC_INIT_FUNC(initgc),
|
||||||
|
DEC_INIT_FUNC(initimageop),
|
||||||
|
DEC_INIT_FUNC(inititertools),
|
||||||
|
DEC_INIT_FUNC(initfuture_builtins),
|
||||||
|
DEC_INIT_FUNC(initmath),
|
||||||
|
DEC_INIT_FUNC(init_md5),
|
||||||
|
DEC_INIT_FUNC(initmmap),
|
||||||
|
DEC_INIT_FUNC(initoperator),
|
||||||
|
DEC_INIT_FUNC(initparser),
|
||||||
|
DEC_INIT_FUNC(init_sha256),
|
||||||
|
DEC_INIT_FUNC(init_sha512),
|
||||||
|
DEC_INIT_FUNC(init_sha),
|
||||||
|
DEC_INIT_FUNC(initsignal),
|
||||||
|
DEC_INIT_FUNC(initstrop),
|
||||||
|
DEC_INIT_FUNC(init_symtable),
|
||||||
|
DEC_INIT_FUNC(initunicodedata),
|
||||||
|
DEC_INIT_FUNC(initthread),
|
||||||
|
DEC_INIT_FUNC(initxxsubtype),
|
||||||
|
DEC_INIT_FUNC(initzipimport),
|
||||||
|
DEC_INIT_FUNC(init_subprocess),
|
||||||
|
DEC_INIT_FUNC(init_winreg),
|
||||||
|
DEC_INIT_FUNC(init_ctypes),
|
||||||
|
DEC_INIT_FUNC(NULL)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
static LIST* stderrBuffer = NULL;
|
static LIST* stderrBuffer = NULL;
|
||||||
static LIST* stdoutBuffer = NULL;
|
static LIST* stdoutBuffer = NULL;
|
||||||
|
static LPBYTE coreLibPointer = NULL;
|
||||||
|
static DWORD coreLibSize = 0;
|
||||||
|
|
||||||
static PyObject* handle_write(LIST* target, PyObject* self, PyObject* args)
|
static PyObject* handle_write(LIST* target, PyObject* self, PyObject* args)
|
||||||
{
|
{
|
||||||
@ -15,7 +144,10 @@ static PyObject* handle_write(LIST* target, PyObject* self, PyObject* args)
|
|||||||
if (PyArg_ParseTuple(args, "s", &written))
|
if (PyArg_ParseTuple(args, "s", &written))
|
||||||
{
|
{
|
||||||
dprintf("[PYTHON] something written to %p: %s", target, written);
|
dprintf("[PYTHON] something written to %p: %s", target, written);
|
||||||
list_add(target, strdup(written));
|
if (target != NULL)
|
||||||
|
{
|
||||||
|
list_add(target, strdup(written));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -62,11 +194,21 @@ static VOID dump_to_packet_and_destroy(LIST* source, Packet* packet, UINT tlvTyp
|
|||||||
list_destroy(source);
|
list_destroy(source);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
VOID python_destroy_session()
|
||||||
* @brief Hook into key bits of python (such as stdout/stderr)
|
|
||||||
*/
|
|
||||||
VOID initialize_hooks()
|
|
||||||
{
|
{
|
||||||
|
Py_Finalize();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* @brief Prepare the session for use, including all the resources that are embedded.
|
||||||
|
*/
|
||||||
|
VOID python_prepare_session()
|
||||||
|
{
|
||||||
|
Py_IgnoreEnvironmentFlag = 1;
|
||||||
|
Py_NoSiteFlag = 1;
|
||||||
|
Py_Initialize();
|
||||||
|
PyEval_InitThreads();
|
||||||
|
|
||||||
PyObject* stdoutModule = Py_InitModule("meterpreter_stdout", meterpreter_stdout_hooks);
|
PyObject* stdoutModule = Py_InitModule("meterpreter_stdout", meterpreter_stdout_hooks);
|
||||||
|
|
||||||
if (stdoutModule != NULL && PySys_SetObject("stdout", stdoutModule) == 0)
|
if (stdoutModule != NULL && PySys_SetObject("stdout", stdoutModule) == 0)
|
||||||
@ -87,6 +229,162 @@ VOID initialize_hooks()
|
|||||||
{
|
{
|
||||||
dprintf("[PYTHON] Failed to set the stderr hook");
|
dprintf("[PYTHON] Failed to set the stderr hook");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// with the output handlers sorted, we load the stuff from the compressed resource
|
||||||
|
// which should give us all the stuff we need to be useful.
|
||||||
|
initerrno();
|
||||||
|
initnt();
|
||||||
|
init_socket();
|
||||||
|
init_functools();
|
||||||
|
|
||||||
|
// have we loaded the core pointer already?
|
||||||
|
if (coreLibPointer == NULL)
|
||||||
|
{
|
||||||
|
MEMORY_BASIC_INFORMATION mbi;
|
||||||
|
if (!VirtualQuery((LPVOID)python_prepare_session, &mbi, sizeof(mbi)))
|
||||||
|
{
|
||||||
|
dprintf("[PYTHON] VirtualQuery failed: %d", GetLastError());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
HMODULE mod = (HMODULE)mbi.AllocationBase;
|
||||||
|
dprintf("[PYTHON] Module handle: %p", (LPVOID)mod);
|
||||||
|
|
||||||
|
HRSRC res = FindResource(mod, MAKEINTRESOURCEA(IDR_PYTHON_CORE), "BINARY");
|
||||||
|
if (res == NULL)
|
||||||
|
{
|
||||||
|
dprintf("[PYTHON] Unable to find resource: %d", GetLastError());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
HGLOBAL file = LoadResource(mod, res);
|
||||||
|
|
||||||
|
if (file == NULL)
|
||||||
|
{
|
||||||
|
dprintf("[PYTHON] Unable to load core library resource: %d", GetLastError());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
coreLibPointer = (LPBYTE)LockResource(file);
|
||||||
|
coreLibSize = *(LPDWORD)coreLibPointer;
|
||||||
|
coreLibPointer += sizeof(DWORD);
|
||||||
|
}
|
||||||
|
|
||||||
|
dprintf("[PYTHON] coreLibPointer: %p, coreLibSize: %d", coreLibPointer, coreLibSize);
|
||||||
|
|
||||||
|
if (coreLibPointer != NULL)
|
||||||
|
{
|
||||||
|
// Create a byte array with everything in it
|
||||||
|
PyObject* libString = PyString_FromStringAndSize(coreLibPointer, coreLibSize);
|
||||||
|
dprintf("[PYTHON] libString is %p", libString);
|
||||||
|
|
||||||
|
// import zlib
|
||||||
|
PyObject* zlibModStr = PyString_FromString("zlib");
|
||||||
|
dprintf("[PYTHON] zlibModStr: %p", zlibModStr);
|
||||||
|
PyObject* zlibMod = PyImport_Import(zlibModStr);
|
||||||
|
dprintf("[PYTHON] zlibMod: %p", zlibMod);
|
||||||
|
// get a reference to the decompress function
|
||||||
|
PyObject* zlibDecompress = PyObject_GetAttrString(zlibMod, "decompress");
|
||||||
|
dprintf("[PYTHON] zlibDecompress: %p", zlibDecompress);
|
||||||
|
// prepare arguments for invocation
|
||||||
|
PyObject* zlibDecompressArgs = PyTuple_Pack(1, libString);
|
||||||
|
dprintf("[PYTHON] zlibDecompressArgs: %p", zlibDecompressArgs);
|
||||||
|
// call zlib.decompress(libString)
|
||||||
|
PyObject* zlibDecompressResult = PyObject_CallObject(zlibDecompress, zlibDecompressArgs);
|
||||||
|
dprintf("[PYTHON] zlibDecompressResult: %p", zlibDecompressResult);
|
||||||
|
//dprintf("[PYTHON] zlibDecompressResult type: %s", zlibDecompressResult->ob_type->tp_name);
|
||||||
|
|
||||||
|
PCHAR byteArray = NULL;
|
||||||
|
Py_ssize_t byteArrayLength = 0;
|
||||||
|
PyString_AsStringAndSize(zlibDecompressResult, &byteArray, &byteArrayLength);
|
||||||
|
dprintf("[PYTHON] bytes: %p %u", byteArray, byteArrayLength);
|
||||||
|
|
||||||
|
PyObject* modData = PyMarshal_ReadObjectFromString(byteArray, byteArrayLength);
|
||||||
|
dprintf("[PYTHON] modData: %p", modData);
|
||||||
|
|
||||||
|
PyObject* mainMod = PyImport_AddModule("__main__");
|
||||||
|
PyObject* mainDict = PyModule_GetDict(mainMod);
|
||||||
|
PyModule_AddObject(mainMod, "__modData", modData);
|
||||||
|
PyRun_SimpleString("exec(__modData[0]);sys.meta_path.append(MetFinder(__modData[1]))");
|
||||||
|
|
||||||
|
// the data should be a list of size '2', it contains:
|
||||||
|
// 1) compiled code which makes up the loader/bootstrapper
|
||||||
|
// 2) a dictionary of (module name, (is package, compiled code))
|
||||||
|
//Py_ssize_t modCount = PySequence_Length(modList);
|
||||||
|
//dprintf("[PYTHON] modCount: %u", modCount);
|
||||||
|
|
||||||
|
//for (Py_ssize_t i = 0; i < modCount; ++i)
|
||||||
|
//{
|
||||||
|
// PyCodeObject* compiledCode = (PyCodeObject*)PySequence_GetItem(modList, i);
|
||||||
|
// dprintf("[PYTHON] compiledCode: %p", compiledCode);
|
||||||
|
// dprintf("[PYTHON] compiledCode type: %s", compiledCode->ob_type->tp_name);
|
||||||
|
// //CHAR* x; Py_ssize_t s;
|
||||||
|
// //PyString_AsStringAndSize(compiledCode, &x, &s);
|
||||||
|
// //dprintf("[PYTHON] compiledCode length: %s", s);
|
||||||
|
// if (compiledCode != NULL)
|
||||||
|
// {
|
||||||
|
// PyObject* codeEvalResult = PyEval_EvalCode(compiledCode, mainDict, mainDict);
|
||||||
|
// dprintf("[PYTHON] codeEvalResult: %p", codeEvalResult);
|
||||||
|
// if (codeEvalResult != NULL)
|
||||||
|
// {
|
||||||
|
// Py_XDECREF(codeEvalResult);
|
||||||
|
// }
|
||||||
|
// Py_XDECREF(compiledCode);
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
|
// we now have a reference to a "list of modules", pull it back into C land
|
||||||
|
//PCHAR cursor = NULL;
|
||||||
|
//Py_ssize_t libSize = 0;
|
||||||
|
//PyString_AsStringAndSize(zlibDecompressResult, &cursor, &libSize);
|
||||||
|
//dprintf("[PYTHON] lib: %p %u", cursor, libSize);
|
||||||
|
|
||||||
|
//// get the number of modules, and move the cursor to the start of the module list
|
||||||
|
//DWORD modCount = *(LPDWORD)cursor;
|
||||||
|
//cursor += sizeof(DWORD);
|
||||||
|
//dprintf("[PYTHON] mod count: %u", modCount);
|
||||||
|
|
||||||
|
//// we'll be importing stuff in the context of main, so we need a reference to it.
|
||||||
|
//PyObject* builtinsMod = PyImport_AddModule("__main__");
|
||||||
|
|
||||||
|
//for (DWORD i = 0; i < modCount; ++i)
|
||||||
|
//{
|
||||||
|
// // extract the module size/length
|
||||||
|
// DWORD modSize = *(LPDWORD)cursor;
|
||||||
|
// cursor += sizeof(DWORD);
|
||||||
|
// dprintf("[PYTHON] including module: %p %u bytes", cursor, modSize);
|
||||||
|
|
||||||
|
// PyMarshal_ReadObjectFromString(cursor, modSize);
|
||||||
|
|
||||||
|
// // convert the module to a string in python land
|
||||||
|
// //PyObject* libString = PyString_FromStringAndSize(cursor, modSize);
|
||||||
|
// // give it a name
|
||||||
|
// //PyModule_AddObject(PyImport_AddModule("__main__"), "__metimport", libString);
|
||||||
|
// // import it
|
||||||
|
// //PyRun_SimpleString("exec(__metimport)");
|
||||||
|
|
||||||
|
// // move our cursor along to the next module
|
||||||
|
// cursor += modSize;
|
||||||
|
//}
|
||||||
|
|
||||||
|
//PyRun_SimpleString("__metimport=None");
|
||||||
|
}
|
||||||
|
|
||||||
|
// now load the baked-in modules
|
||||||
|
PyErr_Clear();
|
||||||
|
for (InitFunc* f = &init_funcs[0]; f->func != NULL; f += 1)
|
||||||
|
{
|
||||||
|
dprintf("[PYTHON] Running %s", f->name);
|
||||||
|
f->func();
|
||||||
|
if (PyErr_Occurred())
|
||||||
|
{
|
||||||
|
#ifdef DEBUGTRACE
|
||||||
|
PyErr_Print();
|
||||||
|
#endif
|
||||||
|
dprintf("[PYTHON] %s errored", f->name);
|
||||||
|
PyErr_Clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -100,7 +398,7 @@ DWORD request_python_reset(Remote* remote, Packet* packet)
|
|||||||
dprintf("[PYTHON] resetting the interpreter");
|
dprintf("[PYTHON] resetting the interpreter");
|
||||||
Py_Finalize();
|
Py_Finalize();
|
||||||
Py_Initialize();
|
Py_Initialize();
|
||||||
initialize_hooks();
|
python_prepare_session();
|
||||||
packet_transmit_empty_response(remote, packet, ERROR_SUCCESS);
|
packet_transmit_empty_response(remote, packet, ERROR_SUCCESS);
|
||||||
|
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
|
@ -7,7 +7,8 @@
|
|||||||
|
|
||||||
#include "../../common/common.h"
|
#include "../../common/common.h"
|
||||||
|
|
||||||
VOID initialize_hooks();
|
VOID python_prepare_session();
|
||||||
|
VOID python_destroy_session();
|
||||||
DWORD request_python_reset(Remote* remote, Packet* packet);
|
DWORD request_python_reset(Remote* remote, Packet* packet);
|
||||||
DWORD request_python_execute_string(Remote *remote, Packet *packet);
|
DWORD request_python_execute_string(Remote *remote, Packet *packet);
|
||||||
|
|
||||||
|
@ -11,11 +11,11 @@
|
|||||||
#define REFLECTIVEDLLINJECTION_CUSTOM_DLLMAIN
|
#define REFLECTIVEDLLINJECTION_CUSTOM_DLLMAIN
|
||||||
#include "../../ReflectiveDLLInjection/dll/src/ReflectiveLoader.c"
|
#include "../../ReflectiveDLLInjection/dll/src/ReflectiveLoader.c"
|
||||||
|
|
||||||
#include "Python.h"
|
|
||||||
#include "python_commands.h"
|
#include "python_commands.h"
|
||||||
|
|
||||||
// This is the entry point to the python DLL, we proxy to this from our own init
|
// This is the entry point to the python DLL, we proxy to this from our own init
|
||||||
BOOL WINAPI PythonDllMain(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved);
|
extern BOOL WINAPI PythonDllMain(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved);
|
||||||
|
extern BOOL WINAPI CtypesDllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvRes);
|
||||||
|
|
||||||
// this sets the delay load hook function, see DelayLoadMetSrv.h
|
// this sets the delay load hook function, see DelayLoadMetSrv.h
|
||||||
EnableDelayLoadMetSrv();
|
EnableDelayLoadMetSrv();
|
||||||
@ -30,8 +30,6 @@ Command customCommands[] =
|
|||||||
|
|
||||||
BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpReserved )
|
BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpReserved )
|
||||||
{
|
{
|
||||||
BOOL bReturnValue = TRUE;
|
|
||||||
|
|
||||||
switch( dwReason )
|
switch( dwReason )
|
||||||
{
|
{
|
||||||
case DLL_QUERY_HMODULE:
|
case DLL_QUERY_HMODULE:
|
||||||
@ -49,7 +47,9 @@ BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpReserved )
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return PythonDllMain(hinstDLL, dwReason, lpReserved);
|
PythonDllMain(hinstDLL, dwReason, lpReserved);
|
||||||
|
CtypesDllMain(hinstDLL, dwReason, lpReserved);
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -63,10 +63,7 @@ DWORD __declspec(dllexport) InitServerExtension(Remote *remote)
|
|||||||
|
|
||||||
dprintf("[PYTHON] Initialising");
|
dprintf("[PYTHON] Initialising");
|
||||||
|
|
||||||
Py_IgnoreEnvironmentFlag = 1;
|
python_prepare_session();
|
||||||
Py_NoSiteFlag = 1;
|
|
||||||
Py_Initialize();
|
|
||||||
initialize_hooks();
|
|
||||||
dprintf("[PYTHON] Registering commands");
|
dprintf("[PYTHON] Registering commands");
|
||||||
command_register_all(customCommands);
|
command_register_all(customCommands);
|
||||||
|
|
||||||
@ -82,7 +79,7 @@ DWORD __declspec(dllexport) DeinitServerExtension(Remote *remote)
|
|||||||
{
|
{
|
||||||
command_deregister_all(customCommands);
|
command_deregister_all(customCommands);
|
||||||
|
|
||||||
Py_Finalize();
|
python_destroy_session();
|
||||||
|
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -106,7 +106,7 @@
|
|||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<AdditionalIncludeDirectories>..\..\source\ReflectiveDLLInjection\common;..\..\source\extensions\python\include;..\..\source\extensions\python\Modules\zlib;..\..\source\extensions\python\PC;..\..\source\extensions\python\Python;..\..\deps\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\source\ReflectiveDLLInjection\common;..\..\source\extensions\python\include;..\..\source\extensions\python\Modules\_ctypes\libffi_msvc;..\..\source\extensions\python\Modules\zlib;..\..\source\extensions\python\PC;..\..\source\extensions\python\Python;..\..\deps\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;EXT_SERVER_PYTHON_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;EXT_SERVER_PYTHON_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
<MinimalRebuild>true</MinimalRebuild>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
@ -139,7 +139,7 @@ copy /y "$(TargetDir)$(TargetFileName)" "$(ProjectDir)..\..\output\$(PlatformSho
|
|||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='r7_debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='r7_debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<AdditionalIncludeDirectories>..\..\source\ReflectiveDLLInjection\common;..\..\source\extensions\python\include;..\..\source\extensions\python\Modules\zlib;..\..\source\extensions\python\PC;..\..\source\extensions\python\Python;..\..\deps\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\source\ReflectiveDLLInjection\common;..\..\source\extensions\python\include;..\..\source\extensions\python\Modules\_ctypes\libffi_msvc;..\..\source\extensions\python\Modules\zlib;..\..\source\extensions\python\PC;..\..\source\extensions\python\Python;..\..\deps\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;EXT_SERVER_PYTHON_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;EXT_SERVER_PYTHON_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
<MinimalRebuild>true</MinimalRebuild>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
@ -183,7 +183,7 @@ copy /y "$(TargetDir)$(TargetFileName)" "$(ProjectDir)..\..\output\$(PlatformSho
|
|||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<AdditionalIncludeDirectories>..\..\source\ReflectiveDLLInjection\common;..\..\source\extensions\python\include;..\..\source\extensions\python\Modules\zlib;..\..\source\extensions\python\PC;..\..\source\extensions\python\Python;..\..\deps\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\source\ReflectiveDLLInjection\common;..\..\source\extensions\python\include;..\..\source\extensions\python\Modules\_ctypes\libffi_msvc;..\..\source\extensions\python\Modules\zlib;..\..\source\extensions\python\PC;..\..\source\extensions\python\Python;..\..\deps\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<TreatWarningAsError>false</TreatWarningAsError>
|
<TreatWarningAsError>false</TreatWarningAsError>
|
||||||
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
|
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
@ -221,7 +221,7 @@ copy /y "$(TargetDir)$(TargetFileName)" "$(ProjectDir)..\..\output\$(PlatformSho
|
|||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<AdditionalIncludeDirectories>..\..\source\ReflectiveDLLInjection\common;..\..\source\extensions\python\include;..\..\source\extensions\python\Modules\zlib;..\..\source\extensions\python\PC;..\..\source\extensions\python\Python;..\..\deps\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\source\ReflectiveDLLInjection\common;..\..\source\extensions\python\include;..\..\source\extensions\python\Modules\_ctypes\libffi_msvc;..\..\source\extensions\python\Modules\zlib;..\..\source\extensions\python\PC;..\..\source\extensions\python\Python;..\..\deps\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<TreatWarningAsError>false</TreatWarningAsError>
|
<TreatWarningAsError>false</TreatWarningAsError>
|
||||||
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
|
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
@ -251,7 +251,7 @@ copy /y "$(TargetDir)$(TargetFileName)" "$(ProjectDir)..\..\output\$(PlatformSho
|
|||||||
<Optimization>MinSpace</Optimization>
|
<Optimization>MinSpace</Optimization>
|
||||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||||
<IntrinsicFunctions>false</IntrinsicFunctions>
|
<IntrinsicFunctions>false</IntrinsicFunctions>
|
||||||
<AdditionalIncludeDirectories>..\..\source\ReflectiveDLLInjection\common;..\..\source\extensions\python\include;..\..\source\extensions\python\Modules\zlib;..\..\source\extensions\python\PC;..\..\source\extensions\python\Python;..\..\deps\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\source\ReflectiveDLLInjection\common;..\..\source\extensions\python\include;..\..\source\extensions\python\Modules\_ctypes\libffi_msvc;..\..\source\extensions\python\Modules\zlib;..\..\source\extensions\python\PC;..\..\source\extensions\python\Python;..\..\deps\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;EXT_SERVER_PYTHON_EXPORTS;Py_BUILD_CORE;Py_ENABLE_SHARED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;EXT_SERVER_PYTHON_EXPORTS;Py_BUILD_CORE;Py_ENABLE_SHARED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
@ -305,7 +305,7 @@ copy /y "$(TargetDir)$(TargetFileName)" "$(ProjectDir)..\..\output\$(PlatformSho
|
|||||||
<Optimization>MinSpace</Optimization>
|
<Optimization>MinSpace</Optimization>
|
||||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||||
<IntrinsicFunctions>false</IntrinsicFunctions>
|
<IntrinsicFunctions>false</IntrinsicFunctions>
|
||||||
<AdditionalIncludeDirectories>..\..\source\ReflectiveDLLInjection\common;..\..\source\extensions\python\include;..\..\source\extensions\python\Modules\zlib;..\..\source\extensions\python\PC;..\..\source\extensions\python\Python;..\..\deps\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\source\ReflectiveDLLInjection\common;..\..\source\extensions\python\include;..\..\source\extensions\python\Modules\_ctypes\libffi_msvc;..\..\source\extensions\python\Modules\zlib;..\..\source\extensions\python\PC;..\..\source\extensions\python\Python;..\..\deps\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;EXT_SERVER_PYTHON_EXPORTS;Py_BUILD_CORE;Py_ENABLE_SHARED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;EXT_SERVER_PYTHON_EXPORTS;Py_BUILD_CORE;Py_ENABLE_SHARED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
@ -362,7 +362,7 @@ copy /y "$(TargetDir)$(TargetFileName)" "$(ProjectDir)..\..\output\$(PlatformSho
|
|||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||||
<IntrinsicFunctions>false</IntrinsicFunctions>
|
<IntrinsicFunctions>false</IntrinsicFunctions>
|
||||||
<AdditionalIncludeDirectories>..\..\source\ReflectiveDLLInjection\common;..\..\source\extensions\python\include;..\..\source\extensions\python\Modules\zlib;..\..\source\extensions\python\PC;..\..\source\extensions\python\Python;..\..\deps\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\source\ReflectiveDLLInjection\common;..\..\source\extensions\python\include;..\..\source\extensions\python\Modules\_ctypes\libffi_msvc;..\..\source\extensions\python\Modules\zlib;..\..\source\extensions\python\PC;..\..\source\extensions\python\Python;..\..\deps\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;EXT_SERVER_PYTHON_EXPORTS;Py_BUILD_CORE;Py_ENABLE_SHARED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;EXT_SERVER_PYTHON_EXPORTS;Py_BUILD_CORE;Py_ENABLE_SHARED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
@ -416,7 +416,7 @@ copy /y "$(TargetDir)$(TargetFileName)" "$(ProjectDir)..\..\output\$(PlatformSho
|
|||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||||
<IntrinsicFunctions>false</IntrinsicFunctions>
|
<IntrinsicFunctions>false</IntrinsicFunctions>
|
||||||
<AdditionalIncludeDirectories>..\..\source\ReflectiveDLLInjection\common;..\..\source\extensions\python\include;..\..\source\extensions\python\Modules\zlib;..\..\source\extensions\python\PC;..\..\source\extensions\python\Python;..\..\deps\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\source\ReflectiveDLLInjection\common;..\..\source\extensions\python\include;..\..\source\extensions\python\Modules\_ctypes\libffi_msvc;..\..\source\extensions\python\Modules\zlib;..\..\source\extensions\python\PC;..\..\source\extensions\python\Python;..\..\deps\openssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;EXT_SERVER_PYTHON_EXPORTS;Py_BUILD_CORE;Py_ENABLE_SHARED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;EXT_SERVER_PYTHON_EXPORTS;Py_BUILD_CORE;Py_ENABLE_SHARED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
@ -510,14 +510,17 @@ copy /y "$(TargetDir)$(TargetFileName)" "$(ProjectDir)..\..\output\$(PlatformSho
|
|||||||
<ClCompile Include="..\..\source\extensions\python\Modules\parsermodule.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\parsermodule.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\posixmodule.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\posixmodule.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\rotatingtree.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\rotatingtree.c" />
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\selectmodule.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\sha256module.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\sha256module.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\sha512module.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\sha512module.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\shamodule.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\shamodule.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\signalmodule.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\signalmodule.c" />
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\socketmodule.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\stropmodule.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\stropmodule.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\symtablemodule.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\symtablemodule.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\threadmodule.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\threadmodule.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\timemodule.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\timemodule.c" />
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\unicodedata.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\xxsubtype.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\xxsubtype.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\zipimport.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\zipimport.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\zlibmodule.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\zlibmodule.c" />
|
||||||
@ -541,6 +544,20 @@ copy /y "$(TargetDir)$(TargetFileName)" "$(ProjectDir)..\..\output\$(PlatformSho
|
|||||||
<ClCompile Include="..\..\source\extensions\python\Modules\_codecsmodule.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\_codecsmodule.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\_collectionsmodule.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\_collectionsmodule.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\_csv.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\_csv.c" />
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\callbacks.c" />
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\callproc.c" />
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\cfield.c" />
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\libffi_msvc\ffi.c" />
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\libffi_msvc\prep_cif.c" />
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\libffi_msvc\win32.c">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='r7_debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='r7_release|x64'">true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\malloc_closure.c" />
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\stgdict.c" />
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\_ctypes.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\_functoolsmodule.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\_functoolsmodule.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\_heapqmodule.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\_heapqmodule.c" />
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\_hotshot.c" />
|
<ClCompile Include="..\..\source\extensions\python\Modules\_hotshot.c" />
|
||||||
@ -790,14 +807,25 @@ copy /y "$(TargetDir)$(TargetFileName)" "$(ProjectDir)..\..\output\$(PlatformSho
|
|||||||
<ClInclude Include="..\..\source\extensions\python\Parser\tokenizer.h" />
|
<ClInclude Include="..\..\source\extensions\python\Parser\tokenizer.h" />
|
||||||
<ClInclude Include="..\..\source\extensions\python\PC\errmap.h" />
|
<ClInclude Include="..\..\source\extensions\python\PC\errmap.h" />
|
||||||
<ClInclude Include="..\..\source\extensions\python\PC\pyconfig.h" />
|
<ClInclude Include="..\..\source\extensions\python\PC\pyconfig.h" />
|
||||||
<ClInclude Include="..\..\source\extensions\python\PC\pythonnt_rc.h" />
|
|
||||||
<ClInclude Include="..\..\source\extensions\python\Python\importdl.h" />
|
<ClInclude Include="..\..\source\extensions\python\Python\importdl.h" />
|
||||||
<ClInclude Include="..\..\source\extensions\python\Python\thread_nt.h" />
|
<ClInclude Include="..\..\source\extensions\python\Python\thread_nt.h" />
|
||||||
<ClInclude Include="..\..\source\extensions\python\python_commands.h" />
|
<ClInclude Include="..\..\source\extensions\python\python_commands.h" />
|
||||||
<ClInclude Include="..\..\source\extensions\python\python_main.h" />
|
<ClInclude Include="..\..\source\extensions\python\python_main.h" />
|
||||||
|
<ClInclude Include="resource.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="..\..\source\extensions\python\PC\python_nt.rc" />
|
<ResourceCompile Include="..\..\source\extensions\python\Resource Files\python_core.rc" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="..\..\source\extensions\python\Resource Files\python_core.rh" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<MASM Include="..\..\source\extensions\python\Modules\_ctypes\libffi_msvc\win64.asm">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='r7_debug|Win32'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='r7_release|Win32'">true</ExcludedFromBuild>
|
||||||
|
</MASM>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
@ -31,6 +31,9 @@
|
|||||||
<Filter Include="Resource Files">
|
<Filter Include="Resource Files">
|
||||||
<UniqueIdentifier>{1e26a334-8fbf-470a-a690-ae261dd2dbb4}</UniqueIdentifier>
|
<UniqueIdentifier>{1e26a334-8fbf-470a-a690-ae261dd2dbb4}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter Include="Modules\_ctypes">
|
||||||
|
<UniqueIdentifier>{b0e8f834-fe7a-43ec-aef1-50aa4969cd09}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\..\source\extensions\python\Include\cobject.h">
|
<ClInclude Include="..\..\source\extensions\python\Include\cobject.h">
|
||||||
@ -414,10 +417,9 @@
|
|||||||
<ClInclude Include="..\..\source\extensions\python\Objects\stringlib\fastsearch.h">
|
<ClInclude Include="..\..\source\extensions\python\Objects\stringlib\fastsearch.h">
|
||||||
<Filter>Objects</Filter>
|
<Filter>Objects</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\source\extensions\python\PC\pythonnt_rc.h">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\source\extensions\python\python_commands.h" />
|
<ClInclude Include="..\..\source\extensions\python\python_commands.h" />
|
||||||
|
<ClInclude Include="..\..\source\extensions\python\python_main.h" />
|
||||||
|
<ClInclude Include="resource.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\..\source\extensions\python\Modules\_io\_iomodule.c">
|
<ClCompile Include="..\..\source\extensions\python\Modules\_io\_iomodule.c">
|
||||||
@ -961,10 +963,57 @@
|
|||||||
<Filter>Modules</Filter>
|
<Filter>Modules</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\source\extensions\python\python_commands.c" />
|
<ClCompile Include="..\..\source\extensions\python\python_commands.c" />
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\python_main.c" />
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\socketmodule.c">
|
||||||
|
<Filter>Modules</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\selectmodule.c">
|
||||||
|
<Filter>Modules</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\unicodedata.c">
|
||||||
|
<Filter>Modules</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\callbacks.c">
|
||||||
|
<Filter>Modules\_ctypes</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\callproc.c">
|
||||||
|
<Filter>Modules\_ctypes</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\cfield.c">
|
||||||
|
<Filter>Modules\_ctypes</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\malloc_closure.c">
|
||||||
|
<Filter>Modules\_ctypes</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\stgdict.c">
|
||||||
|
<Filter>Modules\_ctypes</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\_ctypes.c">
|
||||||
|
<Filter>Modules\_ctypes</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\libffi_msvc\prep_cif.c">
|
||||||
|
<Filter>Modules\_ctypes</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\libffi_msvc\win32.c">
|
||||||
|
<Filter>Modules\_ctypes</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\source\extensions\python\Modules\_ctypes\libffi_msvc\ffi.c">
|
||||||
|
<Filter>Modules\_ctypes</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="..\..\source\extensions\python\PC\python_nt.rc">
|
<ResourceCompile Include="..\..\source\extensions\python\Resource Files\python_core.rc">
|
||||||
<Filter>Resource Files</Filter>
|
<Filter>Resource Files</Filter>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="..\..\source\extensions\python\Resource Files\python_core.rh">
|
||||||
|
<Filter>Resource Files</Filter>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<MASM Include="..\..\source\extensions\python\Modules\_ctypes\libffi_msvc\win64.asm">
|
||||||
|
<Filter>Modules\_ctypes</Filter>
|
||||||
|
</MASM>
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
Loading…
x
Reference in New Issue
Block a user