Table of Contents
Những người tách rời và những kẻ phá hoại là gì?
Việc phân tích phần mềm sở hữu mà không cần truy cập đến mã nguồn riêng của nó. Những bộ tách rời và bộ phân tách là hai loại công cụ kỹ thuật đảo ngược cho phép các nhà nghiên cứu, phân tích ngôn ngữ bảo mật, và các nhà phát triển xem xét các bộ xử lý thực hiện được ở mức độ trừu tượng khác nhau. Một [FLT: 0] Bộ ráp [FLT: 0] bộ ráp [FT: 1 bước] để tái tạo lại mã máy và dịch nó vào ngôn ngữ có thể đọc được, phơi bày các bộ xử lý cấp độ thấp thực hiện. [FL: 1] bộ phân tích [FLT: 0] Một bước [FLT:] đi sâu hơn nữa để tái tạo lại một chương trình, hoặc dịch nó sang ngôn ngữ giả lập trình viên, như thiết lập trình viên, hoặc Cireter, không phải là cách thức xuất các bộ trình nhị phân tích, cũng không có khả năng tạo ra các bộ trình tổng hợp nhất.
Những người tháo rời hoạt động như thế nào
Các bộ tách rời hoạt động trực tiếp trên tập tin nhị phân - PLF, Mach-O, hoặc thô thô các hình phần mềm - bằng cách phân tích các hướng dẫn theo thứ tự và lập bản đồ đến các địa chỉ thư mục hội nghị tương ứng. Quá trình này phụ thuộc vào các chỉ dẫn của bộ xử lý đặt ra các cấu trúc (ISA), như x86, ARM, hoặc MIPS. Các bộ tách rời sử dụng hoặc chạy bộ mã (try qua mã trungly) hoặc rectly tracker (điều khiển) để giải mã. Việc phân tích lại tính toán là chính xác hơn để xử lý dữ liệu lẫn nhau hoặc phân tích. [FT], cũng xác hơn nữa để xác định các phân tích [FT] và xác định các đường dẫn đối chiếu (FT].T].T] và cũng nhận ra các chi tiết khác nhau.
Những kẻ gian manh hoạt động như thế nào
Các phân tách kết hợp các phân tích với nhau để tăng cường mức trừu tượng. Thứ nhất, họ tách các hệ nhị phân. Sau đó, họ thực hiện phân tích luồng điện tử để xây dựng một đồ thị lưu (CFG) và phân tích dữ liệu luồng để theo dõi biến số và loại. Mẫu khớp và tính năng khớp hoàn toàn các biến thể được áp dụng để tái tạo cấu trúc cấu trúc cấu trúc cấu trúc cấu trúc cao điển hình: vòng lặp, nếu hệ thống mạng trục, các phát âm và các chức năng. Kết quả thường là một dạng cấu trúc, đọc được như mã hóa kiểu Chip. Không có bộ phân hủy hoàn toàn có thể phục hồi lại các lời bình luận, biến cục cục bộ, hoặc mã nguồn gốc, nhưng [FL] tôi đã xây dựng [FLS] (TLSe]
Dùng những người tháo rời và những người phá hoại trong thực hành
Phân tích an ninh và nghiên cứu về tính dễ bị tổn thương
Các chuyên gia bảo mật thường sử dụng các bộ tách rời và phân hủy phần mềm để kiểm tra sự yếu đuối của phần mềm sở hữu. Bằng cách kiểm tra nhị phân, họ có thể nhận diện lỗi tham nhũng, hợp lệ hóa dữ liệu, hoặc xác định sai. Những sự cố đáng chú ý như phát hiện bộ phận bị tổn thương tim bị tổn thương trong phần mềm OpenSSL hoặc cửa sau trong phần mềm chủ thể tích phân tích nhị phân. Các mã phân tích không cân bằng giúp các nhà phân tích lý luận về các chức năng phức tạp mà không cần nhìn chằm chằm vào các trang lắp ráp.
Phân tích phần mềm
Các mẫu phần mềm hầu như không bao giờ được phân phối bằng mã nguồn. Các phân tích dựa vào các bộ tách rời để hiểu các hoạt động mã hóa hiểm độc, xác định thói quen mã hóa, và theo dõi lệnh « lệnh » và « kiểm soát » (FL: 1) và [FL:2] [FL:] [Fdra] [FM:] [FL:] [FM:] [FM:] [FL:] [FL:]] đa dạng nhị phân] đặc biệt được ưa chuộng trong vùng này vì chúng được phổ biến miễn phí và dễ sử dụng.
Phục hồi mã nguồn di sản bị mất hoặc bị mất
Các tổ chức bảo trì phần mềm cổ đôi khi mất nguồn gốc do phiên bản không tốt hoặc sự thay đổi nhân sự. Việc phân hủy có thể giúp tái tạo một chức năng tương đương với cơ sở mã, cho phép bảo trì hoặc chuyển sang nền tảng hiện đại. Mặc dù kết xuất bị ngắt quãng có thể đòi hỏi sự làm sạch quan trọng, nhưng nó cung cấp một điểm khởi đầu không thể đạt được.
Học thuật ngữ và khả năng giao tiếp
Các dự án mã nguồn mở hoặc mã nguồn mở có thể cần phải kết hợp với giao thức hay định dạng tập tin riêng. Việc phân tách các thư mục liên quan tiết lộ cấu trúc, định dạng dữ liệu của thuật toán và máy tính trạng thái. Điều này thường xảy ra trong việc phát triển các chương trình thay thế tương thích với phần mềm di sản. Tương tự, các nhà phát triển muốn viết bổ sung hoặc mở rộng ứng dụng mã nguồn điện tử đóng phải đảo ngược giao diện nhị phân của máy tính.
Những người hợp nhất và những người phá hoại quần chúng
IDA Pro (bộ tách hoạt động)
IDA Pro là tiêu chuẩn thực tế cho phân tích nhị phân. Hỗ trợ hàng tá kiến trúc CPU, cung cấp một giao diện kịch bản mạnh mẽ (IDPython), và tích hợp với bổ sung HexRays decomiler. Nó qua đường dẫn, xem đồ thị và gỡ lỗi làm cho nó trở thành một nền tảng toàn diện cho cả hai sự phân hủy và không thể phối hợp. IDA là phần mềm thương mại, nhưng có sẵn cho phiên bản tự do (ADA) để sử dụng giới hạn.
Ghidra
Được phát triển bởi Cơ quan An ninh Quốc gia và phát hành như là nguồn mở, Ghidra đối thủ với IDA trong nhiều khía cạnh, bao gồm một bộ phân tích được xây dựng, một bộ phận hủy bỏ hệ thống ATI có thể lập trình (Python or Java), và bộ phân tích hợp tác. Ghidra của Ghdra đặc biệt mạnh mẽ đối với x86, ARM, và PowerPC binries. Nó được tự do sử dụng và có một cộng đồng lớn các nhà phát triển bổ sung. Để biết thêm thông tin, xem trang web chính thức [FL: 0] [FL: 0] [Fdra] [FL: 1].
Radare2
Radare2 là một khung kỹ thuật đảo ngược điều khiển để tạo ra sự phân hủy, phân hủy [FLT: 0] hoặc bổ sung, và khả năng gỡ lỗi. Nó là một mô thức và có thể xếp chữ cao, khiến cho nó lý tưởng để tự động hóa và tích hợp thành các đường ống lớn hơn.
Trình phân tích Ray HexName
HexRays là một phần bổ sung phân hủy thương mại cho IDA Pro hỗ trợ x86, x64, ARM và PowerPC. Nó tạo ra mã giả sạch đáng kể và được xem là công ty phân hủy chính xác nhất. Nhiều công ty bảo mật và các nhà nghiên cứu dễ bị tổn thương cho rằng cần thiết cho dòng làm việc của họ.
Công cụ đáng chú ý khác
- Hopper (macOS và Linux) — cung cấp cả hai sự phân hủy và phân hủy với một GUI thân thiện người dùng.
- Ninjaary ) – một nền tảng kỹ thuật đảo ngược hiện đại với một tập trung vào khả năng sử dụng và một ngôn ngữ trung gian mạnh mẽ.
- objdump và delf (GNU binuils) – những người tháo rời cơ bản để kiểm tra nhanh hệ thống Unix.
Những thử thách và giới hạn
Mật mã được biên dịch
Các máy tính phải tái tạo lại các ngữ pháp cấp cao (trong chuỗi ít, các vòng mở ra, gấp liên tục) tạo ra mã máy phân loại đáng kể từ nguồn gốc. Các bộ phân tích phải tái tạo lại các ngữ pháp cấp độ cao từ các chuỗi cấp thấp, có thể dẫn tới các kỹ thuật xuất không chính xác hay không chính xác. Như là bộ thu âm dựa trên cơ sở ảo, kiểm soát sự phẳng, và phân tích phức tạp hóa opquedicate.
Hợp pháp và làm chứng
Phần mềm kỹ thuật ngược bị hạn chế một cách hợp pháp trong nhiều thẩm quyền. Đạo luật Thiên niên kỷ số (DMCA) ở Hoa Kỳ, chỉ thị bản quyền và các luật tương tự trên khắp thế giới có thể miễn phí thay đổi cách sử dụng kỹ thuật để nghiên cứu, hoặc giáo dục, nhưng có những ranh giới khác nhau. Luôn luôn tham khảo ý kiến luật pháp trước khi phân hủy hoặc hủy một sản phẩm bạn không có quyền sở hữu hoặc có quyền phân tích. Một tài nguyên hữu là Quỹ bảo mật [FL: 0] của tổ chức [FL: 0] Nhà máy điện thoại điện thoại điện toán học [FA: 1].
Kết xuất không đầy đủ
Các bộ tách rời không thể xử lý mọi đường dẫn mã (v. d., nhảy gián tiếp qua địa chỉ đã tính toán), và bộ ngắt có thể thất bại trong việc tái tạo cấu trúc dữ liệu phức tạp hoặc chức năng trực tiếp. Kết quả thường đòi hỏi sự sửa chữa bằng tay và chú giải. Các nhà phân tích kinh nghiệm phát triển mô hình trí tuệ của chương trình bằng sự dao động giữa các ô xem bị ngắt và bị hỏng.
Khung hành pháp và hình thức văn bản
Tuy nhiên, một số hải cảng an toàn hợp pháp có thể bị phá vỡ. Các nhà nghiên cứu về an ninh thường được bảo vệ khi điều khiển những nghiên cứu về tính dễ tổn thương về đức tin, như Luật chia sẻ thông tin về mạng Hoa Kỳ (CISA) và các chỉ thị từ Bộ Tư pháp Hoa Kỳ có thể bị cấm đoán trong việc phân tích, hoặc đối chiếu, hoặc đối chứng, cho phép đảo ngược kỹ thuật để không được sử dụng cho mục đích bất hợp pháp.
Việc sử dụng phương pháp này đòi hỏi sự tôn trọng đối với quyền của người tạo ra phần mềm.
Để tìm hiểu sâu hơn về các khía cạnh pháp lý, hãy xem xét việc đọc [FLT: 0] U.S. Bản quyền của Văn phòng Công bằng ) và ) ).
Tương lai xáo trộn và suy đồi
Máy phân tích tăng cường
Nghiên cứu gần đây sử dụng mạng thần kinh để phân loại các chức năng, xác định các biến, và thậm chí phân hủy trực tiếp thành các biểu hiện ngôn ngữ cấp cao của ngôn ngữ AIPAF, trong khi vẫn còn thử nghiệm, các kỹ thuật đảo ngược có hứa sẽ tăng tốc việc phân tích các loại hình thức giả hoặc các nhị phân lớn.
Tạo ảnh nền mới
Khi các thiết lập hướng dẫn mới xuất hiện (RISCV, Web Assembly, etc.), những nhà phát triển tháo rời và phân hủy đang hỗ trợ thêm.
Sự hợp tác của đám mây
Những công cụ như phân tích mây của Binary Ninja và tập tin dự án chung của Ghidra giúp phân phối các đội kỹ thuật đảo ngược.
Kết luận
Các bộ tách rời và phân hủy là những công cụ cần thiết để đạt được tầm nhìn vào phần mềm sở hữu. Chúng cho phép kiểm tra an ninh, phân tích phần mềm, phục hồi mã, và khả năng không truy cập được mã gốc. IDA Pro, Ghidra, Radare2, và HexRays mỗi người đưa ra những lợi ích riêng biệt, và cộng đồng mã nguồn mở tiếp tục tái dân chủ hóa những công cụ mạnh mẽ này. Tuy nhiên, người dùng phải di chuyển một cách cẩn thận và đạo đức. Khi sử dụng khả năng tháo gỡ, tháo gỡ và phân hủy khả năng hỗ trợ để tìm ra các sự hỗ trợ ẩn vu, các thuật toán học và bảo tồn các kiến thức bị khóa trong các thư viện binrit nhưng để bảo mật hơn, và đảm bảo mật hơn.