这似乎是一项简单的任务:在日志上运行回溯并获取我的类和方法的名称。但回溯只能完成部分工作,并且只对堆栈跟踪进行反混淆,而不是所有其他日志记录。我有一个普通的日志行:
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
,但失败了。我会感谢任何正则表达式的帮助或任何其他想法。
答案 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)