이 저장소에서는 APK를 리버스 엔지니어링하는 방법에 대한 단계별 가이드를 찾을 수 있습니다.
리버스 엔지니어링은 악성 소프트웨어 또는 코드 식별 , 보안 결함 발견, 예상하지 못한 기능 찾기/비즈니스 규칙 위반 등 여러 측면에서 우리에게 도움이 될 수 있습니다. 즉, Android 세계에 대해 더 깊이 살펴보겠습니다.
기본부터 시작하여 Android 패키지(APK)를 몇 가지 부분으로 나눌 수 있습니다.
Smali는 Dalvik 바이트코드의 사람이 읽을 수 있는 버전입니다. 간단히 말해 어셈블/디스어셈블 역할을 합니다. Dalvik 실행 파일 형식(.dex)
코드 측면에서 Java와 Smali의 차이점을 살펴보겠습니다.
public static void printHelloWorld() {
System.out.println("Hello World")
}
그리고 Smali의 동일한 코드는 다음과 같습니다.
.method public static printHelloWorld()V
.registers 2
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
const-string v1, "Hello World"
invoke-virtual {v0,v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
return-void
.end method
필요한 기본 개념을 살펴보고 이제 작업을 시작합니다!
1단계:
되돌리려는 APK를 선택하세요.
앱 스토어 자체에서 쉽게 찾을 수 없다면 APKCombo 또는 APKMonk와 같은 사이트에서 직접 찾을 수 있습니다.
여기에서 흥미로울 수 있는 몇 가지 사항에 주의를 기울이십시오.
- Qual é o URL da API? (geralmente emos algo como api.domain.com)
- Qual é método de autenticação utilizado? Eu preciso criar um login para acessar?
- Quais são as chamadas que eu posso encontrar e quais são os parâmetros eles esperam?
APK가 있으면 이제 코드를 분석할 수 있도록 디컴파일할 차례입니다.
(MOBSF와 같은 동적 분석 도구를 사용하면 Java 또는 SMALI에서 코드를 직접 다운로드할 수 있습니다.)
이제 우리는 도구를 사용할 것입니다. 그 중 첫 번째는 APKTOOL입니다. 아래에서 이에 대한 자세한 내용을 볼 수 있지만 일반적으로 이 도구는 파일 디컴파일, 디컴파일된 모든 파일이 있는 동일한 위치에 폴더 생성을 담당합니다. . 여기에서 필요한 모든 코드를 분석할 수 있습니다.
여기서 사용되는 명령은 다음과 같습니다.
- apktool d ~/Desktop/aplicativo_app.apk
APK에서 "classes.dex" 파일을 추출합니다.
dex2jar 도구를 사용하여 Java 클래스 파일로 변환합니다. jar 파일이 생성됩니다.
- sh d2j-dex2jar.sh classes.dex
JD-GUI를 사용하여 jar 파일에서 소스 코드를 추출합니다.
- Arraste o arquivo classes-dex2jar.jar pro JD-GUI
Mobile Security Framework는 APK 분석을 자동화하는 도구입니다. 그 안에는 이전에 본 APK를 구성하는 부분에 대한 자세한 내용이 나와 있습니다.
dex2jar
디덱서
apktool
apktool은 Android 애플리케이션 리버스 엔지니어링을 위한 오픈 소스 Java 도구입니다. APK 파일을 사람이 읽을 수 있는 XML의 원본 코드로 디코딩할 수 있습니다. 또한 파일에 포함된 모든 클래스와 메소드를 Smali로 나누어 줍니다. 이런 방식으로 기능이나 프로그램 실행을 수정할 수 있습니다. Smali 코드를 사용하면 해당 애플리케이션 내에 새로운 기능을 추가하거나 예상되는 동작을 변경할 수 있습니다.
SSL 고정에 일반적으로 사용됩니다.
adb(안드로이드 디버그 브리지)
안드로가드
Xposed 프레임워크
명령: //곧
Android SSL 우회
프리다
이제 이것이 어떻게 작동하는지에 대한 기초를 얻었으므로 연습할 시간입니다! 다음은 연습으로 사용할 수 있는 일부 실습 목록입니다.
다음 공격 유형을 테스트합니다.
여기까지 와주셔서 감사합니다! 좋은 하루 되세요.