ถอดรหัส Mobile Configuration ของ Font Install iOS7 กัน

October 20, 2013 2:43 pm Apple, Hack, PHP

ผมไปเจอมาจาก Freemac.net มา แล้วผมก็ลองเอามาลองสังเกตุและลองถอดๆ ออกมาดู เลยได้มาว่า

มันใชหลักการเข้ารหัสไฟล์ Font ttf ด้วย base64 ครับ แล้วยัด Payload โดยใช้ Syntax ดังนี้

<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
  <dict>
  	<key>PayloadContent</key>
  	<array>
<dict>
	<key>Font</key>
	<data>
ฺBase 64 ของไฟล์
      </data>
<key>PayloadIdentifier</key>
	<string>ชื่อ Identifier .ชิ่อ font</string>
	<key>PayloadType</key>
	<string>com.apple.font</string>
	<key>PayloadUUID</key>
	<string>B0DF5525-7120-406F-AC71-5A5BA59ECD82
</string>
	<key>PayloadVersion</key>
	<integer>1</integer>
</dict>
	</array>
	<key>PayloadDisplayName</key>
	<string>ชื่อ Payload</string>
	<key>PayloadIdentifier</key>
	<string>ชื่อ Identifier</string>
	<key>PayloadOrganization</key>
	<string>Font Profile</string>
	<key>PayloadType</key>
	<string>Configuration</string>
	<key>PayloadUUID</key>
	<string>0A35FE6A-C980-442B-9BD3-F44C67CA0D19
</string>
	<key>PayloadVersion</key>
	<integer>1</integer>
</dict>
</plist>

วิธีการถอดรหัส Font ออกจาก plist

เอาส่วนที่ระหว่าง <data> …… </data>

ออกมา แล้วเขียน php ถอด

<?php
$code = "ส่วนของ <data>....</data> ที่เราแยกมา";
 
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename="test"');
echo base64_decode($code);
 
?>

แล้วเปลี่ยนชื่อจาก test เป็น test.ttf ครับ เราก็จะได้ Font ที่เราถอดจาก plist มาแล้วครับ

การเข้ารหัส Font เพื่อเอาไปใส่ใน plist

เผื่อใครจะเอาไปทำ font ยัดใส่ iOS เองนะครับ

<?php
$file = "ที่อยู่ของ font .ttf";
 
$code = file_get_contents($file);
 
echo base64_encode($code);
 
?>