của smartphone trên nền hệ điều hành WM
3.2.1. Yêu cầu
Phần mềm cho phép thu thập, khai thác các thông tin hiện có từ smartphone trên nền hệ điều hành WM. Các thông tin bao gồm:
− Call log: Những thông tin trong mục này cho biết đối tƣợng đã liên lạc với ai, vào thời gian nào và những số điện thoại thƣờng xuyên liên lạc. Thông thƣờng, Call log lƣu đƣợc các thông tin trong vòng 30 ngày.
− Các tin nhắn SMS: Đây là những thông tin quan trọng có thể dùng làm chứng cứ trong các vụ án, nó ghi lại chi tiết những nội dụng mà đối tƣợng đã trao đổi
− Các file hình ảnh
− Các file âm thanh: Một số loại điện thoại thông minh có chức năng ghi âm cuộc gọi, ghi lại toàn bộ nội dung các cuộc gọi đi và gọi đến. Thông thƣờng các file này đƣợc lƣu dƣới dạng *.wav
− Các tài liệu điện tử lƣu trên điện thoại
− Thƣ điện tử
− Danh sách các trang web đã truy cập (nếu có)
3.2.2. Chiến lược thiết kế
Xây dựng Phần mềm khai thác thiết bị trên Window Mobile
Bộ phát triển ứng dụng: Microsoft Visual Studio 2008 Nhiệm vụ:
− Copy toàn bộ file, bao gồm file hệ thống, file dữ liệu điện tử, file danh bạ, file tin nhắn…
− Xử lý vấn đề chạy độc lập không cần cài đặt trên WM.
− Xử lý vấn đề chạy tự động khi cắm thẻ nhớ vào thiết bị di động WM.
3.2.3. Mô hình kiến trúc phần mềm
Giao diện người dùng
Giao diện ngƣời dùng đƣợc thiết kế đơn giản, để các điều tra viên có thể thao tác lấy tin trên thiết bị di động một cách nhanh chóng. Thao tác lấy tin có thể thực hiện bằng cách nhấn nút hoặc thông qua menu trong chƣơng trình.
Giao diện ngƣời dùng cũng đƣợc thiết kế để các điều tra viên có thể theo dõi đƣợc quá trình khai thác thông tin trong thiết bị di động.
Module khai thác thông tin
Module khai thác thông tin đƣợc thiết kế để có thể chạy ở mức độ hệ thống, có thể lấy đƣợc một số thông tin quan trọng đƣợc bảo vệ bởi hệ thống.
3.2.4. Thiết kế chi tiết
1. Phần mềm TULP2G đó là dựa trên NET Framework 2.0. Do đó sử dụng nền tảng cho plug –in tạo ra các thành phần mới tƣơng thích.
2. Tạo mới một Class Library-project. 3. Một tham chiếu đến TULP2G.Interface.
4. Tạo một key trong assembly. Ghi chú TULP2G plug-ins phải đặt trong tên assemblies, tên này là bắt buộc. để tạo ra một keypair, thực hiện các bƣớc sau:
a. Chuyển tới thƣ mục project đƣợc tạo sử dụng lệnh(cmd.exe).
b. Đƣa vào lệnh theo cú pháp: sn -k [filename] where [filename]. Tên thƣờng dùng assemblyname.keypair.snk, Ví dụ:
TULP2G.DefaultExport.keypair.snk.
c. Thay đổi AssemblyInfo.cs của project đã tạo thuộc tính AssemblyKeyFile. 5. Thay đổi thuộc tính AssemblyVersion trong AssemblyInfo.cs. Mặc định, phần mềm
thiết lập 1.0.* có nghĩa là phiên bản sẽ đƣợc tăng lên khi built.
6. Thêm các trạng thái sử dụng vào các file .cs. Typically, thao tác này có tác dụng xác định thêm một giao thức kết nối input hoặc output tƣơng ứng
TULP2G.Input hoặc TULP2G.Output
7. Tạo một PluginAttribute trong class mô tả loại plug - in, Ví dụ:
[PluginAttribute(PluginTypes.Communication)] để tạo plug-in kết nối. Valid giá
trị xây dựng trong PluginTypes là
Conversion, Communication, Export, Protocol and Tool.
8. Rút gọn loại hình kết nối xác định trong class đã xây dựng, kết nối đó
là: IConversionPlugin, ICommunicationPlugin, IExportPlugin, IProtocolPlugin and IToolPlugin.
Hình 3.2: Mô hình thiết kế phần mềm khai thác dữ liệu
Module khai thác thông tin
Các module dƣới đây đƣợc thiết kế để có thể chạy ở mức độ hệ thống, lấy các thông tin quan trọng đƣợc bảo vệ bởi hệ thống. Thông tin khai thác đƣợc phân loại theo thời điểm khai thác, thuận tiện trong lƣu trữ và có thể khai thác thông tin trên nhiều thiết bị.
void Khai_Thac_Thong_Tin() {
// Lưu thông tin ra thẻ nhớ target=L"/Storage Card";
hFind = FindFirstFile(target, &ffd); // Trong thư mục backup target = target + L"/Backup"; CreateDirectory(target, NULL);
// Tại thời điểm tiến hành khai thác
target = target + _T("/") + now.Format(_T("%Y%m%d%H%M%S")); CreateDirectory(target, NULL);
hFind = FindFirstFile(target, &ffd);
if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){ CString outputFileName = _T("checksum.xml");
CreateDirectory(target + L"/Statistics", NULL);
// Đóng các chương trình đang thực thi KillEmAll();
CString process = L"poutlook.exe"; KillProcessByName(process); process = L"fexplore.exe"; KillProcessByName(process);
// Tiến hành khai thác thông tin LPDWORD g_backupperThreadId;
HANDLE g_bakupper = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Backupper, NULL, 0, g_backupperThreadId);
}
void Khai_Thac_Thong_Tin() {
res=session->Connect();
TBuf<256> backupPath;
// Lưu thông tin ra thẻ nhớ
// Trong thư mục backup
backupPath.Append(_L("E:\\Backup\\"));
session->MkDir(backupPath);
// Tại thời điểm tiến hành khai thác
TTime *now = new TTime();
now->HomeTime();
now->FormatL(nowtext, KNowString);
backupPath.Append(nowtext);
backupPath.Append(_L("\\"));
session->MkDir(backupPath);
// Đóng toàn bộ ứng dụng đang hoạt động
wrapper->CloseAll();
// Tiến hành khai thác thông tin
seizureEntry(console);
// Khởi động lại toàn bộ ứng dụng
wrapper->RestartAll();
return;