1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

43 33 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề 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
Tác giả Phạm Ngọc Hiếu
Người hướng dẫn ThS. Phạm Trà My
Trường học Trường Đại Học Vinh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2016
Thành phố Nghệ An
Định dạng
Số trang 43
Dung lượng 1,76 MB

Cấu trúc

  • CHƯƠNG 1:TỔNG QUAN VỀ ANDROID (8)
    • 1.1 Lịch sử phát triển của Android (8)
    • 1.2 Kiến trúc Android (9)
      • 1.2.1 Linux Kernel (10)
      • 1.2.2 Library và Android Runtime (11)
      • 1.2.3 Application Framework (12)
      • 1.2.4 Application (13)
    • 1.3 Các thành phần của Android (13)
      • 1.3.1 Thành phần của một chương trình Android (13)
      • 1.3.2 Các thành phần giao diện Widget (21)
      • 1.3.3 Bắt sự kiện trong Android (22)
      • 1.3.4 Menu (24)
      • 1.3.5 Cở sở dữ liệu trong Android (26)
      • 1.3.6 Broadcast receivers (28)
      • 1.3.7 Thread,Asynctask,Handle (30)
      • 1.3.8 Service (32)
  • CHƯƠNG 2:PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH ANDROID ĐỌC TRỘM (35)
    • 2.1 Phân tích (35)
    • 2.2 Thiết Kế (36)
      • 2.2.1 Biểu đồ phân cấp chức năng BPC (36)
      • 2.2.2 Thiết kế cơ sở dữ liệu (37)
      • 2.2.3 Thiết kế giao diện (38)
      • 2.2.4 Kết quả chạy chương trình (39)
      • 2.2.5 Các hướng cài đặt và phát tán chương trình (40)
  • KẾT LUẬN (42)

Nội dung

QUAN VỀ ANDROID

Lịch sử phát triển của Android

Android là hệ điều hành dựa trên Linux, được thiết kế cho thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng Ban đầu, Android được phát triển bởi tổng công ty Android với sự hỗ trợ tài chính từ Google, và sau đó Google đã mua lại vào năm 2005.

Mã nguồn mở của Android cùng với tính linh hoạt đã tạo điều kiện cho các nhà phát triển di động và lập trình viên tự do điều chỉnh và phân phối hệ điều hành này Hơn nữa, Android còn được hỗ trợ bởi một cộng đồng lập trình viên đông đảo, những người sáng tạo ra nhiều ứng dụng phong phú nhằm mở rộng chức năng cho các thiết bị.

Tính đến thời điểm hiện tại, Google đã bán ra 200.000 thiết bị Android mỗi ngày, trong khi Play Store đã vượt qua con số 90.000 ứng dụng Sự mở và dễ dàng tùy chỉnh cùng với sự phát triển nhanh chóng đã giúp hệ điều hành này trở nên phổ biến Kết quả là, mặc dù được thiết kế chủ yếu cho điện thoại và máy tính bảng, Android giờ đây đã có mặt trên các smart TV, máy chơi game và nhiều thiết bị điện tử khác.

Android bắt đầu với bản beta đầu tiên vào tháng 11 năm 2007 và phiên bản thương mại đầu tiên, Android 1.0, đƣợc phát hành vào tháng 9 năm 2008 Kể từ tháng 4 năm

Từ năm 2009, các phiên bản Android đã được phát triển và đặt tên theo chủ đề bánh kẹo, bao gồm: Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, Kitkat, và phiên bản hiện tại là Lollipop.

Kỷ nguyên Android bắt đầu vào ngày 22 tháng 10 năm 2008 với sự ra mắt của điện thoại T-Mobile G1 tại Mỹ Mặc dù lúc đầu thiếu nhiều tính năng cơ bản như bàn phím ảo, cảm ứng đa điểm và khả năng mua ứng dụng, nhưng G1 đã giới thiệu một số đặc điểm nổi bật của hệ điều hành, trở thành những yếu tố thiết yếu cho các phiên bản Android sau này.

Thanh thông báo vuốt từ trên xuống trên Android, ra đời từ những ngày đầu của hệ điều hành này, đã tạo ra một bước đột phá quan trọng khi cho phép người dùng truy cập nhanh chóng thông tin tin nhắn, cuộc gọi và thông báo chỉ bằng một thao tác vuốt Tính năng này đã được Apple học hỏi và tích hợp vào iOS sau ba năm kể từ khi phiên bản đầu tiên ra mắt Đến nay, thanh thông báo vẫn được Android sử dụng và đã trải qua nhiều cải tiến so với phiên bản ban đầu.

Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 2

Màn hình chính của Android nổi bật với khả năng tùy biến cao, cho phép người dùng thay đổi hình nền và thêm nhiều widget như đồng hồ, lịch và trình nghe nhạc Ngoài ra, người dùng còn có thể đưa các biểu tượng ứng dụng ra ngoài màn hình chính hoặc thay đổi toàn bộ giao diện Hệ điều hành này cũng đồng bộ và tích hợp chặt chẽ với Gmail, mang lại trải nghiệm liền mạch cho người sử dụng.

Gmail đã tích hợp giao thức POP và IMAP để tương thích với các ứng dụng email trên di động Tuy nhiên, trước khi Android 1.0 ra mắt, không có sản phẩm nào có thể tận dụng đầy đủ những tính năng nổi bật của Gmail Sự xuất hiện của Android 1.0 đã giải quyết vấn đề này, với G1 trở thành chiếc điện thoại cung cấp trải nghiệm Gmail tốt nhất trên thị trường lúc bấy giờ.

Kho ứng dụng Android Market ra mắt cùng với smartphone đầu tiên, G1, đã đánh dấu sự khởi đầu của cuộc cách mạng ứng dụng di động Thời điểm đó, Android Market chỉ có rất ít ứng dụng và giao diện cực kỳ đơn giản, chưa có tính năng mua ứng dụng cho đến năm sau Những hạn chế này là điều dễ hiểu, bởi vì Android lúc đó mới chỉ được khai sinh và mọi thứ còn khá thô sơ.

Giao diện: Google đã phát triển giao diện Android phiên bản 1.0 với sự hỗ trợ từ

TAT, viết tắt của The Astonishing Tribe, là một công ty thiết kế tương tác nổi tiếng của Thụy Điển Dấu ấn nổi bật nhất của TAT trên hệ điều hành Android từ phiên bản 1.0 đến 2.2 là widget đồng hồ kim ngoài Home Screen, đơn giản nhưng rất bắt mắt Sau đó, TAT ngừng hợp tác với Google và được RIM mua lại, nhằm tập trung phát triển sản phẩm Blackberry và nền tảng BBX sau này.

Cuối năm 2008, Google phát hành thiết bị cầm tay Android Dev Phone 1, cho phép các nhà phát triển thử nghiệm ứng dụng Android mà không cần ràng buộc với nhà cung cấp mạng Mục tiêu là tạo điều kiện cho việc phát triển trên thiết bị thực mà không cần hợp đồng Cùng thời gian đó, Google cũng phát hành bản vá lỗi 1.1 của hệ điều hành Android, mặc dù cả hai phiên bản 1.0 và 1.1 đều không hỗ trợ bàn phím ảo, yêu cầu sử dụng bàn phím vật lý Để khắc phục vấn đề này, Google phát hành SDK 1.5 vào tháng 4 năm 2009, bổ sung nhiều tính năng mới như cải thiện khả năng ghi âm truyền thông và hỗ trợ live folder.

Kiến trúc Android

Sau đây là mô hình tổng quát các thành phần của hệ điều hành Android:

Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 3

Hình 1.1:Sơ đồ kiến trúc Android

Chúng ta sẽ đi sâu hơn một chút về các thành phần này như sau , theo thứ tự từ dưới lên :

Android là một hệ điều hành dựa trên nhân Linux, nhưng không hoàn toàn giống với nhân của các hệ điều hành Linux khác Mã lập trình của Android có nhiều điểm khác biệt so với hệ thống Linux, đặc biệt là kernel của Google, với chế độ làm việc riêng biệt Ngôn ngữ lập trình OEMs là chủ yếu được sử dụng để phát triển hệ thống cho Kernel, giúp lập trình các driver cho phần cứng khác nhau trên các phiên bản Android Kernel đóng vai trò quan trọng trong việc kiểm soát và điều khiển phần cứng, hoạt động như một cầu nối giữa phần cứng và phần mềm.

Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 4

Khi phần mềm yêu cầu phần cứng thực hiện một tác vụ, nó sẽ gửi tín hiệu tới bộ vi xử lý, yêu cầu thực hiện các lệnh như điều chỉnh độ sáng màn hình, mức âm lượng và hiệu suất của thiết bị, cũng như điều khiển xung nhịp CPU Tất cả các thao tác như di chuyển con trỏ chuột hay lướt trên màn hình cảm ứng đều được quản lý bởi kernel Hệ thống và kernel không chỉ nhận thông tin từ các lệnh được nhập qua màn hình cảm ứng mà còn có khả năng nhận tín hiệu từ các thiết bị khác, chẳng hạn như qua Bluetooth.

Nghe có vẻ phức tạp, nên chúng ta có thể tóm gọn nhƣ sau:

 Kernel đƣợc gọi là hạt nhân của hệ điều hành Android

Các hoạt động trên smartphone được thực hiện thông qua sự kết nối giữa phần mềm và phần cứng, chẳng hạn như việc tăng âm lượng bằng phím cứng, khóa màn hình bằng nút cứng, và thao tác chạm vào màn hình.

Android cần nhận diện các kết nối vật lý bên ngoài như cáp kết nối với máy tính, chuột, USB, hoặc bàn phím Nhiều smartphone không hỗ trợ USB OTG vì kernel chưa được cập nhật để xử lý các kết nối này.

Các thành phần của nhân Linux:

 Display Driver :điều khiển việc hiện thị lên màn hình cũng nhƣ thu nhận những điều khiển của người dùng lên màn hình

 Camera Driver : Điều khiển hoạt động của camera, nhận luồng dữ liệu từ camera trả về

 Bluetooth Diver : Điều khiển thiết bị thu và phát sóng Bluetooth

 USB Driver : Quản lý hoạt động của các cổng giao tiếp USB

 Keypad Driver : Điều khiển bàn phím

 Wifi Driver : Chịu trách nhiệm về việc thu phát sóng wifi

 Audio Diver : Điều khiển bộ thu phát âm thanh,giải mã các tín hiệu dạng audio thành tín hiệu số và ngƣợc lại

 Power Management : Giám sát việc tiêu thụ điện năng

 Flash Memory Driver : Giám sát việc đọc ghi lên các thiết bị nhớ nhƣ thẻ SD, Flash

 Binder IPC Driver : Chịu trách nhiệm việc kết nối và liên lạc với mạng vô tuyến nhƣ CDMA, GSM, 3G, 4G để đảm bảo chức năng truyền thông đƣợc thực hiện

Nhân Linux bao gồm một tập hợp các thư viện, trong đó có trình duyệt web mã nguồn mở WebKit, các thư viện phổ biến và cơ sở dữ liệu SQLite, tạo thành một kho lưu trữ hữu ích cho việc lưu trữ và chia sẻ dữ liệu ứng dụng.

Phạm Ngọc Hiếu, sinh viên lớp 52K2 thuộc Khoa Công nghệ Thông tin, đã nghiên cứu các ứng dụng như ghi âm và video, cùng với thư viện SSL chịu trách nhiệm về an ninh Internet Các thư viện này được phân loại thành nhiều nhóm khác nhau, phục vụ cho nhiều mục đích khác nhau trong lĩnh vực công nghệ thông tin.

 Thƣ viện hệ thống libc : thƣ viện dựa trên chuẩn C, đƣợc sử dụng chỉ bởi hệ điều hành

 Thƣ viện Media : có nhiều code hỗ trỡ việc phát và ghi các loại định dạng âm thanh,hình ảnh, video động

Thư viện web là thành phần quan trọng giúp hiển thị nội dung trên internet, được sử dụng trong việc phát triển phần mềm trình duyệt và cho phép các ứng dụng khác tích hợp Nó rất mạnh mẽ, hỗ trợ nhiều công nghệ hiện đại như HTML5, JavaScript, CSS, DOM và AJAX.

 Surface Manage : quản lý hiện thị 2D và 3D

 SQLite : quản lý database của ứng dụng

 Free Type : dùng cho hiện thị ảnh,font

 SSL :tầng thiết lập giao dịch an toàn trên 2 ứng dụng trên 1 cổng (socket)

 Open GL/EL : hỗ trợ thƣ viện tùy chọn 3D tĩnh và động

