写Mac 命令行 来识别Mach-O文件类型 (swift)
2020-04-01 本文已影响0人
化二缺
import Foundation
import MachO
let path:String = "/Users/hyz/Library/Developer/Xcode/DerivedData/iOSCommandLinelearn-bdsbgtyblmlxwbcuvjuexmictdnw/Build/Products/Debug-iphoneos/iOSCommandLinelearn.app/iOSCommandLinelearn";
let handle = FileHandle.init(forReadingAtPath: path)
let length = MemoryLayout.size(ofValue: __uint32_t())
let magicData = handle?.readData(ofLength: length)//读取最前面的 4个字节 用来标识文件类型
let magicNSdata = NSData.init(data: magicData!)
var magicNumber = uint32()
magicNSdata.getBytes(&magicNumber, length: length)
if magicNumber == FAT_CIGAM || magicNumber == FAT_MAGIC {
print("FAT文件\n")
} else if magicNumber == MH_MAGIC_64 || magicNumber == MH_CIGAM_64{
print("64bit 架构文件\n")
} else if magicNumber == MH_MAGIC || magicNumber == MH_CIGAM {
print("非 64bit 架构文件\n")
} else {
print("错误")
}
handle?.closeFile()