"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 난독화된 코드에서 민감한 문자열을 효과적으로 숨기려면 어떻게 해야 합니까?

난독화된 코드에서 민감한 문자열을 효과적으로 숨기려면 어떻게 해야 합니까?

2024년 11월 10일에 게시됨
검색:296

 How can I effectively hide sensitive strings in obfuscated code?

난독화된 코드에서 숨겨진 문자열 공개

ProGuard와 같은 난독처리기는 눈에 보이는 문자열을 난독화하여 코드 보안을 강화할 수 있지만 민감한 정보에는 충분하지 않을 수 있습니다. URL 또는 라이센스 데이터와 같은.

민감한 문자열 숨기기

민감한 문자열을 효과적으로 숨기려면 다음 기술을 고려하십시오.

  • 인코딩: Base64와 같은 방법을 사용하여 문자열을 인코딩하여 뒤섞인 것처럼 보이게 합니다.
  • 암호화: AES와 같은 알고리즘을 사용하여 문자열을 암호화하여 암호화 키 없이는 이해할 수 없게 만듭니다.

이러한 기술을 구현하려면 다음을 수행할 수 있습니다.

  1. 알려진 키를 사용하여 문자열을 수동으로 암호화합니다.
  2. 해독된 문자열 버전을 사용하도록 코드를 조정합니다. 예:
// Before encryption
public class Foo {
    private String mySecret = "http://example.com";
}

// After encryption
public class Foo {
    private String encrypted = "";
    private String key = "";
    private String mySecret = MyDecryptUtil.decrypt(encrypted, key);
}

R 클래스 찾기

디컴파일 중에 난독화로 인해 R 클래스가 항상 쉽게 표시되지는 않습니다. 그러나 ProGuard 매핑 파일은 해당 위치에 대한 통찰력을 제공할 수 있습니다.

  • 매핑 파일에서 "classes" 섹션을 찾으세요.
  • 원본을 찾으려면 "R.java"를 검색하세요. R 클래스의 경로.
  • R 클래스에 액세스하려면 디컴파일된 코드 디렉터리에서 해당 경로로 이동합니다.

R 클래스 번호 이해

디컴파일된 코드에서 "2130903058"과 같은 숫자는 리소스 ID를 나타냅니다. 이 숫자는 레이아웃 파일과 같은 프로젝트의 리소스를 나타냅니다.

해당 리소스를 찾으려면:

  • 매핑 파일에서 R.java 파일을 디컴파일합니다.
  • 디컴파일된 R.java 파일에서 리소스 ID를 검색합니다.
  • 해당 리소스(예: 레이아웃 파일)가 검색 ​​결과에 지정됩니다.
최신 튜토리얼 더>

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

Copyright© 2022 湘ICP备2022001581号-3