Bách khoa toàn thư về an toàn cháy nổ

Trình chỉnh sửa tệp nhị phân bằng tiếng Nga. Trình chỉnh sửa hệ thập lục phân

Bây giờ sẽ có rất nhiều tài liệu về chủ đề dữ liệu bao gồm những gì và làm thế nào nó có thể được chỉnh sửa. Nhiều người biết rằng bất kỳ tệp nào trên máy tính (hình ảnh, văn bản hoặc đa phương tiện) đều là mã nhị phân - số không và số một. Để chỉnh sửa các tệp như vậy, hãy sử dụng Biên tập viên HEX- một ứng dụng chỉnh sửa dữ liệu bao gồm một mã byte. Các byte trong trình chỉnh sửa được biểu thị bằng ký hiệu thập lục phân.

Phần mở rộng tệp

Vấn đề nằm ở số lượng lớn các loại tệp và lúc đầu không rõ hệ điều hành xác định văn bản, đa phương tiện hay lưu trữ và các loại dữ liệu khác như thế nào. Như bạn đã biết, định nghĩa tệp của hệ thống được thực hiện bằng cách sử dụng phần mở rộng được thêm vào sau tên, ví dụ: ".exe", ".txt" và các tệp khác.

Cài đặt trong HĐH rất linh hoạt, có nghĩa là phần mở rộng của bất kỳ tập tin nào cũng có thể bị xóa, nhưng sau đó hệ điều hành sẽ không thể mở nó, nó sẽ không hiểu được khởi động nó bằng chương trình nào. Trong trường hợp này, cấu trúc logic của đối tượng sẽ không thay đổi. Hình ảnh hiển thị một tệp văn bản và bên cạnh nó cũng là một tệp, nhưng không có phần mở rộng và biểu tượng của nó có màu trắng.

Nếu một đối tượng không có phần mở rộng vẫn giữ nguyên cùng một tệp với một tập hợp các ký hiệu logic, thì phần mở rộng không xác định được kiểu của nó, nhưng sau đó thì sao? Có một thứ như là định dạng- điều này xác định kiểu, nó cũng là đặc điểm kỹ thuật của cấu trúc dữ liệu. Mở rộng là một thuật ngữ hoàn toàn khác. Và phải làm gì nếu người dùng ban đầu gặp một tệp không có phần mở rộng, nhưng nó cần được mở gấp và điều gì chưa biết?

Người mô tả

Tất cả các tệp có thể được chia thành hai thành phần - tiêu đề, chứa dữ liệu nhận dạng đối tượng, siêu dữ liệu khác nhau. Thành phần thứ hai là "phần thân" của đối tượng, được sử dụng để xác định loại đối tượng và một phần của tiêu đề có tên của bộ mô tả. Hai bộ mô tả phổ biến là - ASCIIHEX... Tùy chọn thứ hai được phân tích với sự trợ giúp của các biên tập viên đã đề cập ở phần đầu.

Phương thức ASCII đầu tiên được xác định bằng cách sử dụng trình soạn thảo văn bản, chẳng hạn như Notepad ++, tuy nhiên, cần xem xét một điểm - một số bộ byte không thể được chuyển đổi sang định dạng ASCII, có nghĩa là bạn nên sử dụng trình chỉnh sửa HEX. Sau khi khởi chạy bất kỳ tệp nào bằng cách sử dụng tiện ích như vậy, cửa sổ sẽ hiển thị dạng xem ma trận với một chuỗi các byte, trong đó một byte được chứa trong một trong các ô. Thông tin về bộ mô tả thường được tìm thấy trong 3 ô đầu tiên, hiếm khi ở nhiều ô hơn. Các ô được đếm theo chiều ngang. Dữ liệu hiển thị trong các ô được biểu diễn bằng mã thập lục phân.

Giải mã bộ mô tả

Để hiểu loại dữ liệu nào ở đó, bạn cần giải mã mã. Để làm điều này, bạn cần một dịch vụ đặc biệt xác định các định dạng tệp, ví dụ: open-file.ru. Nhưng có những nguồn khác rất dễ tìm thấy trên internet. Sau khi tải tệp lên trang web, dữ liệu sẽ được phân tích, và sau đó kết quả sẽ được hiển thị. Một bảng với loại, định dạng và mô tả của tệp sẽ xuất hiện bên dưới.

Những gì chúng ta đã thảo luận ở trên là việc sử dụng các trình chỉnh sửa HEX. Bây giờ chúng ta hãy xử lý mã ASCII. Mã này có thể được phân tích bằng cách sử dụng cùng một open-file.ru. Nói cách khác, cả hai mã đều được kiểm tra trên tài nguyên và về cơ bản không cần nhập gì.

Đôi khi định dạng không dễ xác định. Điều này áp dụng cho tiêu đề ASCII. Thực tế là một số ký tự đầu tiên có thể liên quan đến phần mở rộng tệp và có thể với một số định dạng.

Tất nhiên, có một cách để xác định định dạng. Nhiều dòng sẽ được sử dụng để phân tích, không chỉ một dòng. Sau đó, một số phần tử nằm ở đó, bằng bất kỳ phương tiện nào, sẽ chỉ ra loại đối tượng.

Bạn có thể làm gì khác với trình chỉnh sửa HEX

Ngoài thực tế là các trình chỉnh sửa HEX giúp phân tích bất kỳ tệp nào, còn có thể:

  1. làm việc với hình ảnh đĩa;
  2. chỉnh sửa các phần;
  3. thay đổi nội dung của RAM;
  4. thay đổi không gian địa chỉ ảo của quy trình và nội dung.

