Skip to content

Commit 5d3db26

Browse files
authored
Merge pull request #9 from MxIris-Reverse-Engineering/develop
Update Dependencies
2 parents 76f111d + a2bf14c commit 5d3db26

File tree

8 files changed

+33
-40
lines changed

8 files changed

+33
-40
lines changed

Package.resolved

Lines changed: 10 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Package.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ extension Package.Dependency {
1717

1818
static let MachOKitOrigin = Package.Dependency.package(
1919
url: "https://github.com/p-x9/MachOKit.git",
20-
from: "0.35.0"
20+
from: "0.35.1"
2121
)
2222

2323
static let MachOKitMain = Package.Dependency.package(
@@ -27,7 +27,7 @@ extension Package.Dependency {
2727

2828
static let MachOKitSPM = Package.Dependency.package(
2929
url: "https://github.com/p-x9/MachOKit-SPM",
30-
from: "0.35.0"
30+
from: "0.35.1"
3131
)
3232
}
3333

@@ -89,8 +89,8 @@ let package = Package(
8989
],
9090
dependencies: [
9191
.MachOKit,
92-
.package(url: "https://github.com/swiftlang/swift-syntax", from: "601.0.1"),
93-
.package(url: "https://github.com/p-x9/AssociatedObject", from: "0.13.0"),
92+
.package(url: "https://github.com/swift-precompiled/swift-syntax.git", from: "601.0.1"),
93+
.package(url: "https://github.com/MxIris-Library-Forks/AssociatedObject", from: "0.13.0"),
9494
.package(url: "https://github.com/p-x9/swift-fileio.git", from: "0.9.0"),
9595
.package(url: "https://github.com/apple/swift-argument-parser", from: "1.5.1"),
9696
.package(url: "https://github.com/onevcat/Rainbow", .upToNextMajor(from: "4.0.0")),

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ It may be the most powerful swift dump you can find so far, as it uses a custom
1414
- [x] Protocol Conformance Descriptors
1515
- [x] Type Context Descriptors
1616
- [x] Associated Type Descriptors
17+
- [x] Method Symbol For Dyld Caches
18+
- [ ] Type Member Layout (WIP)
1719
- [ ] Builtin Type Descriptors
1820
- [ ] Capture Descriptors
19-
- [ ] Type Member Layout
20-
- [ ] Method Symbol For Dyld Caches
2121

2222
## Usage
2323

Sources/Demangle/Enums/SwiftSymbolParseError.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,6 @@ public enum SwiftSymbolParseError: Error, Sendable {
2323
case integerOverflow(at: Int)
2424

2525
case unimplementedFeature
26+
27+
case requiredNonOptional
2628
}

Sources/Demangle/Main/Demangler.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,12 @@ extension Demangler {
114114
}
115115

116116
private mutating func demangleSymbolicReference(rawValue: UInt8) throws -> Node {
117+
117118
guard let (kind, directness) = SymbolicReference.symbolicReference(for: rawValue) else {
118-
throw SwiftSymbolParseError.unimplementedFeature
119+
throw SwiftSymbolParseError.requiredNonOptional
119120
}
120121
guard let symbolicReferenceResolver, let symbol = symbolicReferenceResolver(kind, directness, symbolicReferenceIndex) else {
121-
throw SwiftSymbolParseError.unimplementedFeature
122+
throw SwiftSymbolParseError.requiredNonOptional
122123
}
123124
symbolicReferenceIndex += 1
124125
if (kind == .context || kind == .objectiveCProtocol) && (symbol.kind != .opaqueTypeDescriptorSymbolicReference && symbol.kind != .opaqueReturnTypeOf) {

Sources/MachOPointer/SignedPointer.swift

Lines changed: 0 additions & 19 deletions
This file was deleted.

Sources/MachOTestingSupport/MachOFileName.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ package enum MachOFileName: String {
66
case SourceEdit = "/Applications/SourceEdit.app"
77
case SourceEditor = "/Applications/SourceEdit.app/Contents/Frameworks/SourceEditor.framework"
88
case ControlCenter = "/System/Library/CoreServices/ControlCenter.app"
9+
case Freeform = "/System/Applications/Freeform.app"
910
}

Tests/SwiftDumpTests/SwiftDumpTests.swift

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ struct SwiftDumpTests {
4040
self.machOFileInCache = try #require(mainCache.machOFile(named: .AttributeGraph))
4141

4242
// File
43-
let file = try loadFromFile(named: .SourceEditor)
43+
let file = try loadFromFile(named: .Freeform)
4444
switch file {
4545
case .fat(let fatFile):
46-
self.machOFile = try #require(fatFile.machOFiles().first(where: { $0.header.cpu.type == .x86_64 }))
46+
self.machOFile = try #require(fatFile.machOFiles().first(where: { $0.header.cpu.subtype == .arm64(.arm64e) }))
4747
case .machO(let machO):
4848
self.machOFile = machO
4949
@unknown default:
@@ -68,6 +68,14 @@ struct SwiftDumpTests {
6868
@Test func mangledName() async throws {
6969
try MetadataReader.demangleSymbol(for: .init(offset: 0, stringValue: "_$sSo10CUICatalogC7SwiftUIE9findAsset3key10matchTypes11assetLookupxSgAC10CatalogKeyV_q_AHSSXEtSo08CUINamedJ0CRbzSlR_AC0kE9MatchTypeO7ElementRt_r0_lFSo0M5ColorC_SayANGTB503$s7b3UI5q107V05NamedC033_F70ADAD69423F89598F901BDE477D497LLV14resolveCGColor2inSo0L3RefaSgAA17EnvironmentValuesV_tFSo08M12C0CSgSSXEfU_AbC0Q0V0uQ001_wxyZ10BDE477D497LLVAC0q5CacheL0AXLLVSiTf1nncn_nTf4nnngggn_n"), in: machOFile).print(using: printOptions).print()
7070
}
71+
72+
@Test func dyldCacheLoaded() async throws {
73+
let current = try #require(DyldCacheLoaded.current)
74+
print(current.mainCacheHeader.sharedRegionStart)
75+
for machOImage in current.machOImages() {
76+
print(machOImage.ptr.uint, machOImage.path)
77+
}
78+
}
7179
}
7280

7381
extension SwiftDumpTests {
@@ -167,7 +175,7 @@ extension SwiftDumpTests {
167175
private func dumpProtocolConformances(for machO: MachOFile) async throws {
168176
let protocolConformanceDescriptors = try machO.swift.protocolConformanceDescriptors
169177

170-
for (index, protocolConformanceDescriptor) in protocolConformanceDescriptors.enumerated() {
178+
for protocolConformanceDescriptor in protocolConformanceDescriptors {
171179
try print(ProtocolConformance(descriptor: protocolConformanceDescriptor, in: machO).dump(using: printOptions, in: machO).string)
172180
}
173181
}

0 commit comments

Comments
 (0)