Python能否開發(fā)iOS與安卓應(yīng)用?
當(dāng)然可以!雖然使用Python寫安卓APP可能不是最佳選擇,但它絕對(duì)是一個(gè)偷懶的好選擇。Kivy——跨平臺(tái)的Python開發(fā)框架
Kivy是一個(gè)專門用于跨平臺(tái)快速應(yīng)用開發(fā)的開源框架。使用Python和Cython編寫,Kivy對(duì)多點(diǎn)觸控有著出色的支持。它不僅讓開發(fā)者能夠迅速完成簡(jiǎn)潔的交互原型設(shè)計(jì),還支持代碼重用和部署。這款NUI框架讓人驚艷。 由于Kivy是跨平臺(tái)的,開發(fā)者只需編寫一次代碼,就可以同時(shí)生成安卓及iOS的APP,這一特點(diǎn)相當(dāng)酷吧!Kivy簡(jiǎn)介及其架構(gòu)

如何使用Python開發(fā)iOS程序?
開發(fā)iOS程序主要需要解決以下幾個(gè)問題: 在iOS App中安裝Python解釋器。 搭建Python和objc通信的橋梁。 配置工程并進(jìn)行開發(fā)。 如果不使用UIKit等,可以選擇使用OpenGL ES等方式,主要用于開發(fā)游戲,這里暫不涉及。 所有操作都在已安裝Xcode的Mac上進(jìn)行。關(guān)于如何在iOS App中安裝Python解釋器,可以關(guān)注“Python-iOS-support”和pybee開源的嵌入到iOS工程中的Python編譯腳本。 默認(rèn)是使用Python 3.4.2,編譯多個(gè)版本后打成一個(gè)包,可選framework或者靜態(tài)庫.a。這樣,你就可以在iOS中使用Python進(jìn)行開發(fā)了。 希望以上內(nèi)容對(duì)大家有所幫助,更多有關(guān)Python教程請(qǐng)關(guān)注我們的其他文章。記得點(diǎn)贊、分享和留言,謝謝支持! 一、iOS編譯目標(biāo)調(diào)整在生產(chǎn)環(huán)境準(zhǔn)備階段,我們需要對(duì)Makefile中的iOS編譯目標(biāo)進(jìn)行調(diào)整。原先的目標(biāo)列表包括多種模擬器目標(biāo)和設(shè)備目標(biāo),如`iphonesimulator.x86_64`、`iphonesimulator.i386`等。為了簡(jiǎn)化,我們只需保留對(duì)ARM架構(gòu)的支持,即修改為`TARGETS-iOS=iphoneos.armv7 iphoneos.arm64`。這樣的調(diào)整能減小包體積,同時(shí)保證對(duì)ARMv7和ARM64架構(gòu)設(shè)備的支持,而ARMv7s可以兼容ARMv7。
二、Python版本的選擇

項(xiàng)目中提供了Python 3.4.x和Python 3.5.x兩個(gè)版本的選項(xiàng)。根據(jù)作者的建議,推薦使用這兩個(gè)版本,而較早的Python 2.7.11版本可能無法成功編譯。要更換Python版本,只需在相應(yīng)的地方,如`PYTHON_VERSION=3.4.2`,替換為所需的版本號(hào)即可。
三、原生安卓開發(fā)app的框架frida安裝與簡(jiǎn)介
本教程僅供學(xué)習(xí)探討,嚴(yán)禁任何違法操作。frida是一個(gè)用于hook(掛鉤)原生安卓開發(fā)app的框架,也支持iOS和Windows等平臺(tái)。它主要針對(duì)原生開發(fā)的app,即使用Java和安卓進(jìn)行開發(fā)的app。對(duì)于H5或其他非原生開發(fā)的app,frida可能無法hook。但市面上80%以上的app都是原生開發(fā)的,因此不必?fù)?dān)心其適用范圍。
hook可以理解為在程序運(yùn)行過程中修改或驗(yàn)證某些部分的行為。例如,在一堆流水的水管中,在某個(gè)水管中間挖一個(gè)洞進(jìn)行操作,或者查看某個(gè)水管是否有水。使用frida可以實(shí)現(xiàn)對(duì)app的修改和驗(yàn)證。
四、Python環(huán)境管理器的使用

為了方便創(chuàng)建虛擬環(huán)境,可以使用編寫的簡(jiǎn)單Python環(huán)境管理器??梢暬僮魇沟脛?chuàng)建環(huán)境更加簡(jiǎn)單直觀,無需記憶復(fù)雜的命令。在此處,已經(jīng)創(chuàng)建了一個(gè)名為“frida_env”的虛擬環(huán)境。使用這樣的環(huán)境管理器可以簡(jiǎn)化安裝frida的過程,因?yàn)閒rida可能需要下載一些東西,建議安裝時(shí)盡量科學(xué)上網(wǎng),否則可能會(huì)下載速度極慢或卡住。
五、注意事項(xiàng)與總結(jié)
一、虛擬環(huán)境中的Frida依賴包安裝指南
1. 引言
在我所處的環(huán)境中,使用Frida進(jìn)行開發(fā)時(shí),需要先安裝相應(yīng)的依賴包。這些依賴包可以通過pip在虛擬環(huán)境中輕松安裝。

