Công nghệ thiết kế ngược Reverse Engineering

Công nghệ thiết kế ngược Reverse Engineering

Thiết kế ngược, còn được gọi là Back Engineering, là quá trình mà một đối tượng nhân tạo được giải  mã cấu trúc để tiết lộ các thiết kế, kiến ​​trúc của nó hoặc để trích xuất kiến ​​thức từ đối tượng; tương tự như nghiên cứu khoa học, sự khác biệt duy nhất là nghiên cứu khoa học là về một hiện tượng tự nhiên.

Thiết kế ngược được áp dụng trong các lĩnh vực kỹ thuật cơ khí, kỹ thuật điện tử, kỹ thuật phần mềm, kỹ thuật hóa học,  và sinh học.

Tổng quan

Có nhiều lý do để thực hiện Thiết kế ngược trong các lĩnh vực khác nhau. Thiết kế ngược có nguồn gốc từ việc phân tích phần cứng vì lợi ích thương mại hoặc quân sự. Tuy nhiên, bản thân quy trình Thiết kế ngược không liên quan đến việc tạo ra một bản sao hoặc thay đổi đối tượng theo một cách nào đó; nó chỉ là một phân tích để suy ra các tính năng thiết kế từ các sản phẩm để có kiến ​​thức bổ sung về các quy trình liên quan đến sản xuất ban đầu của chúng. Trong một số trường hợp, mục tiêu của quy trình Thiết kế ngược có thể chỉ đơn giản là tái cấu trúc hệ thống mới.  Ngay cả khi sản phẩm được thiết kế ngược là của đối thủ cạnh tranh, mục tiêu có thể không phải là sao chép chúng, mà là thực hiện phân tích đối thủ cạnh tranh. Thiết kế ngược cũng có thể được sử dụng để tạo ra các sản phẩm có thể tương tác và mặc dù luật pháp của Hoa Kỳ và Liên minh Châu Âu được điều chỉnh quyền hạn, tính hợp pháp của việc sử dụng các Thiết kế ngược cụ thể cho mục đích này đã được tranh cãi sôi nổi tại các tòa án trên toàn thế giới trong hơn hai thập kỷ.

Thiết kế ngược phần mềm có thể giúp cải thiện sự hiểu biết về mã nguồn cơ bản để bảo trì và cải tiến phần mềm, thông tin liên quan có thể được trích xuất để đưa ra quyết định phát triển phần mềm và biểu diễn đồ họa của mã có thể cung cấp các quan điểm thay thế về nguồn mã, có thể giúp phát hiện và sửa lỗi phần mềm hoặc lỗ hổng. Thông thường, khi một số phần mềm phát triển, thông tin thiết kế và cải tiến của nó thường bị mất theo thời gian, nhưng thông tin bị mất này thường có thể được phục hồi bằng Thiết kế ngược. Quá trình này cũng có thể giúp giảm thời gian cần thiết để hiểu mã nguồn, giảm chi phí chung cho việc phát triển phần mềm.  Thiết kế ngược cũng có thể giúp phát hiện và loại bỏ một mã độc hại được ghi vào phần mềm với các trình phát hiện mã tốt hơn. Việc phân tích ngược mã nguồn có thể được sử dụng để tìm cách sử dụng thay thế mã nguồn, chẳng hạn như để phát hiện sao chép trái phép mã nguồn mà nó không được sử dụng hoặc để tiết lộ cách sản phẩm của đối thủ cạnh tranh được tạo ra. Quá trình này thường được sử dụng cho phần mềm và phương tiện “bẻ khóa” để loại bỏ bảo vệ bản sao của chúng, hoặc để tạo một bản sao (có thể được cải thiện) hoặc thậm chí là một mục tiêu, thường là mục tiêu của đối thủ cạnh tranh hoặc tin tặc. Các nhà phát triển phần mềm độc hại thường sử dụng các kỹ thuật Thiết kế ngược để tìm các lỗ hổng trong hệ điều hành (HĐH), để tạo ra một virus máy tính có thể khai thác các lỗ hổng hệ thống. Thiết kế ngược cũng được sử dụng trong phân tích mật mã theo thứ tự để tìm lỗ hổng trong mật mã thay thế, thuật toán khóa đối xứng hoặc mật mã khóa công khai.

Giao diện. Thiết kế ngược có thể được sử dụng khi một hệ thống được yêu cầu để giao tiếp với hệ thống khác và cách thức cả hai hệ thống sẽ được thiết lập. Những yêu cầu như vậy thường tồn tại cho khả năng tương tác.

Gián điệp quân sự hoặc thương mại. Tìm hiểu về nghiên cứu mới nhất của kẻ thù hoặc đối thủ cạnh tranh bằng cách đánh cắp hoặc bắt giữ một nguyên mẫu và tháo dỡ nó, điều này có thể dẫn đến việc phát triển sản phẩm tương tự, hoặc đối phó tốt hơn với nó.

Lỗi thời. Các mạch tích hợp thường được thiết kế trên các hệ thống độc quyền và được xây dựng trên các dây chuyền sản xuất đã trở nên lỗi thời chỉ sau vài năm. Khi các hệ thống sử dụng các bộ phận này không còn có thể được duy trì (vì các bộ phận không còn được sản xuất nữa), cách duy nhất để kết hợp chức năng vào công nghệ mới là thiết kế lại chip hiện có và sau đó thiết kế lại nó bằng các công cụ mới hơn, sử dụng sự hiểu biết đạt được như một người hướng dẫn. Một vấn đề lỗi thời khác có thể được giải quyết bằng Thiết kế ngược là nhu cầu hỗ trợ (bảo trì và cung cấp cho hoạt động liên tục) các thiết bị cũ, hiện không còn được hỗ trợ bởi nhà sản xuất thiết bị gốc (OEM). Vấn đề này đặc biệt quan trọng trong các hoạt động quân sự.

Phân tích bảo mật sản phẩm. Để kiểm tra cách thức sản phẩm hoạt động, thông số kỹ thuật của các thành phần, ước tính chi phí và xác định vi phạm bằng sáng chế tiềm năng. Thu thập dữ liệu nhạy cảm bằng cách phân tách và phân tích thiết kế của một thành phần hệ thống. Một mục đích khác có thể là loại bỏ bảo vệ bản sao hoặc tránh các hạn chế truy cập.

Cạnh tranh trí thức . Hiểu những gì đối thủ cạnh tranh thực sự đang làm, so với những gì họ nói họ đang làm.

Tiết kiệm tiền, khi người ta phát hiện ra một thiết bị điện tử có khả năng gì, nó có thể giúp người dùng sử dụng thuận tiện hơn hay nên mua một sản phẩm riêng biệt tương tự với giá rẻ hơn

Tái sử dụng, khi các đối tượng lỗi thời được sử dụng lại theo cách khác nhưng hữu ích.

Ứng dụng thiết kế ngược trong các lĩnh vực

Thiết kế ngược của máy móc

Khi thiết kế có sự trợ giúp của máy tính (CAD) đã trở nên phổ biến hơn, Thiết kế ngược đã trở thành một phương pháp khả thi để tạo ra mô hình ảo 3D của một sản phẩm vật lý hiện có để sử dụng trong 3D CAD, CAM, CAE hoặc phần mềm khác. Quy trình Thiết kế ngược gồm đo hoặc quét lại một đối tượng và sau đó tái cấu trúc nó thành mô hình 3D. Đối tượng vật lý có thể được đo bằng các công nghệ quét 3D như CMM, máy quét laser, số hóa ánh sáng  hoặc Quét CT công nghiệp (chụp cắt lớp điện toán). Chỉ riêng dữ liệu đo, thường được biểu thị dưới dạng đám mây điểm, thiếu thông tin tô pô và do đó thường được xử lý và mô hình hóa thành định dạng có thể sử dụng hơn như lưới hình tam giác, bộ bề mặt NURBS hoặc mô hình CAD.

