aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCameron Katri <me@cameronkatri.com>2022-07-07 15:29:40 -0400
committerCameron Katri <me@cameronkatri.com>2022-07-07 15:29:40 -0400
commit2cf95c12a07c677ec6ac38a24e1c3aafe0e9389f (patch)
tree7e6253c2be6b97d89f91a6f285094ea35e897f36
parent7f1a8803fe9059ada8a5420a122277d8c74a226f (diff)
downloadldid-2cf95c12a07c677ec6ac38a24e1c3aafe0e9389f.tar.gz
ldid-2cf95c12a07c677ec6ac38a24e1c3aafe0e9389f.tar.zst
ldid-2cf95c12a07c677ec6ac38a24e1c3aafe0e9389f.zip
Add Executable and Identifier to -h
-rw-r--r--.gitignore1
-rw-r--r--ldid.cpp9
2 files changed, 9 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index ba6a0f3..e1bc118 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@ ldid
.vscode
compile_commands.json
.cache
+*.core
diff --git a/ldid.cpp b/ldid.cpp
index 5745e9b..24daf47 100644
--- a/ldid.cpp
+++ b/ldid.cpp
@@ -3539,6 +3539,10 @@ int main(int argc, char *argv[]) {
}
if (flag_h) {
+ char *buf = _syscall(realpath(file.c_str(), NULL));
+ printf("Executable=%s\n", buf);
+ free(buf);
+
auto algorithms(GetAlgorithms());
uint32_t data = mach_header.Swap(signature->dataoff);
@@ -3552,6 +3556,7 @@ int main(int argc, char *argv[]) {
size_t size_;
Algorithm &algorithm_;
std::string hash_;
+ uint32_t offset;
};
std::map<uint8_t, Candidate> candidates;
@@ -3567,7 +3572,7 @@ int main(int argc, char *argv[]) {
auto &algorithm(*algorithms[type - 1]);
uint8_t hash[algorithm.size_];
algorithm(hash, blob + begin, end - begin);
- candidates.insert({type, {directory, end - begin, algorithm, Hex(hash, 20)}});
+ candidates.insert({type, {directory, end - begin, algorithm, Hex(hash, 20), begin}});
}
}
@@ -3578,6 +3583,8 @@ int main(int argc, char *argv[]) {
const auto directory(best->second.directory_);
const auto flags(Swap(directory->flags));
+ printf("Identifier=%s\n", blob + best->second.offset + Swap(directory->identOffset));
+
std::string names;
if (flags & kSecCodeSignatureHost)
names += ",host";