原创 算法5:快速排序的套路 | 分治 | 重用 | 定中位

之前小程介紹合併排序的套路時,提到了“重用”與“分治”的套路,這兩個套路,在快速排序的算法設計上,同樣有所體現。 在“重用”套路上,快排跟合排一樣,都是重用自身(因爲自身就具有排序功能),讓某段數列變得有序。 在“分治”套路上,相比於合排,

原创 算法4:合併排序的套路 | 重用 | 分治

“重用與增量有序”的設計套路,前文已經介紹,這次介紹另一個招數--重用與分治的設計思想,這個套路在合併排序的算法設計中有所體現。 重用已經是一種被廣泛使用的套路,小程之前介紹了重用的含義,而合併排序的重用,體現在對自身的反覆調用。首先,認定

原创 環境與工具3:從打字開始 | vim | sublime

作爲程序員,最不爽的一件事是被親戚叫去修電腦。 “喂,怎麼跟你們講,我是寫代碼的,不是修電腦的!什麼?代碼是什麼?!” 小白:爲什麼程序員就不能修電腦了? 小程:會不會修都有可能,關鍵在於程序員會覺得修電腦是很掉價很low的事情。修電腦,

原创 環境與工具2:建立高效的mac環境

你的工作與生活離不開電腦,電腦是一個工具,也是一個環境。環境是不是綠水青山,是不是得心應手,這是很重要的事情。小程平時使用macbook來學習跟娛樂,最近重裝了系統,很多環境與工具都需要重新組建。 那麼重裝系統後,或者對於一個全新的maco

原创 什麼是挑戰

什麼是挑戰?挑戰就是做一些複雜的事情唄! 不對!挑戰,並不一定要做複雜的事情。挑戰,就是刺激並強化自己的價值觀。 不是跟你玩文字遊戲,這不是形式上的東西,這是內容甚至是本質的東西,而且你有必要清楚什麼是挑戰,再來決定自己要怎麼去做。 什麼是

原创 算法3:插入排序的套路

堅持我之前的說法,學習算法設計關鍵是要學習算法套路。一些經典排序算法,很好的體現了一些重要的套路,值得想一想。本文介紹插入排序的算法套路,即重用與增量有序的思想。 先要注意,排序的結果一般都是升序的,也就是從小到大(與上圖相反)。 插入排

原创 算法2:算法就是設計

又是小程講道理的時間,如果根本就不對你的口味請直接離開。講什麼道理呢,就是對算法的理解,算法是什麼,有什麼用,怎麼學習算法。 上一次講了遞歸的簡單入門,說遞歸是重要而實用的算法套路。那爲什麼遞歸是算法先? (1)算法是什麼? 算法就是設計好

原创 算法1:遞歸的入門介紹

用一隻海龜來引入“遞歸”,是有一些滑稽,但也沒有關係。可能你更喜歡的是海龜而不是無窮的遞歸調用,那遞歸長什麼樣呢? (一)遞歸的樣子 各種表現,比如這些樣子: 和尚講故事 從前有座山,山裏有座廟,廟裏有個老和尚,老和尚給小和尚講故事

原创 iOS逆向開發(8):微信自動添加好友

這一次,小程演示怎麼讓一個APP自動地運行,從而代替手工的操作。同樣以“微信”以例,實現在一個微信羣裏面,對所有的成員,自動地一個一個地發出添加好友的請求。 知識點還是之前介紹的東西,流程方面還是跟蹤與最終注入。因爲這是一個系列的文章講解(

原创 iOS逆向開發(7):微信僞裝他人

上一節小程介紹了微信在進入“附近的人”時修改位置信息的辦法,這一次,小程來修改“自己”的信息,僞裝成別人。 但是,這裏的僞裝只是“本地的僞裝”,也就是看到“自己”變成了他人,而實際上,在服務端(別人看到的)還是沒有變化的,那就更不會迫使被僞

原创 iOS逆向開發(6):微信僞造位置

仍然以微信爲例,實戰地練習一下使用Reveal、iOSOpenDev等工具注入APP的流程,積累經驗。這一系列的文章都是學習過程的總結,不帶任何商業目的。 本文解決一個問題:如何僞造一個經緯度,在微信的附近的人中,看到外國的朋友。 小白:

原创 iOS逆向開發(5):微信強制升級的突破 | 多開 | 微信5.0

接下來的幾篇文章,小程以微信爲例,實戰地演示一下:如何注入iOS的APP。其中使用到的知識,基本在前面的文章中都有介紹到。 小白:小程,我想用回舊版本的微信! 小程:爲什麼要用舊版本微信呢? 小白:你不知道,我裝一箇舊版本的可共存的微信,

原创 人的一生追求什麼?

追求一個架子。 有架子是更高的層次 你可能會糾結於這樣的問題:“到底要學習python還是java?”、“以我的性格是不是適合研究技術?”、“這個技術有用嗎?”、“別人會怎麼看我?”,等等。 之所以有這麼多糾結的問題,不是因爲吃得太飽,而是

原创 iOS逆向開發(4):注入目標函數 | iOSOpenDev | MSHookFunction

從獲得APP的所有類聲明,到鎖定目標類與函數,現在是時候注入函數了。 所謂“注入函數”,小程的意思是讓APP執行到小程寫的代碼中,跟“鉤子”的概念一致。小程把個叫作iOS上的hook的技術。 本文介紹iOS注入函數的辦法。 在藉助框架之前,

原创 形式與內容 | 重意不重形

又是講小道理的時候,這一次小編想講的是,形式與內容的話題。 總有某些時候,技術會讓你覺得很難理解,特別是別人口中講出來的技術,比如“我是這樣解決這個技術問題的”(而你的心裏面一直在想:這都是什麼啊?) 技術的理解之所以困難,是因爲很多人在理