RE - Phân tích ứng dụng qua ví dụ AppZap
RE là viết tắt của cụm từ Reverse Engineering (theo nghĩa nôm na là dịch ngược nội dung). Đây
là cách thức khá phổ biến của những nhà phát triển phần mềm dùng để phân tích sản phẩm của
họ, để phân tích vấn nạn an toàn thông tin đối với ai đi về bảo mật, và có thể là những "con bài"
cho những tay bẻ khóa.
Hôm nay mình muốn giới thiệu với mọi người về RE để mọi người có thể hiểu rõ hơn, chi tiết
hơn, cũng như có thể trao đổi với nhau hơn về vấn đề này.
Bạn nào không xem trực tuyến được thì tải về đọc
nhé:
Trước khi xem tiếp chủ đề này, bạn vui lòng đọc kỹ các gạch đầu dòng sau:
_Bài viết này không cổ súy cho việc bẻ khóa ứng dụng
_Bài viết này mình đã tham khảo một vài nguồn và cóp nhặt lại thành kiến thức chung để chia sẻ
_Mình sẽ không chịu bất kỳ trách nhiệm nào liên đới đến bản thân cũng như liên đới đến diễn
đàn
Giới thiệu sơ sài vài cũng đủ một phần nào rồi, thôi chúng ta hãy bắt đầu nhé. Ở đây bắt đầu
phân tích phần mềmAppZap để tìm thông tin đăng ký bản quyền
_Tìm hiểu tiếng Việt về thông tin phần mềm [bài viết này được đưa ra cũng vì tình cờ thấy lại
một bài khá lâu của anh Hiệp]: khoi-mac-2045/
_Tải phần mềm AppZap mới nhất về từ trang chủ:
Các công cụ cần thiết
_OTX - dùng để lấy mẫu (dump) thông tin ứng dụng:
_BBEdit/TextWrangler - trình chỉnh sửa tập tin văn bản
thuần:
Sau khi tải về đầy đủ, chúng ta hãy cài đặt một cách bình thường
Bước 1: khởi chạy AppZap lên và "dạo chơi" một vòng để tìm hiểu đây là ứng dụng gì, tính
năng ra sao,
_Mở khung đăng ký bản quyền lên
_Nhập đại cái gì đó tùy ý rồi bấm đồng ý
_Một thông điệp hiện lên, hãy nhớ dòng thông điệp đó (kế đến hãy tắt hoàn toàn AppZap)
Please be sure that you have entered your registration infor
Bước 2: chạy OTX để trích xuất thông tin
_Từ trình đơn, chọn File > Open > duyệt ngay nơi chứa ứng dụng và chọn AppZap (chọn theo
cây thư mục như hình)
_Bấm Save để nó trích xuất cho bạn tập tin .txt (chọn nơi lưu ngoài Desktop cho dễ)
Bước 3: dùng trình soạn thảo để mở tập tin .txt vừa được đẩy (dump) ra
_Nhấn CMD F để tìm với cụm từ như Bước 1 Please be sure that you have entered your
registration infor
Xem hình để có lời giải thích dễ hiểu hơn
_Chúng ta dựa vào tên mảng AZRegistrationWindowController để tìm tiếp thông tin
_Và đây là thông tin khá quan trọng mà ta có thể tìm được -
(BOOL)[AZRegistrationWindowController _validateName:andCode:]
Mình đã nhập thử thông tin đó, nhưng vẫn không được, vậy thì quái lạ nhỉ? Phải làm sao đây
_Dựa vào thông tin có thêm nữa từ MacUser và APZP-101-109-198-114 , tui nhận thấy rằng mã
số đăng ký phải bắt đầu với APZP. Vậy một đống số phía sao là do đâu mà ra? Do đâu mà có?
Lẩm cẩm 1 hồi, tui ngờ ngợ rằng nó quen quen, à há, có vẻ như là mã ASCII vậy. Tui tiến hành
tra cứu thử bảng mã với tên đăng ký là MacUser. Nhưng mèn đét ơi, nhìn kỹ thông cái đoạn
dump trước đó, tui thấy có điều khá lý thú "nếu ta nhập ký tự in hoa thì sẽ thất bại ngay" vì nó
được mã theo chuẩn chữ thường cho mọi yêu cầu
Chà chà, lý thú rồi đây, vậy tui sẽ có được thông tin như sau
_Tên đăng ký phải là: macuser
_Mã đăng ký gợi ý: APZP-101-109-198-114
_Tiến hành tra mã ASCII cho macuser
109 97 99 117 115 101 114
Ủa, sao đây thấy giống cái dữ kiện kia đâu? Cứ từ từ, ngồi uống 1 chút trà nào (tui đang uống
nước lọc), bắt đầu phân tích theo mã màu nhé
APZP-101-109-198-114
109 97 99 117 115 101 114
Màu xanh dương là: 97 + 101 = 198
Do đó, công thức như sau (nhớ rằng dựa vào mã ASCII)
Kết thúc bài viết. Đây là một cách dễ nhất mà thôi vì những phần mềm có những kiểu bảo vệ
khác nhau. Hãy cùng nhau chia sẻ kinh nghiệm nhé