做CTF题的时候遇到一个无DEX文件的APK文件:
2️⃣easy-dex - 调用Native方法 | twofish加密 | 编译APK
现将解题后获得的DEX与原APK文件,合成有DEX的新APK。

文件操作

AndroidManifest.xml

需要了解清单中各个字段的功能和值,本文仅对示例中的APK清单进行详述和修改。

标签

android:hasCode

该属性表明应用程序是否含有代码,若其值为true,表示应用程序含有代码,false则表示其中没有代码。该属性的默认值是true。当其值是false时,加载组件时系统不会尝试加载任何应用程序的代码。应用程序一般没有它自己的任何代码,除非它仅是由组件类构建而成的,比如Activity使用AliasActivity类,但这很少发生。

false“→”true

子元素

直译为“元数据”,该标签可为等组件提供附加数据项。 组件元素可以包含任意数量的子元素。系统将meta-data配置的数据存储于一个Bundle对象中,可以通过PackageItemInfo.metaData字段获取。

android:name

项目的名称:使用Java样式的命名规则,确保名称的唯一性。

android.app.NativeActivity“→”com.a.sample.findmydex.MainActivity

classes.dex

将需要替换或者添加的dex文件命名为“classes.dex”,并保存到APK解压路径下:
image.pngimage.png

编译打包

修改后保存清单文件:
image.png
在工程管理器右击刷新,确认出现“classes.dex”文件后选择AndroidKiller或者其他工具的编译功能:
image.png

运行

image.png

🥳Yes! You got me! :)🥳

image.png