成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

來,教你如何破解一個 iOS APP

安全 移動安全 移動開發
開發者的日常是用一段段代碼寫出一個個軟件,實現各種功能。他們的日常則是把一個個完整的軟件逆推,還原成一段段代碼。他們,就是傳說中的“逆向工程師”。

今天給大家來一個硬知識科普。

黑客中有一類人,注定跟程序開發者是“死對頭”,是宿敵。

來,教你如何破解一個 iOS APP

他們總跟開發者對著干:

開發者的日常是用一段段代碼寫出一個個軟件,實現各種功能。

他們的日常則是把一個個完整的軟件逆推,還原成一段段代碼。

他們,就是傳說中的“逆向工程師”。

假如讓你鑰匙撬開一把鎖,你或許感到無從下手,但如果這把鎖的外殼完全透明的,內部結構清晰可見,你便會覺得容易了許多。

在賽博世界里,逆向工程就有這種看穿一個物體的本領。

來,教你如何破解一個 iOS APP

給他們一個手機APP、電腦程序,用不了多久,就能逆推出程序的運行邏輯,找到里頭的關鍵代碼,篡改、破解、發現漏洞。

人們把這種技術叫做“逆向工程”。我們在網上看到的各種破解軟件,多半都跟逆向工程有關。

然鵝,

逆向的江湖有正亦有邪。

正義的逆向者只是做安全研究,而那些邪惡的逆向者卻拿著這項技能四處干壞事牟利。

比如盜版軟件。開發者們累死累活才寫好的程序,分分鐘就被人逆向破解,植入廣告和木馬,重新打包成盜版。拼多多變成拼夕夕,一款軟件多出好幾十個遠方表親。 

來,教你如何破解一個 iOS APP

(網曝各種山寨的彩票軟件)

再比如有朋友總搶不到群紅包,懷疑有人用了外掛,其實所謂的“搶紅包外掛”就是有人逆向破解了微信APP,在里頭添加了自動領紅包的代碼。 

來,教你如何破解一個 iOS APP

(網上流傳的破解軟件)

對于那些跟錢打交道的金融類APP,逆向破解更是噩夢,一旦APP被逆向,就很容易面臨巨額損失。

最近我撩到一位逆向技術大牛,聊了聊手機APP的破解與反破解,今天與諸位淺友分享一下。

話說,這位大牛有點奇特,雖然他是個逆向技術高手,卻不去破解別人的手機應用。相反,他的日常是帶著團隊專門幫 iOS 應用開發者做反破解。

來,大家認識一下這位新朋友,他就是通付盾的研發副總裁、 iOS 加固項目的總負責人,華保健。

[[245842]]

此人灰常厲害,他是中科大的計算機學博士,做了幾十年信息安全、系統滲透等方面的工作,2015年前后還在微軟主導過 Office 365 和 必應搜索(Bing)的研發項目,前兩年加入通付盾,負責技術研發。

話說華博士一心做技術,人比較靦腆,所以我沒能拿到他的1080P高清無碼近照,只能從他的微信頭像里扣下一張AV畫質的照片。關于他的技術故事,我相信非常精彩,不過來日方長,回頭再寫。

今天繼續聊破解和反破解。

1、破解一個APP的標準大路

華保健告訴我,要破解一個蘋果手機的APP,其實有一些標準套路。

第一步是脫殼。

所謂“殼”,就是原有的軟件代碼上再外包一層“殼代碼”。機器運行程序時,先運行殼代碼,這樣可以保護應用的代碼邏輯不容易暴露。

蘋果商店會給每個上架的 iOS APP 都加一層殼。

“不過,這層自帶的殼并沒什么實質性作用。”

華保健說,由于蘋果商店給全世界幾百萬個 APP 都用的同一種加殼方法,因此全世界的逆向工程師、黑客們都盯著它,老早就做出了針對這種殼的脫殼工具,開源在網上供免費下載,總之,蘋果自帶的殼分分鐘就能脫掉。

脫殼之后,第二步是反編譯。

到這一步,幺哥必須給大家先普及一個有趣的計算機知識。