Ví dụ, các tiện ích loại này được sử dụng trong phát triển phần mềm. Khi bạn cần nhập dữ liệu sau khi biên dịch một chương trình, nhưng bạn không muốn biên dịch lại nó. Bất kỳ mã chương trình nào cũng có thể được thay đổi bằng trình chỉnh sửa HEX. Tất nhiên, bạn cần phải có khả năng làm điều này, tìm thấy dữ liệu bạn cần. Do đó, họ tìm cách sửa các lỗi trong mã hoặc sử dụng chúng để hack và gian lận. Điều này có nghĩa là việc sử dụng các trình soạn thảo HEX rất rộng rãi.

Những trình chỉnh sửa HEX nào để sử dụng

Có nhiều chương trình để chỉnh sửa dữ liệu và chúng được trình bày bên dưới:

Tiện ích phổ biến cho Windows. Với nó, người dùng sẽ không thể mở bất kỳ loại tệp nào và thay đổi nó. Nếu có điều gì đó được chỉnh sửa sai, tiện ích sẽ có lịch sử thay đổi và bạn luôn có thể quay lại trạng thái ban đầu.

Công cụ này hoạt động rất nhanh, trong khi nó không nặng nhiều và bản thân nó có khả năng làm việc với các tệp lớn. Giao diện đơn giản và phù hợp cho người mới bắt đầu, có ngôn ngữ tiếng Nga.

Trình chỉnh sửa này có thể được sử dụng trong phiên bản demo trong một thời gian, và sau đó bạn cần phải mua nó. Công cụ này rất phổ biến, nơi có nhiều tùy chọn thú vị được tìm thấy.

Có thể làm việc không chỉ với các tệp mà còn với đĩa cứng, phương tiện flash, đĩa quang và thậm chí cả đĩa mềm. Tất cả các hệ thống tệp Windows đều được hỗ trợ. Hỗ trợ các chức năng sao chép phân vùng và xóa hoàn toàn dữ liệu mà không có khả năng khôi phục

Nếu bạn là người mới bắt đầu, thì chương trình này là đủ cho bạn, đặc biệt trong phần Trợ giúp có tùy chọn chuyển sang giao diện tiếng Nga.

Tiện ích này là 2 trong 1, vì nó có chức năng so sánh tệp và trình chỉnh sửa HEX tích hợp sẵn. Đôi khi, có thể cần phải so sánh các tệp này để xác định sự khác biệt và giống nhau, đồng thời phân tích cấu trúc của các đối tượng có định dạng khác nhau.

Nếu hai tệp khác nhau, các vùng trên ma trận sẽ được tô màu bằng bất kỳ màu nào và quá trình so sánh diễn ra trong vài giây. Đúng, các tệp không quá 4 GB phù hợp để phân tích.

Bản thân tiện ích có khả năng thay đổi giao diện. Có nghĩa là, người dùng có thể tùy chỉnh nó cho chính mình. Công việc sẽ diễn ra nhanh hơn.

Phần này được cung cấp miễn phí, nhưng nó có khả năng hoạt động với dữ liệu lớn ở bất kỳ định dạng và mã hóa nào. Có thể thay đổi RAM và đĩa cứng.

Chương trình kết hợp đầu ra văn bản hệ thập lục phân và ASCII. Giao diện sử dụng ngôn ngữ tiếng Anh khá đơn giản nên làm việc với nó sẽ không gặp nhiều khó khăn, đặc biệt nếu bạn đã từng làm việc trong các trình soạn thảo tương tự.

Nếu tệp không mở trong một trình chỉnh sửa, thì tệp sẽ mở trong trình chỉnh sửa này. Vì vậy, tôi đã đưa ra ở đây một danh sách một số tiện ích. Công cụ được chỉ định chịu trách nhiệm mở các tệp nhị phân. Có nhiều cài đặt và các yêu cầu hệ thống có sẵn cho bất kỳ máy tính nào.

Thao tác trong trình soạn thảo này cũng đơn giản như in trong Word. Có các tùy chọn để so sánh các tệp, tổng kiểm tra của chúng và xuất phân tích sang các định dạng khác nhau, ví dụ: html.

Nếu bạn cần dịch một mã này sang một hệ thống số khác, thì có một bộ chuyển đổi trong Hex Workshop. Chương trình là phần mềm chia sẻ, đây có thể được coi là một trong những điểm hạn chế.

Bây giờ bạn đã biết các trình soạn thảo HEX là gì và tại sao chúng được sử dụng. Trong tương lai, tôi sẽ cố gắng viết các bài báo về cách làm việc với họ, chẳng hạn như khi cần chỉnh sửa tệp.

Sau khi kết thúc chu kỳ với bài viết "Các công cụ pentester tốt nhất", tòa soạn nhận được rất nhiều thư với yêu cầu thực hiện lựa chọn các nhà biên tập hex. Tất nhiên, mối quan tâm không phải là khả năng chỉnh sửa dữ liệu nhị phân, mà là các tính năng bổ sung như tự động nhận dạng cấu trúc dữ liệu và tháo gỡ mã. Để thực hiện một đánh giá, chúng tôi đã tìm hiểu ý kiến ​​của những người thường xuyên phải mày mò với các công cụ như vậy - các nhà phân tích vi rút. Và đó là những gì họ đã nói với chúng tôi.

Bất kỳ trình soạn thảo hex nào đều cho phép bạn kiểm tra và sửa đổi tệp ở mức thấp, hoạt động với các bit và byte. Nội dung của tệp được trình bày dưới dạng thập lục phân. Đây là chức năng cơ bản. Tuy nhiên, một số trình chỉnh sửa cung cấp cho người dùng nhiều hơn thế, cho phép họ tìm ra trên thực tế, những gì trong bộ ký tự khó hiểu đó xuất hiện khi mở tệp. Để làm được điều này, các chuỗi ASCII và Unicode được trích xuất tự động, các mẫu đã biết được tìm kiếm, cấu trúc dữ liệu cơ bản được nhận dạng và hơn thế nữa. Có khá nhiều trình chỉnh sửa hệ thập lục phân, nhưng nếu chúng tôi quyết định xem xét chúng trong bối cảnh kiểm tra các mẫu phần mềm độc hại, thì sẽ dễ dàng làm nổi bật một số trong số chúng. Chỉ một số thực sự hữu ích để phân tích mã độc và kiểm tra các tài liệu bị nhiễm (chẳng hạn như PDF).

McAfee FileInsight

FileInsight là một trình soạn thảo Windows hex miễn phí từ McAfee Labs. Tất nhiên, sản phẩm thực hiện tất cả các chức năng tiêu chuẩn liên quan đến phần mềm đó, cung cấp giao diện thuận tiện để xem và chỉnh sửa tệp ở chế độ thập lục phân và văn bản. Nhưng đây chỉ là một giọt nước biển nếu bạn nhìn vào tất cả các chức năng của nó. Để bắt đầu, FileInsight có thể phân tích cú pháp cấu trúc của các tệp nhị phân thực thi cho Windows (tệp PE), cũng như các đối tượng Microsoft Office OLE. Hơn nữa, người dùng được cung cấp một trình tháo gỡ x86 tích hợp sẵn. Chỉ cần chọn phần của tệp mà bạn muốn xem dưới dạng mã có thể đọc được và FileInsight sẽ hiển thị phân đoạn này dưới dạng danh sách các hướng dẫn lắp ráp. Trình tháo gỡ đặc biệt hữu ích khi tìm kiếm shellcode trong các tệp độc hại. Các tùy chọn khác mà người đảo ngược sẽ yêu thích là khả năng nhập các khai báo cấu trúc. Để làm điều này, chương trình chỉ cần chỉ định một tệp tiêu đề với các khai báo như:

struct ANIHeader (
DWORD cbSizeOf; // Số byte trong AniHeader
DWORD cFrames; // Số lượng biểu tượng duy nhất
DWORD cSteps; // Số lần phạm lỗi
};

Trong trường hợp này, chương trình sẽ tự phân tích cú pháp các cấu trúc đó. Tuy nhiên, rất nhiều thuật toán trực quan để xử lý mã được cung cấp theo mặc định. Trước hết, chúng ta đang nói về việc giải mã nhiều phương pháp obfuscation (xor, add, shift, Base64, v.v.) - các tập lệnh nội tuyến nhấp vào bảo vệ mật mã như vậy một hoặc hai lần. Ở đây cần lưu ý rằng đối tượng nghiên cứu không nhất thiết phải là một trang nhị phân, nó cũng có thể là một trang web bình thường làm dấy lên nghi ngờ. Chương trình cho phép bạn tự động hóa nhiều hành động bằng cách sử dụng các tập lệnh đơn giản trong JavaScript hoặc các mô-đun bằng Python, trong đó nhiều tập lệnh đã được viết sẵn. Than ôi, đối với tất cả các ưu điểm của nó, FileInsight cũng có một nhược điểm nghiêm trọng, thể hiện ở việc không thể xử lý các tệp lớn. Ví dụ: nếu bạn cố gắng cung cấp cho tiện ích một tệp có kích thước 400-500 MB, lỗi "Không thể mở tài liệu" sẽ xảy ra.

Hex Editor Neo

Có hai phiên bản của trình soạn thảo hệ thập lục phân này từ Phần mềm HDD - một phiên bản miễn phí đơn giản và một phiên bản thương mại nâng cao. Phiên bản Phần mềm miễn phí là một trình chỉnh sửa HEX chắc chắn nhưng không nổi bật, có giao diện tùy biến tuyệt vời với sự hỗ trợ cho các phối màu khác nhau. Không còn nữa. Nhưng phiên bản chuyên nghiệp của Hex Editor Neo cung cấp một số tùy chọn hữu ích có thể cực kỳ hữu ích khi phân tích các tệp nhị phân. Ví dụ: người dùng có thể giải mã mã được mã hóa bằng các thuật toán phổ biến nhất. Ngoài ra, có thể xem và chỉnh sửa các tài nguyên cục bộ như luồng NTFS, đĩa cục bộ, bộ nhớ xử lý và RAM. Trong phiên bản hoàn chỉnh nhất, cũng có hỗ trợ ngôn ngữ script, cho phép bạn tự động hóa nhiều quy trình sử dụng script trong VBScript và JavaScript. Nhưng phần tốt nhất là bạn có một trình tháo gỡ tích hợp tại dịch vụ của mình hoạt động với x86, x64 và với mã nhị phân .NET! Một tính năng khác là tạo nhanh các bản vá dựa trên việc so sánh hai tệp nhị phân. Nghe có vẻ ấn tượng, nhưng nó có tốt hơn FileInsight không? Chắc là không. FileInsight nhìn tổng thể có nhiều chức năng hơn. Mặt khác, bất kỳ phiên bản miễn phí nào của Hex Editor Neo đều hoạt động tốt ngay cả với các tệp rất lớn và cho phép bạn tìm kiếm các chuỗi ASCII và Unicode. Trình tháo gỡ ở đây không chỉ giới hạn ở một nền tảng x86 và trình biên tập tài nguyên được tích hợp sẵn rất tiện lợi. Có một cái gì đó để suy nghĩ về.

FlexHex

FlexHex là một trình soạn thảo hex thương mại mạnh mẽ từ Phần mềm Heaventools bao gồm nhiều tính năng có sẵn trong Hex Editor Neo. Điều duy nhất còn thiếu ở đây, có lẽ là hỗ trợ kịch bản. Nhưng trình chỉnh sửa đầy đủ tính năng này xử lý các tệp nhị phân, tệp OLE, đĩa vật lý và các luồng NTFS thay thế tốt như nhau. Cái sau đặc biệt quan trọng vì FlexHex cho phép bạn chỉnh sửa dữ liệu mà những người chỉnh sửa khác thậm chí có thể không nhìn thấy. Ngoài ra, ngay lập tức có thể cảm nhận được sự tập trung khi làm việc với lượng lớn thông tin: bất kể tệp có kích thước như thế nào, việc điều hướng qua tệp được thực hiện mà không có bất kỳ độ trễ và phanh nào. Để thuận tiện hơn nữa, một hệ thống dấu trang thuận tiện sẽ hoạt động. Đồng thời, FlexHex liên tục lưu giữ lịch sử của tất cả các hoạt động - bạn có thể hoàn tác bất kỳ hành động nào bằng cách chỉ cần chọn nó từ danh sách các thay đổi (danh sách hoàn tác không giới hạn)! FlexHex hỗ trợ tất cả các thao tác cần thiết với dữ liệu nhị phân, tìm kiếm chuỗi ASCII và Unicode. Nếu cần xử lý một cấu trúc với định dạng định sẵn, sẽ không khó để thiết lập các thông số của nó bằng các công cụ đặc biệt. Kết quả là, chúng tôi nhận được một trình soạn thảo hex xuất sắc, nhưng vẫn kém hơn nhiều so với cùng một FileInsight. Tùy chọn đáng chú ý duy nhất là xử lý tệp OLE, nhưng cũng có vấn đề ở đây. Một vài lần khi cố gắng mở OLE bị nhiễm, chương trình đã bị lỗi "Docfile đã bị hỏng".

010 Biên tập viên

010 Editor là một sản phẩm thương mại nổi tiếng được phát triển bởi SweetScape Software. Nếu bạn so sánh nó với ba công cụ trước đó, thì nó có thể làm mọi thứ: nó hỗ trợ làm việc với các tệp rất lớn, cung cấp khả năng xử lý dữ liệu thú vị, cho phép bạn chỉnh sửa tài nguyên cục bộ, có hệ thống tập lệnh để tự động hóa các hành động thường ngày (hơn 140 các chức năng khác nhau tại dịch vụ của bạn). Và 010 Editor cũng có một bước ngoặt, một tính năng độc đáo. Trình chỉnh sửa làm được tất cả nhờ khả năng phân tích cú pháp các định dạng tệp khác nhau bằng cách sử dụng thư viện mẫu của riêng nó (cái gọi là Mẫu nhị phân). Ở đây anh ta không có bình đẳng. Rất nhiều người đam mê trên khắp thế giới đang làm việc trên các mẫu, búa ở nhiều định dạng và cấu trúc dữ liệu khác nhau. Do đó, quá trình điều hướng qua các định dạng tệp khác nhau trở nên minh bạch và dễ hiểu. Điều này cũng áp dụng cho việc xử lý tệp nhị phân cho Windows (tệp PE), tệp lối tắt Windows (LNK), tệp lưu trữ Zip, tệp lớp Java và hơn thế nữa. Nhiều người đã có thể nhận ra vẻ đẹp của tính năng này khi chuyên gia bảo mật nổi tiếng Didier Stevens tạo ra một mẫu phân tích cú pháp tệp PDF cho 010 Editor. Cùng với các tiện ích khác, điều này giúp đơn giản hóa đáng kể việc phân tích các tài liệu PDF bị nhiễm virus, điều mà trong sáu tháng qua chưa bao giờ hết ngạc nhiên với số lượng nơi mà người đọc có thể bị khai thác. Chúng tôi thêm vào đây một công cụ tuyệt vời để so sánh các mã nhị phân, một máy tính có cú pháp giống C, chuyển đổi dữ liệu giữa các định dạng ASCII, EBCDIC, Unicode và chúng tôi nhận được một công cụ rất hấp dẫn với các tính năng độc đáo.

Hiew

Hiew, về phương thức phân phối, không khác nhiều so với các đồng nghiệp - đây cũng là một sản phẩm thương mại, được phát triển bởi người đồng hương Evgeny Suslikov của chúng tôi. Với lịch sử lâu đời, chương trình được rất nhiều chuyên gia bảo mật thông tin ưa chuộng. Có những lý do khá rõ ràng cho điều này - khả năng mạnh mẽ để nghiên cứu và chỉnh sửa cấu trúc cũng như nội dung của các tệp thực thi của cả Windows (PE) và Linux nhị phân (ELF). Một tính năng rất hữu ích khác để đảo chiều là trình lắp ráp và tháo gỡ x86-64 được tích hợp sẵn. Sau này thậm chí còn hỗ trợ các hướng dẫn ARM. Không cần phải nói, trình chỉnh sửa rất xuất sắc trong việc tiêu hóa các tệp lớn và cho phép bạn chỉnh sửa các ổ đĩa logic và vật lý. Nhiều tác vụ được tự động hóa dễ dàng thông qua hệ thống macro bàn phím, tập lệnh và thậm chí là API để phát triển các tiện ích mở rộng (Mô-đun Hiew Extrenal). Nhưng trước khi bạn lao vào trận chiến, hãy lưu ý - giao diện Hiew là một cửa sổ giống DOS, khá bất tiện khi làm việc theo thói quen. Nhưng bạn có thể tự mình cảm nhận được tất cả sự quyến rũ của ngôi trường cũ.

Radare

