2013-02-09 1 views
15

불행히도 ProGuard를 사용하여 난독 화가 된 내 앱 중 하나의 소스 코드를 잃어 버렸습니다. 지금까지ProGuard를 사용하여 난독 화 된 Android APK를 리버스 엔지니어링/디 컴파일하는 방법은 무엇입니까?

  1. dump.txt
  2. mapping.txt
  3. seeds.txt
  4. usage.txt

했을 무엇 :
나는 여전히 .apk 파일 및 ProGuard에서에 의해 생성 된 일부 설정 파일을 ? apktool를 사용

  1. 디코딩 된 리소스 파일.
    예, 그걸 돌려 받았어요!

  2. .apk 파일을 추출하고 을 사용하여 classes.dex 파일을 .jar 파일로 변환합니다. 지금 JD-Gui을 사용하여 소스 코드 (.jar 파일)을 볼 경우

, 내 난독 화 코드를 참조하십시오. 다음과 같은 것 :

class c { 
    TextView a; 
    TextView b; 
    TextView c; 
    TextView d; 
    CheckBox e; 
} 

protected List a(Uri[] paramArrayOfUri) { ... } 

protected void a(List paramList) { ... } 

일부 루프는 약간 이상해 보입니다. 나는 무한 루프를 쓰지 않는다 :

while (true) { 
    if (!localIterator.hasNext()) 
     return localArrayList; 
    ProviderInfo[] arrayOfProviderInfo = ((PackageInfo)localIterator.next()).providers; 
    if (arrayOfProviderInfo == null) 
     continue; 
    int i = arrayOfProviderInfo.length; 
} 

은 ProGuard에서의 .txt 인 파일 중 하나를 사용하여 내 원래의 소스 코드로 난독 화 코드를 다시 매핑 할 수 있습니까? 내 자신의 변수 이름/메서드 서명을보고 싶습니다.
또는 이러한 파일은 오류 보고서 스택 추적을 추적하는 데만 사용할 수 있습니까?

답변

3

당신이 찾고있는 모든 것이 mapping.txt 파일에 있지만, 나는 그것을 전혀 뒤집을 도구를 본 적이 없다. Proguard가 수행하는 난독 화 중 일부는 메서드와 변수의 단순한 이름 변경이 아니므로 수행하려는 작업을 수행 할 수 없을 가능성이 있습니다. Proguard 다운로드와 함께 제공되는 retrace.jar를 사용하면 조금 더 도움이 될 수 있지만 stacktrace 파일과 함께 사용해야합니다.