各位同學請看,下圖中的兩個人是早期的程序員,他們正在檢查代碼:

[[245843]]

也不知道是誰出的主意,早期的計算機代碼就這么直接用打孔的方式記錄在長長的紙帶上。打孔代表0,沒打孔代表1,對應著電子元件的開閉狀態,以此控制機器運行。

這種原始的代碼記錄方式叫“機器碼”,是一種二進制編碼。

[[245844]]

相信你已經發現,這種代碼記錄方式用起來非常麻煩。

據說,當時要編寫一個程序,光是打孔就得幾天幾夜,還容易出錯,程序員們不僅每天都在打孔、改錯,還得記住一堆 0101010 這樣長長的代碼。

后來有人發明了一種匯編語言,這才開始用英文字符來替代一串串的二進制字符。

從此,像1000100111011000 這樣的代碼就可以用“mov ax,bx”這樣的一串字母來替代,它的意思是“把b寄存器(一種機器元件)里的數據挪到a寄存器”。

來,教你如何破解一個 iOS APP

再后來,程序越來越復雜,匯編語言也不夠用,更高級的語言就誕生了。比如 C、C++、Java、Python、PHP、Rust、Nodejs 等等……

從此,程序員圈子里便有了“誰才是世界上最好的編程語言之爭”……

來,教你如何破解一個 iOS APP

所以,當今程序世界里的規則是這樣的:

程序員們先用高級語言寫好程序代碼,編譯器把它們編譯成機器能讀懂的機器碼用來執行。

逆向工程師的工作恰恰相反,他們直接從機器里抓取機器碼,然后反匯編成匯編語言,再反編譯成高級語言。

來,教你如何破解一個 iOS APP

到這里,恭喜你已經學會了反編譯的原理,現在我們繼續破解iOS應用。

“反編譯工具網上有很多,但大體上方法分為兩類:靜態分析和動態調試。”

華保健說,所謂“靜態分析”就是在程序不運行的狀態直接反編譯,把它從二進制的機器碼轉化成十六進制的編碼、再到匯編代碼,再到人類能直接理解的語言,一路轉化。

在這個過程中,如果對方沒有做任何防護措施,你就能直接找到并改掉里頭的關鍵信息,比如版權信息、游戲數值等等,單挑 BOSS 怒刷裝備。 

來,教你如何破解一個 iOS APP

(十六進制查看程序是這樣子,圖源自網絡)

華保健告訴我,由于反編譯涉及很多不同的語言,所以沒法把機器碼直接還原成源代碼,但是能用偽代碼的形式把源代碼的邏輯還原個七七八八。

所謂動態調試,顧名思義就是讓程序先運行起來,在里頭輸入不同的值來觀察各種組件、函數的反應,從而梳理出它們之間的關系。

如果把靜態分析比作翻譯一本外國漫畫,動態調試就是翻譯一部藍光高清有碼外國大片。

在整個過程中,逆向工程師需要反復調試,并且需要給程序打上“斷點”,隨時暫停下來慢慢欣賞,反復把玩。

來,教你如何破解一個 iOS APP

經過這兩步,一個程序的運行邏輯就被完全還原。接下來,只需要找到登錄驗證、加密、授權等關鍵部位找出漏洞,篡改掉關鍵數據,完成破解,為所欲為。

最后,再從網上買個iOS簽名,就能把代碼重新打包成一個APP,安裝在自己或別人的手機里。

來,教你如何破解一個 iOS APP

華保健:到這一步,一個iOS應用破解的流程就講完啦~ 其實破解很簡單,就三步,脫殼、反編譯、簽名打包,懂了嗎?

謝幺:懂了!~

華保健:好的,既然懂了,現在隨便找個APP去練練手吧~不如就試試破解微信吧!

謝幺:呃……這……

[[245849]]

2、如何反破解

搞懂了逆向破解的基本套路,自然也就能對癥下藥。

華保健的解決方法是,給APP做加固。

如果你玩過《植物大戰僵尸》這款游戲,就能理解“APP加固”的意義。 

來,教你如何破解一個 iOS APP