Radare là một bộ sưu tập các công cụ miễn phí dành cho nền tảng Unix cung cấp các tính năng thú vị để chỉnh sửa tệp ở chế độ HEX. Nó bao gồm chính trình soạn thảo hex (radare) với khả năng mở các tệp cục bộ và từ xa. Chương trình phân tích các tệp thực thi ở nhiều định dạng khác nhau, cả Linux (ELF) và Windows (PE). Ngoài việc chỉnh sửa, Radare có một công cụ so sánh nhị phân (radiff) và một trình hợp dịch / tháo gỡ tích hợp. Và về mặt cá nhân, một vài lần công cụ tạo mã vỏ (rasc) rất hữu ích. Mọi hoạt động có thể được tự động hóa và tùy chỉnh dễ dàng bằng cách sử dụng hệ thống tập lệnh. Trong số những điểm hạn chế, một lần nữa, chúng ta có thể lưu ý đến việc thiếu giao diện GUI - tất cả các hành động được thực hiện từ dòng lệnh và sẽ có thể hoạt động đầy đủ với các tiện ích chỉ sau khi đọc tài liệu. Mặt khác, trang web có các màn hình hiển thị trực quan cho thấy cả những điểm chính và bí mật nhỏ (như kết nối một plugin Python).

Vì vậy, những gì bạn nên chọn?

Chúng tôi đã xem xét một số trình chỉnh sửa hex mạnh mẽ bao gồm các tùy chọn hữu ích để phân tích các tệp đáng ngờ. Trong tất cả các sản phẩm, FileInsight nổi bật, tất cả các chức năng của nó (và nó thực sự ấn tượng) vẫn miễn phí. 010 Editor cung cấp một số lượng lớn các mẫu để xử lý nhiều loại tệp, bao gồm cả tài liệu PDF. Đây là một tính năng lớn không thể bị bỏ qua. Tôi sử dụng hai trình soạn thảo này mọi lúc; đối với nhà phân tích, chúng có lẽ là phù hợp nhất. Nếu chúng ta nói về việc làm việc trên nền tảng Unix, thì tất nhiên, chúng ta không nên quên Radare. Gói này cung cấp các tính năng rất mạnh mẽ, mặc dù nó khó sử dụng do thực tế là nó hoạt động từ dòng lệnh. Hiew cũng không thân thiện lắm, mặc dù tất nhiên, khả năng của nó cho phép bạn thực hiện nhiều thao tác khác nhau với các mã nhị phân. Ngoài ra, Hiew là sự lựa chọn của một số lượng lớn các chuyên gia thực sự và nó có giá trị rất nhiều (và có ý nghĩa rất lớn). Đối với Hex Editor Neo, nó đáng dùng nếu bạn quan tâm đến khả năng tháo rời mã x86, x64 và .NET.

GHI CHÚ
Các số liệu không được hiển thị trên trang này, nhưng bạn có thể tìm thấy chúng trong sách.

Những gì chúng tôi sẽ làm bây giờ rất thú vị theo quan điểm của tôi. Đây sẽ là chương trình mã máy đầu tiên của bạn (và rất có thể là chương trình duy nhất))).

Hợp ngữ là một ngôn ngữ cấp thấp, nhưng vẫn là một ngôn ngữ. Bạn đã thử viết một chương trình bằng mã máy chưa? Hãy thử ngay bây giờ.

Bạn có thể viết một chương trình mà không cần bất kỳ trình biên dịch-lắp ráp và các công cụ khác - sử dụng bất kỳ trình soạn thảo hex nào (hoặc trình soạn thảo hex hoặc trình biên dịch hex).

Tuy nhiên, phân tích cú pháp các chương trình trong một trình soạn thảo thập lục phân khá hữu ích. Đặc biệt là đối với những người sắp làm việc với điện tử - sau khi tất cả, bộ vi xử lý không hiểu Pascal hoặc C ++. Mặc dù có những thiết bị và chương trình đặc biệt mà những ngôn ngữ này "giải thích" cho chúng.

Trước tiên, bạn cần một trình soạn thảo hex. Bạn có thể sử dụng bất cứ thứ gì trong tầm tay của bạn. Tuy nhiên, tôi sẽ sử dụng McAfee FileInsight v2.1 đã được đề cập. Trình chỉnh sửa hex này miễn phí để tải xuống. Tất cả các hành động được mô tả dưới đây đều hợp lệ cho trình soạn thảo cụ thể này.

Vì vậy, bạn đã cài đặt trình chỉnh sửa hệ thập lục phân. Chúng tôi khởi chạy nó. Chúng tôi nhấp vào nút MỞ, tìm một trong các tệp COM mà chúng tôi đã tạo, ví dụ: debug_1.com và tải nó vào trình chỉnh sửa.

Khi tệp được tải, bạn sẽ thấy như sau trong trình chỉnh sửa (xem thêm Hình 1.12):

00000000 B4 02 B2 41 CD 21 CD 20 ... A.!. Bạn có thể mở hai tệp khác mà chúng tôi đã tạo: mycode.com (được tạo trong emu8086) hoặc ATEST.COM (mà chúng tôi đã tạo trong phần). Bạn sẽ thấy điều tương tự. Điều này có nghĩa là tất cả các nhà lắp ráp đều tạo ra cùng một mã máy. Đó là, sự khác biệt trong văn bản của các chương trình không phải là cơ bản - chúng chỉ là do sự khác biệt trong bản thân các trình lắp ráp.

GHI CHÚ
Nếu trong trường hợp của bạn, bạn thấy một hình ảnh khác, thì bạn đã mở một tệp khác hoặc bạn đang xem nó ở chế độ văn bản. Trong trường hợp thứ hai, nhấp vào nút View as Hex trên thanh công cụ (xem Hình 1.12).

Những con số có ý nghĩa gì?

Mọi thứ đều rõ ràng với các số không - đây là ô nhớ đầu tiên mà số B4 được viết. Số này sau đó sẽ được ghi vào địa chỉ 0100h (đối với tệp COM). Dòng phải chứa 16 số, mỗi số gồm hai chữ số. Các số được viết dưới dạng thập lục phân. Nhưng chương trình của chúng tôi nhỏ - chỉ 8 byte, vì vậy chúng tôi có 8 số.

Nhưng chính xác thì B4 là gì? Đây là lệnh - "Nhập giá trị vào thanh ghi AH". Và chúng ta nhập giá trị nào? Đúng: 02 (số tiếp theo trong dòng).

AX = 0200 BX = 0000 CX = 0000 DX = 0000 SP = FFEE BP = 0000 SI = 0000 DI = 0000 DS = 0B72 ES = 0B72 SS = 0B72 CS = 0B72 IP = 0102 NV UP EI PL NZ NA PO NC 0B72: 0102 B241 MOV DL, 41 Xem B241 ở dòng cuối cùng? Một sự kết hợp quen thuộc? Đây là mã lệnh MOV DL, 41.

Nó vẫn còn để đối phó với các nhân vật bí ẩn ở cuối dòng. Nhưng ở đây mọi thứ rất đơn giản: mỗi chữ số trong một số tương ứng với một mã ký tự của bảng ASCII và các ký tự này được hiển thị theo cùng một trình tự với các chữ số thập lục phân. Trong văn bản này, thay vì một số ký tự, có dấu chấm (.) - đây chỉ đơn giản là mã cho các ký tự không phải chữ cái.

Vâng, bây giờ chúng ta hãy viết và tạo chương trình đã được nghiên cứu kỹ lưỡng của chúng ta mà không có trình lắp ráp và trình liên kết. Mở trình chỉnh sửa, tạo tệp mới (để thực hiện việc này, nhấp vào nút MỚI trên thanh công cụ), sau đó nhấp vào nút Xem dưới dạng Hex và nhập dữ liệu:

00000000 B4 02 B2 41 CD 21 CD 20 Lưu tệp dưới tên, ví dụ: hex_1.com. Mọi điều. Chương trình đã sẵn sàng. Bây giờ bạn có thể khởi chạy nó và một lần nữa chiêm ngưỡng sự sáng tạo của bạn. Kết quả sẽ giống như trong tất cả các trường hợp trước đó.

Và một điều ngạc nhiên thú vị nữa từ trình chỉnh sửa McAfee FileInsight v2.1 - nó có trình tháo gỡ riêng! Nếu bạn tải tệp thực thi vào trình chỉnh sửa, và ở góc dưới bên trái, chọn tab KHUYẾN CÁO, bạn có thể thấy mã nguồn của chương trình được tải bằng hợp ngữ (Hình 1.12).

Tại sao chúng ta cần trình chỉnh sửa hex và trình tháo gỡ? Khó quá. Vâng, nó không phải là dễ dàng. Tuy nhiên, các hacker không nghĩ vậy. Với sự trợ giúp của các trình soạn thảo hex và trình tháo gỡ, chúng sẽ phá vỡ các chương trình. Họ tìm thấy những chỗ họ cần trong mã và sửa chúng theo ý thích bất chợt của hacker.

Tất nhiên, chúng tôi không phải là tin tặc. Chúng tôi sẽ không phá vỡ các chương trình. Tuy nhiên, trình tháo gỡ và trình chỉnh sửa hex cũng khá hữu ích cho các lập trình viên tuân thủ luật pháp. Ví dụ, chúng được sử dụng để gỡ lỗi, để học mã máy, v.v. Ví dụ, bạn biết lệnh của hợp ngữ trông như thế nào, nhưng bạn muốn biết mã máy của nó. Nếu không có tài liệu, thì chỉ có một lối thoát - một trình soạn thảo hệ thập lục phân và / hoặc một trình tháo gỡ. Tuy nhiên, cần lưu ý rằng không phải tất cả các hướng dẫn đều phù hợp với mã máy của hai số. Một số lệnh khá phức tạp và yêu cầu nhiều số hơn được biểu diễn trong mã máy.

Trình chỉnh sửa HEX là một chương trình có thể hiển thị thông tin khi máy tính "nhìn thấy" thông tin đó, nhưng chuyển đổi nó sang hệ thập lục phân. Mở bất kỳ tệp nào trong một ứng dụng như vậy, người dùng sẽ thấy một ma trận bao gồm các cột và hàng, số lượng của chúng phụ thuộc vào kích thước của tệp được đề cập. Do đó, nếu bạn thay đổi giá trị của các byte trong trình chỉnh sửa, nội dung của tài liệu đang mở cũng sẽ thay đổi.

Một chút lý thuyết

Mọi dữ liệu được lưu trữ trong bộ nhớ PC dưới dạng các từ máy, nếu không thì - byte. Mỗi bit bao gồm 8 bit (các chữ số nhị phân nhận giá trị "0" hoặc "1"). Bằng các phép tính toán học, bạn có thể hiểu rằng một số trong phạm vi từ 0 đến 255 có thể được viết bằng một byte, nếu bạn dịch 255 thành hệ thập lục phân, nó sẽ được chuyển thành FF. Có nghĩa là, rất thuận tiện khi sử dụng biểu diễn thập lục phân để hiển thị bất kỳ từ máy nào. Do đó tên của nhóm chương trình - trình soạn thảo hệ thập lục phân.

Các yếu tố chính của chương trình

Ngoài ma trận được mô tả ở trên, có thể có các phương tiện khác trong giao diện của nhóm ứng dụng được trình bày:

  • Đánh số dòng. Thường nằm ở phía bên trái của ứng dụng. Hiển thị độ lệch của byte đầu tiên của dòng so với phần đầu của tệp.
  • Thường có một dải số tương tự ở trên cùng, hiển thị độ lệch byte so với bên trái của giá trị dòng. Bằng cách thêm các giá trị của các chuỗi, bạn có thể nhận được số lượng của mỗi byte.
  • Ngăn bên phải có thể hiển thị cùng một dữ liệu như trong bảng, nhưng dưới dạng văn bản (người dùng).

McAfee FileInsight

Trình chỉnh sửa HEX này hoàn toàn miễn phí. Chỉ hoạt động trong các hệ điều hành thuộc họ Windows. Sản phẩm có tất cả các thiết của quý ông như xem và chỉnh sửa file. Hơn nữa, chương trình có một giao diện dễ chịu và thân thiện với người dùng.

Nhưng các hàm tiêu chuẩn là mức tối thiểu để FileInsight có thể được sử dụng. Tối đa là bao nhiêu? Chúng ta cần bắt đầu với khả năng phân tích cú pháp cấu trúc của các tệp thực thi. Như vậy vẫn chưa đủ sao? Mọi lựa chọn có thể được tháo rời khi đang di chuyển. Một cú nhấp chuột - và những con số khó hiểu trở thành một danh sách có thể đọc được.

Trong số những thứ khác, trình soạn thảo HEX này cung cấp nhiều thuật toán xử lý mã khác nhau để vượt qua sự bảo vệ do các nhà phát triển xây dựng. Trước hết, bạn cần chú ý đến các phương pháp giải mã obfuscation như add, xor, Base64, shift. Các tập lệnh mà ứng dụng đi kèm phá vỡ loại mã hóa này một cách dễ dàng. Hầu hết các hành động có thể được tự động hóa bằng cách viết các đoạn mã đơn giản bằng JS hoặc Python. Đôi khi không bắt buộc phải tạo bất cứ thứ gì mới, bởi vì cơ sở dữ liệu của chúng rất ấn tượng.

Mặc dù FileInsight được coi là một trong những công cụ tốt nhất để thiết kế ngược, chương trình cũng có một nhược điểm rất lớn - không có khả năng xử lý các tệp vượt quá 400 MB.

Hex Editor Neo

Trình chỉnh sửa HEX này có hai phiên bản: miễn phí và nâng cao. Sản phẩm được cấp phép phần mềm miễn phí có chất lượng cao, nhưng không đáng kể. Trong số các tính năng, bạn có thể làm nổi bật các cài đặt rộng rãi của giao diện và cách phối màu. Phiên bản chuyên nghiệp cung cấp nhiều tính năng hữu ích hơn đặc biệt có liên quan trong quá trình phân tích.

Ví dụ, người dùng được cung cấp khả năng giải mã các chương trình được mã hóa bởi các thuật toán phổ biến. Ngoài ra, có các chức năng cho phép bạn chỉnh sửa tài nguyên cục bộ (RAM, luồng NTFS, ổ cứng). Tự động hóa quy trình được thực hiện bằng cách sử dụng các tập lệnh VBS và JS.

Tuy nhiên, tính năng quan trọng nhất của chương trình là trình tháo gỡ, có thể hoạt động với các tệp x64, x86 và .NET. Một tính năng khác không được cung cấp bởi các đối thủ cạnh tranh là tạo một bản vá dựa trên sự so sánh của hai tệp nhị phân thực thi. Chắc chắn là ấn tượng, nhưng khi so sánh với FileInsight, Neo vẫn thua kém. Tuy nhiên, NEO có thể xử lý các tệp lớn.

Hiew

Trình chỉnh sửa HEX Hiew không có phiên bản miễn phí. Một nhóm từ Nga đang tham gia vào quá trình phát triển. Sản phẩm bắt đầu lịch sử của nó kể từ ngày của các ứng dụng 16-bit cho DOS và Windows 3.1. Hiew thường được sử dụng bởi các chuyên gia máy tính và bảo mật thông tin. Lý do rất rõ ràng: đầy đủ các tùy chọn để chỉnh sửa và xem các tệp nhị phân thực thi của Windows, cũng như các chương trình Linux đã biên dịch (ELF).

Một tính năng kỹ thuật đảo ngược đáng chú ý khác là trình tháo gỡ và lắp ráp tích hợp của Hiew. Hơn nữa, chúng hoạt động với cả ứng dụng x86 và x86_64, hướng dẫn bộ xử lý cũng được hỗ trợ. Trình chỉnh sửa đối phó với các tệp lớn mà không gặp bất kỳ khó khăn nào, cho phép bạn thực hiện thay đổi dữ liệu mức thấp trên ổ cứng vật lý.

Một số lượng lớn các hành động có thể được tự động hóa. Để làm được điều này, các lập trình viên đã tích hợp sẵn khả năng tạo tập lệnh, macro bàn phím và các hàm API được sử dụng để gọi các thủ tục nội bộ từ các ứng dụng bên ngoài. Nhưng Hiew vẫn không giành được chiến thắng vô điều kiện trong lĩnh vực biên tập hệ thập lục phân. Giao diện của nó hoàn toàn theo phong cách DOS, và nó vẽ các cửa sổ (hoặc bảng điều khiển, nếu chúng ta nói về hệ thống Linux).

Chúc mọi người một ngày tốt lành.

Vì một số lý do, nhiều người tin rằng làm việc với các trình chỉnh sửa hex là rất nhiều chuyên gia và người dùng mới không nên can thiệp vào chúng. Nhưng, theo ý kiến ​​của tôi, nếu bạn có ít nhất các kỹ năng cơ bản để làm việc với PC và hãy tưởng tượng tại sao bạn cần một trình soạn thảo hex, thì tại sao không ?!

