Fråga:
Omvänd teknik för PluginKit MacOS-ramverket
NirIzr
2017-08-26 17:00:44 UTC
view on stackexchange narkive permalink

Jag har fått i uppdrag att kräva en grundlig reverse engineering-insats på PluginKit-ramverket i det moderna Mac-operativsystemet, och jag letar efter information att börja, istället för att börja om från början.

Mer specifikt måste jag få en anständig förståelse för den interna lagrings- och konfigurationslayouten och formatet för PluginKit, samt hur det manipuleras, uppdateras och läses.

Den enda resursen jag har lyckats komma med är denna medellånga artikel från över ett år sedan, av en person som heter Aditya Vaidyam.

Jag hittade ingen relevant information (enligt innehållsförteckningen) i Mac OSX Internals av Amit Singh eller i MacOS och * OS Internals av Jonathan Levin, och hittade inget annat att titta på.

Min fråga är därför dubbelt:

  1. Finns det några andra resurser som beskriver OSX-ramarna och PluginKit-ramarna i detalj?
  2. Vilka andra resurser, pekare, tips och tidigare res earch skulle du föreslå att jag läser innan jag går in i uppgiften?
Det inlägget skrevs verkligen av mig. Det täcker från en hög nivå till det inre av hur 'NSExtension' startar och fungerar, mindre om hur man hanterar 'PlugInKit'. Det finns faktiskt noll andra resurser AFAIK men ta dig själv en demonterare (förutsatt att du känner till någon montering) och gå till stan på den binära (som faktiskt finns på `/ System / Library / PrivateFrameworks / PlugInKit.framework / Innehåll / MacOS / PlugInKit` )
Ja, naturligtvis kunde jag göra om filen, men innan jag själv gjorde det sökte jag efter befintligt material som jag kunde lita på.
@Nirlzr Ah, förstod!
Ett svar:
accfews
2017-09-06 18:10:58 UTC
view on stackexchange narkive permalink

Mina erbjudanden kommer inte att vara specifika för din uppgift, så jag försöker svara på din andra fråga. Jag hoppas att dessa hjälper dig eller någon som har en liknande uppgift. Eftersom din uppgift handlar om ett ganska specifikt ämne kommer jag att erbjuda dig att söka efter något liknande och lösa pusslet genom att kombinera dessa detaljer.

Jag vet inte om du har tidigare MacOS / iOS-upplevelse. Så här är en bra handledning för att starta för att förstå plattformsdetaljer (binärt format etc.)

Och du kan börja med grundläggande förståelse för Objective-C runtime-detaljer. Denna information kommer att vara till stor hjälp när du möter någon (av) montering

För exp;

Det här inlägget ( Introduktion till LLDB och Hopper) kan vara till stor hjälp eftersom det ger ett exempel på dekompilering av Apples UIKit-ramverk. Genom att använda detta tillvägagångssätt dekompilerade jag PluginKit, men fokuserade inte på internt.

Du kan också kontrollera gränssnittet för PluginKit via Runtime Browser och sökmetoder för att fokusera på, eller kontrollera pre -genererade gränssnitt som finns på github-sidan

Lycka till

Tack. Uppröstade. När du säger "Jag dekompilerade PluginKit", skulle du kunna utarbeta det? Finns det något jag kan läsa om din upplevelse?
Egentligen inte så mycket, jag följde bara guiden och demonterade iOS-binären för PluginKit. (MacOS binär placeras på `/ usr / bin / pluginkit`) Om du har ett problem fram till den delen kan jag naturligtvis hjälpa till. Vila beror på vad du letar efter. Jag tror att du behöver ett riktigt användningsfall för att PluginKit ska förstå, vad det gör och hur det fungerar. Då kan du fokusera på specifika delar för detaljer och vi kan utbyta kunskap.


Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...