如何不仅对堆栈跟踪以及整个日志文件进行去混淆?

时间:2016-11-14 15:27:50

标签: java proguard obfuscation deobfuscation

这似乎是一项简单的任务:在日志上运行回溯并获取我的类和方法的名称。但回溯只能完成部分工作,并且只对堆栈跟踪进行反混淆,而不是所有其他日志记录。我有一个普通的日志行:

07/11/16 11:17:26 Info thread:GeneralFactory : at com.a.b.c.d(SourceFile:482)-Some Text

我希望 com.a.b.c.d(SourceFile:482)也进行反模糊处理。我查看了ProGuard手册,并尝试使用提供的示例-regex,但失败了。我会感谢任何正则表达式的帮助或任何其他想法。

2 个答案:

答案 0 :(得分:0)

我无法解释为什么retrace.jar不会对整个日志进行去混淆 - 只是堆栈跟踪。也许它与每个日志记录的模式格式有关。 无论如何,我使用了-regex,一旦你抓住它就很容易,但是在这个RE中使用'%'并将其作为变量发送到批处理文件中,这让我的生活充满了几个小时。
我随函附上我的最终批处理文件 - 希望它能在将来帮助某人:

@echo off
@setlocal ENABLEDELAYEDEXPANSION
set RE=!(?:.*?\sat\s%%%%c\.%%%%m\s*\(%%%%s(?::%%%%l)?\)(?:.*)?)!

REM use ! to avoid turning %...% to a variable
REM use %%%% so it becomes %% before it is sent to the retrace.jar
REM add (?: to the variable because it is cut - don't know why...

set RE_FINAL=(?:%RE%
call java -jar proguard5.2.1/retrace.jar -regex %RE_FINAL% obfu-mapping.txt "%1"

答案 1 :(得分:0)

请遵循以下几点。

  1. 打开终端/ cmd

  2. cd ** / sdk / tools / proguard / bin / proguardgui.jar

  3. 引用附件中的图像,追溯GUI弹出窗口

  4. 选择映射文件,然后将粘贴的堆栈跟踪信息或孔日志复制粘贴

就是这样。简单容易

enter image description here