Mô hình lai được sử dụng phổ biến khi thuật ngữ NURBS và mô hình tham số được triển khai cùng nhau. Sử dụng kết hợp các bề mặt hình học và dạng tự do có thể cung cấp một phương pháp mô hình 3D mạnh mẽ. Các khu vực của dữ liệu dạng tự do có thể được kết hợp với các bề mặt hình học chính xác để tạo ra một mô hình lai. Một ví dụ điển hình cho điều này sẽ là Thiết kế ngược của đầu xi lanh, bao gồm các hình học đúc tự do, chẳng hạn như vỏ máy bơm nước và khu vực gia công có dung sai cao.

Thiết kế ngược cũng được các doanh nghiệp sử dụng để đưa hình học vật lý hiện có vào môi trường phát triển sản phẩm kỹ thuật số, để tạo một bản ghi 3D kỹ thuật số cho các sản phẩm của chính họ hoặc để đánh giá các sản phẩm của đối thủ cạnh tranh. Ví dụ, nó được sử dụng để phân tích cách thức sản phẩm hoạt động, vận hành và cấu tạo thành phần, ước tính chi phí và xác định vi phạm bằng sáng chế tiềm năng, v.v.

Kỹ thuật giá trị là một hoạt động liên quan cũng được sử dụng bởi các doanh nghiệp. Nó liên quan đến việc hủy cấu trúc và phân tích sản phẩm, nhưng mục tiêu là tìm cơ hội cắt giảm chi phí.

Thiết kế ngược của phần mềm

Năm 1990, Viện Kỹ sư Điện và Điện tử (IEEE) đã định nghĩa Thiết kế ngược là “quá trình phân tích một hệ thống chủ thể để xác định các thành phần của hệ thống và mối quan hệ của chúng và để tạo ra các hình thức của hệ thống ở dạng khác hoặc ở mức độ trừu tượng cao hơn” , trong đó “hệ thống đối tượng” là sản phẩm cuối cùng của phát triển phần mềm. Thiết kế ngược chỉ là một quá trình kiểm tra: hệ thống phần mềm đang được xem xét không được sửa đổi (điều này sẽ khiến nó tái cấu trúc ). Thiết kế ngược có thể được thực hiện từ bất kỳ giai đoạn nào của chu kỳ sản phẩm, không nhất thiết phải từ sản phẩm hoàn thiện.

Có hai thành phần trong Thiết kế ngược: tái cấu trúc và phục hồi thiết kế. Redocumentation là việc tạo ra đại diện mới của mã máy tính để dễ hiểu hơn. Trong khi đó, phục hồi thiết kế là việc sử dụng suy luận hoặc lý luận từ kiến ​​thức chung hoặc kinh nghiệm cá nhân của sản phẩm để hiểu đầy đủ chức năng của sản phẩm. Nó cũng có thể được coi là “đi ngược lại trong chu kỳ phát triển”.  Trong mô hình này, đầu ra của pha thực hiện (ở dạng mã nguồn) được thiết kế ngược trở lại pha phân tích, ngược lại với mô hình thác nước truyền thống. Một thuật ngữ khác cho kỹ thuật này là hiểu chương trình.  Hội nghị làm việc về Thiết kế ngược (WCRE) đã được tổ chức hàng năm để khám phá và mở rộng các kỹ thuật của Thiết kế ngược.  Kỹ thuật phần mềm hỗ trợ máy tính (CASE) và tạo mã tự động đã đóng góp rất lớn trong lĩnh vực Thiết kế ngược.

Công nghệ chống giả mạo phần mềm như obfuscation được sử dụng để ngăn chặn cả Thiết kế ngược và tái thiết kế phần mềm độc quyền và hệ thống hỗ trợ phần mềm. Trong thực tế, hai loại chính của Thiết kế ngược xuất hiện. Trong trường hợp đầu tiên, mã nguồn đã có sẵn cho phần mềm, nhưng các khía cạnh cấp cao hơn của chương trình, có thể được ghi lại hoặc tài liệu kém nhưng không còn hiệu lực, được phát hiện. Trong trường hợp thứ hai, không có mã nguồn có sẵn cho phần mềm và bất kỳ nỗ lực nào trong việc khám phá một mã nguồn có thể có cho phần mềm đều được coi là Thiết kế ngược. Cách sử dụng thứ hai của thuật ngữ này là cách mà hầu hết mọi người quen thuộc. Thiết kế ngược của phần mềm có thể sử dụng kỹ thuật thiết kế phòng sạch để tránh vi phạm bản quyền.

