安卓逆向課程apk反編譯與回編譯
1. 安卓逆向——如何修改APP包名實現應用分身
齊天大聖孫悟空是家喻戶曉的神話傳說名人,大家都知道他有一個很強大的技能——拿出一根猴毛「biu」一吹實現分身。
那麼我們程序猿也和咱們的齊天大聖是同類(開個玩笑),程序猿怎麼實現分身呢?我們拔一根頭發吹肯定是不好使的……那就是通過修改APP的包名來實現應用分身。也就是說在同一個設備上可以打開兩個或多個相同的APP。
一.如何修改APK的包名
那麼如何修改apk的包名呢?我們以「土豆視頻為例」來進行一個分析。首先,找到「工程管理器」,打開工程管理器進入界面,點開土豆視頻的下行文件數據
裡面有「manifest」這樣一個標簽,找到這個標簽裡面的一個「package」屬性,這個值就是我們要找到應用程序的包名
第二步,把「package」屬性改為「hou」或者「123」等等都可。
這個值我們可以通過刪減幾個字母或者是任意添加幾個字母或數字來進行修改,切記注意只能使用添加或刪減數字和字母,不可以用漢字!
建議通過「添加數字或字母實現」,刪除容易把握不準,當然刪除以後一定要記得保存。 然後點擊「回編譯」按鈕,進行回編譯過程
二.如何修改內容提供者
啟動模擬器,進行應用安裝,然後把我們「回編譯」好的拖到模擬器裡面
發現安裝失敗,提示「存在同名的內容提供者」。 錯誤的原因由於我們只修改了包名,沒有修改內容提供者。 那麼如何修改「內容提供者」?
搜索結束後顯示我們 需要修改的是「provider」裡面有個「android;anthorities」的值
修改的方法同修改「package」值的屬性是一樣的,可以添加或刪減字母或者是數字(絕對不能是漢字)
將搜索到的結果進行逐一全部修改,修改完成後千萬不能忘記保存
完成之後找到其所在的目錄進行安裝,方法同樣,直接拖進模擬器裡面即可
※這里補充一點:有的apk由於沒有內容提供者,就只需要一步到位——修改包名就可以直接實現應用分身了。
三.程序無法運行安裝及對應解決方案
那麼在什麼情況下會導致程序無法運行以及安裝,它們對應的解決方案是什麼呢?
Q 1 · 只修改apk的包名會引發內容提供者沖突
解決方案:
修改配置文件中所有內容提供者的標簽「provider」裡面「android:authorities」屬性的值
Q 2· 應用程序分身的簽名信息不同導致無法運行
解決方案:
使用相同的簽名工具對所有分身進行統一的簽名
Q 3· 有些apk在內部使用的包名只修改包名會導致程序崩潰
解決方案:
全局搜索應用程序的包名查看搜索結果,如果是字元串就進行一個替換,將原有的字元串修改為修改後的包名否則不進行替換
這就是如何修改apk的包名實現應用程序分身的具體方法了,在實際操作中可能會遇到更多的小細節問題,我們要具體問題具體分析。總之多動手多思考多實操,安卓逆向沒有什麼太難的。當然分享的相關經驗,如果有哪處不妥也歡迎在評論區回復討論或者私聊交流哈。
2. 反編譯是什麼意思
計算機軟體反向工程(Reverse engineering)也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(比如可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,
某些特定情況下可能推導出源代碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。
(2)安卓逆向課程apk反編譯與回編譯擴展閱讀
反編譯是一個復雜的過程,反編譯軟體有:
1、SWF相關的反編譯程序
Action Script Viewer
第一個也是最強大的商業SWF反編譯工具,同類產品中,它的AS代碼反編譯效果最好,SWF轉Fla工程重建成功率最高。
2、Android相關的反編譯程序
SMALI/BAKSMAL
SMALI/BAKSMALI是一個強大的apk文件編輯工具,用於Dalvik虛擬機(Google公司自己設計用於Android平台的虛擬機)來反編譯和回編譯classes.dex。其語法是一種寬松式的Jasmin/dedexer語法,而且它實現了.dex格式所有功能(註解,調試信息,線路信息等)。
3、python相關的反編譯程序
uncompyle2
uncompyle2可以直接轉化為十分完美的python源碼,並可以將反編譯後的源碼再次生成位元組碼文件。
參考資料來源:網路-反向編譯
3. 什麼叫反安裝和反編譯
以上回答都正確
專業一點的說法
反安裝就是刪除、卸載,安裝的英文是install反安裝的英文是unistall,英文中un前綴是「反」的意思,所以翻譯成中文叫做反安裝。
反編譯
計算機軟體反向工程(Reversepengineering)也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。
4. 有沒有反編譯工具,可以把APK完全反成一個android項目的 , 這個android逆向助手只
我可以讓你看見項目的源碼,但是不知道怎麼才能將源碼放到eclipse中進行運行!~~我試了好多次,都不成功,導入工程後總是會出錯,不知道是我哪裡設置的和源碼中設置的不一樣!~~
方法是:第一步:你先把下載的包的後綴名改成.zip
第二步:到網上搜索dex2jar,下載一個,解壓到電腦磁碟中
第三步:打開你改完後綴名的.zip文件,將其中的.dex文件解壓出來,拷貝到dex2jar這個文件中,和lib文件夾放在同文件下
第四步:進入cmd命令,然後用cd 命令進入到dex2jar這個文件中,我的是這樣的cd C:\android反編譯工具\dex2jar-0.0.9.15\dex2jar-0.0.9.15,然後在執行dex2jar classes.dex這個命令,等待一會,反編譯好了後
第五步:到網上搜索jd_gui,然後下載一個解壓到磁碟,打開它然後點打開文件,找到剛剛反編譯好的那個文件夾,即dex2jar那個文件夾中找.jar文件,打開它就能看到源碼了!~~~
其它的資源文件什麼的就在剛剛你改完的那個zip文件中有。
不過你也可以將.apk文件再反編譯回來,在看資源和Androidmanifest.xml文件!~~~這個用到apktool,這個用起來挺簡單的,你可以到網上搜索一下!~~~