| 282 | bool MacPluginInit() |
| 283 | #else |
| 284 | BINARYNINJAPLUGIN bool CorePluginInit() |
| 285 | #endif |
| 286 | { |
| 287 | Ref<BinaryViewType> viewType = BinaryViewType::GetByName("KCView"); |
| 288 | Ref<Architecture> x86 = Architecture::GetByName("x86"); |
| 289 | if (x86) |
| 290 | { |
| 291 | g_macKernelX86 = new MacKernelX86Platform(x86); |
| 292 | Platform::Register("mac-kernel", g_macKernelX86); |
| 293 | if (viewType) |
| 294 | viewType->RegisterPlatformRecognizer(7, LittleEndian, MacKernelX86Platform::Recognize); |
| 295 | } |
| 296 | |
| 297 | Ref<Architecture> x64 = Architecture::GetByName("x86_64"); |
| 298 | if (x64) |
| 299 | { |
| 300 | g_macKernelX64 = new MacKernelX64Platform(x64); |
| 301 | Platform::Register("mac-kernel", g_macKernelX64); |
| 302 | if (viewType) |
| 303 | viewType->RegisterPlatformRecognizer(0x01000007, LittleEndian, MacKernelX64Platform::Recognize); |
| 304 | } |
| 305 | |
| 306 | Ref<Architecture> armv7 = Architecture::GetByName("armv7"); |
| 307 | Ref<Architecture> thumb2 = Architecture::GetByName("thumb2"); |
| 308 | if (armv7 && thumb2) |
| 309 | { |
| 310 | g_macKernelArmv7 = new MacKernelArmv7Platform(armv7, "mac-kernel-armv7"); |
| 311 | g_macKernelThumb2 = new MacKernelArmv7Platform(thumb2, "mac-kernel-thumb2"); |
| 312 | g_iosKernelArmv7 = new IOSKernelArmv7Platform(armv7, "ios-kernel-armv7"); |
| 313 | g_iosKernelThumb2 = new IOSKernelArmv7Platform(thumb2, "ios-kernel-thumb2"); |
| 314 | g_macKernelArmv7->AddRelatedPlatform(thumb2, g_macKernelThumb2); |
| 315 | g_macKernelThumb2->AddRelatedPlatform(armv7, g_macKernelArmv7); |
| 316 | g_iosKernelArmv7->AddRelatedPlatform(thumb2, g_iosKernelThumb2); |
| 317 | g_iosKernelThumb2->AddRelatedPlatform(armv7, g_iosKernelArmv7); |
| 318 | Platform::Register("mac-kernel", g_macKernelArmv7); |
| 319 | Platform::Register("ios-kernel", g_iosKernelArmv7); |
| 320 | Platform::Register("mac-kernel", g_macKernelThumb2); |
| 321 | Platform::Register("ios-kernel", g_iosKernelThumb2); |
| 322 | if (viewType) |
| 323 | { |
| 324 | viewType->RegisterPlatformRecognizer(0xc, LittleEndian, MacKernelArmv7Platform::Recognize); |
| 325 | viewType->RegisterPlatformRecognizer(0xc, LittleEndian, IOSKernelArmv7Platform::Recognize); |
| 326 | } |
| 327 | } |
| 328 | |
| 329 | Ref<Architecture> arm64 = Architecture::GetByName("aarch64"); |
| 330 | if (arm64) |
| 331 | { |
| 332 | g_macKernelArm64 = new MacKernelArm64Platform(arm64); |
| 333 | g_iosKernelArm64 = new IOSKernelArm64Platform(arm64); |
| 334 | Platform::Register("mac-kernel", g_macKernelArm64); |
| 335 | Platform::Register("ios-kernel", g_iosKernelArm64); |
| 336 | if (viewType) |
| 337 | { |
| 338 | viewType->RegisterPlatformRecognizer(0, LittleEndian, MacKernelArm64Platform::Recognize); |
| 339 | viewType->RegisterPlatformRecognizer(0x0100000c, LittleEndian, MacKernelArm64Platform::Recognize); |
| 340 | viewType->RegisterPlatformRecognizer(0x0200000c, LittleEndian, MacKernelArm64Platform::Recognize); |
| 341 | viewType->RegisterPlatformRecognizer(0, LittleEndian, IOSKernelArm64Platform::Recognize); |
nothing calls this directly
no test coverage detected