Với sự trợ giúp của một chương trình thuộc loại này, bạn có thể thay đổi bất kỳ tệp nào, bất kể loại tệp đó là gì (nhiều sách hướng dẫn và hướng dẫn chứa thông tin về cách thay đổi một tệp cụ thể bằng trình chỉnh sửa hex)! Đúng, người dùng cần có ít nhất hiểu biết cơ bản về hệ thập lục phân (dữ liệu trong trình chỉnh sửa hệ thập lục phân được thể hiện trong đó). Tuy nhiên, kiến ​​thức cơ bản về nó được đưa ra trong các bài học khoa học máy tính ở trường, và có lẽ nhiều người đã nghe và có ý tưởng về nó (vì vậy, tôi sẽ không bình luận về nó trong bài viết này). Vì vậy, đây là những trình chỉnh sửa hex tốt nhất cho người mới bắt đầu (theo ý kiến ​​khiêm tốn của tôi).

1) Trình chỉnh sửa Hex miễn phí

Một trong những trình chỉnh sửa đơn giản và phổ biến nhất cho các tệp thập lục phân, thập phân và nhị phân cho Windows. Chương trình cho phép bạn mở bất kỳ loại tệp nào, thực hiện các thay đổi (lịch sử các thay đổi được lưu lại), rất tiện lợi khi chọn và chỉnh sửa tệp, gỡ lỗi và phân tích.

Nó cũng đáng chú ý là mức hiệu suất rất tốt, cùng với yêu cầu hệ thống thấp đối với máy (ví dụ: chương trình cho phép bạn mở và chỉnh sửa các tệp khá lớn, trong khi các trình chỉnh sửa khác chỉ đơn giản là đóng băng và từ chối hoạt động).

Trong số những thứ khác, chương trình hỗ trợ tiếng Nga, có giao diện trực quan và chu đáo. Ngay cả một người dùng mới làm quen cũng có thể tìm ra nó và bắt đầu làm việc với tiện ích này. Nói chung, tôi giới thiệu nó cho bất kỳ ai bắt đầu làm quen với trình chỉnh sửa hex.

2) WinHex

Thật không may, trình soạn thảo này là phần mềm chia sẻ, nhưng nó là một trong những phần mềm linh hoạt nhất, hỗ trợ một loạt các tùy chọn và tính năng khác nhau (một số trong số đó rất khó tìm thấy từ các đối thủ cạnh tranh).

Trong chế độ biên tập đĩa cho phép bạn làm việc với: HDD, đĩa mềm, ổ đĩa flash, DVD, ZIP-disk, vv Hỗ trợ các hệ thống tệp: NTFS, FAT16, FAT32, CDFS.

Tôi không thể không lưu ý đến các công cụ tiện lợi để phân tích: ngoài cửa sổ chính, bạn có thể kết nối các công cụ bổ sung với các máy tính khác nhau, các công cụ để tìm kiếm và phân tích cấu trúc tệp. Nói chung, nó phù hợp cho cả người mới bắt đầu và người dùng đã có kinh nghiệm. Chương trình hỗ trợ tiếng Nga ( chọn menu sau: Help / Setup / Russian ).

WinHex, ngoài các chức năng phổ biến nhất của nó (hỗ trợ các chương trình tương tự), cho phép bạn "sao chép" đĩa và xóa thông tin khỏi chúng để không ai có thể khôi phục được!

3) Trình chỉnh sửa Hex HxD

Trình chỉnh sửa nhị phân miễn phí và khá mạnh mẽ. Hỗ trợ tất cả các mã hóa chính (ANSI, DOS / IBM-ASCII và EBCDIC), tệp ở hầu hết mọi kích thước (nhân tiện, trình chỉnh sửa cho phép, ngoài tệp, chỉnh sửa RAM, trực tiếp ghi các thay đổi vào ổ cứng!).

Cũng có thể lưu ý rằng giao diện được cân nhắc kỹ lưỡng, chức năng tìm kiếm và thay thế dữ liệu thuận tiện và đơn giản, hệ thống sao lưu và khôi phục dữ liệu từng bước và đa cấp.

Sau khi khởi động, chương trình bao gồm hai cửa sổ: mã thập lục phân ở bên trái, dịch văn bản và nội dung tệp tin ở bên phải.

Trong số những điều tối thiểu, tôi sẽ chỉ ra rằng không có tiếng Nga. Tuy nhiên, nhiều chức năng sẽ có thể hiểu được ngay cả đối với những người chưa bao giờ học tiếng Anh ...

4) HexCmp

HexCmp - tiện ích nhỏ này kết hợp 2 chương trình cùng một lúc: chương trình thứ nhất cho phép bạn so sánh các tệp nhị phân với nhau và chương trình thứ hai là trình soạn thảo hex. Đây là một tùy chọn rất có giá trị khi bạn cần tìm sự khác biệt trong các tệp khác nhau, nó giúp khám phá các cấu trúc khác nhau của các loại tệp khác nhau nhất.

Nhân tiện, các địa điểm sau khi so sánh có thể được tô bằng các màu khác nhau, tùy thuộc vào nơi mọi thứ khớp và nơi dữ liệu khác nhau. Việc so sánh được thực hiện ngay và rất nhanh chóng. Chương trình hỗ trợ các tập tin có dung lượng lên đến 4 GB (khá đủ cho hầu hết các tác vụ).

Ngoài so sánh thông thường, bạn có thể thực hiện so sánh trong phiên bản văn bản (hoặc thậm chí cả hai cùng một lúc!). Chương trình đủ linh hoạt, cho phép bạn tùy chỉnh bảng màu, chỉ định các nút tắt. Nếu bạn cấu hình chương trình phù hợp, thì bạn có thể làm việc với nó mà không cần chuột! Nói chung, tôi giới thiệu nó cho tất cả những người mới làm quen với trình chỉnh sửa hex và cấu trúc tệp.

Các ấn phẩm tương tự