MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / CorePluginInit

Function CorePluginInit

platform/mac-kernel/platform_mac_kernel.cpp:284–347  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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);

Callers

nothing calls this directly

Calls 3

AddRelatedPlatformMethod · 0.80
RegisterEnum · 0.50

Tested by

no test coverage detected