public static void AddPythonLibrariesToSysMetaPath(ScriptEngine engineInstance) { Assembly asm = Assembly.GetExecutingAssembly().GetType().Assembly; try { var resQuery = from name in asm.GetManifestResourceNames() where name.ToLowerInvariant().EndsWith(".zip") select name; string resName = resQuery.Single(); #if DEBUG Console.WriteLine("Found embedded IPY stdlib : {0}", resName); #endif var importer = new ResourceMetaPathImporter(asm, resName); dynamic sys = engineInstance.GetSysModule(); sys.meta_path.append(importer); sys.path.append(importer); //List metaPath = sys.GetVariable("meta_path"); //metaPath.Add(importer); //sys.SetVariable("meta_path", metaPath); } catch (Exception e) { #if DEBUG Console.WriteLine("Did not find IPY stdlib in embedded resources: {0}", e.Message); #endif return; } }
public static void AddPythonLibrariesToSysMetaPath(ScriptEngine engineInstance) { Assembly asm = Assembly.GetExecutingAssembly().GetType().Assembly; try { var resQuery = from name in asm.GetManifestResourceNames() where name.EndsWith(".zip", StringComparison.OrdinalIgnoreCase) select name; string resName = resQuery.Single(); #if DEBUG Console.WriteLine("\t[+] Found embedded IPY stdlib: {0}", resName); #endif var importer = new ResourceMetaPathImporter(asm, resName); dynamic sys = engineInstance.GetSysModule(); sys.meta_path.append(importer); sys.path.append(importer); } catch (Exception e) { #if DEBUG Console.WriteLine("\t[-] Did not find IPY stdlib in embedded resources: {0}", e.Message); #endif return; } }
public static void Agent(string B64PyCode) { try { // setup ironpython engine string PyCode = ""; byte[] ScriptBytes = Convert.FromBase64String(B64PyCode); PyCode = Encoding.ASCII.GetString(ScriptBytes); ScriptEngine engine = Python.CreateEngine(); // Load stdlib to memory Assembly asm = Assembly.GetExecutingAssembly(); dynamic sysScope = engine.GetSysModule(); var importer = new ResourceMetaPathImporter(asm, "Lib.zip"); sysScope.meta_path.append(importer); sysScope.path.append(importer); //execute ironpython code var script = engine.CreateScriptSourceFromString(PyCode, SourceCodeKind.Statements); script.Execute(); } catch { Environment.Exit(0); } }
static void Main(string[] args) { string PyCode = ""; if (args.Length >= 1) { switch (args[0].Split(':')[0].ToLower()) { case "--b64script": { byte[] ScriptBytes = Convert.FromBase64String(args[0].Split(':')[1]); PyCode = Encoding.ASCII.GetString(ScriptBytes); break; } case "--script": { PyCode = args[0].Split(':')[1]; break; } default: { PrintUsage(); return; } } } else { PrintUsage(); return; } ScriptEngine engine = Python.CreateEngine(); Assembly ass = Assembly.GetExecutingAssembly(); var sysScope = engine.GetSysModule(); var importer = new ResourceMetaPathImporter(Assembly.GetExecutingAssembly(), "Lib.zip"); List metaPath = (List)sysScope.GetVariable("meta_path"); metaPath.Add(importer); sysScope.SetVariable("meta_path", metaPath); var script = engine.CreateScriptSourceFromString(PyCode, SourceCodeKind.Statements); script.Execute(); Console.WriteLine("Finished Executing."); }