Tìm hiểu IOS application.
iOS applications
Contents
1. Introduction. 3
2. The structure of application on iOS. 4
3 . Re-signing an App. 6
4 . Conclusion. 11
1. Introduction
Khi phát triển app cho iOS có sự yêu cầu chặt chẽ và phức tạp về code signing entitlements, provisioning profiles, và development Nền tảng iOS hiện nay không còn xa lạ với người dùng cũng như lập trình viên. Thậm chí có cả những application được phát triển trên iOS trước cả Android hay Windows Phone.
certificates.
Chúng ta cùng tìm hiểu về cấu trúc file trên iOS; liệu có khả năng khai thác tương tự như trên android?
2.The structure of application on iOS
Gần giống như trên Android, các file .ipa trên iOS thực chất là một tập tin zip được nén lại bao gồm ứng dụng và các thông tin iTunes được dùng để quản lý ứng dụng. Bằng cách đổi tên sang dạng file nén .zip và giải nén để xem thông tin ứng dụng
Cấu trúc file ipa
Sau khi giải nén, các thông tin có thể đọc được trực quan nằm trong phần Resource bao gồm ảnh,html,video… sử dụng trong ứng dụng. App binary chứa mã thực thi của ứng dụng dưới dạng nhị phân đã được biên dịch.
Tiếp theo là tập embedded.mobileprovison chứa thông tin về cấu hình, các quyền thực thi của chương trình và được đóng gói khi buit chương trình.iOS tiến hành cài đặt cùng với các yêu cầu về quyền thực thi được quy định theo cấu hình này.
Thành phần cuối của file _CodeSignature chính là chữ ký của ứng dụng. Mục đích của nó nhằm xác minh file thực thi nằm trong thư mục binary cũng như các file resource chính xác giống khi nó được ký khi phát triển ứng dụng. Cách này tương tự như trên Android nhằm đảm bảo tính toàn vẹn của ứng dụng, việc thay đổi nội dung dù chỉ 1byte cũng làm cho chữ ký bị sai và chương trình không được phép cài đặt. Bất kỳ thay đổi nào trong các tập tin đều đòi hỏi ứng dụng phải được ký lại.
3. Re-signing an App
Các bước thực hiện:
Mobile Provisioning Profile
Một dạng đăng ký Profile cho lập trình viên, đăng ký qua Apple Dep Center tại đây
Entitlements Plist
Sau khi đăng ký, chúng ta sử dụng 2 tham số là App ID Prefix và Bundle ID được cấp bởi Apple Developer để khai báo trong xml của ứng dụng. Sửa trực tiếp và lưu lại thành file entitlements.plist
Sign app
Sau khi đã khởi tạo các nội dung khai báo ID, việc ký lại ứng dụng được hỗ trợ thông qua công cụ ví dụ như floatsign
./floatsign source identity -p "path/to/profile" -e "path/to/entitlements" target
Source: file *.ipa cần ký lại
Target : file .ipa mới
Path: đường dẫn đến thư mục chứa file
Lưu ý các file khai báo ID prefix và Bundle cần đi kèm trong thư mục source.
Không như trên Android, dịch ngược và chỉnh sửa code sẽ được mình đề cập ở các bài viết sau.
Contents
1. Introduction. 3
2. The structure of application on iOS. 4
3 . Re-signing an App. 6
4 . Conclusion. 11
1. Introduction
Khi phát triển app cho iOS có sự yêu cầu chặt chẽ và phức tạp về code signing entitlements, provisioning profiles, và development Nền tảng iOS hiện nay không còn xa lạ với người dùng cũng như lập trình viên. Thậm chí có cả những application được phát triển trên iOS trước cả Android hay Windows Phone.
certificates.
Chúng ta cùng tìm hiểu về cấu trúc file trên iOS; liệu có khả năng khai thác tương tự như trên android?
2.The structure of application on iOS
Gần giống như trên Android, các file .ipa trên iOS thực chất là một tập tin zip được nén lại bao gồm ứng dụng và các thông tin iTunes được dùng để quản lý ứng dụng. Bằng cách đổi tên sang dạng file nén .zip và giải nén để xem thông tin ứng dụng
Cấu trúc file ipa
Tiếp theo là tập embedded.mobileprovison chứa thông tin về cấu hình, các quyền thực thi của chương trình và được đóng gói khi buit chương trình.iOS tiến hành cài đặt cùng với các yêu cầu về quyền thực thi được quy định theo cấu hình này.
Thành phần cuối của file _CodeSignature chính là chữ ký của ứng dụng. Mục đích của nó nhằm xác minh file thực thi nằm trong thư mục binary cũng như các file resource chính xác giống khi nó được ký khi phát triển ứng dụng. Cách này tương tự như trên Android nhằm đảm bảo tính toàn vẹn của ứng dụng, việc thay đổi nội dung dù chỉ 1byte cũng làm cho chữ ký bị sai và chương trình không được phép cài đặt. Bất kỳ thay đổi nào trong các tập tin đều đòi hỏi ứng dụng phải được ký lại.
3. Re-signing an App
Các bước thực hiện:
Mobile Provisioning Profile
Một dạng đăng ký Profile cho lập trình viên, đăng ký qua Apple Dep Center tại đây
Entitlements Plist
Sau khi đăng ký, chúng ta sử dụng 2 tham số là App ID Prefix và Bundle ID được cấp bởi Apple Developer để khai báo trong xml của ứng dụng. Sửa trực tiếp và lưu lại thành file entitlements.plist
Sign app
Sau khi đã khởi tạo các nội dung khai báo ID, việc ký lại ứng dụng được hỗ trợ thông qua công cụ ví dụ như floatsign
./floatsign source identity -p "path/to/profile" -e "path/to/entitlements" target
Source: file *.ipa cần ký lại
Target : file .ipa mới
Path: đường dẫn đến thư mục chứa file
Lưu ý các file khai báo ID prefix và Bundle cần đi kèm trong thư mục source.
Không như trên Android, dịch ngược và chỉnh sửa code sẽ được mình đề cập ở các bài viết sau.
Chỉnh sửa lần cuối bởi người điều hành: