summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Freeman (saurik) <saurik@saurik.com>2015-08-25 01:14:30 -0700
committerJay Freeman (saurik) <saurik@saurik.com>2015-08-25 01:14:30 -0700
commit843aea8c5b0578212c880e4973a40c012b6d4940 (patch)
tree18bc5b88074f04ec9b8156971c364bda4ef3a127
parentcad40c430b2f6c3d85846a9c31a8f522bb5ee3a8 (diff)
downloadldid-843aea8c5b0578212c880e4973a40c012b6d4940.tar.gz
ldid-843aea8c5b0578212c880e4973a40c012b6d4940.tar.zst
ldid-843aea8c5b0578212c880e4973a40c012b6d4940.zip
Support LC_ENCRYPTION_INFO_64, for 64-bit decrypt.
-rw-r--r--ldid.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/ldid.cpp b/ldid.cpp
index 0648469..83ba053 100644
--- a/ldid.cpp
+++ b/ldid.cpp
@@ -95,6 +95,7 @@ struct load_command {
#define LC_ENCRYPTION_INFO uint32_t(0x21)
#define LC_DYLD_INFO uint32_t(0x22)
#define LC_DYLD_INFO_ONLY uint32_t(0x22 | LC_REQ_DYLD)
+#define LC_ENCRYPTION_INFO_64 uint32_t(0x2c)
struct dylib {
uint32_t name;
@@ -1129,7 +1130,7 @@ int main(int argc, const char *argv[]) {
if (false);
else if (cmd == LC_CODE_SIGNATURE)
signature = reinterpret_cast<struct linkedit_data_command *>(load_command);
- else if (cmd == LC_ENCRYPTION_INFO)
+ else if (cmd == LC_ENCRYPTION_INFO || cmd == LC_ENCRYPTION_INFO_64)
encryption = reinterpret_cast<struct encryption_info_command *>(load_command);
else if (cmd == LC_ID_DYLIB) {
volatile struct dylib_command *dylib_command(reinterpret_cast<struct dylib_command *>(load_command));