梆梆加固破解

本文假设你已经使用过梆梆加固,手头至少有个一个通过梆梆加固后的apk

梆梆加固的原理,这里就不仔细描述了,可以将加固后的apk反编译后分析一下,看看梆梆在里面都加了什么内容,我总结一下梆梆加固做了哪些事情:

1、创建.cache目录,/data/data/packageName/.cache/"

2、自定义DexClassLoader:

dexPath: /data/data/packagename/.cache/classes.jar

optimizedDirectory: /data/data/packagename/.cache

libraryPath: /data/data/packagename/lib

3、通过自定义dexclassloader的方式,可以将真正的dex进行隐藏,在运行时动态load该dex,

4、 由于dex在安装时会被转换为odex存放在/data/dalvik-cache目录下,梆梆加固后的app在该目录下的odex文件非真正运行的odex文件。

小结:万变不离其宗,不管梆梆加固怎么伪装,原理上都是通过自定义DexClassLoader来实现的,这也是破解梆梆加固的根本。

BTW:梆梆加固为了防破解还是做了很多工作的,比如笔者之前试着通过用gdb来挂进程,并通过dump内存的方式来破解,但是一挂上进程后,程序就

退出了。

1、hook住dalvik.system.DexFile 中的openDexFileNative方法,用以建立dexpath与DexFileInfo的键值对(存储cookie,即DexOrJar对象的指针)

(openDexFileNative方法为native方法,实现定义在dalvik_system_DexFile.cpp文件中的Dalvik_dalvik_system_DexFile_openDexFileNative方法中)

2、根据dexpath取出DexOrJar对象指针,有了这个对象拿出odex只是时间的问题了,看一下数据结构定义:

typedef struct DexOrJar {
    char*          fileName;
    bool           isDex;
    bool           okayToFree;
    RawDexFile*    pRawDexFile;
    JarFile*       pJarFile;
    u1* pDexMemory;
} DexOrJar;

从上述结构体中可以看出,根据扩展名是dex还是jar来决定内存的组织。有了指针我们就可以将其强转换为DexOrJar对象,其实到此处就已经拿到了odex文件对应的内存内容,下一步需要将该内容导出为smali,然后做dexodex to smali,最终得到smali文件后通过baksmali,就可以还原为dex文件。得到dex文件后,通过dex2jar可以转为java文件,如下图为用棒棒加固后的陌陌导出的dex文件内容:

其实得到了dex和工程资源文件后,下一步我可以自定义一个外壳把陌陌跑起来,下一篇文章准备写这个内容。

时间: 2024-12-22 02:56:45

梆梆加固破解的相关文章

Apk脱壳圣战之---如何脱掉“梆梆加固”的保护壳

一.前言 现如今Android用户的安全意识不是很强,又有一些恶意开发者利用应用的名字吸引眼球,包装一个恶意锁机收费的应用,在用户被骗的安装应用之后,立马手机锁机,需要付费方可解锁.这样的恶意软件是非常让人痛恨的.所以本文就用一个案例来分析如何破解这类应用,获取解锁密码,让被骗的用户可以找回爽快! 二.分析软件锁机原理 本文用的是一款叫做:安卓性能激活.apk,关于样本apk文件后面会给出下载地址,从名字可以看到它肯定不会是一个恶意软件,但是当我们安装的时候,并且激活它的权限之后就完了.下面不多

梆梆SDKs详细分析 - 防界面劫持SDK

前言 前段时间,国外知名的安全公司fireeye发表了一篇病毒分析文章,讲述的主角是一个专门针对手机银行的android手机病毒.文章链接如下:https://www.fireeye.com/blog/threat-research/2015/12/slembunk_an_evolvin.html.这个手机病毒变种甚多,影响广泛,也不乏一些高端技术的应用.其中有一个很有意思的特性,就是它可以劫持手机银行的登录界面,从而盗取受害者的银行账号.密码. 看完fireeye这篇精彩的分析文章之后,我对这

如何做好移动安全(梆梆加固后的APK破解提取dex)

智能手机的普及将移动互联网的发展推到了一个让所有人都为之兴奋的高度,我想即使是以商业眼光见长的“苹果教父”乔布斯也不会料想到短短几年时间,智能手 机就已经成为了所有人离不开的商业产品,各种商业应用层出不穷,人们越来越习惯在手机上选购商品,越来越习惯用手机来购买火车票.电影票,越来越习惯用手 机来完成支付. 但随着而来的是日趋凸显的移动安全问题,据多家安全机构调查显示,智能手机病毒特别是在Android平台上最近几年呈爆发式增长,套餐窃贼.支付宝大盗 等手机病毒则表明手机病毒已经越发智能.越发难以

某梆企业版加固脱壳及抽代码还原方法

某梆加固企业版还是会调用系统的dvmDexFileOpenPartial 接口,因此可以这里添加hook 51df6008-52cd50__unpackedDex.dmp即是dump出来的dex,拖到jeb里,可以看到这些函数都是空的 汇编显示,大片的指令都为nop,这些指令都被抽掉了,执行之前才会还原. 它hook了dvmResolveClass还动态加解密指令 可以看到,它执行了两次___Decrypt_dvmResolveClass,解密完等原始dvmResolveClass执行完后,还会

Android APK加固技术方案调研

@author ASCE1885的 Github 简书 微博 CSDN 最近项目中需要实现自己的APK加固方案,因此就有了这一篇调研报告. 软件安全领域的攻防向来是道高一尺魔高一丈,攻防双方都处于不断的演变和进化过程中,因此软件加固技术需要长期持续的研究与投入. 目前成熟的第三方解决方案 1. 娜迦 针对Android平台下的APP被逆向分析,破解,植入木马病毒后,用户敏感信息泄露或者被钓鱼网站劫持,NAGA Android保护采用防止静态分析与防止动态调试全面防护的思路,在未保护程序运行的不同

5大移动应用加固平台评测

前言:由于安卓APP是基于Java的,所以极容易被破解,一个不经过加固的APP犹如裸奔一样,毫无防备.之前曾有新闻报道,一些专职的APP打包黑产就是专门从各种渠道找到apk,通过各种破解手段将apk文件破解.反编译,然后加入广告.病毒代码,重新打包投入市场,不明真相的用户将带病毒广告的apk下载下来,甚至因此造成利益损失. 对于移动应用开发工程师来说,应用自动化加固无疑是最便捷的一种安全方式了.通过加固可以在一定程度上达到反编译和防止被二次打包的效果.当然,现在网上很多平台都提供加固服务包括ba

Android中的Apk的加固(加壳)原理解析和实现

Android中的Apk的加固(加壳)原理解析和实现 标签: android 2015-09-13 13:58 42287人阅读 评论(49) 收藏 举报 本文章已收录于:  Android知识库  分类: Android(140)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 一.前言 今天又到周末了,憋了好久又要出博客了,今天来介绍一下Android中的如何对Apk进行加固的原理.现阶段.我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个

安卓常见反破解方式

防止APKTool反编译 APKTool 是常用的APK反编译工具,可以说市场上99%的APK都可以用它反编译出来.XML等样式.配置.页面文件都能完全反编译出来. 首先要从APKTool的来历入手,APKTool是GOOGLE提供的APK编译工具,那么完全基于android原生框架构建的APK都是能被轻易破解的,反编译出来的目录都包括lib.res,assets等.通过改变这样的目录框架,就能让APKTool失效. 防止dex2jar反编译 dex2jar 是反编译java代码的利器,APK包

Apk脱壳圣战之---脱掉“360加固”的壳

一.前言 现在主流的加固平台有:梆梆加固,爱加密,360加固,腾讯加固,在之前的一篇文章中介绍了:如何脱掉"爱加密"的壳,现在这里要脱掉另外一个平台的壳:360加固,因为有了之前的脱壳经验,很多基础知识和准备工作这里就不详细介绍了,为了能够脱掉他家的壳,用一个案例来去360平台进行加固,然后进行脱壳.下面就来开始脱壳: 二.分析360加固的原理 首先拿到加固之后的apk,这里为了方便查看内部信息,先不用dex2jar+jd-gui工具进行分析了,直接使用我们之前分析了源码的一个工具:J