diff options
| author | kat <kat@vector35.com> | 2025-07-16 16:36:00 -0400 |
|---|---|---|
| committer | kat <kat@vector35.com> | 2025-07-16 16:36:00 -0400 |
| commit | 8ef0a6e6acae4dd753e81e9e8eb01a22c3d24f61 (patch) | |
| tree | a655902e889ab060991c99a058cf689c02a3301e | |
| parent | c7709217f72bc4711ff47904c51be1a3f25bf825 (diff) | |
Mach-O/KernelCache warning cleanup
| -rw-r--r-- | view/kernelcache/core/KernelCache.cpp | 12 | ||||
| -rw-r--r-- | view/kernelcache/core/KernelCacheView.cpp | 5 | ||||
| -rw-r--r-- | view/kernelcache/core/transformers/libDER/oids.c | 2 | ||||
| -rw-r--r-- | view/macho/machoview.cpp | 30 |
4 files changed, 22 insertions, 27 deletions
diff --git a/view/kernelcache/core/KernelCache.cpp b/view/kernelcache/core/KernelCache.cpp index 36f3331b..cf3be5c7 100644 --- a/view/kernelcache/core/KernelCache.cpp +++ b/view/kernelcache/core/KernelCache.cpp @@ -131,7 +131,7 @@ void KernelCache::ProcessRelocations(Ref<BinaryView> view, linkedit_data_command fixupsHeader.imports_format = parentReader.Read32(); fixupsHeader.symbols_format = parentReader.Read32(); - LogDebug("Chained Fixups: Header @ %llx // Fixups version %lx", fixupHeaderAddress, fixupsHeader.fixups_version); + LogDebugF("Chained Fixups: Header @ 0x{:x}// Fixups version 0x{:x}", fixupHeaderAddress, fixupsHeader.fixups_version); if (fixupsHeader.fixups_version > 0) { @@ -204,14 +204,14 @@ void KernelCache::ProcessRelocations(Ref<BinaryView> view, linkedit_data_command break; default: { - LogError("Chained Fixups: Unknown or unsupported pointer format %d, " - "unable to process chains for segment at @llx", starts.pointer_format, starts.segment_offset); + LogErrorF("Chained Fixups: Unknown or unsupported pointer format {}, " + "unable to process chains for segment at 0x{:x}", starts.pointer_format, starts.segment_offset); continue; } } uint16_t fmt = starts.pointer_format; - LogDebug("Chained Fixups: Segment start @ %llx, fmt %d", starts.segment_offset, fmt); + LogDebugF("Chained Fixups: Segment start @ 0x{:x}, fmt {}", starts.segment_offset, fmt); uint64_t pageStartsTableStartAddress = parentReader.GetOffset(); std::vector<std::vector<uint16_t>> pageStartOffsets {}; @@ -299,7 +299,7 @@ void KernelCache::ProcessRelocations(Ref<BinaryView> view, linkedit_data_command bind = false; } - LogTrace("Chained Fixups: @ 0x%llx ( 0x%llx ) - %d 0x%llx", chainEntryAddress, + LogTraceF("Chained Fixups: @ 0x{:x} ( 0x{:x} ) - {} 0x{:x}", chainEntryAddress, view->GetStart() + (chainEntryAddress), bind, nextEntryStrideCount); @@ -354,7 +354,7 @@ void KernelCache::ProcessRelocations(Ref<BinaryView> view, linkedit_data_command { // Something is seriously wrong here. likely malformed binary, or our parsing failed elsewhere. // This will log the pointer in mapped memory. - LogError("Chained Fixups: Pointer at 0x%llx left page", + LogErrorF("Chained Fixups: Pointer at 0x{:x} left page", view->GetStart() + ((chainEntryAddress - (nextEntryStrideCount * strideSize)))); fixupsDone = true; } diff --git a/view/kernelcache/core/KernelCacheView.cpp b/view/kernelcache/core/KernelCacheView.cpp index 005a4af2..43d4eb6c 100644 --- a/view/kernelcache/core/KernelCacheView.cpp +++ b/view/kernelcache/core/KernelCacheView.cpp @@ -899,11 +899,8 @@ bool KernelCacheView::InitController() { BinaryReader reader(GetParentView()); - reader.Seek(0x4); - uint32_t cpuType = reader.Read32(); - reader.Seek(0x10); + reader.Seek(0x18); uint64_t ncmds = reader.Read32(); - uint64_t sizeofcmds = reader.Read32(); uint64_t offset = 0x20; for (uint64_t i = 0; i < ncmds; i++) { diff --git a/view/kernelcache/core/transformers/libDER/oids.c b/view/kernelcache/core/transformers/libDER/oids.c index 444457c5..cd556a46 100644 --- a/view/kernelcache/core/transformers/libDER/oids.c +++ b/view/kernelcache/core/transformers/libDER/oids.c @@ -417,7 +417,7 @@ static const DERByte _oidAppleExtendedKeyUsageQAProfileSigning[] = { APPLE_EKU_QA_PROFILE_SIGNING }, _oidAppleIntmMarkerAppleID[] = { APPLE_CERT_EXT_INTERMEDIATE_MARKER_APPLEID }, _oidAppleIntmMarkerAppleID2[] = {APPLE_CERT_EXT_INTERMEDIATE_MARKER_APPLEID_2 }, - _oidApplePushServiceClient[] = { APPLE_CERT_EXT_APPLE_PUSH_MARKER, 2 }, + // _oidApplePushServiceClient[] = { APPLE_CERT_EXT_APPLE_PUSH_MARKER, 2 }, _oidApplePolicyMobileStore[] = { APPLE_CERT_POLICY_MOBILE_STORE }, _oidApplePolicyTestMobileStore[] = { APPLE_CERT_POLICY_TEST_MOBILE_STORE }, _oidApplePolicyEscrowService[] = { APPLE_ESCROW_POLICY_OID }, diff --git a/view/macho/machoview.cpp b/view/macho/machoview.cpp index 4e228a33..161da798 100644 --- a/view/macho/machoview.cpp +++ b/view/macho/machoview.cpp @@ -2911,7 +2911,7 @@ void MachoView::ParseDynamicTable(BinaryReader& reader, MachOHeader& header, BNS auto table = reader.Read(tableSize); BNRelocationInfo externReloc; - BNSymbolType symtype = incomingType; + // BNSymbolType symtype = incomingType; uint64_t ordinal = 0; // int64_t addend = 0; uint64_t segmentIndex = 0; @@ -2938,7 +2938,6 @@ void MachoView::ParseDynamicTable(BinaryReader& reader, MachOHeader& header, BNS name = NULL; // flags = 0; type = 0; - symtype = incomingType; break; case BindOpcodeSetDylibOrdinalImmediate: ordinal = imm;break; case BindOpcodeSetDylibOrdinalULEB: ordinal = readLEB128(table, tableSize, i); break; @@ -2951,8 +2950,6 @@ void MachoView::ParseDynamicTable(BinaryReader& reader, MachOHeader& header, BNS break; case BindOpcodeSetTypeImmediate: type = imm; - if (type == 1) - symtype = ImportedDataSymbol; break; case BindOpcodeSetAddendSLEB: /* addend = */ readSLEB128(table, tableSize, i); break; case BindOpcodeSetSegmentAndOffsetULEB: @@ -3294,7 +3291,8 @@ void MachoView::ParseChainedFixups( fixupsHeader.imports_format = parentReader.Read32(); fixupsHeader.symbols_format = parentReader.Read32(); - m_logger->LogDebug("Chained Fixups: Header @ %llx // Fixups version %lx", fixupHeaderAddress, fixupsHeader.fixups_version); + m_logger->LogDebugF( + "Chained Fixups: Header @ 0x{:x} // Fixups version {}", fixupHeaderAddress, fixupsHeader.fixups_version); size_t importsAddress = fixupHeaderAddress + fixupsHeader.imports_offset; size_t importTableSize = sizeof(dyld_chained_import) * fixupsHeader.imports_count; @@ -3377,13 +3375,13 @@ void MachoView::ParseChainedFixups( } default: { - m_logger->LogWarn("Chained Fixups: Unknown import binding format %d", fixupsHeader.imports_format); + m_logger->LogWarnF("Chained Fixups: Unknown import binding format {}", fixupsHeader.imports_format); processBinds = false; // We can still handle rebases. break; } } - m_logger->LogDebug("Chained Fixups: %llx import table entries", importTable.size()); + m_logger->LogDebugF("Chained Fixups: 0x{:x} import table entries", importTable.size()); uint64_t fixupStartsAddress = fixupHeaderAddress + fixupsHeader.starts_offset; parentReader.Seek(fixupStartsAddress); @@ -3450,14 +3448,14 @@ void MachoView::ParseChainedFixups( break; default: { - m_logger->LogError("Chained Fixups: Unknown or unsupported pointer format %d, " - "unable to process chains for segment at @llx", starts.pointer_format, starts.segment_offset); + m_logger->LogErrorF("Chained Fixups: Unknown or unsupported pointer format {}, " + "unable to process chains for segment at @ 0x{:x}", starts.pointer_format, starts.segment_offset); continue; } } uint16_t fmt = starts.pointer_format; - m_logger->LogDebug("Chained Fixups: Segment start @ %llx, fmt %d", starts.segment_offset, fmt); + m_logger->LogDebugF("Chained Fixups: Segment start @ 0x{:x}, fmt {}", starts.segment_offset, fmt); uint64_t pageStartsTableStartAddress = parentReader.GetOffset(); vector<vector<uint16_t>> pageStartOffsets {}; @@ -3547,7 +3545,7 @@ void MachoView::ParseChainedFixups( break; } - m_logger->LogTrace("Chained Fixups: @ 0x%llx ( 0x%llx ) - %d 0x%llx", chainEntryAddress, + m_logger->LogTraceF("Chained Fixups: @ 0x{:x} ( 0x{:x} ) - {} 0x{:x}", chainEntryAddress, GetStart() + (chainEntryAddress - m_universalImageOffset), bind, nextEntryStrideCount); @@ -3578,13 +3576,13 @@ void MachoView::ParseChainedFixups( case DYLD_CHAINED_PTR_64_KERNEL_CACHE: // no binding case DYLD_CHAINED_PTR_X86_64_KERNEL_CACHE: // '' default: - m_logger->LogWarn("Chained Fixups: Unknown Bind Pointer Format at %llx", + m_logger->LogWarnF("Chained Fixups: Unknown Bind Pointer Format at 0x{:x}", GetStart() + (chainEntryAddress - m_universalImageOffset)); chainEntryAddress += (nextEntryStrideCount * strideSize); if (chainEntryAddress > pageAddress + starts.page_size) { - m_logger->LogError("Chained Fixups: Pointer at %llx left page", + m_logger->LogErrorF("Chained Fixups: Pointer at 0x{:x} left page", GetStart() + ((chainEntryAddress - (nextEntryStrideCount * strideSize))) - m_universalImageOffset); fixupsDone = true; } @@ -3614,8 +3612,8 @@ void MachoView::ParseChainedFixups( } else { - m_logger->LogWarn("Chained Fixups: Import Table entry %llx has no symbol; " - "Unable to bind item at %llx", ordinal, targetAddress); + m_logger->LogWarnF("Chained Fixups: Import Table entry 0x{:x} has no symbol; " + "Unable to bind item at 0x{:x}", ordinal, targetAddress); } } } @@ -3673,7 +3671,7 @@ void MachoView::ParseChainedFixups( { // Something is seriously wrong here. likely malformed binary, or our parsing failed elsewhere. // This will log the pointer in mapped memory. - m_logger->LogError("Chained Fixups: Pointer at %llx left page", + m_logger->LogErrorF("Chained Fixups: Pointer at 0x{:x} left page", GetStart() + ((chainEntryAddress - (nextEntryStrideCount * strideSize))) - m_universalImageOffset); fixupsDone = true; } |