Về một lưu ý liên quan, kiểm thử hộp đen trong công nghệ phần mềm có nhiều điểm tương đồng với Thiết kế ngược. Người kiểm tra thường có API, nhưng mục tiêu của họ là tìm lỗi và các tính năng không có giấy tờ bằng cách bash sản phẩm từ bên ngoài.

Các mục đích khác của Thiết kế ngược bao gồm kiểm tra bảo mật, loại bỏ bảo vệ bản sao (“bẻ khóa”), tránh các hạn chế truy cập thường có trong thiết bị điện tử tiêu dùng, tùy chỉnh các hệ thống nhúng (như hệ thống quản lý động cơ), sửa chữa trong nhà hoặc trang bị thêm, cho phép các tính năng bổ sung trên phần cứng “tê liệt” chi phí thấp (chẳng hạn như một số loại chip card đồ họa điện tử), hoặc thậm chí chỉ thỏa mãn sự tò mò.

Phần mềm nhị phân

Thiết kế ngược nhị phân được thực hiện nếu mã nguồn cho phần mềm không khả dụng. Quá trình này đôi khi được gọi là Kỹ thuật mã ngược, hoặc RCE. Ví dụ, việc biên dịch ngược các nhị phân cho nền tảng Java có thể được thực hiện bằng Jad. Một trường hợp nổi tiếng về Thiết kế ngược là triển khai PC BIOS đầu tiên không phải của IBM, đã đưa ra ngành công nghiệp tương thích với IBM PC, là nền tảng phần cứng máy tính thống trị áp đảo trong nhiều năm. Thiết kế ngược của phần mềm được bảo vệ tại Hoa Kỳ bởi ngoại lệ sử dụng hợp pháp trong luật bản quyền.  Phần mềm Samba, cho phép các hệ thống không chạy hệ thống Microsoft Windows chia sẻ tệp với các hệ thống, là một ví dụ kinh điển về Thiết kế ngược phần mềm, do dự án Samba phải thiết kế ngược thông tin chưa được công bố về cách chia sẻ tệp Windows đã làm việc, để các máy tính không chạy Windows có thể mô phỏng nó. Dự án Wine thực hiện điều tương tự cho API Windows và OpenOffice.org là một bên thực hiện việc này cho các định dạng tệp Microsoft Office. Dự án ReactOS thậm chí còn tham vọng hơn trong các mục tiêu của mình, vì nó cố gắng cung cấp khả năng tương thích nhị phân (ABI và API) với các HĐH Windows hiện tại của chi nhánh NT, cho phép phần mềm và trình điều khiển được viết cho Windows chạy trên phòng sạch Phần mềm miễn phí (GPL) đối tác. WindowsSCOPE cho phép Thiết kế ngược toàn bộ nội dung của bộ nhớ trực tiếp của hệ thống Windows, bao gồm Thiết kế ngược đồ họa ở cấp độ nhị phân của tất cả các quy trình đang chạy.

Một ví dụ kinh điển khác, nếu không phải là nổi tiếng là vào năm 1987, Phòng thí nghiệm Bell đã thiết kế ngược hệ điều hành Mac OS System 4.1, ban đầu chạy trên Apple Macintosh SE, vì vậy họ có thể chạy nó trên các máy RISC của riêng họ.

Kỹ thuật phần mềm nhị phân

Thiết kế ngược của phần mềm có thể được thực hiện bằng các phương pháp khác nhau. Ba nhóm chính của Thiết kế ngược phần mềm là

Phân tích thông qua quan sát trao đổi thông tin, phổ biến nhất trong Thiết kế ngược giao thức, bao gồm sử dụng máy phân tích bus và trình thám thính gói, ví dụ, để truy cập vào bus máy tính hoặc kết nối mạng máy tính và tiết lộ dữ liệu lưu lượng trên đó. Xe buýt hoặc hành vi mạng sau đó có thể được phân tích để tạo ra một triển khai độc lập bắt chước hành vi đó. Điều này đặc biệt hữu ích cho trình điều khiển thiết bị Thiết kế ngược. Đôi khi, Thiết kế ngược trên các hệ thống nhúng được hỗ trợ rất nhiều bởi các công cụ được nhà sản xuất cố tình giới thiệu, chẳng hạn như cổng JTAG hoặc các phương tiện gỡ lỗi khác. Trong Microsoft Windows, các trình gỡ lỗi cấp thấp như SoftICE rất phổ biến.

Việc tháo gỡ bằng cách sử dụng trình phân tách, nghĩa là ngôn ngữ máy thô của chương trình được đọc và hiểu theo nghĩa riêng của nó, chỉ với sự trợ giúp của các thuật ngữ ngôn ngữ máy. Điều này hoạt động trên bất kỳ chương trình máy tính nào nhưng có thể mất khá nhiều thời gian, đặc biệt đối với người không quen sử dụng mã máy. Disassembler tương tác là một công cụ đặc biệt phổ biến.

Dịch ngược bằng cách sử dụng trình dịch ngược, một quá trình thử, với các kết quả khác nhau, để tạo lại mã nguồn bằng một số ngôn ngữ cấp cao cho một chương trình chỉ có sẵn trong mã máy hoặc mã byte.

Phân loại phần mềm

Phân loại phần mềm là quá trình xác định sự tương đồng giữa các nhị phân phần mềm khác nhau (ví dụ: hai phiên bản khác nhau của cùng một nhị phân) được sử dụng để phát hiện quan hệ mã giữa các mẫu phần mềm. Nhiệm vụ này theo truyền thống được thực hiện thủ công vì một số lý do (chẳng hạn như phân tích bản vá để phát hiện lỗ hổng và vi phạm bản quyền) nhưng ngày nay có thể được thực hiện một cách tự động đối với số lượng lớn mẫu.

Phương pháp này đang được sử dụng chủ yếu cho các nhiệm vụ Thiết kế ngược dài và kỹ lưỡng (phân tích đầy đủ thuật toán phức tạp hoặc phần mềm lớn). Nói chung, phân loại thống kê được coi là một vấn đề khó khăn và điều này cũng đúng với phân loại phần mềm, do đó không có nhiều giải pháp / công cụ xử lý tốt nhiệm vụ này.

Mã nguồn

Một số công cụ UML đề cập đến quá trình nhập và phân tích mã nguồn để tạo sơ đồ UML dưới dạng “Thiết kế ngược”. Xem Danh sách các công cụ UML.

Mặc dù UML là một cách tiếp cận để cung cấp “Thiết kế ngược” những tiến bộ gần đây hơn trong các hoạt động tiêu chuẩn quốc tế đã dẫn đến sự phát triển của Kiến thức khám phá Metamodel (KDM). Tiêu chuẩn này cung cấp một bản thể luận cho biểu diễn trung gian (hoặc trừu tượng hóa) của các cấu trúc ngôn ngữ lập trình và mối quan hệ qua lại của chúng. Một tiêu chuẩn của Nhóm quản lý đối tượng (trên đường trở thành tiêu chuẩn ISO), KDM đã bắt đầu nắm giữ công nghiệp với sự phát triển của các công cụ và môi trường phân tích có thể cung cấp trích xuất và phân tích mã nguồn, nhị phân và mã byte. Để phân tích mã nguồn, kiến ​​trúc tiêu chuẩn chi tiết của KDM cho phép trích xuất các luồng hệ thống phần mềm (dữ liệu, điều khiển và bản đồ cuộc gọi), kiến ​​trúc và kinh doanhkiến thức lớp (quy tắc, điều khoản, quy trình). Tiêu chuẩn cho phép sử dụng định dạng dữ liệu chung (XMI) cho phép tương quan các lớp kiến ​​thức hệ thống khác nhau để phân tích chi tiết (ví dụ: nguyên nhân gốc, tác động) hoặc phân tích dẫn xuất (ví dụ: trích xuất quy trình kinh doanh). Mặc dù những nỗ lực để thể hiện các cấu trúc ngôn ngữ có thể không bao giờ kết thúc với số lượng ngôn ngữ, sự phát triển liên tục của ngôn ngữ phần mềm và sự phát triển của ngôn ngữ mới, tiêu chuẩn này cho phép sử dụng các phần mở rộng để hỗ trợ bộ ngôn ngữ rộng cũng như tiến hóa. KDM tương thích với UML, BPMN, RDF và các tiêu chuẩn khác cho phép di chuyển sang các môi trường khác và do đó tận dụng kiến ​​thức hệ thống cho các nỗ lực như chuyển đổi hệ thống phần mềm và phân tích lớp doanh nghiệp.

