山东费县 · 逆向工程与安全研究

专注逆向匠心定制

为移动应用与企业工具提供 逆向分析 · 加固防护 · 授权体系 · 定制开发 的落地实现,交付可直接接入项目的源码与方案。

逆向分析 协议还原 软件定制开发 安全加固 加密 dex 远程卡密授权 自研 VMP
About Studio

我们是谁,能交付什么

费县安柯逆向软件开发工作室位于山东省临沂市费县,聚焦移动应用的逆向分析、协议还原与安全加固,同时承接桌面工具的定制开发。

不做只停留在演示层面的效果,交付的是能跑起来、能长期维护、能顺利交接的实现方案与完整源码。

  • 逆向分析与协议还原 梳理既有应用的通信流程与业务逻辑,输出可复现的分析结论与可用的实现代码。
  • 桌面工具定制开发 从需求梳理、原型确认到交付上线全程跟进,源码与说明文档一并交付,便于自行维护。
  • 加固方案与持续维护 加壳、反调试、授权校验组合落地,并随版本迭代同步更新防护策略。
What We Do

我们能为你做什么

面向企业与开发者,提供专业、可靠的底层技术支撑
Service Areas

技术服务领域

点选任一能力项,查看其实现要点与示例

DEX 整体加密与内存加载

把核心 DEX 加密后作为资源打进 APK,运行时由壳在内存中解密并加载。反编译工具直接打开只能看到壳代码,看不到真实业务逻辑。

实现要点

  • AES-256-GCM 加密核心 DEX,密钥下沉到 so 层
  • Android 8+ 使用 InMemoryDexClassLoader 直接内存加载
  • 低版本反射 DexFile 相关接口自行实现,不落地释放文件
  • 只保护核心模块,主业务仍由系统加载,启动性能可控
示例 · 解密后内存加载
// 1) 读取加密后的核心 DEX
byte[] enc = Assets.read(context, "core.dex");
// 2) 密钥来自 so 层,不在 Java 层硬编码
byte[] key = KeyBox.key();
byte[] dex = Crypto.aesGcmDecrypt(enc, key);
// 3) Android 8+ 内存加载,不在文件系统落地
ClassLoader loader = new InMemoryDexClassLoader(
        ByteBuffer.wrap(dex), getClassLoader());
Class<?> entry = loader.loadClass("com.xxx.core.Entry");
entry.getMethod("attach", Context.class).invoke(null, ctx);
编译打包抽取核心 DEXAES-GCM 加密存入 assets启动解密内存加载

签名与完整性校验(防二次打包)

启动时校验 APK 签名与关键文件指纹,与预埋的正版信息比对,防止应用被篡改后重新打包分发。

实现要点

  • 取签名证书摘要(SHA-256)与预埋值比对
  • 多点多态校验,与业务逻辑耦合,避免单点被 nop 绕过
  • 同时校验 DEX、Manifest、资源的 CRC / 哈希指纹
  • 校验值分散存储,关键比对下沉到 native 层
示例 · 签名比对与风险上报
// 取 APK 签名摘要(Android 9+ 用 signingInfo)
PackageInfo pi = pm.getPackageInfo(pkg,
        PackageManager.GET_SIGNING_CERTIFICATES);
Signature[] signers = pi.signingInfo.getApkContentsSigners();
byte[] digest = MessageDigest.getInstance("SHA-256")
        .digest(signers[0].toByteArray());
// 比对失败先上报风控,再结束进程
if (!safeEqual(digest, KeyBox.expectSign())) {
    Risk.report("sign_mismatch");
    Process.killProcess(Process.myPid());
}
提取签名计算摘要预埋值比对文件指纹校验风控上报阻断运行

assets / res 资源加密

对配置、脚本、图片、离线 HTML 包等资源做构建期加密,运行期按需解密,避免解包即可直接取走核心素材与配置。

实现要点

  • 构建期批量加密,运行期流式解密,不写临时文件
  • 解密结果仅驻留内存,配合完整性校验防替换
  • 图片走解密流后直接交给解码器,降低内存峰值
  • Web 离线包、支付配置、算法参数优先保护
示例 · 加密配置读取
// 构建期已加密的运行期配置,按需解密
try (InputStream in = Assets.openEncrypted("pay_config.bin")) {
    byte[] plain = Crypto.aesGcmDecrypt(readAll(in), KeyBox.key());
    Config cfg = Config.parse(new String(plain, UTF_8));
}
// 图片 / 离线包同理:流式解密后直接解码使用
Bitmap bmp = BitmapFactory.decodeStream(
        Crypto.wrapStream(Assets.openEncrypted("guide.bin")));
资源筛选构建期加密打包进 APK运行期解密内存使用指纹校验

远程卡密授权与设备绑定

卡密与设备机器码绑定,服务端用私钥签发授权凭证,客户端仅内置公钥即可离线校验,支持天卡、月卡、年卡与试用。

实现要点

  • 机器码取 CPU / 主板 / 硬盘等稳定指纹,兼顾稳定性与唯一性
  • 服务端 RSA 私钥签名,客户端只内置公钥,无法伪造
  • 凭证含机器码 + 到期时间 + 签名,本地校验即可离线使用
  • 一卡一机,重复激活直接拒绝;关键节点在线复核防时钟回拨
示例 · 激活与本地校验
// 1) 激活:卡密 + 机器码一起提交
String mid = DeviceId.get();           // CPUID / 主板 UUID / 硬盘序列
AuthResp r = Api.active(cardNo, mid);  // code / msg / expire_time
// 2) 保存服务端签发的授权凭证
License.save(r.credential);
// 3) 每次启动本地校验,离线同样可用
boolean ok = License.verify(mid, r.credential);
// 公钥验签 + 机器码比对 + 有效期 + 时钟回拨检测
生成卡密采集机器码服务端签发绑定设备本地验签到期复核

APK 整体加固与运行环境防护

DEX 加壳、指令抽取、反调试、反注入与环境检测组合使用,提升动态分析门槛,对抗二次打包、内存 dump 与 Hook 框架。

实现要点

  • DEX 加壳 + 方法指令抽取,运行期回填,增加 dump 难度
  • ptrace 自附加、断点扫描、计时检测对抗调试器
  • 模拟器 / ROOT / Xposed / Frida 等风险环境识别
  • SO 段加密、符号混淆与控制流平坦化保护 native 层
示例 · native 层反调试与检测
// 进程自附加,阻止调试器再次 ptrace
ptrace(PTRACE_TRACEME, 0, 0, 0);
// 扫描关键函数是否被写入软断点指令
if (scan_breakpoint(g_key_func)) report_and_exit();
// 检测 Hook 框架与调试连接
if (detect_frida() || detect_xposed() || is_debugger_connected()) {
    report_and_exit();
}
加壳打包指令抽取启动回填反调试环境检测风险阻断

自研 VMP 代码虚拟化保护

把关键方法的 Dalvik 字节码编译成自定义虚拟指令,原指令从 DEX 中移除,由 native 层解释器逐条解释执行。

实现要点

  • 自定义随机指令集,DEX 中只保留 native 声明
  • 解释器在 so 层,Java 层 Hook 框架无法直接触及
  • 仅虚拟化关键方法(授权、签名、核心算法),控制性能损耗
  • 配合反调试与完整性校验,提升还原成本
示例 · 虚拟化后的调用形态
// Java 层:原实现已被虚拟化,只剩 native 声明
public class PaySign {
    public native String sign(String body, long ts);
}

// Native 层:V-Bytecode 由解释器逐条执行
while ((op = fetch(vm)) != OP_EXIT) {
    switch (op) {
        case OP_ADD:  push(vm, pop(vm) + pop(vm)); break;
        case OP_CALL: handle_call(vm); break;
    }
}
标记关键方法字节码转换删除原指令生成 V-Bytecode解释器执行结果返回
当前:加密 dex
Version Release

软件版本发布

所有软件的最新版本、更新日志与安装包,统一在版本发布平台更新维护。点击下方按钮前往查看并获取最新版本。

前往版本发布平台
Contact Us

聊聊你的需求

把要实现的功能、运行环境与时间要求发过来,评估后给出方案与报价

邮箱联系

3270640235@qq.com

服务时间

周一至周五 10:00 - 16:00,工作日当天回复

所在地区

山东省临沂市费县

发送需求邮件

也可先在上方「技术服务领域」确认所需能力,沟通更高效