1. ipsw.me에서 기종 + 버전 선택 후 다운로드

2.

맥 : https://github.com/blacktop/ipsw 다운로드 

우분투(wsl에서 실행 불가) : sudo snap install ipsw 

우분투 : apfs-fuse  다운로드

apfs-fuse
0.44MB

./ipsw extract -d iPhone13,1_15.6.1_19G82_Restore.ipsw

3. https://github.com/keith/dyld-shared-cache-extractor 다운로드 후 make

mac용 다운로드

extractor
0.03MB

4. dyld_shared_cache_arm64e 추출

./extractor dyld_shared_cache_arm64e ~/bin

'iOS' 카테고리의 다른 글

[iOS] C++, Objective C, Swift 상호 함수 호출  (0) 2022.10.18

 

Swift에서 Objective C 호출

설정 : Build Settings -> Swift Compiler - General -> Objective-C Bridging Header 에서 헤더 설정 (보통 mm 파일 생성 시 자동 생성 됨)

// MyProject-Bridging-Header.h
#include "MyObjectiveC.h"

// MyObjectiveC.h
@interface MyObjectiveC : NSObject
-(void)Hello
@end

// MyObjectiveC.mm
@import "MyObjectiveC.h"

@implementation MyObjectiveC
-(void)Hello
{
	// do something
}

// MySwift.swift
class Test
{
	func hello()
	{
		MyObjectiveC().Hello()
	}
}

 

Objective C에서 Swift 호출

설정 : Build Settings -> Packaging -> Defines Module : Yes ( -Swift.h가 자동 생성됨)

// MyObjectiveC.mm
#import "MyProject-Swift.h"

void Test()
{
	[[MySwift shared] Hello];
}


// MySwift.swift
#import Foundation

@objc class MySwift : NSObject {
	@objc static let shared = MySwift()
    @objc func Hello()
    {
    	print("hello world");
    }
}

 

Objective C에서 C++ 호출

// Test.hpp
#pragma once

class Test
{
public:
    Test();
    void Hello();
}

void CStyle();


// Test.cpp
Test::Test()
{
}
void Test::Hello()
{
	printf("hello");
}
void CStyle()
{
	printf("C");
}

// MyObjectiveC.mm
#import "Test.hpp"

@implementation MyObjectiveC

-(void)start
{
	CStyle();
	Test test;
	test.Hello();
}

 

C++에서 Objective C호출

// MyCpp.cpp
#include "MyObjectiveC.h"
void func()
{
	Hello();
}

// MyObjectiveC.h
#pragma once

void Hello();

// MyObjectiveC.mm

void Hello()
{
	// do something..
}

 

'iOS' 카테고리의 다른 글

[iOS] 시스템 라이브러리 추출  (0) 2022.12.09

	var access = Module.findExportByName(null, "access");
	Interceptor.attach(access, {
		onEnter: function(args) {			
			console.log("path : " + Memory.readUtf8String(args[0]));
		}
	});

+ Recent posts