您的位置:首页 > 移动开发 > IOS开发

ios学习资源

2016-05-15 17:52 666 查看
問:學習Objective-C的書籍?

答:

Learn Objective–C on the Mac by Mark Dalrymple
and Scott Knaster, Apress.

這本的內容是Objective-C跟一些基本的Cocoa Foundation Framework,是學習Objective-C的入門書,這本書假設你已經有C語言的基礎,所以不適合沒有任何程式語言基礎的人看。本書在我認為這是本很棒的書,平易近人,值得推薦。

另外,本書出版日期是2008.12,是在Mac OS X Snow Leopard v10.6(2009.08)之前,也就是說,本書沒有講Objective-C新加入的功能與特色,譬如block(在OS X v10.6與iOS 4.0才有)。

這本書有第二版了,書名為Learn Objective-C on the Mac: For OS X and iOS,出版日期2012.06,太棒了,包含了所有新特色新功能,block、ARC、等等。

Programming in Objective-C 2.0 2nd Edition by Stephen G. Kochan, Addison-Wesley.

這本的作者認為太熟C反而妨礙以Objective-C的方式去思考,所以不假設你會C。在很久以前,講Objective-C的書籍似乎只有這一本,所以那時很多人也只能看這本。我認為這本寫的中規中矩,不錯,而且不斷地更新。這本書有官方論壇,作者會親自回答問題喔。

第二版有中文翻譯本

第三版已經在2011.06出版囉,有講block。

第四版已經在2011.12出版囉,有講block與ARC。有中文翻譯本:精通Objective-C
程式設計 第四版。

第五版已經在2012.12出版囉,中文翻譯本:精通
Objective-C 程式設計 第五版。

Learning Objective-C 2.0: A Hands-On
Guide to Objective-C for Mac and iOS Developers by Robert Clair,也是學習Objective-C不錯的入門書,裡面有介紹剛剛進入mac os x與iOS的開發環境,需要熟悉的一些基本東西與觀念,例如什麼是bundle、framework、AppKit、Core Foundation等等,前面兩本的重心都是放在Objective-C上,這本則加入了開發iOS的基礎知識,算是不錯的選擇。

Objective-C for Absolute
Beginners: iPhone and Mac Programming Made Easy by Gary Bennett, Brad Lees, and Mitchell Fisher, Apress.

看到這本書的書名你就能猜到,專門為想寫iPhone與Mac軟體的初學者入門書,從最基本教起,譬如說書一開始還講解什麼是演算法、什麼是軟體開發流程、什麼是bit、十進位與二進位的轉換等等,但頁數卻不到三百,也就是說,講的都非常簡單非常基本。呃,我不會推薦你看這本。

Objective-C Phrasebook by
David Chisnall, Addison-Wesley.

使用Objective-C寫程式,多年以後,自然而然會有慣用法、經驗累積、最佳的程式片段,這本書就是作者的心得精華,裡面每一章都很短,範例程式也很短,內容涵蓋Objecitve-C執行週期程式庫、記憶體管理、property lists、key-value coding、各種基本的類別(數字、字串、陣列、日期時間等等)。不錯的書。

Pro Objective-C Design Patterns for iOS by
Carlo Chung, Apress.

這本書就是講GoF Design Patterns裡面的那23個設計範式,只不過改以Objective-C來表達,並以iOS的Cocoa Touch為基礎,書裡的程式碼都是要在Xcode與iOS SDK上跑的。

Cocoa Design Patterns by Erik M. Buck與Donald A. Yacktman,Addison Wesley 2009年9月出版。沒看過,看書名應該是Mac上的Cocoa的設計模式。

Cocoa設計模式,譯者賀以翔、林銘鴻、吳國慶,上奇2011年12月出版。上一本的中文譯本。

Pro Objective-C for Mac and iPhone by Michael Ash and James Dovey, Apress. 尚未出版。看起來應該是進階的書。

Objective-C For Dummies by Neal Goldstein,
For Dummies. 沒看過。

Objective-C Programming: The Big Nerd Ranch Guide by Aaron Hillegas and Mark Fenoglio, Addison-Wesley。

這本書應該是寫給沒碰過C、沒碰過Objective-C、沒碰過Xcode、沒碰過iOS的人看的,不到300頁的篇幅,卻要介紹這麼多東西,很厲害,言簡意賅,不廢話。作者的目的應該是打算用最少篇幅引人入門,安裝Xcode、學習基本的C語言、然後是Objective-C與Foundation framework,然後是建立iOS與Mac應用程式,頁數不多,所以講的都是最基本最重要的。

我個人不太喜歡這樣的書籍,因為我還是要再買一本好好介紹Objective-C的書、還是要再買一本講解開發iOS的書。不過這本的優點是,不到300的頁數,很快就能翻過一遍,就能對iOS開發需要的程式能力有基本的概念,不錯。

詳解 Objective C─iPhone / iPad / Mac OS X 標準程式設計與實作 by 荻原剛志,博碩出版。日文翻譯過來的,沒看過。

Objective-C 2.0 iPhone/iPad/Max OS X 程式設計講座,荻原剛志 著、鄭英龍、連軒甫 譯,博碩。上一本的更新版,加入Objective-C 2.0的新功能。

學會 Objective-C 的 24 堂課─撰寫 iPhone 應用程式的初體會,第二版,by 蔡明志,碁峰出版。

寫的中規中矩,可以考慮。本書從C語言介紹起,然後是Objective-C,然後是一些Foundation Framework,最後有一章的篇幅稍微介紹iPhone的開發。

本書第二版雖然在封面上印上"針對XCode 4.x全新改版",但我只發現iPhone那一章更新了。關於Objective-C的部份應該沒變。沒有介紹Objective-C的新功能:block、Automatic Reference Counting(ARC),沒有Interface Builder的新功能storyboard。

Objective-C 與 iOS 開發入門 by Michael Pan 潘聖文,藍海文化出版。

這本書約400頁,其中300頁左右介紹iOS開發,100頁左右介紹Objective-C,應該是為了介紹iOS的部份,所以才特別加上介紹Objective-C那部分,光就此書有涵蓋的內容來看,寫的還算不錯,但是篇幅不夠,以致於Objective-C講的太少;iOS的部份還OK,但300頁不太夠。我是覺得有點可惜了,被篇幅限制住了。

輕鬆學 Objective C-開發你的 iPhone/iPad 應用程式 by 楊正洪、鄭齊心、李建國,上奇出版。

簡體版翻譯過來的,裡面有少數幾個名詞依然是大陸用語,不過應該不影響閱讀。這本以Objective-C與Foundation Framework為主,只有一兩章才是iOS開發。我只有翻閱過,不能做評論,大家到書店翻翻看合不合胃口吧。

Objective-C 2.0 Essentials,可線上閱讀的著作,但不全,可購買完整版,內容範圍很廣。

這邊有一張Objective-C的小抄,Ray Wenderlich寫的。

然後看Apple文件(免費下載或線上閱讀),這些算是官方文件,內容精鍊,有疑惑時都要來這裡。

The Objective-C Programming Language,對語言本身有什麼疑義,找這裡就對了。

Memory management Programming Guide,Cocoa(Foundation+AppKit)的物件記憶體管理通則。

Objective-C Runtime Programming Guide,除了語言(compiler)外,還要有runtime環境,這文件告訴你Objective-C在執行時需要的支援,message
forwarding的機制,dynamic method resolution的機制等等。

Objective-C Runtime Reference,上一份文件的補助,參考文件,詳列runtime
library中實作的函式。

Object-Oriented Programming with Objective-C,顧名思義,Objective-C與物件導向。

這裡CocoaChina Wiki有把一些蘋果官方文件翻譯成中文。

問:Objective-C有1.0與2.0之分?

答:在2007.10,Apple推出Mac OS X 10.5,也推出Objective-C 2.0,目前只有Xcode中的compiler(Apple修改過的gcc)以及clang(llvm)能夠吃2.0,也只有Mac OS X 10.5, iPhone, iPad的runtime環境可以跑2.0。

2.0多了這些東西:garbage collection、properties、non-fragile instance variables、fast enumeration。

另外,後來Objective-C又加入新的功能特色block與ARC(automatic reference counting)。

PS 嚴格說來,block應該算做C語言的擴充功能。

問:有線上的教學文件嗎?

答:網路上可以找到很多,請自行判斷優劣。

問:優良的部落格?

答:Cocoa Manifest、Cocoa
With Love、Cocoa Samurai、Matt
Gemmell、Cocoa Is My Girlfriendmikeash的NSBlog

問:還有問題怎麼辦?

答:網路上有很多Q&A論壇,譬如Stack Overflow,這網站上有很多人討論iOS軟體開發。

問:想在iOS(iPhone, iPod Touch, iPad)上開發,有何教學文件?

答:

1. The iOS 5 Developer's Cookbook: Core Concepts and Essential Recipes for iOS Programmers by Erica Sadun。