華保健告訴我,通付盾的iOS加固第一步是“環境檢測”。

他們會在 APP 的最外層布置很多探針,探針實時監測運行環境,一旦發現手機處于越獄狀態,或者發現環境中有逆向分析工具,就立即進入警戒狀態,告警提示,或者直接讓程序崩潰。

這讓我不禁腦補出一萬個土豆雷圍著代碼的樣子……

來,教你如何破解一個 iOS APP

第二步,叫威脅感知。

除了檢測運行環境,探針還會實時監測應用的運行狀態,因為一旦程序中途中止,那就說明有人設置了“程序斷點”,正在做動態調試。

第三步和第四步有些類似,分別是常量加密和符號隱藏。

代碼中有一些內容永遠是破解者的重點關注對象,比如一些名叫 password 的字符串,比如一些隱秘的URL。

為了防止破解者定位到這些關鍵位置,“常量加密”會把這些關鍵的字符都加密隱藏掉。“符號隱藏”類似,也是把一些類名、方法名、屬性名加密隱藏起來。

總之,這兩步的關鍵在于“打碼”,保護關鍵部位。

第五步是“代碼邏輯混淆”。

這個其實很好理解,我給大家做個比喻:

你想去超市買岡本卷紙杜蕾斯,但又是不想讓人知道,于是你先去買了岡本和地瓜回來,又去操場跑兩圈,再去趟超市買了卷紙和可樂,最后再去買了杜蕾斯回來。

雖然最后都買回來了岡本卷紙杜蕾斯,但是你隱藏了自己的行動目的。

來,教你如何破解一個 iOS APP

“代碼邏輯混淆”就是這樣,在清晰明了的代碼里加入各種多余的垃圾指令和代碼,把原來的邏輯拆分成各種怪癖語法,改得連親媽都不認識,從而防止破解。

“只要做完這幾步,逆向破解的難度就會大大提高,雖然從理論上來講沒有破解不了的系統,但是只要把破解成本提高到足夠高,黑客就會放棄破解,或者轉向那些更容易的目標。”

華保健說。

只要做完加固就能抗住大部分破解?

是的。

聽起來,反破解挺簡單,就那么回事。

然鵝,現實永遠比你想象得殘酷。

3、“加固是不可能加固的“

“令我頭疼的,不是扛不住逆向破解,而是開發者們都不肯用加固。”

華保健說,目前市面上只有20%左右的 iOS 應用做了加固,其中金融類的APP比例略高,但也只有50%左右,很多中小型金融機構甚至銀行的APP都沒做加固。

謝幺:納尼?既然加固這么安全,為什么大家都喜歡裸奔呢?

華保健:因為裸奔更涼快呀~

謝幺:???

華保健說,以往的加固方法雖然安全,但弊端也很明顯,這跟“衣服穿多了會顯得臃腫”是一個道理(果然是裸奔更涼快。。。 。。。 )

首先是拖慢程序性能。

就拿代碼邏輯混淆來說,原本一步能干完的活,現在非得分成好多步,為了迷惑對手還得故意磨洋工,那可不就拖慢性能了。

其次是程序體積會更大。

“一般來說,基于源碼的加固方式能讓程序增大20~30%的體積”,華保健直言,這一點很多開發者都接受不了,因為體積增大會降低用戶的下載欲望。

不過,最令開發者受不了的是加固帶來的代碼泄露風險,以及兼容性問題。

“傳統的 iOS 應用加固技術普遍采用的是源碼編譯的方式,需要開發者把程序的源代碼提交給第三方加固平臺,光這一點就讓不少開發者打退堂鼓。”

來,教你如何破解一個 iOS APP

“并且基于源碼的加固過程需要反復改動代碼,可能影響對機型、系統版本的兼容適配,導致程序閃退,影響用戶體驗。”

華保健坦言,在很長一段時間里,他不是在琢磨如何抗住更厲害的逆向破解者,而是在解決“怎么讓開發者愿意用加固” 的問題。

一開始,他們試著“戴著鐐銬跳舞”,犧牲一小部分安全性來提高性能,卻發現解決不了多少問題,并且一味地降低加固強度顯然不是個辦法。

華保健帶著團隊研究了大半年,這才想到一個新的思路。

于是他們開始借鑒安卓應用“加殼”的技術思路,直接對 iOS 應用程序的 IPA (iOS程序安裝包)進行一層專門的加殼。在此基礎上,再用底層二進制代碼從程序中抽取出關鍵部分的代碼邏輯進行混淆。

如此一來,開發者就不再需要把程序源代碼上傳給第三方加固廠商,并且由于不用對源代碼進行大量邏輯混淆和修改,加固的性能、安裝包體積、兼容性也都可以兼顧。

來,教你如何破解一個 iOS APP

按照華保健的說法,開發者把 IPA 安裝包上傳到他們的加固平臺,10分鐘就能直接加固完成。

通付盾的iOS加固具體的體驗和強度如何,幺哥其實沒來得及做詳細測試,諸位有興趣可以自己試試。

不過話說到這,我忽然發現,其實華保健遇到的“安全與體驗如何平衡”的問題,大部分安全創業者都會遇到。

來,教你如何破解一個 iOS APP

之前就遇到一個做安全創業的朋友很納悶,他說自家產品明明比競爭對手的技術更好,更安全,為什么就是干不過別的競爭對手?

最后轉了一大圈才發現,因為他的產品太難用了!我的這位朋友是個耿直的技術流,只想著一股腦把安全強度做到最高,卻忽略了一件事:安全的本質是維護業務,技術的本質是輸出實用價值。

人也好公司也好,偶爾換個視角,興許看起來像是一種妥協,但實際上也是一種以退為進。

最后再介紹一下我自己吧,我是謝幺,科技科普作者一枚,日常是把各種高大上的技術知識、黑科技講得通俗有趣。

責任編輯:未麗燕 來源: 淺黑科技
相關推薦

2022-07-26 08:14:16

注冊中心ProviderConsumer

2021-06-07 12:08:06

iOS Python API

2013-10-15 10:30:33

2014-07-02 10:03:42

App推廣渠道

2020-10-13 10:49:23

APPAndiroid終端

2018-01-08 14:31:09

Electron桌面APP前端

2020-08-17 08:20:16

iOSAOP框架

2018-08-07 09:45:17

數據庫數據庫密碼破解密碼

2020-01-11 17:00:07

DjangoPythonWeb API

2011-08-22 14:04:52

2019-09-30 09:26:29

Java編程語言國旗

2019-07-31 07:36:12

架構運維技術

2013-11-01 10:23:37

Web程序

2024-05-16 10:59:16

Vue項目前端

2017-08-22 11:16:06

課程開放日2000門免費學

2023-05-31 08:06:45

iOSmacOS云服務器

2017-02-13 08:21:36

2015-09-08 10:32:21

開源項目選擇方式

2015-09-11 10:29:13

開源項目閱讀

2010-01-30 11:23:59

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日日草夜夜草 | 国产在线精品一区二区三区 | 日韩精品国产精品 | 一区二区三区免费观看 | 麻豆久久久久久久久久 | 日韩成人在线播放 | 国产在线a | 亚洲天天干 | 日本三级线观看 视频 | 99精品久久 | 精品一区二区三区四区外站 | 欧美日韩中文国产一区发布 | 一区二区三区免费在线观看 | 狠狠干2020| 亚洲一区二区三区免费观看 | www日韩| 久久精品国产精品青草 | 久久久免费 | 少妇久久久 | 国产精品三级 | 亚洲国产成人av | 亚洲不卡在线观看 | 国产精品视频免费观看 | 日本手机在线 | av国产精品毛片一区二区小说 | 欧美13videosex性极品 | 欧美一级www片免费观看 | 99久久久无码国产精品 | 国产精品久久久久久久久久久久久久 | 男人av网| 91精品国产一区二区三区 | 国产精品91视频 | 一区二区三区福利视频 | 国产婷婷综合 | 国产一区视频在线 | 青青久草 | 久久久精品在线 | 国产在视频一区二区三区吞精 | 国产成人精品免费 | 免费一区在线 | 五月激情综合 |