笔者建议初学者使用第二套方案,安装过程很简单,到微软官方站下载VS2008,一路“NEXT”安装即可。当使用熟练后可以尝试搭建自己个性的开发环境。是不是被上面的开发环境吓到了,要么是配置困难,要么是体积巨大,难道就没有配置简单体积又小的么?答案是“有!”不过要使用ARM汇编语言编程,并且微软并没有公开WINDOWS下ARM汇编编程指令语法。也就是说既不知道语法格式,又没有任何开发文档。不过还是有办法的,早有高手通过逆向工程等反汇编手段对编译好的C++进行分析,再结合对ARM编译器的分析,摸索和创造出了一些方法和技巧。至于汇编环境的大小,呵呵,可能会让您大跌眼镜。编译器212k、链接器612k,再加上在SDK中精简提取出的头文件和库文件,一共10M以内。确实很雷人。这大概就是高手与初学者的区别吧。
闲话少叙,马上开始我们第一个 Windows Mobile病毒的开发吧。
点击完成后就可以编写代码了。这里的代码很简单,在入口函数中调用一下MessageBox函数即可,函数的第2和第4个产生分别是窗口的内容和标题。
代码:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
MessageBox(NULL, TEXT("Hacked By GuiGu."),TEXT("FUCK!!!"), MB_OK);
return 0;
}
编写号后按F5调试运行,VS2008会将编译好的程序自动部署在模拟器上,并开始运行,运行起来的效果如下:
这个程序很简单,知识弹出了一个窗口,点击“ok”即可关闭,并不能给用户带来什么破坏。下面稍加改动即可实现一个恶意流氓程序了。
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
while (1)
{
MessageBox(NULL, TEXT("Hacked By GuiGu."),TEXT("FUCK!!!"), MB_OK);
}
return 0;
}
使用while循环让窗口不断循环,如滔滔江水,绵绵不绝。呵呵。运行看看,是不是对话框已经关不掉了呢。如果重启手机这个对话框不就没了么?如何让程序自动运行呢?在Windows Mobile 6 SDK的实例中有这样一段叙述:
// The executable must be named autorun.exe and placed in a processor
// specific directory (2577) on the MMC card.
// When the card is inserted, the application will be launched with
// "install" as its command line. When the card is removed, the application
// will be launched with "uninstall" as its command line.
意思就是说如果将程序命名为autorun.exe,并将程序拷贝到手机存储卡根目录下名为2577的文件夹里,当手机加载智能卡的时候就会自动运行程序。这样就可以实现一个简单的开机运行的流氓软件了。