2016-11-14 7 views
0

쉬운 작업 인 것 같습니다 : 로그에서 retrace를 실행하고 클래스와 메소드의 이름을 가져옵니다. 리트 렉션은 작업의 일부만 수행하고 스택 추적 만 해독하고 모든 다른 로그 레코드는 비활성화합니다.스택 추적뿐만 아니라 전체 로그 파일의 난독 화를 방지하려면 어떻게해야합니까?

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)를 원하는 :도 deobfuscated 될 나는 일반 로그 라인. 제공된 ProGuard 설명서를 검토하고 제공된 예제와 함께 -regex을 사용하려했지만 실패했습니다. 정규식 도움말 또는 다른 아이디어를 주셔서 감사합니다.

답변

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"