简单的对抗批量重打包的方法

图标:ic_launcher

应用名:呼死你电话短信轰炸

样本MD5:bfc753600e7591373a85634bae519f31

来源:日常样本分析

这个样本的主要功能是锁定手机屏幕,覆盖屏幕所有位置,包括返回、Home等按键,要求用户联系指定的QQ来获取解锁码来解锁手机:

Locker

 

此时的解决方法就是手机连接到电脑,用电脑上的手机辅助软件,如豌豆夹、应用宝之类的软件来卸载此病毒。

下面说下这个样本的两个特点:

一、顽皮

反编译

啦啦啦

 

分析中可以看出作者确实对对抗反编译有一些方法,并且这些方法会导致非最新版的jeb、dex2jar、apktool等工具无法得到关键代码,并且部分代码反编译错误,但是这些反编译软件的bug在最新的版本中都已经修复了这些问题。

上面两幅图是一个类中的代码,旧版反编译软件一般只能得到上面的代码,下面的代码要新版反编译软件才可以得到。

二、“两个”包名

遇见这种样本,一般我们会把手机连上电脑,用”adb uninstall PackageName”来卸载对应的样本,但发现无法卸载,分析后原因如下:

此样本用不同的反编译工具会得到不同的包名:

apktool – com.qqmagic

jeb – com.qq1031606149

实际上apktool得到的包名是假的,两个工具获取包名的方式不一样:

apktool:从apk中resources.arsc中获取包名,如下图:com.qqmagic

QQ截图20150518181811

 

jeb是从manifest.xml中获取的包名,这也是真正的包名

理论上无人为改动的话上面两个值应该是一致的。

三、简单的反重打包方法

改不了了吧

 

上图中“改不了吧,呵呵”看起来很奇怪,其实他说的是重打包。

平时分析样本的过程中会为了证明一些判断的正确性,或者改样本的一些功能需要用到apktool反编译apk,改后再重打包。

这个样本可以用最新的apktool得到所有的反编译代码,但重打包后安装会运行出错。

样本防止反编译的方法大多都是校验自身的签名是否被改变,但并未发现这些校验代码,分析发现问题如下:

QQ截图20150518175726

 

找不到com.qqmagic.MainActivity,想必大家已经明白了,是因为解包的时候apktool得到了错误的包名,回编译的时候把错误的包名编译到了Manifest.xml中,系统在取主Activity的时候找不到才出现了错误。

解决方式也很简单,把正确的包名添入就可以回编译了。

这种反回编译方法对于机器批量重打包会有效果,但对于人工分析效果不大。

该类样本现已可查杀。

 

 

此条目发表在安全分类目录。将固定链接加入收藏夹。