為了工作方便,工作中的一個軟體沒有導出excel功能,要用軟體中的數據做分析很不方便。能用python把裡面的數據都爬出來嗎?有沒有什麼好辦法?


輕輕鬆鬆就提了一個破解軟體的需求呢


你這個問題,用流程自動化工具就行,模擬人工操作,處理大量重複工作,可以批量提取數據再生成excel,我們公司就是做這個的,可以搜索litrpa。


如果是聯網的,可以抓包分析,跟爬網頁一樣,如果不是,可以截圖轉文字,或者可以掃內存


軟體中的數據是二進位吧?你得逆向這個軟體,看它是怎麼處理這些數據的,試下第三方擴展


個人理解你已經有查詢數據的許可權了,只是軟體沒有導出數據的許可權,你需要通過Python導出數據,是這樣的需求嗎?

還是說你想爬取人家的數據?


截圖,然後用cv識別圖片文字


首先,得看你需要的這些數據,是軟體通過自己的伺服器獲取到的,還是軟體在本地通過計算後生成的。

① 如果是後者,則無法獲取,除非軟體本身提供了導出到excel的功能,或破解該軟體後,強加入導出的功能。

② 如果是前者說明這些數據本身就存儲在伺服器上,而軟體不參與計算,只是提供呈現顯示的功能。這種情況是可以通過爬蟲來抓取的。

那如何分辨是那種情況?以及如果抓取?

首先,只要是和伺服器有數據交互的,都可以通過抓包工具抓取,這裡推薦使用wireshark。wireshark是一款抓包軟體,PC端和移動端都有。

我們可以在使用這個軟體(軟體名就用A來代替好了)的時候,用wireshark來抓取A向伺服器提交的信息和從伺服器獲取的信息。這時建議把運行中的其他軟體退出,如QQ、微信等,因為wireshark也會抓到QQ等其他軟體的包,這讓我們很難找到那些包是屬於A的。

抓到的包信息有幾種,post代表的是軟體A向伺服器提交的,get代表是A從伺服器獲取的,我們主要看get到的信息。

但只有軟體A有提交或獲取信息的時候才會被抓取到,所以我們可以先把wireshark上抓取到的信息先清空,然後讓A重新獲取一下數據(如刷新或重新執行獲得數據的操作),這時會發現wireshark有更新一條到幾條和A相關的信息,我們需要的數據很可能就在其中。

對比一下這些信息中的內容,如果沒有加密並且明文顯示的,那很快就會找到和在A上顯示的一模一樣的數據。(如果沒找到,可能是沒有執行A中有效的刷新操作,也可能這些數據是加密過的,又或者是數據不在伺服器,而是在本地計算的)

信息中的數據是明文顯示的話那就好辦了,直接找到這個包對應的url,再用爬蟲去抓取這個url就完事了。

如果數據加密了,或者是在本地計算的,那就麻煩很多了。破解軟體的難度太大,在時間和人力上的投入都得不嘗試,那這個時候,還有個方法,那就是使用Python+PIL+OpenCV。

Python+PIL+OpenCV

利用PIL庫來截取軟體A顯示的數據,要具體某個數字,一個數字截成圖片(JPG數據),然後用OpenCV的圖像識別演算法,將圖片識別成數字,再將該數字存儲起來。

我瞭解的大概就是這3個方法,我只提供思想,某些步驟如wireshark的使用方法等請自行查找,破解軟體不值當,除非你有辦法反編譯軟體A,再自行修改。反編譯的工具和方法請自行尋找,我瞭解不多。


可以的哦,windows使用fidder,Macos使用charles抓包就能解決哦,現在大多數app都是https請求,就需要逆向添加ssl認證哦


你需要找人寫個外掛,不同的軟體外掛也不同

然後,白嫖不給錢

對面要錢就報警

你這個需求需要這些步驟,懂?


軟體需要appium庫和手機模擬器連接手機配合纔可以。不過一般的市面上爬取app的還不是太多


讓開發從後臺導出來


數據在本地的話,可以進行軟體破解。如果調用伺服器的話,可以使用fiddler抓包


可以的,比較流行的Flidder抓包;

然後寫爬蟲把數據保存為excel或者直接pandas進行數據分析;

再然後pyecharts或者seaborn做數據可視化;

再優化一下,每天定時採集+自動分析+可視化,或加做一個可視化大屏,

升職加薪,優哉遊~~


python可以把裡面的數據都爬出來,首先使用Burp Suite 或者wireshark之類的抓包軟體,抓到這個軟體的網路請求,拿到網路請求的話,然後用Python像爬網頁一樣的方式就可以爬取了


推薦閱讀:
相關文章