學習iOS軟體開發不錯的入門書,從iOS SDK 2.x開始一直更新到現在的iOS 6.x。從基本講起,範圍廣泛,這本範例很多。

iOS 5的中文翻譯本,書名是"iOS SDK 開發範例大全"。

iOS 6的原文書The Core iOS 6 Developer's Cookbook,於2012年12月出版。

注意:此次改版,作者Erica與出版社將iOS軟體開發分成三本書:

導論、介紹Objective-C、介紹Xcode、App如何上架、UIKit的基本功夫(視圖、控制器、基本視覺元件),大致上就是前一版(iOS 5那本)的第1~7章,獨立出來放在Learning iOS 6: A Hands-on Guide to the Fundamentals of iOS Programming裡,預計在2013年7月出版,約600頁。

而The Core iOS 6 Developer's Cookbook這本,內容包含觸碰與手勢、自訂控制元件、各種UIKit元件、視圖與動畫、文字輸入、常用控制器、表格視圖、捲動、畫面編排、等等iOS開發的核心知識,以及初階介紹Core Data與網路連線,約570頁。詳細目錄在此

進階內容在The Advanced iOS 6 Developer's Cookbook裡,預計在2013年3月出版,約500頁,內容包含Store Kit、Game Kit、Core Location、各種特殊用途的軟體開發框架。

2. Beginning iOS 5 Development: Exploring the iOS SDK by David Mark, Jack Nutting, Jeff LaMarche。

這本是學習iOS不錯的入門書,不斷地改版更新,從一開始的iPhone OS 2.x、3.x,到現在的iOS 4.x、5.x、6.x版。

iOS 4有中文翻譯本

iOS 5的中文翻譯本出版了,書名是"探索 iOS 5 程式開發實戰"。

iOS 6的原文書,預計在2013年1月出版。

這本書的姊妹作為More iOS 6 Development: Further Explorations of the iOS SDK,2012年12月出版,內容比較進階。

3. iOS Programming: The Big Nerd Ranch Guide by Joe Conway and Aaron Hillegass。

也是學習iOS軟體開發的入門書,內容風格與前兩本不同,請讀者自行翻閱看看,看看哪本比較適合您。

Third Edition內容涵蓋iOS 5與Xcode 4.3,於2012年3月出版。

4. 美國史丹佛大學跟蘋果公司合作開課。iPhone Application Development (Winter 2010),YouTube上課錄影或是到iTunes上,這裡有投影片與作業,這邊有Inside網站刊載的心得筆記(中文)。這課程還有繼續開,但最新的上課內容並沒有開放出來。

5. 熱心人士自己錄製的教學錄影Learning iOS Development,放在YouTube上。

6. 其他,自己找找囉,這篇列出32個開發資源網站,非常棒。

問:有哪些線上資源、網站或部落格?

答:

Ray Wenderlich | Tutorials for iPhone / iOS Developers and Gamers,文章非常豐富,有iOS的、有遊戲開發的,而且還集結成書出版。
Call Me Fishmeal. 格主是在mac圈打滾的,部落格上有一些關於Objective-C程式設計的文章,但近來技術性文章越來越少,變成談論性質的。
Apple iPhone iPad 最棒的華語影音教學網站,顧名思義,這是給使用者看的,不是開發人員看的。
iDevTW - iPhone/iPad 開發者論壇
還有很多其他的,自己找找囉。

逆向相关

学习的网站收集: https://www.mikeash.com/pyblog/friday-qa-2014-03-14-introduction-to-the-sockets-api.html http://bbs.iosre.com/t/dumpdecrypted/974 https://reverse.put.as/wp-content/uploads/2011/06/A-Debugger-with-Gui-in-OS-X.pdf http://www.enharmonichq.com/tutorial-ios-reverse-engineering-class-dump-hopper-dissasembler/ http://turingh.github.io/
熟悉工具

逆向工程往往需要借助一些工具,首先需要准备一台越狱的机器,能够熟练使用以下工具:

①openSSH:登录越狱机器,进行文件传输等等。

②Cycript:运行一些动态js脚本。

③lldb:动态调试应用,查看运行时变量的值。

④class-dump: 导出应用头文件,查看应用类和成员信息。

⑤Keychain dumper:导出越狱设备的keychain。

⑥Snoop-it,introspy:动态追踪分析工具。

⑦Hopper,IDA:静态反汇编分析工具。

⑧theos:开发tweak,进行动态hook。

上面说的都可以在我的博客里面找到这些工具的使用方法,总之,一定要实践,一定要实践,一定要实践!(重要的事说三遍)

推荐《iOS应用逆向工程》这本书,作者拥有多年逆向开发实践经验,可以跟着里面讲的知识慢慢学习。

继续深入

文件结构

再深入一些的话,需要熟悉macho文件结构,包括它的构成,每一部分的作用,以及动态加载过程,然后可以进一步看看class-dump的源码。

深入原理

使用工具,决不能只停留在工具的表面,一定要知道工具内部是怎么实现的,它的原理的是什么,自己是不是可以对它进行改进等等,比如theos的原理,Method Swizzling,fishhook等等。

知己知彼

再说到逆向分析其实就是一个“攻”的过程,那么肯定不是一帆风顺的,有攻就有防,现在很多应用对于防止被逆向分析也做了很多不同的措施比如:反注入,反调试,反反汇编这些。作为一个逆向分析者,同时也需要对防的过程和可能使用的方法有一定的了解,才能更好的去寻找突破口。

熟悉汇编

静态分析中难免需要去阅读汇编代码,知道各种寄存器的作用,以及对堆栈的操作过程。

后续建议

① 多关注一些github开源项目,包括上面说的那些

② 多关注国内国外博客论坛

③ 多实践,看再多的东西,都要实践出来

下面是我博客的部分笔记:

iOS安全–安装OpenSSH:http://www.blogfshare.com/ioss-openssh.html

iOS安全–用class-dump-z导出IOS应用类信息:http://www.blogfshare.com/ioss-class-dump-z.html

iOS安全–使用Cycript进行运行时分析:http://www.blogfshare.com/ioss-cycript.html

iOS安全–导出Keychain中的数据:http://www.blogfshare.com/ioss-keychaindumper.html

iOS安全–使用Snoop-it分析iOS应用:http://www.blogfshare.com/ioss-snoop-it.html

iOS安全–使用introspy追踪IOS应用:http://www.blogfshare.com/ioss-introspy.html

iOS安全–使用lldb对应用进行运行时分析:http://www.blogfshare.com/ioss-lldb.html

iOS安全–了解Mach-o文件结构:http://www.blogfshare.com/ioss-mach-o.html

iOS安全–从Mach-o文件结构分析类名和方法名:http://www.blogfshare.com/ioss-mach-o-dump.html

iOS安全–使用Hopper修改程序逻辑跳过验证:http://www.blogfshare.com/ioss-hopper.html

iOS安全–使用Theos开发Tweak过验证:http://www.blogfshare.com/ioss-theos-tweak.html

iOS安全–使用Logify跟踪函数调用: http://www.blogfshare.com/ioss-theos-logify.html

iOS安全–移除IOS应用的ASLR特性: http://www.blogfshare.com/ioss-remove-aslr.html

iOS安全–使用iOSOpenDev进行越狱开发: http://www.blogfshare.com/iosopendev.html

iOS安全–阿里比赛iOS 1. 2 题解: http://www.blogfshare.com/ali-ios-game.html

iOS安全—阻止tweak注入hook api: http://www.blogfshare.com/block-code-inject.html

iOS安全–可执行文件dylib注入,无需越狱: http://www.blogfshare.com/inject-with-njb.html

iOS安全—dumpdecrypted APP砸壳: http://www.blogfshare.com/dumpdecrypted-app.html

iOS安全–XX助手网络协议分析: http://www.blogfshare.com/pphelper-analyze.html

iOS安全–在非越狱平台进行越狱开发(附分析流程):http://www.blogfshare.com/wechat-openredenvelopes.html

iOS安全–看了这个,你还敢用分身版微信吗?:http://www.blogfshare.com/the-second-wechat.html

微信文章:http://mp.weixin.qq.com/mp/getmassse...echat_redirect

<font face="宋体, verdana, geneva, lucIDA,">1、老“码”识途
从机器码到框架的系统观逆向修炼之路(无解压密码)2015.02.02

链接:http://pan.baidu.com/s/1bn0G0fd 密码:2qxi

2、IOS应用逆向工程:分析与实战(无解压密码)2015.02.02

链接:http://pan.baidu.com/s/1o69h4l8 密码:g3as

3、C++编程调试秘笈(无解压密码)2015.02.02

链接:http://pan.baidu.com/s/1dDw89DR 密码:fie9

4、Android软件安全与逆向分析(无解压密码)2015.02.02

链接:http://pan.baidu.com/s/1kTDXvnx 密码:t7o2

5、逆向工程核心原理(无解压密码)2015.02.02

链接:http://pan.baidu.com/s/1kTqqMl5 密码:al7v
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: