CLI: Add Ghidra Python script output support
This commit is contained in:
@@ -78,6 +78,9 @@ namespace Il2CppInspector.CLI
|
|||||||
[Option("cpp-compiler", Required = false, HelpText = "Compiler to target for C++ output (MSVC or GCC); selects based on binary executable type by default", Default = CppCompilerType.BinaryFormat)]
|
[Option("cpp-compiler", Required = false, HelpText = "Compiler to target for C++ output (MSVC or GCC); selects based on binary executable type by default", Default = CppCompilerType.BinaryFormat)]
|
||||||
public CppCompilerType CppCompiler { get; set; }
|
public CppCompilerType CppCompiler { get; set; }
|
||||||
|
|
||||||
|
[Option('t', "script-target", Required = false, HelpText = "Application to target for Python script output (IDA or Ghidra) - case-sensitive", Default = "IDA")]
|
||||||
|
public string ScriptTarget { get; set; }
|
||||||
|
|
||||||
[Option("unity-path", Required = false, HelpText = "Path to Unity editor (when using --project). Wildcards select last matching folder in alphanumeric order", Default = @"C:\Program Files\Unity\Hub\Editor\*")]
|
[Option("unity-path", Required = false, HelpText = "Path to Unity editor (when using --project). Wildcards select last matching folder in alphanumeric order", Default = @"C:\Program Files\Unity\Hub\Editor\*")]
|
||||||
public string UnityPath { get; set; }
|
public string UnityPath { get; set; }
|
||||||
|
|
||||||
@@ -120,6 +123,13 @@ namespace Il2CppInspector.CLI
|
|||||||
Console.WriteLine(asmInfo.LegalCopyright);
|
Console.WriteLine(asmInfo.LegalCopyright);
|
||||||
Console.WriteLine("");
|
Console.WriteLine("");
|
||||||
|
|
||||||
|
// Check script target is valid
|
||||||
|
if (!PythonScript.GetAvailableTargets().Contains(options.ScriptTarget)) {
|
||||||
|
Console.Error.WriteLine($"Script target {options.ScriptTarget} is invalid.");
|
||||||
|
Console.Error.WriteLine("Valid targets are: " + string.Join(", ", PythonScript.GetAvailableTargets()));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
// Check excluded namespaces
|
// Check excluded namespaces
|
||||||
if (options.ExcludedNamespaces.Count() == 1 && options.ExcludedNamespaces.First().ToLower() == "none")
|
if (options.ExcludedNamespaces.Count() == 1 && options.ExcludedNamespaces.First().ToLower() == "none")
|
||||||
options.ExcludedNamespaces = new List<string>();
|
options.ExcludedNamespaces = new List<string>();
|
||||||
@@ -270,8 +280,9 @@ namespace Il2CppInspector.CLI
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Python script output
|
// Python script output
|
||||||
using (new Benchmark("Generate Python script")) {
|
using (new Benchmark($"Generate {options.ScriptTarget} Python script")) {
|
||||||
new PythonScript(appModel).WriteScriptToFile(options.PythonOutFile, "IDA",
|
new PythonScript(appModel).WriteScriptToFile(options.PythonOutFile,
|
||||||
|
options.ScriptTarget,
|
||||||
Path.Combine(options.CppOutPath, "appdata/il2cpp-types.h"),
|
Path.Combine(options.CppOutPath, "appdata/il2cpp-types.h"),
|
||||||
options.JsonOutPath);
|
options.JsonOutPath);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user