DDos
VIP Members
-
22/10/2013
-
524
-
2.191 bài viết
Một vài công cụ để Deobfuscation JavaScript
Obfuscation là một kỹ thuật để làm cho mã ban đầu khó đọc và khó hiểu, nhưng không thay đổi chức năng của nó. Kỹ thuật obfuscation được áp dụng cho mã nguồn của các ngôn ngữ lập trình thông dịch (một loại ngôn ngữ lập trình mà hầu hết các hiện thực của nó thực thi lệnh trực tiếp và tự do mà không cần biên dịch trước chương trình sang lệnh ngôn ngữ máy). Chúng ta có thể thấy thuật ngữ obfuscation trong nhiều ngôn ngữ như PHP, JavaScript, Python...
Trong đó, rất phổ biến để bắt gặp một đoạn mã JavaScript sử dụng kỹ thuật obfuscation trong các trang web. Nguyên nhân là mã JavaScript được trình duyệt tải trực tiếp và người dùng có thể truy cập vào các tệp lệnh này.
Obfuscation sử dụng các kỹ thuật khác nhau. Một trong số đó là việc loại bỏ các khoảng trắng, nhận xét khỏi tệp JavaScript và kết hợp các chuỗi ký tự. Việc này không chỉ được sử dụng để làm rối mã mà còn để tăng tốc độ tải xuống các tập lệnh. Hình dưới đây là một ví dụ về Obfuscation của mã JavaScript.
Thông thường, khi bị làm rối, mã sẽ biến thành một tập hợp các hàm và dòng vô nghĩa không thể hiểu được, nhưng mã mới này hoạt động chính xác giống như mã nguồn ban đầu.
Kỹ thuật Obfuscation được sử dụng bởi các nhà phát triển để che giấu mã và bảo vệ ý tưởng của mình không bị đánh cắp. Trong khi đó, hacker sử dụng kỹ thuật này để làm cho quá trình phân tích trở nên khó khăn hơn.
Deobfuscation là việc sử dụng nhiều phương pháp khác để làm cho các mã đã bị làm rối trở về nguyên dạng ban đầu hoặc trở thành một đoạn code mà người phân tích có thể dễ đọc và hiểu. Vì có nhiều phương pháp làm rối mã, nên cũng có nhiều phương pháp và công cụ để deobfuscation mã, với các khả năng và mức độ hiệu quả khác nhau.
Deobfuscation là cần thiết cả trong phân tích mã độc và thử nghiệm thâm nhập một trang web mục tiêu để hiểu logic hoạt động của nó và tìm kiếm các lỗ hổng.
Dưới đây là một vài công cụ có thể hữu dụng trong quá trình deobfuscation JavaScript.
1. Sử dụng công cụ dành cho nhà phát triển của trình duyệt
Trong Chrome, khi truy cập một trang web, bạn có thể sử dụng nút F12 để bật công cụ dành cho nhà phát triển. Ví dụ tập lệnh JavasScript swiper-bundle.min.js
Để làm cho tập lệnh này trở nên dễ đọc hơn, bạn có thể bấm vào dấu { } để làm cho mã trở nên dễ đọc hơn
2. Sử dụng công cụ JStillery
JStillery là một trình deobfuscation JavaScript nâng cao. Việc sử dụng công cụ rất dễ dàng, bạn chỉ cần dán đoạn mã bị obfuscation và bấm nút deobfuscation là xong. Bạn có thể sử dụng online tại địa chỉ: https://mindedsecurity.github.io/jstillery/
3. Sử dụng công cụ de4js
de4js là một trình deobfuscation và unpack mã nguồn JavaScript. Các tính năng của công cụ này bao gồm:
Bạn có thể sử dụng công cụ trực tuyến tại địa chỉ: https://lelinhtinh.github.io/de4js/
Trong đó, rất phổ biến để bắt gặp một đoạn mã JavaScript sử dụng kỹ thuật obfuscation trong các trang web. Nguyên nhân là mã JavaScript được trình duyệt tải trực tiếp và người dùng có thể truy cập vào các tệp lệnh này.
Obfuscation sử dụng các kỹ thuật khác nhau. Một trong số đó là việc loại bỏ các khoảng trắng, nhận xét khỏi tệp JavaScript và kết hợp các chuỗi ký tự. Việc này không chỉ được sử dụng để làm rối mã mà còn để tăng tốc độ tải xuống các tập lệnh. Hình dưới đây là một ví dụ về Obfuscation của mã JavaScript.
Thông thường, khi bị làm rối, mã sẽ biến thành một tập hợp các hàm và dòng vô nghĩa không thể hiểu được, nhưng mã mới này hoạt động chính xác giống như mã nguồn ban đầu.
Kỹ thuật Obfuscation được sử dụng bởi các nhà phát triển để che giấu mã và bảo vệ ý tưởng của mình không bị đánh cắp. Trong khi đó, hacker sử dụng kỹ thuật này để làm cho quá trình phân tích trở nên khó khăn hơn.
Deobfuscation là việc sử dụng nhiều phương pháp khác để làm cho các mã đã bị làm rối trở về nguyên dạng ban đầu hoặc trở thành một đoạn code mà người phân tích có thể dễ đọc và hiểu. Vì có nhiều phương pháp làm rối mã, nên cũng có nhiều phương pháp và công cụ để deobfuscation mã, với các khả năng và mức độ hiệu quả khác nhau.
Deobfuscation là cần thiết cả trong phân tích mã độc và thử nghiệm thâm nhập một trang web mục tiêu để hiểu logic hoạt động của nó và tìm kiếm các lỗ hổng.
Dưới đây là một vài công cụ có thể hữu dụng trong quá trình deobfuscation JavaScript.
1. Sử dụng công cụ dành cho nhà phát triển của trình duyệt
Trong Chrome, khi truy cập một trang web, bạn có thể sử dụng nút F12 để bật công cụ dành cho nhà phát triển. Ví dụ tập lệnh JavasScript swiper-bundle.min.js
Để làm cho tập lệnh này trở nên dễ đọc hơn, bạn có thể bấm vào dấu { } để làm cho mã trở nên dễ đọc hơn
2. Sử dụng công cụ JStillery
JStillery là một trình deobfuscation JavaScript nâng cao. Việc sử dụng công cụ rất dễ dàng, bạn chỉ cần dán đoạn mã bị obfuscation và bấm nút deobfuscation là xong. Bạn có thể sử dụng online tại địa chỉ: https://mindedsecurity.github.io/jstillery/
de4js là một trình deobfuscation và unpack mã nguồn JavaScript. Các tính năng của công cụ này bao gồm:
- Có thể cài đặt ngoại tuyến để sử dụng
- Source code beautifier / syntax highlighter.
- Làm cho các đoạn code bị làm rối mã trở nên dễ đọc hơn
- Hoạt động tốt với các mã được pack (nén) với các kỹ thuật như:
- Eval, e.g. Packer, WiseLoop
- Array, e.g. Javascript Obfuscator, Free JS Obfuscator
- _Number (not correct name)
- Packer
- Javascript Obfuscator
- Free JS Obfuscator
- Obfuscator.IO (but not all cases)
- My Obfuscate
- URL encode, e.g. bookmarklet
- JSFuck
- JJencode
- AAencode
- WiseLoop
Bạn có thể sử dụng công cụ trực tuyến tại địa chỉ: https://lelinhtinh.github.io/de4js/
Chỉnh sửa lần cuối: