Android에서 맬웨어 방지 프로그램을 개발하려면 smali
APK 표현이 필요합니다.안드로이드 장치에서 baksmali.jar을 실행하는 방법
기기에서 직접 baksmali.jar
을 실행하려고합니다. 도구 GitHub: Executing baksmali on an Android device의 작성자에게 질문했습니다.
dx --dex --output=classes.dex baksmali.jar
android/Sdk/build-tools/25.0.2
zip baksmali.zip classes.dex
adb push baksmali.zip /sdcard/
에서 dx
도구를 사용 v2.2b4 버전을 다운로드 Stack overflow: How to execute the dex file in android with command?
- 포스트에 따라 단계를 따라 인공 지능 에뮬레이터
custom phone-4.4.4 API 19
adb shell mkdir /sdcard/dalvik-cache
adb shell ANDROID_DATA=/sdcard dalvikvm -cp /sdcard/baksmali.zip org.jf.baksmali.Main
그 후
, 나는 Unable to locate class 'org/jf/baksmali/Main'
가 정확하게
Unable to locate class 'org/jf/baksmali/Main'
java.lang.NoClassDefFoundError: org/jf/baksmali/Main
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.jf.baksmali.Main" on path: DexPathList[[zip file "/sdcard/baksmali.zip"],nativeLibraryDirectories=[/system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
... 1 more
Suppressed: java.io.IOException: unable to open DEX file
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:296)
at dalvik.system.DexFile.<init>(DexFile.java:80)
at dalvik.system.DexFile.<init>(DexFile.java:59)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:263)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:230)
at dalvik.system.DexPathList.<init>(DexPathList.java:112)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:48)
at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:38)
at java.lang.ClassLoader.createSystemClassLoader(ClassLoader.java:116)
at java.lang.ClassLoader.access$000(ClassLoader.java:65)
at java.lang.ClassLoader$SystemClassLoader.<clinit>(ClassLoader.java:81)
at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:125)
... 1 more
내가이 오류를 이해하지 못하는이 오류 메시지가지고있어, 클라쎄 경로가 정확한지 확인하십시오.
어떻게 해결할 수 있습니까?
미리 감사드립니다.
[bitbucket] (https://bitbucket.org/JesusFreke/smali/downloads/)에서'v2.2b4 jar'을 다운로드했습니다. – MassyB
을 사용해보십시오. classes.dex를 압축하는 대신 직접적으로 사용합니다. 'adb 쉘 ANDROID_DATA =/sdcard dalvikvm -cp /sdcard/classes.dex org.jf.baksmali.Main' – JesusFreke
항아리의 V2.1.3은'org.jf.baksmali.Main' 대신 작동합니다. org입니다. jf.baksmali.main' – MassyB