Thiết kế ngược của các giao thức

Các giao thức là các bộ quy tắc mô tả các định dạng thông báo và cách các thông điệp được trao đổi (nghĩa là, máy trạng thái giao thức). Theo đó, vấn đề của Thiết kế ngược giao thức có thể được phân chia thành hai bài toán con; định dạng tin nhắn và Thiết kế ngược máy nhà nước.

Các định dạng tin nhắn theo truyền thống đã được thiết kế ngược thông qua một quy trình thủ công tẻ nhạt, bao gồm phân tích về cách thực hiện giao thức xử lý các thông điệp, nhưng nghiên cứu gần đây đã đề xuất một số giải pháp tự động. Thông thường, các cách tiếp cận tự động này hoặc nhóm quan sát các thông điệp thành các cụm bằng cách sử dụng các phân tích phân cụm khác nhau hoặc mô phỏng việc thực hiện giao thức theo dõi quá trình xử lý tin nhắn.

Đã có ít công việc về Thiết kế ngược của các máy giao thức nhà nước. Nói chung, các máy trạng thái giao thức có thể được học thông qua quá trình học ngoại tuyến, qua đó thụ động quan sát giao tiếp và cố gắng xây dựng máy trạng thái chung nhất chấp nhận tất cả các chuỗi tin nhắn được quan sát và học trực tuyến, cho phép tạo ra sự thăm dò tương tác trình tự các tin nhắn và lắng nghe phản hồi cho các chuỗi thăm dò đó. Nói chung, học ngoại tuyến của các máy trạng thái nhỏ được gọi là hoàn thành NP, trong khi học trực tuyến có thể được thực hiện trong thời gian đa thức. Một cách tiếp cận ngoại tuyến tự động đã được so sánh bởi so sánh và cộng sự và một cách tiếp cận trực tuyến của Cho và cộng sự

Các thành phần khác của các giao thức điển hình, như mã hóa và hàm băm, cũng có thể được thiết kế ngược tự động. Thông thường, các phương pháp tự động theo dõi việc thực hiện giao thức và cố gắng phát hiện bộ đệm trong bộ nhớ chứa các gói không được mã hóa.

 

Thiết kế ngược của mạch tích hợp / thẻ thông minh

Thiết kế ngược là một hình thức xâm lấn và phá hủy để phân tích một thẻ thông minh. Kẻ tấn công mài lớp này sau lớp thẻ thông minh và chụp ảnh bằng kính hiển vi điện tử. Với kỹ thuật này, có thể tiết lộ phần cứng và phần mềm hoàn chỉnh của thẻ thông minh. Vấn đề chính của kẻ tấn công là đưa mọi thứ vào đúng thứ tự để tìm hiểu mọi thứ hoạt động như thế nào. Các nhà sản xuất thẻ cố gắng ẩn các phím và thao tác bằng cách trộn các vị trí bộ nhớ, ví dụ, tranh giành xe buýt. Trong một số trường hợp, thậm chí có thể gắn đầu dò để đo điện áp trong khi thẻ thông minh vẫn hoạt động. Các nhà sản xuất thẻ sử dụng các cảm biến để phát hiện và ngăn chặn cuộc tấn công này. Cuộc tấn công này không phổ biến lắm vì nó đòi hỏi một khoản đầu tư lớn vào nỗ lực và thiết bị đặc biệt thường chỉ dành cho các nhà sản xuất chip lớn. Hơn nữa, mức chi trả từ cuộc tấn công này thấp vì các kỹ thuật bảo mật khác thường được sử dụng như tài khoản bóng. Tại thời điểm này, không chắc chắn liệu các cuộc tấn công chống lại thẻ CHIP / PIN để sao chép dữ liệu mã hóa và do đó bẻ khóa PINS sẽ cung cấp một cuộc tấn công hiệu quả về chi phí đối với xác thực đa yếu tố.

 