Android Runtime là thành phần thứ ba trong kiến trúc Android, nằm ở lớp thứ hai từ dưới lên Nó bao gồm Dalvik, một máy ảo Java được tối ưu hóa đặc biệt cho hệ điều hành Android, có thể đã có những thay đổi qua các phiên bản.

Máy ảo Dalvik, dựa trên các tính năng cốt lõi của Linux như quản lý bộ nhớ và đa luồng, là một phần quan trọng trong ngôn ngữ Java Nó cho phép mỗi ứng dụng Android hoạt động trong một tiến trình riêng biệt, đảm bảo hiệu suất và bảo mật tối ưu cho các ứng dụng.

Android Runtime cung cấp bộ thư viện lõi, cho phép các nhà phát triển ứng dụng Android sử dụng ngôn ngữ lập trình Java để xây dựng ứng dụng.

 Activity Manager - quản lý vòng đời của các ứng dụng

 Windows Manager - quản lý form của các ứng dụng

 Content Providers - cho phép các ứng dụng truy cập dữ liệu từ các ứng dụng khác hoặc để chia sẻ dữ liệu của riêng ứng dụng

 View UI - để xây dựng layout của ứ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 nhƣ các asset, graphic, image, music, video …

Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 6

Notification Manager cho phép các ứng dụng hiển thị thông báo trên hệ điều hành Với nền tảng phát triển mở, Android mang đến cho các nhà phát triển cơ hội tạo ra các ứng dụng phong phú và sáng tạo, đồng thời cho phép họ truy cập vào các API trong cùng một khuôn khổ sử dụng bởi các ứng dụng lõi.

1.2.4 Application Đây là phần ứng dụng người dùng mà chúng ta có thể thấy được, chẳng hạn như các ứng dụng lõi sẵn có nhƣ 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)….Ngoài ra nó còn có thêm những ứng dụng do người dùng cài đặt thêm Đây chính là tâng mà những người phát triển ứng dụng di động sẽ làm việc trực tiếp trên đó để tạo ra các ứng dụng.

Các thành phần của Android

1.3.1 Thành phần của một chương trình Android a) Activities và Layouts

Mỗi ứng dụng Android được cấu thành từ nhiều màn hình khác nhau, trong đó mỗi màn hình bao gồm một Activity và một Layout.

Activity là các chức năng mà người dùng có thể thực hiện, chẳng hạn như gửi email, chụp ảnh hoặc tìm kiếm thông tin liên lạc Mỗi activity đều tương tác với một màn hình (Screen) và được lập trình bằng ngôn ngữ Java.

Layout là giao diện màn hình của ứng dụng, và một ứng dụng có thể có nhiều giao diện cho các trạng thái khác nhau Layout được định nghĩa trong file XML, từ đó Android có thể xác định cách sắp xếp các thành phần trên màn hình.

Sau đây chúng ta sẽ nhìn một cách trực quan hơn về mối quan hệ giữa Activity và Layout trong ứng dụng Android

Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 7

Hình 1.2:Quan hệ giữa Activity và Layout

Nhìn vào hình trên chúng ta sẽ có những bức thực thi nhƣ sau(số thứ tự đƣợc đánh trên mỗi dấu mũi tên) :

 Đầu tiên (1) thiết bị chạy ứng dụng và tạo một đối tƣợng Activity

 Sau đó (2) đối tƣợng Activity sẽ chỉ định một Layout xuất hiện

 Tiếp theo (3) activity nói Android hiện thị Layout ra màn hình

 ở bước (4) này thì người sử dụng tương tác với Layout qua màn hình của thiết bị

 bước (5) Activity sẽ hồi đáp những thao tác của người dùng bằng cách chạy những đoạn mã đƣợc viết bằng ngôn ngữ Java

 bước (6) Activity cập nhật những dữ liệu mới trên màn hình hiện thị

 bước (7) người sử dụng thấy kết quả hiện thị trên màn hình

Chú ý rằng Activity và Layout là hai khái niệm quan trọng trong lập trình ứng dụng Android b) Intent

Trong lập trình ứng dụng cho Android có một khái niệm rất quan trọng đó là Intent.Vậy thì Intent là gì ?

Intent giống như một người đưa thư, cho phép gọi một Activity từ một Activity khác trong ứng dụng Android Trên mỗi thiết bị Android, có nhiều ứng dụng, và mỗi ứng dụng có thể chứa nhiều Activity khác nhau Điều thú vị là các Activity này có thể tương tác và gọi lẫn nhau, cho phép một Activity trong ứng dụng này gọi Activity của ứng dụng khác.

Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 8

Activity của ứng dụng kia Trong android cung cấp cho chúng một khái niệm mang tên là Intent dùng để làm những việc này

Hình 1.3:Gửi Intent từ Activity1 đến Activity2

Để Activity 1 gọi Activity 2, trước tiên Activity 1 sẽ khởi tạo một "bức thư" Intent với địa chỉ nhận là Activity 2 Sau đó, "bức thư" này được gửi đến "bưu điện" – tức là Android Android sẽ xem xét "bức thư" và chuyển đến "người nhận" là Activity 2 Khi nhận được, Activity 2 sẽ được kích hoạt.

In addition to sending activation commands, an Intent can also carry data, which means that one Activity can send information to another Activity.

Nhiều người có thể thắc mắc về việc tại sao cần sử dụng Intent khi có thể gọi Activity 2 từ Activity 1 bằng cách tạo đối tượng của Activity 2 ngay trong Activity 1 Tuy nhiên, điều quan trọng là hiểu rằng đây không phải là cách hoạt động của Android Intent là cần thiết vì Android cần theo dõi chuỗi hành động (Activity) của người dùng, giúp thiết bị biết được Activity trước đó khi người dùng nhấn nút Back để quay lại.

Vậy còn việc hai Activity của hai ứng dụng khác nhau thì gọi nhau nhƣ thế nào ? chúng ta xem hình sau :

Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 9

Hình 1.4:Những app độc lập trên thiết bị

Hình ảnh trên minh họa một thiết bị đa năng với nhiều ứng dụng, bao gồm Gmail, Google+ và ứng dụng nhắn tin Messaging, mỗi ứng dụng đều chứa nhiều hoạt động (Activity) phong phú.

Còn sau đây là hình ảnh mô hình về việc hai Activity của hai ứng dụng khác nhau giao tiếp với nhau:

Hình 1.5 minh họa cách truyền thông Intent giữa hai ứng dụng, trong đó hai Activity của các ứng dụng khác nhau tương tác với nhau Một số câu hỏi phổ biến liên quan đến trường hợp này bao gồm: làm thế nào để thiết lập Intent, cách truyền dữ liệu giữa các Activity, và cách xử lý kết quả trả về từ Activity khác.

 Làm thế nào để chúng ta biết đƣợc những Activity nào là Available trên thiết bị của người sử dụng ?

 Làm thế nào để chúng ta biết đƣợc những Activity nào là có những chức năng mà ta cần ?

 Làm thế nào để biết đƣợc cách sử dụng những Activity mà Available

Câu trả lời cho những câu hỏi lớn trên đó là sử dụng actions c) Actions

Actions are a way for Android to communicate the basic tasks that an Activity can perform For example, Android recognizes that all Activities registered for the "send" action are capable of handling specific intents related to sending data.

Phạm Ngọc Hiếu, sinh viên lớp 52K2 thuộc Khoa CNTT, đã phát triển một ứng dụng gửi tin nhắn đơn giản Khi người dùng nhập văn bản và nhấn nút "Send Message", một danh sách các ứng dụng gửi tin nhắn sẽ xuất hiện để lựa chọn Nếu người dùng chọn ứng dụng Messaging, giao diện của ứng dụng này sẽ mở ra với nội dung tin nhắn đã được tự động điền sẵn.

Mô hình hoạt động của ứng dụng này sẽ đƣợc mô tả trong những hình ảnh sau:

Khi nhấn nút GỬI TIN NHẮN, một intent được khởi tạo kèm theo dòng văn bản từ ô nhập liệu, và intent này cần chỉ rõ action cần sử dụng, trong trường hợp này là ACTION_SEND Sau đó, intent sẽ được gửi đến hệ điều hành Android.

Hình 1.7:Gửi Intent đến Android

Khi nhận yêu cầu từ Activity, Android sẽ kiểm tra tất cả các Activity trong các ứng dụng trên thiết bị để tìm kiếm chức năng gửi tin nhắn Nếu có Activity phù hợp, hệ thống sẽ hiển thị danh sách các ứng dụng đó; ngược lại, nếu không tìm thấy, nó sẽ ném ra ngoại lệ ActivityNotFoundException.

Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 11

Hình 1.8:Android sẽ nhận Intent và tìm những activity có ACTION_SEND

 Nếu chỉ có duy nhất một Activity chấp thuận nhận Intent thì Android sẽ gửi Intent đến cho Activity đó

Hình 1.9:Android gửi Intent đến activity có ACTION_SEND

Nếu có nhiều Activity từ các ứng dụng khác có khả năng nhận Intent, một hộp thoại sẽ xuất hiện ngay lập tức để người dùng lựa chọn ứng dụng mà họ muốn sử dụng.

Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 12

Hình 1.10:Android đưa ra lựa chọn nếu có nhiều Activity có ACTION_SEND

 Khi người sử dụng chọn ứng dụng mình muốn dùng xong thì Android sẽ gửi Intent đến ứng dụng đó

Hình 1.11:Android gửi Intent đến Activity d) Vòng đời của một Activity

Activity là khái niệm quan trọng trong phát triển ứng dụng Android, với mọi Activity đều kế thừa từ lớp Activity đã được xây dựng sẵn Vòng đời của một Activity được mô tả qua hình ảnh minh họa.

Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 13

Hình 1.12:Vòng đời của một Activity

 Đầu tiên Activity khởi chạy và phương thức onCreate() được thực thi, chú ý rằng lúc này Activity vẫn chƣa đƣợc visible

TÍCH THIẾT KẾ CHƯƠNG TRÌNH ANDROID ĐỌC TRỘM

Phân tích

Trong bài viết này, chúng ta sẽ khám phá cách xây dựng một ứng dụng Android, cụ thể là một phần mềm gián điệp nhằm thu thập thông tin người dùng Trên thiết bị Android, có nhiều loại dữ liệu có thể được khai thác, bao gồm tin nhắn, cuộc gọi, danh bạ, hình ảnh và video Mục tiêu của chúng ta là phát triển một ứng dụng gián điệp có khả năng tự động thu thập những thông tin này từ thiết bị.

Việc xây dựng phần mềm đọc trộm tin nhắn không nhằm mục đích xấu, mà là để tìm hiểu cách phát triển ứng dụng Android Thông qua việc giả lập một tin tặc, chúng ta nhận thức rõ hơn về mối nguy hiểm từ phần mềm gián điệp trên Android Nhờ đó, chúng ta có thể cảnh báo cộng đồng người dùng thiết bị cá nhân về những rủi ro từ phần mềm độc hại có khả năng đánh cắp thông tin.

Android là một hệ thống tương đối "mở", cho phép các nhà phát triển phần mềm truy cập dữ liệu cần thiết thông qua các "cổng" mà nhà thiết kế Android cung cấp Mặc dù không thể truy cập trực tiếp vào cơ sở dữ liệu của từng ứng dụng, nhưng việc này tạo điều kiện cho việc tự động thu thập thông tin từ thiết bị Android, như tin nhắn và cuộc gọi.

Hiện nay, có nhiều phần mềm gián điệp khác nhau, điển hình là vụ án Ptracker của công ty TNHH Việt Hồng được phát hiện bởi công an thành phố Hà Nội vào tháng 5 năm 2015 Phần mềm này đã sử dụng thủ đoạn cung cấp dịch vụ nghe lén người dùng nhằm thu lợi bất chính Mô hình hoạt động của Ptracker có thể được mô tả bằng một sơ đồ cụ thể.

Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 29

Hình 2.1:Hệ thống gián điệp của công ty Việt Hồng

