2013-10-29 2 views
3

antiLvl 또는 luckypatch에서 내 앱이 금이가는 것을 방지하는 것은 불가능하다는 것을 알고 있습니다. 예를 들어 antiLvl을 다운로드하고 몇 초 안에 내 앱을 크랙했습니다. 오히려, LVL이 제거되었다는 것을 알기위한 코드를 구현할 수 있는지, 그리고 HTTP 서버에 정보를 보내고 있는지 알고 싶습니다. 그래서 얼마나 많은 크래킹 된 버전이 있는지 알 수 있습니다. 이것은 내가 평가를하는 데 유용 할 수 있습니다. 감사. 당신이 만약 그 외부를 제거해야이 생산을 사용하려는 경우android가 LVL 제거를 감지합니다.

if(BuildConfig.DEBUG) { 
    try { 
     new com.actionbarsherlock.app.SherlockFragment(); 
    } catch(NoClassDefFoundError e) { 
     Log.e(LOGTAG, "We got ActionBarSherlock problems"); 
    } 
    try { 
     new com.google.gson.Gson(); 
    } catch(NoClassDefFoundError e) { 
     Log.e(LOGTAG, "We got Gson problems"); 
    } 
} 

이, 당신에게 아이디어를 줄 것이다 : 내 응용 프로그램을 구축하는 동안 나는 몇 가지 문제가있을 경우

+0

LVL이란 무엇입니까? – rekire

+0

@rekire 라이선스 확인 라이브러리 http://developer.android.com/google/play/licensing/setting-up.html – Sambuca

+0

주기적으로 리플렉션을 통해 lib를 사용할 수 있는지 또는 내가 확인할 수 있는지를 추측 할 수 있습니다. 좋은 힌트가 될만한 앱의 서명. – rekire

답변

1

나는 테스트를 위해이 코드를 사용합니다. 나는 당신도 반성과 함께 이것을 시도 할 수있다. 나는 프로 가드가 쓸모없는 창조물을 제거 할 것이라고 확신한다.

+0

그래서 "new com.google.android.vending.licensing.LicenseChecker()"를 사용하여 제거 여부를 확인할 수 있습니다. Btw, doCheck()를 추가했습니다. Oncreate에서 라이센스를 확인하십시오. 해커가 앱을 직접 해킹하고 doCheck()를 삭제 한 다음 라이선스 검사를 통과 할 수 있다는 것은 사실입니까? 감사합니다 – manhon

2
  1. 가장 확실한 메커니즘은 CRC32와 같은 간단한 해시 함수를 사용하고 응용 프로그램 코드의 해시를 작성하는 것입니다.
 
PackageManager packagemanager = getPackageManager(); 
PackageInfo packageinfo = packagemanager.getPackageInfo(String packageName, int flags) 
int hash = packageinfo.signatures[0].hashCode() 

하고 수정 된 경우 확인하기 위해 원래의 해시와 비교합니다.

2. Google NDK를 사용하여 기본 라이브러리 파일 {.so}을 생성하고 apk가 변조되었는지 여부를 확인하는 방법에 대해 들었던 또 다른 접근 방식입니다.

+1

이 링크는 질문에 대답 할 수 있지만 답변의 핵심 부분을 여기에 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. –

+0

은이를 염두에두고 있습니다. 새 사용자. 오늘 만 참가했다. –

+0

귀하의 링크가 수정되었습니다. 그러나 답을 편집하여 링크의 중요한 부분을 진술해야합니다. 나는 당신이 그것을 할 것을 강력히 권한다. (플러스, 당신은 나에게서 upvote를 얻을 것이다!) – Joel