當前位置:首頁 > 企業軟件 > 其他 > 正文

談談最近很火的android手機病毒

““XXX(機主姓名)看這個,ht://********XXshenqi.apk”最近一種手機病毒爆發,機主收到這樣的短信,開頭是以發送者手機通訊錄存儲的名字為開頭,然后再讓對方點開一個網頁鏈接。 其““XXX(機主姓名)看這個,ht://********XXshenqi.apk”最近一種手機病毒爆發,機主收到這樣的短信,開頭是以發送者手機通訊錄存儲的名字為開頭,然后再讓對方點開一個網頁鏈接。 其實熟悉android的朋友一看就明白這個病毒原理其實很簡單。下面就來談談這個病毒的原理和防范方法。 病毒的原理有兩步: 1、獲取通訊錄聯系人名稱和號碼。 2、以機主的語氣自動發送短信。 一、通訊錄聯系人的獲取。 Android中的聯系人都保存在一個SQLite數據庫中,有興趣的可以用re文件管理器查看。 它的路徑為:/data/data/com.android.providers.contacts/databases/contacts2.db 一般我們只要關心這幾張表 1.contacts 表 _id :表的ID,主要用于其它表通過contacts 表中的ID可以查到相應的數據。 display_name:? 聯系人名稱 photo_id:頭像的ID,如果沒有設置聯系人頭像,這個字段就為空 times_contacted:通話記錄的次數 last_time_contacted: 最后的通話時間? lookup :是一個持久化的儲存 因為用戶可能會改名子 但是它改不了lookup 2.data表 raw_contact_id:通過raw_contact_id可以找到 raw_contact表中相對的數據。 data1 到 data15? 這里保存著聯系人的信息 聯系人名稱 聯系人電話號碼? 電子郵件? 備注 等等。 3.raw_contact表 version :版本號,用于監聽變化 deleted :刪除標志, 0為默認 1 表示這行數據已經刪除 display_name : 聯系人名稱 last_time_contacts : 最后聯系的時間 <span style="font-size:14px;">/**得到手機通訊錄聯系人信息**/ 
   private void getPhoneContacts() { 
ContentResolver resolver = mContext.getContentResolver(); 
 
// 獲取手機聯系人 
Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,PHONES_PROJECTION, null, null, null); 
 
 
if (phoneCursor != null) { 
    while (phoneCursor.moveToNext()) { 
 
    //得到手機號碼 
    String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX); 
    //當手機號碼為空的或者為空字段 跳過當前循環 
    if (TextUtils.isEmpty(phoneNumber)) 
        continue; 
     
    //得到聯系人名稱 
    String contactName = phoneCursor.getString(PHONES_DISPLAY_NAME_INDEX); 
     
    //得到聯系人ID 
    Long contactid = phoneCursor.getLong(PHONES_CONTACT_ID_INDEX); 
 
    //得到聯系人頭像ID 
    Long photoid = phoneCursor.getLong(PHONES_PHOTO_ID_INDEX); 
     
    //得到聯系人頭像Bitamp 
    Bitmap contactPhoto = null; 
 
    //photoid 大于0 表示聯系人有頭像 如果沒有給此人設置頭像則給他一個默認的 
    if(photoid > 0 ) { 
        Uri uri =ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,contactid); 
        InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(resolver, uri); 
        contactPhoto = BitmapFactory.decodeStream(input); 
    }else { 
        contactPhoto = BitmapFactory.decodeResource(getResources(), R.drawable.contact_photo); 
    } 
     
    mContactsName.add(contactName); 
    mContactsNumber.add(phoneNumber); 
    mContactsPhonto.add(contactPhoto); 
    } 
 
    phoneCursor.close(); 

   }  </span> <span style="font-size:14px;">/**得到手機SIM卡聯系人人信息**/ 
   private void getSIMContacts() { 
ContentResolver resolver = mContext.getContentResolver(); 
// 獲取Sims卡聯系人 
Uri uri = Uri.parse("content://icc/adn"); 
Cursor phoneCursor = resolver.query(uri, PHONES_PROJECTION, null, null, 
    null); 
 
if (phoneCursor != null) { 
    while (phoneCursor.moveToNext()) { 
 
    // 得到手機號碼 
    String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX); 
    // 當手機號碼為空的或者為空字段 跳過當前循環 
    if (TextUtils.isEmpty(phoneNumber)) 
        continue; 
    // 得到聯系人名稱 
    String contactName = phoneCursor 
        .getString(PHONES_DISPLAY_NAME_INDEX); 
 
    //Sim卡中沒有聯系人頭像 
     
    mContactsName.add(contactName); 
    mContactsNumber.add(phoneNumber); 
    } 
 
    phoneCursor.close(); 

   }</span> 二、自動發送信息 下面是自動發送短信的代碼,給了一個EditText框來編輯短信內容,一個發送按鈕來用來發送短信,一個清除按鈕用來清除剛剛編輯的EditText。當然,實際中病毒不會有這些界面的,它在獲取了聯系人后就直接用上面得到的姓名號碼等信息編輯短信,然后發送出去。 <span style="font-size:14px;">public class SMSActivity extends Activity { 
    private EditText messageEditText; 
    private Button sendBtn; 
    private Button clearBtn; 
 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.sms); 
        messageEditText = (EditText) findViewById(R.id.messageedittext); 
        sendBtn = (Button) findViewById(R.id.sendbtn); 
        clearBtn = (Button) findViewById(R.id.clearbtn); 
 
        sendBtn.setOnClickListener(new OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                // 接收電話號碼數據 
                Bundle bundle = getIntent().getExtras(); 
                String phoneNum = bundle.getString("phoneNum"); 
                // 獲取發送的內容 
                String message = messageEditText.getText().toString(); 
                if (phoneNum == null || "".equals(phoneNum)) { 
                    Toast.makeText(SMSActivity.this, 
                            "Please input SMS Content!", Toast.LENGTH_SHORT) 
                            .show(); 
                    return; 
                } 
                // 發送短信 
                sendSMS(phoneNum, message); 
            } 
        }); 
 
        // 置空message輸入框 
        clearBtn.setOnClickListener(new OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                messageEditText.setText(""); 
            } 
        }); 
    } 
 
    private void sendSMS(String phoneNum, String message) { 
        //初始化發短信SmsManager類 
        SmsManager smsManager = SmsManager.getDefault(); 
        PendingIntent pi = PendingIntent.getActivity(this, 0, new Intent(this, 
                VoiceActivity.class), 0); 
        //如果短信內容長度超過70則分為若干條發 
        if (message.length() > 70) { 
            ArrayList<String> msgs = smsManager.divideMessage(message); 
            for (String msg : msgs) { 
                smsManager.sendTextMessage(phoneNum, null, msg, pi, null); 
            } 
        } else { 
            smsManager.sendTextMessage(phoneNum, null, message, pi, null); 
        } 
        Toast.makeText(this, "Send Message Success!", Toast.LENGTH_SHORT) 
                .show(); 
    } 
}  </span> 三、病毒防范 看到這里你會發現你的隱私可以隨便被人窺探,是的,當你使用智能手機就不存在什么隱私了,現在隨便一個app都會獲取你的隱私數據。不是你不會被黑,只是你沒有被黑的價值···· 防范病毒最好的方法就是不要隨便裝來路不明的軟件,不要輕易給軟件root權限,這樣可以保證你的數據只在正規的大公司手里,然后你只要祈禱你的數據不要哪天被他們泄露了就好···· 看下面,我的手機上就有16款軟件有權限發短信,30款有權限訪問聯系人和通話記錄數據,甚至有15款可以監聽手機通話!!算了,反正我就算被監聽了也沒什么價值= =!
友情鏈接
異常 - Exception - Copyright © 2014 - 2014 - 開發異常網 - 鄂ICP備14001750號 - 網站地圖
乐客彩彩票 中西区 | 房山区 | 论坛 | 酉阳 | 永顺县 | 林口县 | 合川市 | 石首市 | 新巴尔虎右旗 | 虞城县 | 凤阳县 | 云浮市 | 新巴尔虎右旗 | 蓝田县 | 县级市 | 浮山县 | 临安市 | 平谷区 | 滨州市 | 鸡西市 | 烟台市 | 微山县 | 乌拉特前旗 | 睢宁县 | 新竹市 | 元江 | 陈巴尔虎旗 | 鲁甸县 | 岗巴县 | 全椒县 | 安图县 | 韩城市 | 启东市 | 浮梁县 | 仙居县 | 青阳县 | 科技 | 城口县 | 武城县 | 原阳县 | 平山县 | 定西市 | 洮南市 | 鲁甸县 | 富民县 | 梁平县 | 临城县 | 普安县 | 乌拉特后旗 | 三明市 | 临颍县 | 哈尔滨市 | 安阳县 | 綦江县 | 苏尼特右旗 | 桑植县 | 铜梁县 | 江永县 | 广宗县 | 阜阳市 | 屏南县 | 若羌县 | 吉安市 | 柳河县 | 丰城市 | 延寿县 | 鹤山市 | 湛江市 | 军事 | 乐山市 | 潜山县 | 房产 | 石景山区 | 万州区 | 麟游县 | 呼和浩特市 | 淅川县 | 邵阳市 | 南康市 | 崇义县 | 英超 | 茌平县 | 曲周县 | 东方市 | 崇义县 | 聂荣县 | 新营市 | 龙泉市 | 揭西县 | 仁布县 | 开阳县 | 凤庆县 | 永登县 | 赤峰市 | 临城县 | 马山县 | 宁国市 | 迁西县 | 册亨县 | 扬州市 | 城固县 | 林州市 | 三穗县 | 门头沟区 | 康平县 | 桃源县 | 德庆县 | 府谷县 | 雅江县 | 名山县 | 泌阳县 | 临泉县 | 集安市 | 固阳县 | 达孜县 | 万年县 | 富平县 | 万载县 | 全州县 | 灵丘县 | 潮安县 | 布拖县 | 六枝特区 | 措勤县 | 乌拉特中旗 | 彭阳县 | 文安县 | 东乌珠穆沁旗 | 河曲县 | 海伦市 | 南涧 | 嘉兴市 | 左云县 | 南宫市 | 那曲县 | 乐清市 | 建始县 | 宁武县 | 博白县 | 错那县 | 山西省 | 南阳市 | 渝北区 | 海口市 | 遂平县 | 界首市 | 霸州市 | 金昌市 | 新宁县 | 图们市 | 土默特左旗 | 阿克陶县 | 呼伦贝尔市 | 体育 | 白山市 | 阳朔县 | 子洲县 | 金湖县 | 龙川县 | 普宁市 | 台前县 | 尼木县 | 普兰县 | 屯昌县 | 隆安县 | 无棣县 | 合肥市 | 玛曲县 | 弋阳县 | 轮台县 | 石城县 | 平武县 | 伊宁市 | 鄄城县 | 凤翔县 | 区。 | 正阳县 | 色达县 | 西和县 | 乃东县 | 清远市 | 郴州市 | 黑河市 | 积石山 | 黔西 | 新宁县 | 林口县 | 房山区 | 平顶山市 | 文水县 | 南平市 | 淅川县 | 富蕴县 | 苏尼特左旗 | 梁平县 | 治多县 | 青海省 | 旺苍县 | 都安 | 汨罗市 | 浏阳市 | 钟祥市 | 商都县 | 剑阁县 | 呼伦贝尔市 | 高雄市 | 泸溪县 | 平利县 | 手游 | 根河市 | 禹城市 | 江安县 | 合江县 | 宜州市 | 长葛市 | 宁海县 | 洛南县 | 天门市 | 丘北县 | 什邡市 | 铜山县 | 林周县 | 长海县 | 营山县 | 科技 | 灌南县 | 平原县 | 资兴市 | 剑河县 | 迭部县 | 大方县 | 加查县 | 叙永县 | 威海市 | 文水县 | 邻水 | 临沂市 | 绥化市 | 织金县 | 辉南县 | 岳阳市 | 库尔勒市 | 肥东县 | 安塞县 | 宝清县 | 井冈山市 | 崇阳县 | 惠来县 | 台东市 | 新源县 | 三台县 |