2. 安裝Frida及其驗(yàn)證
完成依賴包的安裝后,執(zhí)行一些命令來驗(yàn)證Frida的安裝是否成功。通過運(yùn)行`frida--version`和導(dǎo)入frida,如果沒有出現(xiàn)錯(cuò)誤,就表示安裝成功。
3. 下載frida-server
frida-server是Frida的核心組件之一,下載鏈接已經(jīng)提供。對(duì)于特定的環(huán)境,比如我的版本為pip的frida 14.2.18,以及手機(jī)是arm64架構(gòu),需要下載對(duì)應(yīng)的frida-server版本。
4. Frida的運(yùn)行與注意事項(xiàng)

安裝并驗(yàn)證Frida后,啟動(dòng)frida-server。需要注意的是,啟動(dòng)后不會(huì)有明顯的提示,它會(huì)持續(xù)運(yùn)行并等待指令。在此過程中,需要保持命令行窗口開啟,不能關(guān)閉。
5. 配置與使用Frida
在PC端配置Frida相對(duì)簡(jiǎn)單,只需激活虛擬環(huán)境并安裝frida即可。對(duì)于手機(jī)端,首次使用需要將frida-server文件放置到特定目錄并賦予權(quán)限。整體流程包括文件拷貝、權(quán)限設(shè)置以及運(yùn)行frida-server。至于具體的命令操作,只需按照步驟執(zhí)行即可。
題外話:開發(fā)環(huán)境搭建與代碼自動(dòng)提示
由于Frida使用JavaScript語言,為了提升開發(fā)體驗(yàn),建議安裝一個(gè)代碼自動(dòng)提示插件。WebStorm是一個(gè)不錯(cuò)的選擇,其下載和安裝過程相對(duì)簡(jiǎn)單。為了獲取代碼自動(dòng)提示功能,還需要安裝node.js以及特定類型的包,如通過npm安裝frida代碼自動(dòng)提示插件。

6. 接口抓包與數(shù)據(jù)分析
通過Charles和postern進(jìn)行抓包時(shí),可能會(huì)發(fā)現(xiàn)一些接口帶有特定的數(shù)據(jù)格式,如{"Encrypt":"x"}。這時(shí)需要留意這些數(shù)據(jù)的具體含義和用途,可能涉及到加密或安全驗(yàn)證等環(huán)節(jié)。對(duì)于這類數(shù)據(jù),需要進(jìn)一步分析和解密以了解其真實(shí)內(nèi)容和作用。
一、發(fā)現(xiàn)未加固的APK
我們手頭上有一個(gè)未經(jīng)過加固處理的APK文件。所謂“加固”,是對(duì)應(yīng)用程序的一種保護(hù)措施,用以防止惡意攻擊和代碼篡改。通過對(duì)這個(gè)APK進(jìn)行反編譯操作,我們可以對(duì)其內(nèi)部代碼和結(jié)構(gòu)進(jìn)行深入探索。
二、搜索user/login功能

在反編譯的過程中,我們搜索了關(guān)鍵詞“user/login”,并找到了兩處相關(guān)代碼。其中一處明確標(biāo)識(shí)了“l(fā)ogin”函數(shù)。這是關(guān)鍵,因?yàn)樗鼮槲覀兲峁┝艘粋€(gè)明確的目標(biāo),即這個(gè)APK的登錄功能可能通過這個(gè)“l(fā)ogin”函數(shù)實(shí)現(xiàn)。
三、驗(yàn)證與確認(rèn)
為了驗(yàn)證我們的猜測(cè),我們?cè)谑謾C(jī)上點(diǎn)擊登錄按鈕,同時(shí)觀察電腦上的控制臺(tái)輸出。果然,我們看到了輸出信息,并且確認(rèn)這正是我們想要的“l(fā)ogin”函數(shù)在起作用。這一步的成功驗(yàn)證為我們后續(xù)的分析工作打下了堅(jiān)實(shí)的基礎(chǔ)。
四、深入Hook分析
接下來,我們將進(jìn)行Hook操作,這是一種代碼調(diào)試技術(shù),允許我們攔截并修改程序的執(zhí)行流程。通過Hook,我們可以更深入地分析這個(gè)APK的登錄機(jī)制,理解其工作原理,甚至尋找可能的漏洞。

五、自動(dòng)登錄的實(shí)現(xiàn)
在Hook分析的基礎(chǔ)上,我們將探討如何實(shí)現(xiàn)對(duì)這個(gè)APK的自動(dòng)登錄功能。自動(dòng)登錄能為我們帶來便捷的使用體驗(yàn),而通過對(duì)APK的深入分析和修改,我們可以實(shí)現(xiàn)這一目標(biāo)。這也是我們接下來課程的重要內(nèi)容。
玩轉(zhuǎn)Hook:你的旅程指南
要想熟練掌握Hook技術(shù),你需要經(jīng)歷以下幾個(gè)步驟:理解基本原理,學(xué)習(xí)相關(guān)技術(shù),實(shí)踐應(yīng)用,不斷總結(jié)經(jīng)驗(yàn)。每一步都需要你投入時(shí)間和努力。不過請(qǐng)記住,人生沒有白走的路,每一步都凝聚著你的汗水和智慧。加油,你一定能夠成功!
