mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-09-28 17:11:11 -09:00
Merge branch 'GP-0_ryanmkurtz_PR-7885_cyberkaida_stripped-rust-detect'
This commit is contained in:
@@ -21,6 +21,7 @@ public class RustConstants {
|
|||||||
public static final CategoryPath RUST_CATEGORYPATH = new CategoryPath("/rust");
|
public static final CategoryPath RUST_CATEGORYPATH = new CategoryPath("/rust");
|
||||||
public static final byte[] RUST_SIGNATURE_1 = "RUST_BACKTRACE".getBytes();
|
public static final byte[] RUST_SIGNATURE_1 = "RUST_BACKTRACE".getBytes();
|
||||||
public static final byte[] RUST_SIGNATURE_2 = "/rustc/".getBytes();
|
public static final byte[] RUST_SIGNATURE_2 = "/rustc/".getBytes();
|
||||||
|
public static final byte[] RUST_SIGNATURE_3 = "RUST_MIN_STACK".getBytes();
|
||||||
public static final String RUST_EXTENSIONS_PATH = "extensions/rust/";
|
public static final String RUST_EXTENSIONS_PATH = "extensions/rust/";
|
||||||
public static final String RUST_EXTENSIONS_UNIX = "unix";
|
public static final String RUST_EXTENSIONS_UNIX = "unix";
|
||||||
public static final String RUST_EXTENSIONS_WINDOWS = "windows";
|
public static final String RUST_EXTENSIONS_WINDOWS = "windows";
|
||||||
|
|||||||
@@ -38,6 +38,10 @@ import ghidra.xml.XmlParseException;
|
|||||||
public class RustUtilities {
|
public class RustUtilities {
|
||||||
/**
|
/**
|
||||||
* Checks if a given {@link MemoryBlock} contains a Rust signature
|
* Checks if a given {@link MemoryBlock} contains a Rust signature
|
||||||
|
* <p>
|
||||||
|
* This may be used by loaders to determine if a program was compiled with rust.
|
||||||
|
* If the program is determined to be rust, then the compiler property is set to
|
||||||
|
* {@link RustConstants#RUST_COMPILER}.
|
||||||
*
|
*
|
||||||
* @param block The {@link MemoryBlock} to scan for Rust signatures
|
* @param block The {@link MemoryBlock} to scan for Rust signatures
|
||||||
* @return True if the given {@link MemoryBlock} is not null and contains a Rust signature;
|
* @return True if the given {@link MemoryBlock} is not null and contains a Rust signature;
|
||||||
@@ -55,6 +59,9 @@ public class RustUtilities {
|
|||||||
if (containsBytes(bytes, RustConstants.RUST_SIGNATURE_2)) {
|
if (containsBytes(bytes, RustConstants.RUST_SIGNATURE_2)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if (containsBytes(bytes, RustConstants.RUST_SIGNATURE_3)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user