Thiết kế ngược cho các ứng dụng quân sự

Phần này cần trích dẫn thêm để xác minh. Hãy giúp cải thiện bài viết này bằng cách thêm trích dẫn vào các nguồn đáng tin cậy. Vật liệu không được bảo vệ có thể bị thách thức và loại bỏ. (Tháng 7 năm 2014) (Tìm hiểu cách thức và thời điểm xóa thông báo mẫu này)

Thiết kế ngược thường được mọi người sử dụng để sao chép các công nghệ, thiết bị hoặc thông tin của các quốc gia khác mà quân đội chính quy có được trong các lĩnh vực hoặc bởi các hoạt động tình báo. Nó thường được sử dụng trong Chiến tranh thế giới thứ hai và Chiến tranh lạnh. Các ví dụ nổi tiếng từ WWII và sau này bao gồm:

Jerry CAN: Các lực lượng của Anh và Mỹ nhận thấy rằng người Đức có lon xăng với thiết kế tuyệt vời. Họ thiết kế ngược các bản sao của những lon đó. Các lon được biết đến phổ biến là “lon Jerry”.

Panzerschreck: Người Đức đã chiếm được một chiếc Bazooka của Mỹ trong Thế chiến II, và đảo ngược nó để tạo ra chiếc Panzerschreck lớn hơn.

Tupolev Tu-4: Năm 1944, ba máy bay ném bom B-29 của Mỹ trong các nhiệm vụ ở Nhật Bản đã buộc phải hạ cánh xuống Liên Xô. Liên Xô, người không có máy bay ném bom chiến lược tương tự, đã quyết định sao chép B-29. Trong vòng ba năm, họ đã phát triển Tu-4, một bản sao gần như hoàn hảo.

Radar SCR-584: được sao chép bởi Liên Xô sau Chiến tranh thế giới thứ hai. Được biết đến dưới hình thức một vài sửa đổi – ЦЦ-584, Việt Nam.

Tên lửa V-2: Tài liệu kỹ thuật cho V2 và các công nghệ liên quan đã bị quân Đồng minh phương Tây bắt giữ khi kết thúc chiến tranh. Phía Mỹ tập trung các nỗ lực Thiết kế ngược của họ thông qua hoạt động Paperclip, dẫn đến sự phát triển của tên lửa PGM-11 Redstone. Phía Liên Xô đã sử dụng các kỹ sư người Đức bị bắt để tái tạo các tài liệu và kế hoạch kỹ thuật, và làm việc từ phần cứng bị bắt giữ để tạo ra bản sao tên lửa của họ, R-1. Do đó, bắt đầu chương trình tên lửa của Liên Xô sau chiến tranh dẫn đến R-7 và bắt đầu cuộc đua vũ trụ.

Tên lửa K-13 / R-3S (tên báo cáo của NATO là Đảo san hô 2-2), một bản sao được thiết kế ngược của Liên Xô AIM-9 Sidewinder, đã được thực hiện sau khi AIM-9B của Đài Loan bắn trúng MiG-17 của Trung Quốc mà không phát nổ vào tháng 9 1958. Tên lửa được đặt trong khung máy bay, và phi công trở về căn cứ với những gì các nhà khoa học Nga sẽ mô tả là một khóa học đại học về phát triển tên lửa.

Tên lửa BGM-71 TOW: Vào tháng 5 năm 1975, các cuộc đàm phán giữa Iran và Hughes Missile Systems về việc hợp tác sản xuất tên lửa TOW và Maverick đã bị đình trệ trong các bất đồng trong cơ cấu giá, cuộc cách mạng năm 1979 tiếp theo chấm dứt mọi kế hoạch hợp tác như vậy. Iran sau đó đã thành công trong việc chế tạo tên lửa này và hiện đang sản xuất bản sao của riêng họ: Toophan.