Ptracker là phần mềm giám sát mạnh mẽ với nhiều chức năng như thu thập tin nhắn, danh bạ, ghi âm cuộc gọi, ghi âm môi trường và định vị vị trí người dùng Phần mềm này đã bị phát hiện bởi cơ quan công an, với tổng cộng 14.140 tài khoản từng bị cài đặt Ptracker Trong số đó, 7.447 tài khoản vẫn còn dữ liệu trên máy chủ của Công ty Việt Hồng, 6.693 tài khoản đã bị xóa dữ liệu, và 670 tài khoản vẫn đang trong thời gian giám sát.

Trong vai trò của một tin tặc, chúng ta nhận thấy phần mềm Ptracker của công ty Việt Hồng mặc dù mạnh mẽ với nhiều tính năng, nhưng có nhược điểm lớn là toàn bộ dữ liệu thu thập phải lưu trữ trên server của công ty Điều này khiến cho việc phát hiện và ngăn chặn thông tin dễ dàng hơn khi cơ quan công an can thiệp Do đó, chúng ta sẽ phát triển một hệ thống có tính năng kém hơn Ptracker nhưng hoạt động độc lập với server, với thông tin ăn cắp được gửi trực tiếp đến Email người dùng Giải pháp này giúp phần mềm khó bị ngăn chặn ngay cả khi bị phát hiện, đặc biệt khi nó đã được phát tán miễn phí trên mạng.

Thiết Kế

2.2.1 Biểu đồ phân cấp chức năng BPC

Trước khi bắt tay vào lập trình, bước quan trọng đầu tiên là phân tích và thiết kế hệ thống Chúng ta sẽ áp dụng phương pháp phân tích có cấu trúc để thực hiện quá trình này.

Biểu đồ phân cấp chức năng (BPC) là công cụ mô tả hệ thống theo khía cạnh chức năng, trong khi biểu đồ luồng dữ liệu (BLD) thể hiện mối liên kết giữa các chức năng Đối với ứng dụng của chúng ta, do quy mô chưa lớn, việc sử dụng BPC là phù hợp bởi tính đơn giản, thông dụng và dễ hiểu của nó.

Hình 2.2:Biểu đồ phân cấp chức năng

2.2.2 Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu của chúng ta phải đủ để lưu dữ những thông tin thu thập được từ máy điện thoại của nạn nhân

Bảng STORE lưu dữ những tin nhắn đến :

 Trường PHONENUMBER định dạng dữ 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 dữ liệu TEXT dùng để lưu lại thời gian mà tin nhắn đến

 Trường CONTENT định dạng dữ liệu TEXT dùng để lưu lại nội dung của tin nhắn đến

Bảng STORESEND lưu dữ những tin nhắn gửi đi:

 Trường PHONENUMBER định dạng dữ liệu TEXT dùng để lưu giữ số điện mà nhắn tin đi

 Trường TIME định dạng dữ liệu TEXT dùng để lưu lại thời gian mà gửi tin nhắn đi

 Trường CONTENT định dạng dữ liệu TEXT dùng để lưu lại nội dung của tin nhắn gửi đi

Bảng CALLINCOME lưu dữ những cuộc gọi đến:

Thu thập cuộc gọi Thu thập danh bạ

Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 31

 Trường PHONENUMBER định dạng dữ liệu TEXT dùng để lưu lại số điện thoại cuộc gọi đến

 Trường TIME định dạng dữ liệu TEXT dùng để lưu lại thời gian mà cuộc gọi đến

Bảng CALLOUTCOME lưu dữ những cuộc gọi đến:

 Trường PHONENUMBER định dạng dữ liệu TEXT dùng để lưu lại số điện thoại cuộc gọi đi

 Trường TIME định dạng dữ liệu TEXT dùng để lưu lại thời gian mà gọi đi Bảng CONTACT lưu dữ danh bạn trên thiết bị nạn nhân:

 Trường TIME định dạng dữ liệu TEXT dùng để lưu lại thời gian mà danh bạ đƣợc thu thập

 Trường COTENT định dạng dữ liệu TEXT dùng để lưu lại danh bạn trên thiết bị

Do đây là một chương trình gián điệp nên nó chỉ có duy nhất một giao diện hiện lên lúc cài đặt để người dùng nhập liệu như sau:

Hình 2.3:Giao diện nhập thông tin

Để sử dụng Email Sender (phải là Gmail), bạn cần nhập địa chỉ email ở dòng đầu tiên, mật khẩu của Email Sender ở dòng thứ hai, tên nạn nhân hoặc bất kỳ thông tin nào ở dòng thứ ba, và địa chỉ email nhận thông tin gián điệp ở dòng thứ tư Lưu ý rằng việc cung cấp mật khẩu của Email Sender là thông tin nhạy cảm, vì vậy nên sử dụng một email phụ để thực hiện thao tác này thay vì email chính Ngoài ra, Email Sender cần được cài đặt cho phép gửi mail tự động qua phần mềm, hãy kiểm tra và điều chỉnh cài đặt này cho phù hợp.

Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 32 và Email nhận tin là cùng một Email, nhƣ vậy cũng đƣợc, nhƣng tốt hơn hết là dùng hai Email khác nhau

Sau khi người dùng nhấn nút "Xác Nhận", tất cả thông tin sẽ được lưu lại và phần mềm sẽ tự động quay về màn hình chính của điện thoại Lưu ý rằng khi mở lại ứng dụng, các ô nhập liệu và nút sẽ không còn xuất hiện nữa.

Icon của chương trình được lựa chọn một cách khéo léo như hình sau :

Hình 2.4:Icon của chương trình

Còn dưới đây là Icon chương trình xuất hiện trên thiết bị :

Hình 2.5:Icon chương trình trên thiết bị

Ứng dụng mang tên “GoogleServiceApp” được thiết kế với mục đích đánh lừa người dùng Một trong những biện pháp an toàn hơn là ẩn biểu tượng ứng dụng này để giảm thiểu sự nghi ngờ và chú ý từ người dùng.

2.2.4 Kết quả chạy chương trình

Sau khi cài đặt vào máy người dùng, phần mềm sẽ âm thầm ghi lại các tin nhắn và cuộc gọi, đồng thời thu thập danh bạ khi nhận được tin nhắn với mã lệnh PRETTY_BOY Dữ liệu sẽ được lưu vào cơ sở dữ liệu và chờ kết nối mạng để gửi về email của người sử dụng Dưới đây là kết quả thử nghiệm chương trình.

Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 33

Hình 2.6:Thông tin gián điệp được gửi về

Nội dung mà phần mềm gián điệp thu đƣợc :

Hình 2.7:Nội dung thông tin gián điệp thu được

2.2.5 Các hướng cài đặt và phát tán chương trình

Do đây là 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 hiện nhanh chóng và bí mật

Những yêu cầu cần phải có trước khi tiến hành cài đặt :

 Phần mềm gián điệp ở dạng file chạy apk

 Thiết bị của 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 34

Có nhiều cách để cài đặt chương trình, và dưới đây là phương pháp mà tác giả giả định là một tin tặc muốn tấn công thiết bị của nạn nhân Đầu tiên, file apk của phần mềm gián điệp sẽ được tải lên một trang chia sẻ trực tuyến, cụ thể là trang drive.google.com của Google Sau khi tải lên, trang sẽ cung cấp một đường link để chia sẻ file.

Hình 2.8:File apk của chương trình được upload lên Drive

Nhƣ hình trên chúng ta có thể thấy phần mềm gián điệp Alight.apk đã đƣợc đƣa lên trang chia sẻ trực tuyến Drive của google

Bước tiếp theo là thách thức lớn nhất, cần tiếp cận thiết bị của nạn nhân bằng cách sử dụng các trình duyệt như Chrome hoặc Firefox để truy cập vào liên kết chia sẻ file phần mềm gián điệp mà tin tặc đã tải lên Drive.google.com Giao diện trình duyệt sẽ hiển thị như sau:

Hình 2.9:Sử dụng trình duyệt để tải file cài đặt về

Nhấn vào “Tải Xuống” và thực hiện cài đặt như bình thường Toàn bộ quá trình chỉ tốn khoảng 20 – 30 giây, đảm bảo tính bảo mật và không gây nghi ngờ cho nạn nhân.

Phạm Ngọc Hiếu-Lớp 52K2-Khoa CNTT Page 35

Ngày đăng: 01/08/2021, 11:26

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w