"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 난독화된 코드에서 민감한 문자열을 어떻게 숨길 수 있나요?

난독화된 코드에서 민감한 문자열을 어떻게 숨길 수 있나요?

2024-11-05에 게시됨
검색:598

 How Can Sensitive Strings Be Hidden in Obfuscated Code?

난독화된 코드에서 민감한 문자열 숨기기

독점 정보를 보호하기 위해 코드를 난독화하는 것은 일반적인 관행이지만 안목 있는 눈은 여전히 ​​숨겨진 문자열을 찾아낼 수 있습니다. 민감한 데이터를 효과적으로 숨기려면 다음 기술을 고려하세요.

인코딩과 암호화

일상적인 검사를 방지하는 것이 목적이라면 인코딩으로 충분할 수 있습니다. android.util.Base64 클래스는 편리한 방법을 제공합니다. 그러나 인코딩은 미미한 보안을 제공합니다.

공격자로부터 더 강력한 보호를 위해 AES와 같은 암호를 사용한 대칭 암호화를 권장합니다. javax.crypto.Cipher 클래스는 사용법의 예를 제공합니다.

수동 암호화 및 복호화

다음 단계에 따라 암호화 및 복호화를 수동으로 구현합니다.

  1. 알려진 키로 문자열을 암호화합니다.
  2. 해독된 문자열 버전을 사용하도록 코드를 업데이트합니다(예: mySecret = "http:// 대신 MyDecryptUtil.decrypt(encrypted, key) 사용). example.com").

타사 DRM 솔루션

Google 라이선스 서버와 같은 타사 DRM 솔루션 사용을 고려해 보세요. 자체 롤링 솔루션에 비해 잠재적인 보안 이점을 제공하지만 여전히 수동 암호화 및 암호 해독과 유사한 제한 사항이 있습니다.

R 클래스 문자열

에서 언급한 R 클래스 문자열 귀하의 코드는 리소스에 대한 참조입니다. ProGuard와 같은 난독처리기는 R 클래스 자체를 난독화하는 것이 아니라 리소스 ID에 대한 참조를 난독화합니다. 동일한 번호를 유지하지만 실제 리소스를 가리키는 매핑을 변경합니다.

이 경우 2130903058은 레이아웃 파일을 참조합니다. 디컴파일된 R 클래스가 없으면 그것이 나타내는 리소스를 직접 검색할 수 없지만 여전히 리소스의 바이너리 데이터에 대한 주소입니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3