Embarcadero Delphi编译的APK/AAB是否带IDE签名标识及检测方法
Delphi编译的Android APK/AAB标识检测
有没有专属标识?
肯定有。Embarcadero Delphi编译Android安装包时,会嵌入不少专属特征——不是IDE的签名,而是编译过程中留下的框架、代码结构标识。
怎么检测?
1. 搜DEX文件里的特征字符串
先解压APK(如果是AAB,先提取里面的base.apk),找到classes.dex文件,用字符串搜索工具扫:
- 直接搜
Embarcadero、Delphi、RAD Studio这些品牌词 - 搜
FMX(Delphi跨平台的核心FireMonkey框架标识) - 搜
Androidapi.JNI.(Delphi封装的Android JNI类前缀) - 示例命令(Linux/macOS):
grep -a "Embarcadero" classes.dex - 示例命令(Windows):
findstr /i "Embarcadero" classes.dex
2. 查资源文件
- 打开APK/res/values/strings.xml,Delphi默认生成的应用通常会带
Delphi相关的字符串(比如默认版权声明) - 看APK/assets目录,有没有
delphi_开头的文件,或者带fmx标识的配置文件
3. 反编译后盯代码结构
用jadx重新反编译时,别只看表面字符串,重点看这些:
- 包路径:Delphi生成的代码一般有
com.embarcadero.*、fmx.*这类包 - 主Activity:通常继承自
com.embarcadero.firemonkey.FMXNativeActivity - JNI调用:大量引用
Androidapi.JNI相关类,这是Delphi的典型特征
4. 检查Manifest文件
打开AndroidManifest.xml,找有没有com.embarcadero相关的组件、权限声明,或者带FMX的meta-data项
为啥之前用jadx没找到?
可能是你只盯着“签名”相关的内容找,但Delphi的标识不在签名证书里,而是藏在代码、资源里。另外如果应用做了混淆,部分明文字符串会被移除,但核心的FMX类结构、JNI封装还是能找到痕迹。
内容的提问来源于stack exchange,提问作者satya dalu
相关产品推荐
相关产品推荐

