>  기사  >  운영 및 유지보수  >  Android 앱을 암호화하는 방법

Android 앱을 암호화하는 방법

WBOY
WBOY앞으로
2023-05-26 08:47:191256검색

1. Android 인터페이스 하이재킹이란

인터페이스 하이재킹은 Android 시스템에서 악성 코드가 현재 실행 중인 인터페이스가 모니터링되는 애플리케이션의 특정 인터페이스(일반적으로 로그인 또는 결제 인터페이스)임을 감지하면 대상 소프트웨어의 실행을 모니터링하는 것을 의미합니다. 가짜 피싱 페이지가 팝업되어 사용자가 정보를 입력하도록 유도하여 궁극적으로 사용자의 개인 정보를 도용(사용자 계정 번호, 카드 번호, 비밀번호 및 기타 정보를 악의적으로 도용)하거나 가짜 인터페이스를 사용하여 피싱 사기를 저지릅니다.

Android app如何加密

II. 일반적인 공격 방법

1. 시스템 Logocat 로그를 모니터링합니다. 활동 인터페이스 전환 동작이 감지되면 공격이 수행되고 속임수를 구현하기 위해 가짜 활동 인터페이스가 숨겨집니다.

2. 시스템 API를 모니터링합니다. 악성 프로그램이 관련 인터페이스의 API 구성 요소 호출을 수신하면 공격을 시작할 수 있습니다.

3. 5.0 이하 모델의 경우 열거하여 스택 상단의 활동을 얻고, 대상 활동의 모습을 모니터링하고 공격을 시작합니다.

4. 대상 애플리케이션을 모니터링하기 위해 악의적으로 서비스를 시작합니다. 대상 활동으로 전환하면 현재 인터페이스를 가로채서 사용자를 혼란스럽게 하는 대화 상자가 나타납니다. 예방 조치

● 사용자를 위한

거의 모든 Android 휴대폰에는 HOME 버튼을 길게 누르면 최근에 사용한 작업을 볼 수 있습니다. 사용자가 로그인하기 위해 비밀번호를 입력해야 하는 경우 홈 버튼을 길게 눌러 최근 작업을 볼 수 있습니다. 예를 들어 로그인할 때 홈 버튼을 길게 눌러 최근 작업에 WeChat이 나타나는 경우 현재 로그인이 표시됩니다. 인터페이스는 악의적으로 위장한 활동일 가능성이 높습니다. 전환 다른 프로그램으로 이동하여 최근 작업을 확인하여 이 로그인 인터페이스가 어느 프로그램에서 왔는지 알아보세요.

● 개발자용

피싱 활동 유형 하이재킹의 경우 로그인 창이나 사용자 개인 정보 입력 등 주요 활동의 onPause 메서드에서 프런트엔드 활동 애플리케이션이 자체인지 시스템 애플리케이션인지 감지합니다. 사용자에게 로그인 인터페이스를 덮어쓰게 될 것이라는 경고 메시지를 표시하고 일반 활동을 포함하는 클래스 이름을 제공합니다.

팝업 대화 상자 형식 하이재킹인 경우 활동의 수명 주기를 인수합니다. 현재 인터페이스 onResume이 발견되면 포커스를 잃었는지 확인합니다. 동시에 존재하면 대화 상자일 수 있습니다. hijack을 입력하고 현재 실행 중인 활성 프로세스를 확인하고, 민감한 권한(전역 경고 권한, 작업 스택 획득 권한 등)이 포함되어 있는지 여부를 확인하고, 포함된 경우 사용자에게 경고합니다.

Android APK에 디컴파일 "폭탄"을 배치하는 방법

위 기사에 언급된 "폭탄"은 실제로 디컴파일러 버그이므로 다른 디컴파일러용으로 다른 "폭탄"을 설계해야 합니다. 먼저 일반적으로 사용되는 APK 디컴파일 도구를 이해해 보겠습니다.

● baksmali/smali: baksmali는 분석을 위해 바이너리 dex 파일을 smali 텍스트 파일로 변환할 수 있고, smali는 smali 파일을 dex 파일로 다시 컴파일할 수 있습니다.

● Apktool: dex 파일 처리를 위해 baksmali/smali를 통합하고 res 리소스 파일(예: 레이아웃/문자열 등)의 디컴파일도 구현합니다.

● AxmlPrinter: AndroidManifest.xml의 바이너리 형식을 AndroidManifest.xml의 텍스트 형식으로 변환하는 데 사용됩니다.

● dex2jar: dex를 jar 파일로 변환할 수 있습니다.

● jd-gui: jar 파일을 Java 소스 코드로 디컴파일할 수 있습니다.

● Ida Pro: Apk에서 So 파일을 디컴파일하는 데 주로 사용됩니다. 또한 smali 구문과 유사한 텍스트 형식 지침으로 dex 파일을 디컴파일하는 것도 지원합니다.

위 디컴파일 도구에서 볼 수 있듯이 세 가지 주요 기능이 있습니다.

● AndroidManifest.xml,layout.xml과 같은 리소스를 디컴파일

Dex 파일을 디컴파일하거나 Java 코드로 변환할 수 있습니다.

● 디컴파일 So files

Bomb" 설정에는 특정 파일 형식에 대한 상당한 지식이 필요하며 특정 디컴파일 도구에만 국한될 수 있습니다.

Android 앱을 암호화하는 방법?

Android 앱에는 dex 파일, so files, res 및 자산 리소스.. 이 내용은 다음과 같이 다시 작성할 수 있습니다. 암호화 기술은 DEX 파일 보호, SO 파일 암호화, 리소스 파일(예: res 및 자산) 보호의 세 가지 주요 측면으로 나눌 수 있습니다.

암호화되지 않은 dex 파일은 Java 컴파일 및 패키징에서 생성되므로 가장 기본적인 형태의 패키징부터 함수 실행 본문 추출, 동적 로딩 및 현재 vmp 가상 머신 보호에 이르기까지 크래킹 비용이 낮고 공격에 취약합니다. , 이 솔루션의 보안은 점차 향상되었습니다. 특히 vmp 강화에서는 자체 개발한 가상 머신을 사용하여 명령 암호화 대체를 올바르게 사용하면 크래커에게 매우 어려울 것입니다. 암호화

so 파일은 초기 세그먼트 암호화부터 맞춤형 elf 구조의 암호화 방식까지 IDA가 함수 이름을 볼 수 없게 하여 비용과 크래킹 난이도를 높일 수 있습니다.

● 리소스 보호

res 리소스 파일은 일반적으로 리버스 엔지니어링의 어려움을 높이기 위해 난독화만 사용합니다. 자산 리소스는 일반적으로 처리되지 않습니다. H5 애플리케이션 수가 증가함에 따라 일부 공급업체(예: Yidun 및 Naga)는 자산 암호화 기능을 제공했지만 구현 원칙은 명확하지 않습니다.

위의 세 가지 보호 사항 외에도 역컴파일 방지, 2차 패키징 방지, 디버깅 방지, 시뮬레이션 방지, 노출 방지 기능 등도 있습니다.

b) 디컴파일을 방지하기 위해 일반적으로 시중에서 판매되는 디컴파일 도구(예: apktool)를 사용하여 해당 취약점을 악용하여 디컴파일을 실패하게 만듭니다.

b) 2차 패키징을 방지하기 위해 가장 일반적으로 사용되는 방법은 다음과 같습니다. 코드에 저장합니다. 서명 정보: 시작 시 현재 apk의 서명 정보와 기본 레이어에 저장된 서명을 비교합니다. 이미 시장에는 침해 도구가 나와 있습니다. 일반적인 구현 방법을 일부 업그레이드할 수 있습니다.

c) 안티 디버깅은 ptrace 프로세스를 통해 크래커의 ptrace 디버깅을 방지합니다.

d) 안티 에뮬레이터, /system/bin/su 및 /system/xbin/su 파일을 감지합니다.

XposedHelpers의 methodCache를 감지하여 Xposed를 방지하기 위해 연결되었는지 확인합니다.

위 내용은 Android 앱을 암호화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제