mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 10:19:23 +02:00
Add SHA256 hash to Program
interface
Implements the first part of #291 Signed-off-by: Christian Blichmann <cblichmann@google.com>
This commit is contained in:
parent
49c2010b63
commit
f23fcf81a9
5 changed files with 64 additions and 7 deletions
|
@ -128,6 +128,7 @@ public class ProgramDB extends DomainObjectAdapterDB implements Program, ChangeM
|
|||
private static final String EXECUTABLE_PATH = "Executable Location";
|
||||
private static final String EXECUTABLE_FORMAT = "Executable Format";
|
||||
private static final String EXECUTABLE_MD5 = "Executable MD5";
|
||||
private static final String EXECUTABLE_SHA256 = "Executable SHA256";
|
||||
private static final String TABLE_NAME = "Program";
|
||||
private static final String EXECUTE_PATH = "Execute Path";
|
||||
private static final String EXECUTE_FORMAT = "Execute Format";
|
||||
|
@ -716,7 +717,6 @@ public class ProgramDB extends DomainObjectAdapterDB implements Program, ChangeM
|
|||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @see ghidra.program.model.listing.Program#setExecutableFormat(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
|
@ -742,7 +742,6 @@ public class ProgramDB extends DomainObjectAdapterDB implements Program, ChangeM
|
|||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @see ghidra.program.model.listing.Program#setExecutableMD5(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
|
@ -752,6 +751,31 @@ public class ProgramDB extends DomainObjectAdapterDB implements Program, ChangeM
|
|||
changed = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.program.model.listing.Program#getExecutableSHA256()
|
||||
*/
|
||||
@Override
|
||||
public String getExecutableSHA256() {
|
||||
String format = null;
|
||||
try {
|
||||
Options pl = getOptions(PROGRAM_INFO);
|
||||
format = pl.getString(EXECUTABLE_SHA256, (String) null);
|
||||
}
|
||||
catch (Exception e) {
|
||||
}
|
||||
return format == null ? UNKNOWN : format;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.program.model.listing.Program#setExecutableSHA256(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void setExecutableSHA256(String sha256) {
|
||||
Options pl = getOptions(PROGRAM_INFO);
|
||||
pl.setString(EXECUTABLE_SHA256, sha256);
|
||||
changed = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.program.model.listing.Program#getCreationDate()
|
||||
*/
|
||||
|
|
|
@ -190,6 +190,18 @@ public interface Program extends DataTypeManagerDomainObject {
|
|||
*/
|
||||
public void setExecutableMD5(String md5);
|
||||
|
||||
/**
|
||||
* Sets the value corresponding to the original binary file SHA256 hash.
|
||||
* @param sha256 SHA256 binary file hash
|
||||
*/
|
||||
public void setExecutableSHA256(String sha256);
|
||||
|
||||
/**
|
||||
* Returns a value corresponding to the original binary file SHA256 hash.
|
||||
* May be null if program source did not correspond to a binary file.
|
||||
*/
|
||||
public String getExecutableSHA256();
|
||||
|
||||
/**
|
||||
* Returns the creation date of this program.
|
||||
* If the program was created before this property
|
||||
|
|
|
@ -406,6 +406,16 @@ public class ProgramTestDouble implements Program {
|
|||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getExecutableSHA256() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExecutableSHA256(String sha256) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Date getCreationDate() {
|
||||
throw new UnsupportedOperationException();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue