百度脱壳的一点尝试--人肉修复

本文介绍了作者在尝试脱壳百度apk过程中遇到的问题和解决方案,包括加壳前后对比、使用IDA远程调试的尝试以及采用DD大法进行内存dump。在DD大法中,作者详细讲述了如何修复dex头中的关键数据,包括offset和DataItem,以及在修复过程中遇到的挑战和难点,如onCreate函数的insns[]抹除问题。

前言

最近把研究dex的脱壳,顺便又是再次熟悉了一下dex的标准格式以及dex被解析后在内存中所存在的格式。自己上官网加了一个壳子,发现跑不起来。于是求助几个基友,最后样本是海总给的apk,很全面,带有Activity、Application、BroadcastReceiver、ContentProvider、以及Service。

0x1 加壳前后对比

这里写图片描述

加固后的文件列表变化:
新增一个so文件以及一个jar包:
libbaiduprotect.so
baiduprotect.jar
修改:
META-INF文件夹
AndroidManifest.xml
Classes.dex

0x2 IDA尝试

用IDA来远程调试,直接跑挂了。看来有反调试。
从壳入口Java层找到如下语句:

 static {
        if(!Debug.isDebuggerConnected()) {
            String v0 = Build.CPU_ABI;
            if(v0 != null && (v0.startsWith("x86"))) {
                StubApplication.loadX86Library();
               
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值