Trung Quốc đã thiết kế ngược nhiều phần cứng của phương Tây và Nga, từ máy bay chiến đấu đến tên lửa và xe HMMWV.

Trong Chiến tranh thế giới thứ hai, các nhà mật mã học Ba Lan và Anh đã nghiên cứu các máy mã hóa tin nhắn “Enigma” của Đức bị bắt vì những điểm yếu. Hoạt động của họ sau đó được mô phỏng trên các thiết bị cơ điện gọi là “Bom” đã thử tất cả các cài đặt scrambler có thể có của các máy “Enigma” để giúp phá vỡ các tin nhắn được mã hóa do người Đức gửi.

Cũng trong Chiến tranh thế giới thứ hai, các nhà khoa học Anh đã phân tích và đánh bại một loạt các hệ thống điều hướng vô tuyến ngày càng tinh vi đang được Luftwaffe của Đức sử dụng để thực hiện các nhiệm vụ ném bom dẫn đường vào ban đêm. Các biện pháp đối phó của Anh đối với hệ thống này hiệu quả đến mức trong một số trường hợp máy bay Đức bị dẫn tín hiệu hạ cánh xuống căn cứ RAF, tin rằng chúng đã quay trở lại lãnh thổ Đức.

Chồng chéo với luật sáng chế

Thiết kế ngược áp dụng chủ yếu để đạt được sự hiểu biết về một quy trình hoặc tạo tác, trong đó cách thức xây dựng, sử dụng hoặc quy trình nội bộ của nó không được làm rõ bởi người tạo ra nó.

Các mặt hàng được cấp bằng sáng chế không phải tự thiết kế ngược để nghiên cứu, vì bản chất của bằng sáng chế là nhà phát minh cung cấp thông tin công khai chi tiết và đổi lại nhận được sự bảo vệ pháp lý của sáng chế liên quan. Tuy nhiên, một mặt hàng được sản xuất theo một hoặc nhiều bằng sáng chế cũng có thể bao gồm các công nghệ khác không được cấp bằng sáng chế và không được tiết lộ. Thật vậy, một động lực chung của Thiết kế ngược là xác định xem sản phẩm của đối thủ cạnh tranh có vi phạm bằng sáng chế hay vi phạm bản quyền hay không.

Tính hợp pháp

Hoa Kỳ

Ở Hoa Kỳ ngay cả khi một đối tượng hoặc quy trình được bảo vệ bởi các bí mật thương mại, Thiết kế ngược đối tượng hoặc quy trình này thường hợp pháp, miễn là nó đã được lấy một cách hợp pháp.

Thiết kế ngược của phần mềm máy tính ở Mỹ thường thuộc cả luật hợp đồng vì vi phạm hợp đồng cũng như bất kỳ luật nào khác có liên quan. Điều này là do hầu hết các EULAs (thỏa thuận cấp phép người dùng cuối) đặc biệt nghiêm cấm và các tòa án Hoa Kỳ đã phán quyết rằng nếu các điều khoản đó có mặt, họ sẽ ghi đè luật bản quyền cho phép rõ ràng (xem Bowers v. Baystate Technologies ) . Giây 103 (f) của DMCA (17 USC § 1201 (f)) nói rằng một người sở hữu hợp pháp chương trình, được phép thiết kế ngược và phá vỡ sự bảo vệ của nó nếu điều này là cần thiết để đạt được “khả năng tương tác” – một thuật ngữ bao quát rộng rãi các thiết bị và chương trình khác có thể tương tác với nó, sử dụng nó và sử dụng và chuyển dữ liệu đến và từ đó, theo những cách hữu ích. Một sự miễn trừ hạn chế tồn tại cho phép kiến ​​thức thu được được chia sẻ và sử dụng cho các mục đích tương tác.

Liên minh châu âu

Chỉ thị của EU 2009/24 về bảo vệ pháp lý các chương trình máy tính, thay thế cho một chỉ thị trước đó (1991), chi phối Thiết kế ngược trong Liên minh Châu Âu.

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *