使用Retrace還原被ProGuard混淆後的崩潰堆疊
命令列使用比較簡單,參照提示即可,但是如何在通過程式碼呼叫呢?如下所示,需要注意的是execute()執行後,需要通過如下方式將標準輸出寫到檔案中。
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import proguard.retrace.ReTrace; public class RetraceUtil { private Logger m_logger = LoggerFactory.getLogger(this.getClass()); private String stackFile; private String mapFile; private String outFile; private boolean append; public RetraceUtil(String map,String proF,String out,boolean append) { this.mapFile = map; this.stackFile = proF; this.outFile = out; this.append = append; myReTrace(); } public void myReTrace() { try { File file = new File(this.outFile); //是否增量寫入 FileOutputStream fis = new FileOutputStream(file,this.append); PrintStream out = new PrintStream(fis); // sysout的print內容輸出到檔案 System.setOut(out); ReTrace localReTrace = new ReTrace(ReTrace.STACK_TRACE_EXPRESSION, true, new File(this.mapFile), new File(this.stackFile)); localReTrace.execute(); out.close(); fis.close(); m_logger.info("Retrace Done!"); } catch (IOException e) { // TODO Auto-generated catch block m_logger.error("Retrace Erro:"); m_logger.error(e.getMessage()); } }
相關推薦
使用Retrace還原被ProGuard混淆後的崩潰堆疊
AndroidSDK的tools中提供了混淆和還原的jar檔案,當然也可以直接下載ProGuard相關的jar: 命令列使用比較簡單,參照提示即可,但是如何在通過程式碼呼叫呢?如下所示,需要注意的是
mysql被刪庫後的還原
模擬誤刪除的恢復操作 假裝置份時間是晚上12點,有人誤操作刪庫時間是早上10點,刪庫後拯救資料庫。 改時間 date -s "2017-12-24 00:00" 模擬備份: mysqldump -uroot -pqb123 -S /data/330
Android混淆程式碼錯誤堆疊還原
前言 相信做過app的同學對程式碼混淆應該不陌生吧,如果陌生就自行百度,這裡不做普及。我們先思考一個問題,如果我們把程式碼混淆了,如果出錯了怎麼定位問題?答案非常簡單,只要稍微實踐下你就明白了,下面就是給你整理的對混淆程式碼錯誤堆疊還原的方法。 如何混淆
java防止反編譯之proguard混淆代碼
proguard 混淆、jar proguard5.3下載地址:http://down.51cto.com/data/2316123從eclipse中導出工程的jar包(這個就不詳細說了)安裝proguard後打開bin目錄下的proguardgui.bat啟動proguard如下圖所示:點擊Inpu
回收站被清空後怎麽才能恢復數據 回收站清空恢復
回收站作為電腦上的必備軟件,深受人們喜愛,因為它可以放置人們暫時不用的軟件或是一些文件,當再次需要的時候,再去回收站中將它還原出來。要是我們不小心將回收站清空了,我們可以借助互盾回收站清空恢復軟件,找回回收站中的文件。 第一步:搜索“互盾回收站清空恢復軟件”,將軟件下載安裝至電腦上,運行該軟件,
Eclipse打包Android項目時用到proguard.cfg後,出現的Warning:can't find referenced class問題的解決方式
引入 能夠 nbsp 路徑 方法 ont span rar font Warning: can‘t find superclass or interface Warning: can‘t find referenced class 這兩個問題的解決方法:
勝敗有憑---項目被領導肯定後感言
使用 一個人 移動端 內容 接口 發的 找工作 滿足 項目 最近在做一個移動端的項目時,因為在限定時間裏,超預期完成任務,被領導叫到辦公室裏坐談鼓勵,也由此想總結一下這個項目為何能順利的超預期完成,以便以後的項目借鑒。 在這裏先講兩個小故事: 小故事1:說一
Linux虛擬機的glibc被卸載後,無法進入系統的解決方法
play xxxxxx spl mnt 強制 volume 本地 glibc nload 1. 用Linux啟動光盤或u盤引導系統,進入控制臺界面 2. 掛載glibc被卸載的硬盤,假定在/dev/sda2. 如果是LVM2的文件系統, 需要找到邏輯卷的名稱並激活;普通情
ProGuard 混淆規則整理
filters 構造函數 ati 函數 tar 解析 enum 程序 跟蹤 說明:本文參考(翻譯)自Android SDK根目錄下的proguard目錄下的說明文檔,是其中的一篇。,文中除了翻譯外加了一些作者的實際驗證。文章對Android混淆規則做一個解釋說明。作者才疏
在另一臺服務器上還原被誤刪的 MySQL 數據
values value select mysql quic table flush 最近的備份 put 數據庫備份語句 mysqldump -S /tmp/mysql3309.sock -u root -pMySQL8.0 --single-transaction --q
Android中在app被系統釋放後,重新回到前臺時,重建Activity出現Fragment重疊現象
android 開發中Frgment應用場景非常廣泛,應用Fragment是必須使用FragmentActivity,有時候會出現這樣一種情況,在應用退到後臺後,系統會在記憶體不足時將應用回收掉,再次啟動應用會出現Activity中的Fragment重疊現象,其實出現問題的原因是這樣的,
修復IIS:因ApplicationHost.config被破壞導致的崩潰
錯誤描述 有時候我們必須手動或用指令碼修改applicationHost.config來滿足我們的一些需求。這就存在破壞applicationHost.config的風險。而一旦applicationHost.config被破壞,IIS就會崩潰。即時我們後來修復了applicati
《PHP程式設計師面試筆試寶典》——在被企業拒絕後是否可以再申請?
如何巧妙地回答面試官的問題? 本文摘自《PHP程式設計師面試筆試寶典》 很多企業為了能夠在一年一度的招聘季節中,提前將優秀的程式設計師鎖定到自己的麾下,往往會先下手為強。他們通常採取的措施有兩種:一是招聘實習生;二是多輪招聘。很多人可能會擔心,萬一面試時發揮不好,沒被企業選中,會不會被企業接入黑名單,從此
解決Android簽名混淆後WebView與JS互動失效的問題
最近做了個網頁端微信支付的小功能,測試版還好好的,混淆打包後,寫的方法webview無法呼叫,意識到混淆除了問題,於是在網上找了一些大神的解決方案,再根據自己的實際解決過程,列出來一個完整的解決方法。 Android4.2以上版本呼叫js介面需要在方法使用宣告@JavascriptInterfa
Unity2017啟動後崩潰的問題
1.定位問題 Unity崩潰後會記錄下crash的日誌,放在c盤目錄editor.log文字,記錄了它崩潰的原因(editor.log的檔案路徑為C:\Users\xxx使用者名稱\AppData\Local\Unity\Editor) FMOD failed to ge
如何解決超連結被點選後hover樣式不出現問題
解析: 當超連結被點選後,經常會出現hover樣式效果不顯示的問題。解決這個問題其實很簡單,只要對超連結的樣式屬性進行正確的排序即可。 排列順序如下: link -> visited -> hover ->action 參考設定: a:link{
去嫖娼被抓了後又放了
在朋友的慫恿下,終於去了一次傳說中的大保健,心裡忐忑擔心萬一被抓了,被老婆孩子知道了咋辦,被單位同事知道了咋辦,被父母親友知道了咋辦,給家族蒙羞,我還怎麼混,還沒容我思考完這些問題,就要準備開始進入程序了。。 突然,門打開了!“警察,雙手抱頭蹲下!”,我潛意識想“完了!
Javascript 混淆後解碼原理
0x00 前言 Javascript 作為一種執行在客戶端的指令碼語言,其原始碼對使用者來說是完全可見的。但不是每一個 js 開發者都希望自己的程式碼能被直接閱讀,比如惡意軟體的製造者們。為了增加程式碼分析的難度,混淆(obfuscate)工具被應用到了許多惡意軟體(如 0day 掛馬、跨站
專案混淆後gson不能正常工作
gson被混餚後其對應的bean類的param都變成了a,b,c,d。導致GSON的key無法找到對應的例項。 解決方法:應該在混淆檔案中過濾例項(bean),這樣就不會影響GSON的key去尋找對應的例項,從而達到我們需要的效果 步驟:開啟混淆檔案.pro ,新增如下幾
maven+proguard混淆
混淆好處:程式碼難以閱讀,反編譯,proguard混淆程式碼.class檔案 專案用的springBoot-2.0.4版本,proguard得用6.0.3版本,不然會報錯,在pom.xml檔案新增混淆外掛 <plugin> <!-- progua