Phần mềm sẽ thu thập tin nhắn gửi đến tin nhắn gửi đi, cuộc gọi đến cuộc gọi đi và danh bạ điện thoại. Sau đó sẽ gửi những thông tin này qua mail đến người nhận. Đồ Án nghiên cứu phát triển một phần mềm gián điệp trên điện thoại với mục đích để nhận thức rõ hơn về sự nguy hiểm của loại phần mềm này. Qua đó nâng cao ý thức cảnh giác của người dùng điện thoại Android.
Đồ án tốt nghiệp đại học Contents LỜI CẢM ƠN LỜI NÓI ĐẦU CHƯƠNG 1:TỔNG QUAN VỀ ANDROID 1.1 Lịch sử phát triển Android 1.2 Kiến trúc Android 1.2.1 Linux Kernel 1.2.2 Library Android Runtime 1.2.3 Application Framework 10 1.2.4 Application 11 1.3 Các thành phần Android 11 1.3.1 Thành phần chương trình Android 11 1.3.2 Các thành phần giao diện Widget 19 1.3.3 Bắt kiện Android 21 1.3.4 Menu 23 1.3.5 Cở sở liệu Android 24 1.3.6 Broadcast receivers 27 1.3.7 Thread,Asynctask,Handle 28 1.3.8 Service 30 CHƯƠNG 2:PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH ANDROID ĐỌC TRỘM TIN NHẮN NGƯỜI DÙNG 33 2.1 Phân tích 33 2.2 Thiết Kế 34 2.2.1 Biểu đồ phân cấp chức BPC 34 2.2.2 Thiết kế sở liệu 35 2.2.3 Thiết kế giao diện 36 2.2.4 Kết chạy chương trình 37 2.2.5 Các hướng cài đặt phát tán chương trình 38 KẾT LUẬN 40 Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page Đồ án tốt nghiệp đại học Kết thu 40 Hướng phát triển đề tài 40 TÀI LIỆU THAM KHẢO 41 DANH MỤC HÌNH ẢNH Hình 1.1:Sơ đồ kiến trúc Android Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page Đồ án tốt nghiệp đại học Hình 1.2:Quan hệ Activity Layout 12 Hình 1.3:Gửi Intent từ Activity1 đến Activity2 13 Hình 1.4:Những app độc lập thiết bị 14 Hình 1.5:Truyền thơng Intent hai app 14 Hình 1.6:Minh họa Action 15 Hình 1.7:Gửi Intent đến Android 15 Hình 1.8:Android nhận Intent tìm activity có ACTION_SEND 16 Hình 1.9:Android gửi Intent đến activity có ACTION_SEND 16 Hình 1.10:Android đưa lựa chọn có nhiều Activity có ACTION_SEND 17 Hình 1.11:Android gửi Intent đến Activity 17 Hình 1.12:Vòng đời Activity 18 Hình 1.13:Vị trí Manifest file 19 Hình 1.14:Adapter ListView 19 Hình 1.15:Mơ hình ViewGroup Android 20 Hình 1.16:Option Menu 23 Hình 1.17:Context Menu 24 Hình 1.18:Popup Menu 24 Hình 1.19:Vị trí database ứng dụng 25 Hình 1.20:Các phương thức lớp SQLiteOpenHelper 26 Hình 1.21:Các phương thức lớp SQLiteDatabase 26 Hình 1.22:Boadcast Receiver nhận tín hiệu từ Android gửi lệnh tới Activity 27 Hình 1.23:Mơ hình BoadcastReceive 28 Hình 1.24:Luồng luồng phụ Android 29 Hình 1.25:Vòng đời Service 31 Hình 2.1:Hệ thống gián điệp cơng ty Việt Hồng 34 Hình 2.2:Biểu đồ phân cấp chức 35 Hình 2.3:Giao diện nhập thông tin 36 Hình 2.4:Icon chương trình 37 Hình 2.5:Icon chương trình thiết bị 37 Hình 2.6:Thơng tin gián điệp gửi 38 Hình 2.7:Nội dung thơng tin gián điệp thu 38 Hình 2.8:File apk chương trình upload lên Drive 39 Hình 2.9:Sử dụng trình duyệt để tải file cài đặt 39 Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page Đồ án tốt nghiệp đại học LỜI CẢM ƠN Sau khoảng thời gian hai tháng tìm hiểu lập trình ứng dụng thiết bị chạy hệ điều hành Android em xây dựng thành cơng “ứng dụng bí mật theo dõi hoạt động người dùng điện thoại chạy Android “,qua có hiểu biết kinh nghiệm ban đầu để vào giới lập trình viên phát triển ứng dụng Android Để đạt thành cơng ban đầu chắn khơng thể em làm được,mà phải có nhiều giúp đỡ bảo thầy cô giáo khoa CNTT đại học Vinh Em xin chân thành cảm ơn cô Ths Phạm Trà My người trực tiếp hướng dẫn em làm đồ án này,em xin chân thành cảm ơn thầy cô khoa CNTT đại học Vinh nhiệt tình giảng dạy truyền đạt kiến thức quý báu,bổ ích suốt trình năm em học Do thời gian lực hạn chế nên cố gắng đồ án em thực tồn số thiếu sót,em mong nhận góp ý từ phía thầy cô quý độc giả qua địa Email : hieupn89@gmail.com, em xin chân thành cảm ơn Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page Đồ án tốt nghiệp đại học LỜI NÓI ĐẦU Trong năm gần thấy ngành cơng nghiệp thiết bị di động phát triển rực rỡ hết.Sỡ dĩ phát triển lợi ích mà đem lại cho sống người vô to lớn,chẳng hạn với thiết bị nhỏ gọn smarphone mang tay hàng ngàn sách số hóa đọc lúc nơi cách vô tiện lợi mà không cần phải đến thư viện hay mang theo sách cồng kềnh.Rồi với Smartphone nghe nhạc, xem phim,nghe đài FM ,ghi công việc , truy cập internet làm hàng nghàn tác vụ khác cách vơ nhanh chóng tiện lợi.Rõ ràng phát triển ngành công nghiệp thiết bị di động điều tất yếu chắn tương lai phát triển mãnh mẽ sâu rộng vào đời sống người nhiều Đi song song với phát triển ngành công nghiệp thiết bị di động thấy ngành phát triển phần mềm lĩnh vực phát triển phần mềm cho thiết bị di động theo mà phát triển mạnh,đặc biệt quốc gia trọng đến gia công phần mềm Việt Nam lĩnh vực trở nên khát nguồn nhân lực hết.Vì với sinh viên ngành cơng nghệ thơng tin hướng để phát triển nghiệp,đáp ứng nhu cầu xã hội,tạo công ăn việc làm cho thân Chính nhận định nên em chọn đề tài để thực đồ án “ tìm hiểu phát triển ứng dụng android ,xây dựng ứng dụng bí mật theo dõi điện thoại người dùng “ với mục đích tìm hiểu cách xây dựng ứng dụng thiết bị di động chạy android,và thực hành xây dựng ứng dụng thực tế Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page Đồ án tốt nghiệp đại học CHƯƠNG 1:TỔNG QUAN VỀ ANDROID 1.1 Lịch sử phát triển Android Android hệ điều hành dựa tảng Linux,được thiết kế dành cho thiết bị di động có hình cảm ứng điện thoại thơng minh máy tính bảng.Ban đầu Android phát triển tổng công ty Android,với hỗ trợ tài từ Google sau Google mua lại vào năm 2005 Chính mã nguồn mở Android với tính khơng ràng buộc nhiều cho phép nhà phát triển thiết bị di động lập trình viên điều chỉnh phân phối Android cách tự Ngoài ra, Android có cộng đồng lập trình viên đơng đảo chuyên viết ứng dụng để mở rộng chức thiết bị Cho đến tại, Google bán 200.000 thiết bị Android ngày Play Store họ vượt mức 90.000 ứng dụng Nhờ yếu tố mở, dễ dàng tinh chỉnh phát triển nhanh chóng khiến hệ điều hành dần trở nên phổ biến, kết thiết kế để chạy điện thoại máy tính bảng Android xuất smart TV, máy chơi game số thiết bị điện tử khác Android bắt đầu với beta vào tháng 11 năm 2007 phiên thương mại đầu tiên, Android 1.0, phát hành vào tháng năm 2008 Kể từ tháng năm 2009, phiên Android phát triển, đặt tên theo chủ đề bánh kẹo phát hành theo thứ tự bảng chữ cái: Cupcake (bánh cupcake), Donut (bánh vòng), Eclair (bánh Eclair), Froyo (ya-ua lạnh), Gingerbread (bánh gừng), Honeycomb (mật ong), Ice Cream Sandwich (bánh kẹp kem), Jelly Bean (kẹo dẻo), Kitkat (bánh Kitkat) phiên Lollipop (kẹo mút) Kỷ nguyên Android thức bắt đầu vào ngày 22 tháng 10 năm 2008, điện thoại T-Mobile G1 bắt đầu bán Mỹ Vào thời gian đầu, nhiều tính bị thiếu sót như: bàn phím ảo, cảm ứng đa điểm tính mua ứng dụng chưa xuất Tuy nhiên, số tính giao diện đặc sản hệ điều hành khởi nguồn từ G1 trở thành yếu tố thiếu Android sau này: Thanh thông báo vuốt từ xuống (Notification bar): Ngay từ ngày Android, thông báo đánh dấu bước quan trọng mà trước chưa có hệ điều hành làm - đưa tất thông tin tin nhắn, tin thoại gọi nhỡ với thao tác vuốt xuống Apple học tập tính đưa vào hệ điều hành iOS sau năm kể từ phiên iOS mắt Thanh notification Android sử dụng đến cải tiến nhiều so với phiên Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page Đồ án tốt nghiệp đại học Màn hình (Home Screen) widget: Một điểm khác biệt Android so với hệ điều hành khác phần hình Bên cạnh việc thay đổi hình nền, Android cho phép người dùng tùy biến hình với nhiều widgets kèm theo, chẳng hạn đồng hồ, lịch, trình nghe nhạc, đưa icon ứng dụng chí can thiệp sâu để thay đổi tồn giao diện hình Home Screen Đồng tích hợp chặt chẽ với Gmail: Vào thời điểm điện thoại G1 bán ra, Gmail hỗ trợ giao thức POP IMAP để tích hợp với trình email di động Tuy nhiên, lúc khơng có sản phẩm hỗ trợ hồn tồn tính ưu việt Gmail Mãi Android 1.0 xuất hiện, vấn đề khắc phục G1 trở thành điện thoại mang lại trải nghiệm Gmail tốt thị trường lúc Kho ứng dụng Android Market: Thật khó tưởng tượng smartphone mà khơng có kho ứng dụng, vào thời điểm Android mắt, gần khơng có điện thoại có kho ứng dụng tích hợp Android mở đầu cách mạng ứng dụng di động Android Market G1 thời có ứng dụng giao diện đơn giản, tính mua ứng dụng phiên chưa xuất năm sau - vấn đề dễ hiểu thời điểm Android khai sinh nên thứ thô sơ Giao diện: Google phát triển giao diện Android phiên 1.0 với hỗ trợ từ TAT, viết tắt từ The Astonishing Tribe, công ty thiết kế tương tác Thụy Điển Dấu ấn rõ ràng mà TAT để lại phiên Android từ phiên 1.0 2.2 widget đồng hồ kim nằm Home Screen đơn giản đẹp mắt Cơng ty sau ngừng hợp tác với Google bị RIM mua lại để tập trung phát triển sản phẩm Blackberry tảng BBX sau Vào cuối năm 2008,Google cho phát hành thiết bị cầm tay gọi Android Dev Phone chạy ứng dụng Android mà không bị ràng buộc vào nhà cung cấp mạng điện thoại di động.Mục tiêu thiết bị cho phép nhà phát triển thực thí nghiệm thiết bị thực chạy hệ điều hành Android mà ký hợp đồng nào.Vào khoảng thời gian Google cho phát hành phiên vá lỗi 1.1 hệ điều hành này.Ở hai phiên 1.0 1.1 Android chưa hỗ trợ soft-keyboard mà đòi hỏi thiết bị phải sử dụng bàn phím vật lý.Android cố định vấn đề cách phát hành SDK 1.5 vào tháng năm 2009,cùng với số tính khác.Chẳng hạn nâng cao khả ghi âm truyền thông,vật dụng live folder 1.2 Kiến trúc Android Sau mơ hình tổng qt thành phần hệ điều hành Android: Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page Đồ án tốt nghiệp đại học Hình 1.1:Sơ đồ kiến trúc Android Chúng ta sâu chút thành phần sau , theo thứ tự từ lên : 1.2.1 Linux Kernel Android hệ điều hành sử dụng nhân Linux, khơng phải nhân để chạy hệ điều hành Linux thiết bị chạy Linux Có nhiều mã lập trình Android sử dụng riêng so với hệ thống Linux, ví dụ kernel Google’s Android sử dụng có chế độ làm việc riêng Hệ thống lập trình OEMs ngơn ngữ chủ đạo để viết nên hệ thống cho Kernel, phương tiện dùng để lập trình hệ thống driver cho phần cứng khác cho phiên khác Android Kernel Điều quan trọng Kernel kiểm soát điều khiển phần cứng, hiểu cách đơn giản, Kernel mối nối “thông dịch viên” phần cứng phần mềm Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page Đồ án tốt nghiệp đại học Khi phần mềm cần phần cứng làm việc đó, gửi yêu cần tới vi xử lý nói “các bạn nói gì, chúng tơi đáp ứng đó” Từ trình điều khiển độ sáng hình, mức âm lượng, hiệu suất tốc độ thiết bị, điều khiển xung nhịp CPU Ngay việc di chuyển trỏ chuột hay ngón tay lướt hình cảm ứng… tất kiểm sốt kernel Đơi hệ thống Kernel khơng nhận thơng tin từ những dòng lệnh đưa vào từ hình cảm ứng, nhận tín hiệu từ thiết bị khác cách hay cách khác, Bluetooth chẳng hạn Nghe phức tạp, nên tóm gọn sau: Kernel gọi hạt nhân hệ điều hành Android Đáp ứng lại hoạt động bạn smartphone, cầu nối phần mềm phần cứng(ví dụ: tăng âm lượng phím cứng, khóa hình nút cứng, chạm vào hình) Giúp Android hiểu kết nối vật lý bên ngồi ( ví dụ : bạn cắm cáp kết nối với máy tính ,cắm chuột, usb, hay bàn phím) Do có nhiều smartphone khơng sử dụng USB OTG kernel chưa hỗ trợ bạn làm việc Các thành phần nhân Linux: Display Driver :điều khiển việc thị lên thu nhận điều khiển người dùng lên hình Camera Driver : Điều khiển hoạt động camera,nhận luồng liệu từ camera trả Bluetooth Diver : Điều khiển thiết bị thu phát sóng Bluetooth USB Driver : Quản lý hoạt động cổng giao tiếp USB Keypad Driver : Điều khiển bàn phím Wifi Driver : Chịu trách nhiệm việc thu phát sóng wifi Audio Diver : Điều khiển thu phát âm thanh,giải mã tín hiệu dạng audio thành tín hiệu số ngược lại Power Management : Giám sát việc tiêu thụ điện Flash Memory Driver : Giám sát việc đọc ghi lên thiết bị nhớ thẻ SD,Flash Binder IPC Driver : Chịu trách nhiệm việc kết nối liên lạc với mạng vô tuyến CDMA,GSM,3G,4G để đảm bảo chức truyền thông thực 1.2.2 Library Android Runtime Phần đầu nhân Linux có tập hợp thư viện bao gồm mã nguồn mở trình duyệt web WebKit, thư viện phổ biến, sở liệu SQLite coi kho lưu trữ hữu ích cho việc lưu trữ chia sẻ liệu ứng dụng, thư viện để chạy Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page Đồ án tốt nghiệp đại học ứng dụng ghi âm video, SSL thư viện chịu trách nhiệm an ninh Internet, vv ,nói chung thư viện tập hợp thành số nhóm : Thư viện hệ thống libc : thư viện dựa chuẩn C,được sử dụng hệ điều hành Thư viện Media : có nhiều code hỗ trỡ việc phát ghi loại định dạng âm thanh,hình ảnh,video động Thư viện web :đây thành phần để xem nội dung web,được sử dụng để xây dựng phần mềm duyệt web để ứng dụng khác nhúng vào.Nó mạnh,hỗ trợ nhiều công nghệ mạnh mẽ HTML 5,JavaScript,CSS,DOM,AJAX… Surface Manage : quản lý thị 2D 3D SGL :công nghệ 2D SQLite : quản lý database ứng dụng Free Type : dùng cho thị ảnh,font SSL :tầng thiết lập giao dịch an toàn ứng dụng cổng (socket) Open GL/EL : hỗ trợ thư viện tùy chọn 3D tĩnh động Adroid Runtime phần thứ ba kiến trúc có sẵn lớp thứ hai từ lên Phần cung cấp thành phần quan trọng gọi Dalvik (có thể thay đổi theo phiên bản) máy ảo loại máy Java thiết kế đặc biệt tối ưu hóa cho Android Máy ảo Dalvik sử dụng tính cốt lõi Linux quản lý nhớ đa luồng, mà nội ngôn ngữ Java Máy ảo Dalvik cho phép tất ứng dụng Android chạy tiến trình riêng nó, với trường hợp riêng máy ảo Dalvik Android Runtime cung cấp tập hợp thư viện lõi cho phép nhà phát triển ứng dụng Android sử dụng ngơn ngữ lập trình Java để viết ứng dụng 1.2.3 Application Framework Activity Manager - quản lý vòng đời ứng dụng Windows Manager - quản lý form ứng dụng Content Providers - cho phép ứng dụng truy cập liệu từ ứng dụng khác để chia sẻ liệu riêng ứng dụng View UI - để xây dựng layout ứng dụng bao gồm: list view, text field, button, dialog, form … Resource Manager - cung cấp cách thức truy cập đến non-code resources asset, graphic, image, music, video … Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 10 Đồ án tốt nghiệp đại học 1.3.6 Broadcast receivers Broadcast receivers khái niệm quan trọng lập trình Android,chúng ta hiểu dùng để lắng nghe kiện xảy hệ thống,ví dụ tạo ứng dụng nghe nhạc mà bạn nghe nhạc qua tai phone mà bạn rút tai phone chương trình nghe nhạc rơi vào trạng thái tạm dừng.Như kiện hệ thống việc tai phone rút khỏi điện thoại,chúng ta dùng Broadcast recevers để lắng nghe kiện lập trình để tạm dừng phần mềm chúng ta.Các kiện hệ thống kể thêm :nhận tin nhắn,cuộc gọi đến,máy cắm sạc hay không…v…v Chúng ta có hai cách để đăng ký sử dụng BroadcastReceiver : Đăng ký coding:cách dùng ứng dụng mở nhận thơng tin hệ thống,khi ứng dụng tắt khơng nhận Đăng ký AndroidMainifest.xml : cách sử dụng nhiều,với cách đăng ký ứng dụng bạn tắt nhận thơng tin khởi động ứng dụng Hình 1.22:Boadcast Receiver nhận tín hiệu từ Android gửi lệnh tới Activity Để hiểu BoardcastReceiver cách hình tượng hình dung theo cách : Như biết Việt Nam có nhiều đài phát truyền hình Và tất nhiên có cột phát sóng, phát loạt hình ảnh liên tục với nhiều tầng số khác nhau, tầng số kênh truyền hình có phát sóng liệu, liệu gửi có key riêng kèm theo liệu Xung quanh có nhiều nhà sử dụng tivi, tivi thu lại sóng chọn xem kênh Và ứng dụng vậy, lúc có nhiều Activity chồng lên nhau, trạng thái khác Activity hoạt động, Activity onPause() "bị đè lên" Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 27 Đồ án tốt nghiệp đại học Tuy nhiên dù Activity có thu sóng chúng lấy liệu,và tất nhiên để lấy xác liệu muốn lấy ta phải đưa vào giá trị key ban đầu mà phát phát đi.Không Activity lại gồm nhiều phát sóng khác phát liệu đi,và có thu thu giá trị key tương ứng thu Hình 1.23:Mơ hình BoadcastReceive 1.3.7 Thread,Asynctask,Handle Trong Android khái niệm đa luồng (Multithread) khái niệm quan trọng.Chúng ta hiểu điện thoại có vi xử lý,điều có nghĩa thời điểm có tác vụ thực thi,khi tác vụ thực xong tác vụ khác thực hiện.Chúng ta hình dung bạn vừa chơi game vừa nghe nhạc,nếu chạy theo kiểu thơng thường nhạc bạn chạy phút bạn phải chờ nhạc chạy xong chơi game được.Điều gây nhiều bất tiện Đó lý người ta sinh khái niệm đa luồng để thực nhiều tác vụ đồng thời lúc a)Thread Thread tiến trình đơn vị xử lý máy tính thực cơng việc riêng biệt Multi-thread khái niệm cho nhiều tiến trình chạy đồng thời Một ứng dụng Java ngồi luồng có luồng khác thực thi đồng thời làm ứng dụng chạy nhanh hiệu Ưu điểm đa luồng Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 28 Đồ án tốt nghiệp đại học Mỗi luồng dùng chung chia sẻ nguồn tài nguyên trình chạy, thực cách độc lập Ứng dụng Android tách + Luồng chạy giao diện người dung,được phép can thiệp vào thành phần UI + Các luồng phụ gửi đến luồng chính,luồng phụ không phép can thiệp vào thành phần UI Hình 1.24:Luồng luồng phụ Android Nhược điểm đa luồng: Càng nhiều luồng xử lý phức tạp Cần phát tránh luồng chết, luồng chạy mà khơng làm ứng dụng b)AsyncTask Một chương trình chạy Android có cấu trúc phức tạp Yêu cầu kết nối đến Server, CSDL, tải file … Nếu xử lý cơng việc Main Thread làm ứng dụng chạy chậm hay treo chúng làm gián đoạn việc cập nhật, xử lý GUI Có nhiều cách để giải vấn đề này: sử dụng Service, Thread hay đơn giản dùng Async Task (Asynchronous Task) Cấu trúc AsyncTask có đối số Generic Type: Params: Là giá trị ((biến) truyền vào gọi thực thi tiến trình truyền vào doInBackground Progress: Là giá trị (biến) dùng để update giao diện diện lúc tiến trình thực thi, biến truyền vào hàm onProgressUpdate Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 29 Đồ án tốt nghiệp đại học Result: Là biến dùng để lưu trữ kết trả sau tiến trình thực xong Những đối số không sử dụng trình thực thi tiến trình ta thay Void Thông thường AsyncTask chứa hàm onPreExecute() :Tự động gọi tiến trình kích hoạt doInBackground(): Được thực thi q trình tiến trình chạy nền, thơng qua hàm để ta gọi hàm onProgressUpdate để cập nhật giao diện (gọi lệnh publishProgress) Ta cập nhật giao diện hàm doInBackground() onProgressUpdate (): Dùng để cập nhật giao diện lúc runtime onPostExecute(): Sau tiến trình kết thúc hàm tự động xảy Ta lấy kết trả sau thực tiến trình kết thúc Trong hàm hàm doInBackground() bắt buộc phải tồn tại, hàm khác khuyết Đối với AsyncTask ta cần tạo lớp kế thừa từ AsyncTask, sau từ MainActivity ta gọi hàm execute() tiến trình c)Handler Handler() để giao tiếp hay nhiều thread,ngồi Handler() sử dụng để xử lý yêu cầu người dùng sau khoảng thời gian định 1.3.8 Service Một Service thành phần chạy bên để xử lý công việc thời gian dài Một ứng dụng nghe nhạc phát nhạc, người dùng giao diện ứng dụng khác Hoặc ứng dụng download tải liệu mạng máy mà không ngăn chặn người dùng tương tác với ứng dụng khác Một Service gồm hai trạng thái bản: Started: Một service gọi started thành phần ứng dụng, chẳng hạn activity, start cách gọi phương thức startService() Mỗi lần đượcstarted, service chạy bên vô thời hạn, chí thành phần startednó bị hủy Bound: Một service gọi bound thành phần ứng dụng liên kết với cách gọi phương thức bindService() Một dịch vụ ràng buộc cung cấp giao diện client-server cho phép thành phần tương tác với service, gửi yêu cầu, nhận kết quả, chí tương tự việc giao tiếp với interprocess (IPC) Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 30 Đồ án tốt nghiệp đại học Mỗi service có tập phương thức bạn implement để giám sát việc thay đổi trạng thái service, chí bạn thực cơng việc trạng thái thích hợp Trong sơ đồ sau phía bên trái mơ tả vòng đời service tạo với startService(), phía bên phải mơ tả vòng đời service tạo với bindService() Hình 1.25:Vòng đời Service Để tạo service tạo class kế thừa class Service Class Service có nhiều phương thức callback, khơng cần phải implement hết phương thức này, nhiên việc hiểu rõ áp dụng chúng code quan trọng việc đáp ứng yêu cầu người dùng onStartCommand(): Hệ thống gọi phương thức có thành phần khác, chẳng hạn activity, yêu cầu service started, gọi phương thúc startService() Nếu bạn implement phương thức bạn phải có trách nhiệm stop service cơng việc hồn thành, cách gọi phương thức stopSelf() stopService() onBind(): Hệ thống gọi phương thức có thành phần khác liên kết với service cách gọi phương thức bindService() Nếu bạn implement phương thức này, bạn phải cung cấp giao diện để client sử dụng giao tiếp với service, cách trả đối tượng IBinder Bạn phải Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 31 Đồ án tốt nghiệp đại học implement phương thức này, nhiên bạn không muốn liên kết, trả vể null onUnbind(): Hệ thống gọi phương thức tất client bị ngắt kết nối từ giao diện đặt biệt tạo service onRebind(): Hệ thống gọi phương thức có client kết nối với service, mà trước có thơng báo tất bị ngắt kết nối onUnbind() onCreate(): Hệ thống gọi phương thức service tạo lần gọi phương thức onStartCommand() onBind() onDestroy(): Hệ thống gọi phương thức service khơng sử dụng thời gian dài Bạn nên gọi phương phức để giải phóng tài nguyên hệ thống Hệ thống bắt buộc phải tắt service trường hợp nhớ xuống thấp phải phục hồi lại tài nguyên cho thao tác mà người dùng sử dụng.nếu Service ràng buộc activity mà người dùng sử dụng bị giải phóng Service chạy foreground khơng bị giải phóng.Ngồi Service bắt đầu khoảng thời gian dài có nguy cao bị hệ thống giải phóng Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 32 Đồ án tốt nghiệp đại học CHƯƠNG 2:PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH ANDROID ĐỌC TRỘM TIN NHẮN NGƯỜI DÙNG 2.1 Phân tích Để thực demo tìm hiểu xây dựng ứng dụng Android ,chúng ta thử xây dựng ứng dụng nó.Loại ứng dụng mà ta xây dựng loại phần mềm gián điệp ăn cắp thông tin người dùng điện thoại android.Thực thiết bị android người dùng có nhiều thơng tin khai thác,chẳng hạn tin nhắn đến đi, gọi đến thiết bị,rồi có danh bạ,các ảnh ,các đoạn video lưu máy người dùng…Vậy làm cách để xây dựng ứng dụng gián điệp chạy thiết bị tự động ăn cắp thơng tin ? Đó mục tiêu hướng tới việc xây dựng demo phần mềm Có điều đáng lưu ý việc xây dựng phần mềm đọc trộm tin nhắn để thực ý đồ không lành mạnh, mà thay vào việc xây dựng phần mềm cách để tìm hiểu xây dựng ứng dụng Android,đồng thời thơng qua việc đóng giả tin tặc tìm cách thâm nhập ăn cắp thơng tin người dùng nhận thức rõ mối nguy hiểm phần mềm gián điệp Android,qua với tư cách người có hiểu biết nhiều cơng nghệ thơng tin có hành động,biện pháp cảnh báo đến cộng đồng người sử dụng thiết bị cá nhân cần phải cảnh giác với phần mềm độc hại ăn cắp thơng tin Về khía cạnh kỹ thuật Android hệ thống tương đối “ mở, việc truy cập trực tiếp vào CSDL ứng dụng cụ thể điều bất khả thi , nhà thiết kế Android cho “ cổng “ để nhà phát triển phần mềm truy xuất liệu cần thiết có nhu cầu.Đây sở để lấy cách tự động thông tin có thiết bị chạy Android tin nhắn , gọi… Thực có nhiều phần mềm gián điệp với đủ thể loại khác nhau,chẳng hạn tháng năm 2015 công an thành phố Hà Nội điều tra vụ án phần mềm gián điệp Ptracker công ty TNHH Việt Hồng với thủ đoạn cung cấp dịch vụ nghe người dùng để thu lời bất chính.Mơ hình hoạt động phần mềm Ptracker cơng ty Việt Hồng hình dung theo sơ đồ sau : Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 33 Đồ án tốt nghiệp đại học Hình 2.1:Hệ thống gián điệp công ty Việt Hồng Ptracker với loạt chức mãnh mẽ thu thập tin nhắn, danh bạ người dùng, tự động bật chức ghi âm gọi, ghi âm môi trường xung quanh hay định vị vị trí người dùng ,sau đưa lên CSDL công ty bán cho người có nhu cầu.Tới bị quan cơng an phát hiện, có tổng số 14.140 tài khoản bị cài phần mềm giám sát Ptracker Trong đó, có 7.447 tài khoản mà liệu lưu máy chủ Công ty Việt Hồng, 6.693 tài khoản bị xóa liệu khỏi máy chủ, 670 tài khoản thời gian giám sát Với tư cách giả định tin tặc muốn xây dựng phần mềm ăn cắp liệu người dùng có nhận xét phần mềm Ptracker công ty Việt Hồng mạnh mẽ với nhiều tính có nhược điểm chỗ toàn liệu thu thập điều phải chuyển lên lưu server cơng ty.Vì quan cơng an phát họ cần chặn phía server chứa CSDL coi tồn hệ thống ăn cắp thơng tin bị vơ hiệu hóa.Vì xây dựng hệ thống mà tính khơng mạnh mẽ Ptracker bù lại hoạt động độc lập server,thay vào thơng tin ăn cắp trực tiếp gửi đến Email người dùng.Giải pháp có ưu điểm quan cơng an có phát khó ngăn chặn phần mềm phát tán cách miễn phí mạng (xin lưu ý đóng vai tin tặc) 2.2 Thiết Kế 2.2.1 Biểu đồ phân cấp chức BPC Trước vào lập trình bước bước phân tích thiết kế hệ thống,chúng ta sử dụng phương pháp phân tích có cấu trúc đề phân tích hệ thống Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 34 Đồ án tốt nghiệp đại học phần mềm.Biểu đồ phân cấp chức (BPC) biểu đồ mô tả hệ thống mặt chức năng, biểu đồ luồng liệu (BLD) biểu đồ mô tả mối liên kết chức hệ thống.Với ứng dụng chưa phải ứng dụng lớn nên cần sử dụng biểu đồ phân cấp chức đủ tính đơn giản,thơng dụng dễ hiểu Nhận Lệnh Hoạt Động Gián Điệp Gửi thơng tin Thu thập tin nhắn Thu thập danh bạ Thu thập gọi Hình 2.2:Biểu đồ phân cấp chức 2.2.2 Thiết kế sở liệu Cơ sở liệu phải đủ để lưu thông tin thu thập từ máy điện thoại nạn nhân Bảng STORE lưu tin nhắn đến : Trường PHONENUMBER định dạng liệu TEXT dùng để lưu giữ số điện thoại người nhắn tin đến Trường TIME định dạng liệu TEXT dùng để lưu lại thời gian mà tin nhắn đến Trường CONTENT định dạng liệu TEXT dùng để lưu lại nội dung tin nhắn đến Bảng STORESEND lưu tin nhắn gửi đi: Trường PHONENUMBER định dạng liệu TEXT dùng để lưu giữ số điện mà nhắn tin Trường TIME định dạng liệu TEXT dùng để lưu lại thời gian mà gửi tin nhắn Trường CONTENT định dạng liệu TEXT dùng để lưu lại nội dung tin nhắn gửi Bảng CALLINCOME lưu gọi đến: Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 35 Đồ án tốt nghiệp đại học Trường PHONENUMBER định dạng liệu TEXT dùng để lưu lại số điện thoại gọi đến Trường TIME định dạng liệu TEXT dùng để lưu lại thời gian mà gọi đến Bảng CALLOUTCOME lưu gọi đến: Trường PHONENUMBER định dạng liệu TEXT dùng để lưu lại số điện thoại gọi Trường TIME định dạng liệu TEXT dùng để lưu lại thời gian mà gọi Bảng CONTACT lưu danh bạn thiết bị nạn nhân: Trường TIME định dạng liệu TEXT dùng để lưu lại thời gian mà danh bạ thu thập Trường COTENT định dạng liệu TEXT dùng để lưu lại danh bạn thiết bị 2.2.3 Thiết kế giao diện Do chương trình gián điệp nên có giao diện lên lúc cài đặt để người dùng nhập liệu sau: Hình 2.3:Giao diện nhập thơng tin Dòng Email Sender(phải dùng Gmail), dòng thứ hai mật Email Sender,dòng thứ ba tên nạn nhân bạn viết ,dòng thứ tư Email nhận thơng tin gián điệp thu từ Email Sender.Có điều lưu ý có bước cung cấp mật Email Sender – thông tin nhạy cảm ,bởi tốt hết nên dùng Email phụ lập để làm việc thay sử dụng Email mình, thêm vào Email Sender phải cài đặt chế độ cho phép tự động gửi mail phần mềm,hãy vào cài đặt lại thông số Email Sender.Như hình ảnh dùng Email Sender Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 36 Đồ án tốt nghiệp đại học Email nhận tin Email , , tốt hết dùng hai Email khác Sau thông tin nhập người dùng nhấn nút ” Xác Nhận” tồn thơng tin lưu lại, đồng thời phần mềm tự động hình chủ điện thoại.Thêm điều có mở ứng dụng lại ô nhập liệu button không xuất Icon chương trình lựa chọn cách khéo léo hình sau : Hình 2.4:Icon chương trình Còn Icon chương trình xuất thiết bị : Hình 2.5:Icon chương trình thiết bị Nó đặt tên mỹ miều “GoogleServiceApp” - tất để qua mắt người dùng 2.2.4 Kết chạy chương trình Sau cài đặt vào máy người dùng,phần mềm âm thầm lưu lại tin nhắn đến đi, gọi đến đi,nếu muốn có danh bạ cần nhắn tin vào máy nạn nhân tin nhắn với mã lệnh : PRETTY_BOY, chương trình thu thập danh bạ, lưu vào CSDL chờ có mạng để gửi Email người dùng Dưới kết thử nghiệm chương trình : Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 37 Đồ án tốt nghiệp đại học Hình 2.6:Thơng tin gián điệp gửi Nội dung mà phần mềm gián điệp thu : Hình 2.7:Nội dung thơng tin gián điệp thu 2.2.5 Các hướng cài đặt phát tán chương trình Do phần mềm gián điệp nên việc cài đặt chương trình cần phải thực nhanh chóng bí mật Những u cầu cần phải có trước tiến hành cài đặt : Phần mềm gián điệp dạng file chạy apk Thiết bị nạn nhân chạy Android từ 4.1 trở lên Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 38 Đồ án tốt nghiệp đại học Thực tiến hành cài đặt chương trình theo nhiều cách khác nhau,sau phương pháp mà tác giả đóng vai trò tin tặc có ý định cơng thiết bị nạn nhân Đầu tiên file apk phần mềm gián điệp tải lên trang chia sẻ trực tuyến,trong trường hợp tin tặc sử dụng trang drive.goole.com google,sau upload lên cho đường link để chia sẻ file Hình 2.8:File apk chương trình upload lên Drive Như hình thấy phần mềm gián điệp Alight.apk đưa lên trang chia sẻ trực tuyến Drive google Tiếp theo , bước khó , phải tiếp cận với thiết bị nạn nhân, sử dụng trình duyệt Chrome hay Firefox truy cập vào đường link chia sẻ file phần mềm gián điệp mà tin tặc tải lên Drive.google.com.Trình duyệt thị giao diện sau : Hình 2.9:Sử dụng trình duyệt để tải file cài đặt Click vào “Tải Xuống” sau cài đặt bình thường.Tồn trình khoảng 20 – 30 giây đảm bảo tính bí khơng bị nạn nhân nghi ngờ Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 39 Đồ án tốt nghiệp đại học KẾT LUẬN Kết thu Qua trình tìm hiểu thực đồ án,bản thân người thực đạt kết sau: Tìm hiểu cách thức phát triển chương trình ứng dụng thiết bị chạy hệ điều hành Android Xây dựng thành cơng phần mềm gián điệp có khả theo dõi tin nhắn, gọi danh bạ người dùng Nhận thức rõ vấn đề bảo mật thông tin thiết bị di động chạy hệ điều hành Android Hướng phát triển đề tài Phần mềm gián điệp hồn tồn phát triển thêm để trở nên nguy hiểm với tính : Phát nhận diện ảnh nhạy cảm,qua đánh cắp ảnh nhạy cảm nạn nhân Lấy thông tin vị trí nạn nhân Lấy thơng tin lịch sử truy cập web nạn nhân Thực điều khiển việc chặn gọi nạn nhân Thực việc điều khiển chặn truy cập web nạn nhân Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 40 Đồ án tốt nghiệp đại học TÀI LIỆU THAM KHẢO Giáo trình: [1] Nguyễn Văn Ba, Phân tích thiết kế hệ thống thông tin, Nhà xuất Đại Học Quốc Gia Hà Nội, Năm xuất 2009 [2] Phạm Minh Tuấn, Phân tích thiết kế hệ thống thông tin, Nhà xuất Hà Nội, Năm xuất 2005 [3] Dawn Griffiths, David Griffiths, Head First Android Development, Nhà xuất O'Reilly,Năm xuất 2015 Địa websites: [1] duythanhcse.wordpress.com [2] www.tutorialspoint.com [3] developer.android.com [4] www.stackoverflow.com Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 41 ... Cupcake (bánh cupcake), Donut (bánh vòng), Eclair (bánh Eclair), Froyo (ya-ua lạnh), Gingerbread (bánh gừng), Honeycomb (mật ong), Ice Cream Sandwich (bánh kẹp kem), Jelly Bean (kẹo dẻo), Kitkat (bánh... được,chẳng hạn ứng dụng lõi sẵn có Calendar,SMS, trình duyệt web (Browser),quản lý danh bạ (Contacts),đọc e-mail (Email-Client),bản đồ (Map),quay phim chụp ảnh (camera)….Ngồi có thêm ứng dụng người dùng... savedInstanceState) { Button btn_clickme = (Button) findViewById(R.id.button 1); btn_clickme.setOnClickListener(new View.OnClickListener () { @Override public void onClick(View arg 0) { } }); } c) Activity