做CTF题的时候遇到一个无DEX文件的APK文件:
2️⃣easy-dex - 调用Native方法 | twofish加密 | 编译APK
现将解题后获得的DEX与原APK文件,合成有DEX的新APK。
文件操作
AndroidManifest.xml
需要了解清单中各个字段的功能和值,本文仅对示例中的APK清单进行详述和修改。
标签
android:hasCode
该属性表明应用程序是否含有代码,若其值为true,表示应用程序含有代码,false则表示其中没有代码。该属性的默认值是true。当其值是false时,加载组件时系统不会尝试加载任何应用程序的代码。应用程序一般没有它自己的任何代码,除非它仅是由组件类构建而成的,比如Activity使用AliasActivity类,但这很少发生。
子元素
直译为“元数据”,该标签可为
、 、 、 、 、 等组件提供附加数据项。 组件元素可以包含任意数量的 子元素。系统将meta-data配置的数据存储于一个Bundle对象中,可以通过PackageItemInfo.metaData字段获取。
android:name
项目的名称:使用Java样式的命名规则,确保名称的唯一性。
“android.app.NativeActivity“→”com.a.sample.findmydex.MainActivity“
classes.dex
将需要替换或者添加的dex文件命名为“classes.dex”,并保存到APK解压路径下:
编译打包
修改后保存清单文件:
在工程管理器右击刷新,确认出现“classes.dex”文件后选择AndroidKiller或者其他工具的编译功能: