> Java > java지도 시간 > 디컴파일 후 난독화된 Android 코드에서 민감한 문자열을 효과적으로 숨길 수 있는 방법은 무엇입니까?

디컴파일 후 난독화된 Android 코드에서 민감한 문자열을 효과적으로 숨길 수 있는 방법은 무엇입니까?

DDD
풀어 주다: 2024-10-28 11:41:02
원래의
503명이 탐색했습니다.

How can I effectively hide sensitive strings in obfuscated Android code after decompilation?

난독화된 Android 코드에 비밀 숨기기

ProGuard와 같은 도구를 사용하여 Android 코드를 난독화할 때 디컴파일 후에도 민감한 문자열이 계속 표시되는 것을 발견하는 것이 일반적입니다. . 이러한 문제를 해결하기 위해 다음은 엿보는 눈으로부터 문자열을 숨기는 몇 가지 전략입니다.

인코딩 및 암호화

ProGuard는 문자열을 숨기는 메커니즘을 제공하지 않습니다. 대신, 자체 인코딩이나 암호화 방법을 구현하는 것을 고려해 보세요. 기본적인 모호함의 경우 Base64와 같은 방법을 사용한 인코딩으로 충분할 수 있습니다. 보다 엄격한 보호를 위해 javax.crypto.Cipher와 같은 클래스를 통해 AES와 같은 대칭 암호를 사용하여 문자열을 암호화합니다.

문자열을 암호화하려면 애플리케이션에 암호화 키를 저장해야 하므로 보안이 손상될 수 있다는 점을 기억하세요.

예:

이전:

<code class="java">public class Foo {
    private String mySecret = "http://example.com";
}</code>
로그인 후 복사

이후:

<code class="java">public class Foo {
    private String encrypted = "<manually created encrypted string>";
    private String key = "<key used for encryption";
    private String mySecret = MyDecryptUtil.decrypt(encrypted, key);
}</code>
로그인 후 복사

R 클래스 문자열

언급하신 R 클래스 문자열(예: 2130903058)은 리소스 ID에 대한 참조입니다. 이는 임의의 숫자가 아니라 레이아웃 파일과 같은 리소스를 가리킵니다. 난독화 중에는 코드 크기를 줄이기 위해 리소스에 대한 참조가 이러한 ID로 대체됩니다.

코드를 디컴파일할 때 내부 구조가 난독화 장치에 의해 손상되었기 때문에 R 클래스가 존재하지 않을 수 있습니다. 그러나 ID는 여전히 원본 리소스 참조를 나타냅니다.

타사 DRM

자체 보호를 구현하는 대신 전용 디지털 권한 관리(DRM) 솔루션을 사용하는 것이 좋습니다. 조치. Google은 맞춤형 솔루션보다 더 안전할 수 있는 Android용 라이선스 서비스를 제공합니다.

위 내용은 디컴파일 후 난독화된 Android 코드에서 민감한 문자열을 효과적으로 숨길 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