mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-04-25 17:25:17 +02:00
Merge remote-tracking branch 'origin/Ghidra_12.1'
This commit is contained in:
@@ -118,6 +118,11 @@ encoded form; thus, using the encoded form can also create bifurcation in the na
|
|||||||
|
|
||||||
## Processors
|
## Processors
|
||||||
|
|
||||||
|
## Jython Extension
|
||||||
|
Jython support is now delivered as a Ghidra Extension, which means an extra step is required to
|
||||||
|
install it. If you require Jython, simply go to `File -> Install Extensions` in the Ghidra
|
||||||
|
Front End GUI and check "Jython". Restart Ghidra and Jython support will be enabled.
|
||||||
|
|
||||||
## Additional Bug Fixes and Enhancements
|
## Additional Bug Fixes and Enhancements
|
||||||
Numerous other new features, improvements, and bug fixes are fully listed in the
|
Numerous other new features, improvements, and bug fixes are fully listed in the
|
||||||
[Change History](ChangeHistory.md) file.
|
[Change History](ChangeHistory.md) file.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
apply from: "$rootProject.projectDir/gradle/distributableGhidraModule.gradle"
|
apply from: "$rootProject.projectDir/gradle/distributableGhidraExtension.gradle"
|
||||||
apply from: "$rootProject.projectDir/gradle/javaProject.gradle"
|
apply from: "$rootProject.projectDir/gradle/javaProject.gradle"
|
||||||
apply from: "$rootProject.projectDir/gradle/helpProject.gradle"
|
apply from: "$rootProject.projectDir/gradle/helpProject.gradle"
|
||||||
apply from: "$rootProject.projectDir/gradle/jacocoProject.gradle"
|
apply from: "$rootProject.projectDir/gradle/jacocoProject.gradle"
|
||||||
@@ -21,7 +21,7 @@ apply from: "$rootProject.projectDir/gradle/javaTestProject.gradle"
|
|||||||
apply from: "$rootProject.projectDir/gradle/javadoc.gradle"
|
apply from: "$rootProject.projectDir/gradle/javadoc.gradle"
|
||||||
apply plugin: 'eclipse'
|
apply plugin: 'eclipse'
|
||||||
|
|
||||||
eclipse.project.name = 'Features Jython'
|
eclipse.project.name = 'Xtra Jython'
|
||||||
|
|
||||||
|
|
||||||
def JYTHON = "org.python:jython-standalone:2.7.4"
|
def JYTHON = "org.python:jython-standalone:2.7.4"
|
||||||
@@ -4,5 +4,6 @@
|
|||||||
Module.manifest||GHIDRA||||END|
|
Module.manifest||GHIDRA||||END|
|
||||||
README.md||GHIDRA||||END|
|
README.md||GHIDRA||||END|
|
||||||
data/jython.theme.properties||GHIDRA||||END|
|
data/jython.theme.properties||GHIDRA||||END|
|
||||||
|
extension.properties||GHIDRA||||END|
|
||||||
src/main/help/help/TOC_Source.xml||GHIDRA||||END|
|
src/main/help/help/TOC_Source.xml||GHIDRA||||END|
|
||||||
src/main/help/help/topics/Jython/interpreter.html||GHIDRA||||END|
|
src/main/help/help/topics/Jython/interpreter.html||GHIDRA||||END|
|
||||||
5
Ghidra/Extensions/Jython/extension.properties
Normal file
5
Ghidra/Extensions/Jython/extension.properties
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
name=Jython
|
||||||
|
description=The Jython 2.x GhidraScript engine and interpreter plugin
|
||||||
|
author=Ghidra Team
|
||||||
|
createdOn=pre-4/23/2026
|
||||||
|
version=@extversion@
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
script-specific code.</LI>
|
script-specific code.</LI>
|
||||||
|
|
||||||
<LI>Of course if you choose Java, the Ghidra script must be written in Java.
|
<LI>Of course if you choose Java, the Ghidra script must be written in Java.
|
||||||
An implementation for Python (based on Jython) is also provided.</LI>
|
An implementation for Python (based on PyGhidra) is also provided.</LI>
|
||||||
</OL>
|
</OL>
|
||||||
|
|
||||||
<P align="center"><IMG border="0" src="images/New_Script_Editor.png" ></P>
|
<P align="center"><IMG border="0" src="images/New_Script_Editor.png" ></P>
|
||||||
@@ -161,8 +161,8 @@
|
|||||||
uses the same script file extension. If left unspecified, the first Ghidra script runtime
|
uses the same script file extension. If left unspecified, the first Ghidra script runtime
|
||||||
environment that matches the script's extension will be used.<BR>
|
environment that matches the script's extension will be used.<BR>
|
||||||
<BR>
|
<BR>
|
||||||
For example, specify <TT>"@runtime Jython"</TT> if the script is targetted for a Jython 2
|
For example, specify <TT>"@runtime Jython"</TT> if the script is targeted for a Jython 2
|
||||||
runtime environment rather than a Python 3 runtime environment.
|
runtime environment rather than a CPython 3 (PyGhidra) runtime environment.
|
||||||
</P>
|
</P>
|
||||||
</BLOCKQUOTE>
|
</BLOCKQUOTE>
|
||||||
</BLOCKQUOTE>
|
</BLOCKQUOTE>
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ import ghidra.app.plugin.core.osgi.BundleStatusComponentProvider;
|
|||||||
import ghidra.app.plugin.core.script.*;
|
import ghidra.app.plugin.core.script.*;
|
||||||
import ghidra.app.script.*;
|
import ghidra.app.script.*;
|
||||||
import ghidra.app.services.ConsoleService;
|
import ghidra.app.services.ConsoleService;
|
||||||
import ghidra.jython.JythonScriptProvider;
|
|
||||||
import ghidra.util.HelpLocation;
|
import ghidra.util.HelpLocation;
|
||||||
import ghidra.util.datastruct.LRUSet;
|
import ghidra.util.datastruct.LRUSet;
|
||||||
|
|
||||||
@@ -223,7 +222,7 @@ public class GhidraScriptMgrPluginScreenShots extends GhidraScreenShotGenerator
|
|||||||
List<GhidraScriptProvider> items = new ArrayList<>();
|
List<GhidraScriptProvider> items = new ArrayList<>();
|
||||||
JavaScriptProvider javaScriptProvider = new JavaScriptProvider();
|
JavaScriptProvider javaScriptProvider = new JavaScriptProvider();
|
||||||
items.add(javaScriptProvider);
|
items.add(javaScriptProvider);
|
||||||
items.add(new JythonScriptProvider());
|
//items.add(new JythonScriptProvider());
|
||||||
final PickProviderDialog pickDialog = new PickProviderDialog(items, javaScriptProvider);
|
final PickProviderDialog pickDialog = new PickProviderDialog(items, javaScriptProvider);
|
||||||
runSwing(() -> tool.showDialog(pickDialog), false);
|
runSwing(() -> tool.showDialog(pickDialog), false);
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ import java.util.HexFormat;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.python.google.common.primitives.Longs;
|
|
||||||
|
import com.google.common.primitives.Longs;
|
||||||
|
|
||||||
import ghidra.framework.store.LockException;
|
import ghidra.framework.store.LockException;
|
||||||
import ghidra.program.model.address.*;
|
import ghidra.program.model.address.*;
|
||||||
|
|||||||
@@ -24,7 +24,8 @@ import java.util.*;
|
|||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.python.google.common.primitives.Longs;
|
|
||||||
|
import com.google.common.primitives.Longs;
|
||||||
|
|
||||||
import ghidra.framework.store.LockException;
|
import ghidra.framework.store.LockException;
|
||||||
import ghidra.util.SourceFileUtils;
|
import ghidra.util.SourceFileUtils;
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ import java.util.List;
|
|||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.python.google.common.primitives.Longs;
|
|
||||||
|
import com.google.common.primitives.Longs;
|
||||||
|
|
||||||
import generic.test.AbstractGenericTest;
|
import generic.test.AbstractGenericTest;
|
||||||
import ghidra.framework.store.LockException;
|
import ghidra.framework.store.LockException;
|
||||||
|
|||||||
Reference in New Issue
Block a user