[iOS] Shared Clipboard ์ทจ์•ฝ์ 

๊ฐœ์š” iOS์—์„œ๋Š” ์„ค์น˜๋œ ์•ฑ ๊ฐ„์— ์‚ฌ์šฉ์ž์˜ ํŽธ์˜์„ฑ์„ ์œ„ํ•œ "๊ณต์œ  ํด๋ฆฝ๋ณด๋“œ"๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ์ค‘์ธ ์•ฑ์—์„œ ์ผ๋ถ€ ํ…์ŠคํŠธ๋ฅผ "๋ณต์‚ฌ" ๋˜๋Š” "์ž˜๋ผ๋‚ด๊ธฐ"์‹œ -> pasteboard ๋ฒ„ํผ์— ์ €์žฅ๋˜๋ฉฐ ์ด๋Š” ๋‹ค๋ฅธ ์•ฑ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์กฐ์‹ฌํ•ด์•ผ ๋  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์•ฑ ๋‚ด๋ถ€์— ๋‹จ์ˆœ ์ €์žฅ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋‹จ๋ง ์žฅ์น˜ ๋‚ด๋ถ€์— ๋ฒ„ํผ ํ˜•ํƒœ๋กœ ๊ธฐ๋ก๋˜๊ธฐ์— ๋‹ค๋ฅธ ์•ฑ์„ ํ†ตํ•ด ์ด ๊ฐ’์„ ํ˜ธ์ถœํ•˜์—ฌ ์œ ์ถœํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์„œ๋กœ ๊ฐ„์— ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ฆฝ๋ณด๋“œ๋ฅผ ์• ํ”Œ์—์„œ๋Š” Pasteboard๋ผ๊ณ ๋„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ๋ณด์ž๋ฉด ์ด ๊ธฐ๋Šฅ์€ ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ณ  ํ•„์ˆ˜์ ์ธ ์—ญํ• ๋กœ ์ž๋ฆฌ ์žก์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์น˜ ๊ธด ๋ฐ์ดํ„ฐ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๋Š” ์—ฐ๋ฝ์ฒ˜, ์ฃผ์†Œ, ์นด๋“œ๋ฒˆํ˜ธ ๋“ฑ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„  ๋ณดํ†ต ๋ณต์‚ฌ ๋ฐ‘ ๋ถ™์—ฌ ๋„ฃ๊ธฐ๋ฅผ ..

MOBILE
[iOS] Functions Hooking

What Functions? iOS ์•ฑ์„ ์ง„๋‹จํ•˜๋‹ค ๋ณด๋ฉด ํƒˆ์˜ฅ์„ ํƒ์ง€ํ•˜๋Š” ํŠน์ • ๋ฒ„์ „์ด ์žˆ์„ ์ˆ˜๋„ ์žˆ๊ณ  ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋””๋ฐ”์ด์Šค ๋‚ด๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š”์ง€ ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ทธ์ค‘์—์„œ ๋Œ€ํ‘œ์ ์œผ๋กœ NSFileManager ํด๋ž˜์Šค์˜ "fileExistsAtpath:"๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ์‹คํ–‰๋œ ๋””๋ฐ”์ด์Šค ๋‚ด๋ถ€์— ํƒˆ์˜ฅ๊ณผ ๊ด€๋ จ๋œ ๋””๋ ‰ํ† ๋ฆฌ ๋˜๋Š” ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š”์ง€ ์ฒดํฌ ํ›„ Boolean ๋ฐ˜ํ™˜์„ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ UIApplication ํด๋ž˜์Šค์˜ "canOpenURL:" ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ํƒˆ์˜ฅ๊ณผ ๊ด€๋ จ๋œ ์•ฑ์ด ์กด์žฌํ•˜๋Š”์ง€ URL Scheme ํ˜ธ์ถœํ•˜๋Š” 2๊ฐ€์ง€ ๋ฐฉ์‹์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. Example ์ฝ”๋“œ NSString *filePath = @"/Applications/Cydia.app"; if ([[NSFileManager defaultManager] f..

MOBILE