本帖最后由 PJ头狼 于 2016-12-20 16:03 编辑
这个样本之前有大神已经大致的分析结果了,不过没有给出详细的分析过程:一款比较顽固的手机锁屏木马 分析
今天自己对这个样本也做了分析,给出了分析步骤,希望可以给没有的基础的一些分析思路,应该不算是重贴吧。。。
样本在:一款比较顽固的手机锁屏木马
这是一个叫“锁机生成器”的坑,运行后如下:
很明显地要求root权限,算是黑吃黑吧,输入信息后,点击确定,给root权限,重启了。。。。结果锁屏了。。。。
现在来对这个锁屏apk进行分析
首先打算将apk放到JEB上进行反编译,结果出错,反编译不了;那就尝试解压apk拿到class.dex,成功从dex获得java源码:
两个包的源码是相同的,这里由于没法对整个apk进行反编译,想尝试用Android Killer来得到apk的manifest.xml也是不行的,所以没法得到apk的总体情况,不过不影响对样本的分析,从源码也可以看到,没有进行混淆,现在直接对com.binge.suoji下的MainActivity这个类进行分析,锁定onCreate():
其中重要的是按钮的监听事件,以及注释的那个函数的调用,双击进入看一下:
这个d()方法就是将asset目录下的ijm-x86.so拷贝到/sdcard/binge.1,这里是包中有包,伪装为爱加密的so,下边来看按钮监听事件完成了那些操作:
接着就是rootshell()了:
执行了一系列命令!
mount -o rw,remount /system //重新将/system挂载为可读写 mount -o rw,remount /system/app //同上 cp /sdcard/binge.l /system/app/ //将binge.1复制到/system/spp chmod 777 /system/app/binge.l //该文件权限 mv /system/app/binge.l/system/app/binge.apk //改为apk chmod 644 /system/app/binge.apk //又改权限。。。。 reboot //重启! 从这些命令可以看出so其实就是一个apk,重载/system的只读属性,将apk写到/system/app,成为系统apk,然后重启啦。
现在便是对ijm-x86.so这个apk进行分析啦,照样没法对整个apk进行反编译,解压取出clase.dex进行分析:
继续锁定MainActivity下的onCreate():
这里实现的是启动service:nue.xin.lockphone.nuexin,看一下这个service的onCreate():
现在就是这个布局的按钮监听事件所做的响应操作了:
可以看出这个解锁密码很简单就可以得到,就是20020219了。
之后就是对残余apk进行清理了,这不只是删除在界面中的“锁机生成器”就得了,还需要将为写入到/system/app下的锁屏apk清除掉,用adb来删除,到/system/app目录下
不过通常系统重启,/system又变为只读属性:
所以还重新挂载,改为可读写,再进行清除:
|