Obfuscation code transformation:An Obfuscation code transformation is  dịch - Obfuscation code transformation:An Obfuscation code transformation is  Việt làm thế nào để nói

Obfuscation code transformation:An

Obfuscation code transformation:
An Obfuscation code transformation is a transformation to the code , T(Program)=Obfuscated Program , that holds the following:
• If the Program fails to terminate or terminated with an error code then the Obfuscated Program may not terminate.
• Otherwise the Obfuscated Program must terminate and produce the same result as the Program.
One of the most used code transforms are the Control transforms that use the opaque predicates. An opaque predicate is known to the obfuscator and unknown to the deobfuscator and so the decision of the opaque predicates result are hard to deduce.
With opaque predicates we can get the following methods and much more:
1. Insert Dead or Irrelevant code:
Consider basic block S=s1,s2,s3,…,sn. We can split the block and insert dead or wrong code to it and a predicate that allows evaluate to false so the inserted code couldn't be reached.
2. Extended loop condition:
We can add opaque that always evaluates to true to the loop condition by an AND operator and so it complexes the condition but doesn't harm the number of iteration and so the functionally stays the same.

Manufacturing Opaque Constructors:
As mentioned, opaque predicates result need to be easy for the obfuscator to deduce and hard for the deobfuscator to deduce. In addition opaque predicates should be stealthy (blend with the code) and not in high computational cost.
One way to manufacture opaque predicate is to exploit the general difficulty of alias analysis problem and the current algorithms for detecting recursive data structures.
The basic technique is:
1. Add an obfuscated code that builds set of dynamic structures.
2. Keep a set of pointers to those structures.
3. The inserted obfuscated code should update the dynamic structures and the pointes location to it. But to maintain certain invariant on the pointes and dynamic structures. (Such as – "there will be a path from p1 to p2 always").
4. Construct an opaque predicate that depend on the invariants.

The article defines An Graph ADT, with operations on it. The operations vary from adding node, deleting node merging two Graph, splitting a graph and much more.
The graph code and the statements that change it should be embedded in the code , for example:

The graph code should comply with these three conditions to more disguise itself:
1. The obfuscator should keep large library of the GRAPH variants, and use several variants in several parts of the code.
2. The added code (graph class and the statement that use it) should be deobfuscated to.
3. Including the Graph ADT in a user class to blend it with the original code.
One useful improvement is relying on the thread concurrency capability of java language. Threads and their scheduling mechanism is hard to analyze, both because it is not a language depended mechanism , and because the actual scheduling of a thread is by asynchrony events (user interaction , network state and ect.).

Drawbacks of opaque predicates from dynamic structures
• Code Size Increase: the code size is dramatically increase because of adding dead / irrelevant code, and dynamic graph code and the instructions that use it.
The increased size can harm a web deployed applications and mobile application that require the application size to be small.
• Dynamic Data Handling Increase: from the adding of the dynamic type and performing operation like add and remove on it , the new obfuscated program requires a lot of use with dynamic allocation that causes time overhead increase and memory usage increase to hold those data structures.






3638/5000
Từ: Anh
Sang: Việt
Kết quả (Việt) 1: [Sao chép]
Sao chép!
Obfuscation mã chuyển đổi:Một biến đổi mã Obfuscation là một biến đổi mã, T (chương trình) = Obfuscated chương trình, mà giữ những điều sau đây:• Nếu chương trình không chấm dứt hoặc chấm dứt với một mã lỗi sau đó chương trình Obfuscated có thể không chấm dứt.• Nếu không chương trình Obfuscated phải chấm dứt và sản xuất các kết quả tương tự như chương trình.Một biến đổi mã sử dụng nhiều nhất là các biến đổi kiểm soát sử dụng predicates đục. Một vị ngữ đục được biết đến obfuscator và không biết đến deobfuscator và do đó quyết định của các predicates đục, kết quả là khó có thể suy ra.Với đục predicates, chúng tôi có thể nhận được các phương pháp sau đây và nhiều hơn nữa:1. chèn chết hoặc mã không liên quan: Xem xét cơ bản khối S = s1, s2, s3,..., sn. Chúng tôi có thể tách khối và chèn chết hoặc sai mã để nó và một vị ngữ cho phép đánh giá sai do đó không thể đạt được mã được chèn vào.2. mở rộng vòng lặp tình trạng: Chúng tôi có thể thêm đục mà luôn luôn đánh giá đúng với các vòng lặp có điều kiện bởi một toán tử AND và do đó nó tổ hợp các điều kiện nhưng không gây tổn hại cho số lượng lặp đi lặp lại và do đó các chức năng vẫn như nhau.Sản xuất nhà thầu đục:Như đã đề cập, đục predicates quả cần phải được dễ dàng cho obfuscator suy luận và khó khăn cho deobfuscator suy luận. Ngoài ra đục predicates nên là tàng hình (pha trộn với mã) và không có trong tính toán chi phí cao. Một cách để sản xuất đục vị ngữ là để khai thác khó khăn chung của bí danh phân tích vấn đề và các thuật toán hiện tại để phát hiện cấu trúc dữ liệu đệ quy. Kỹ thuật cơ bản là:1. thêm một mã obfuscated xây dựng bộ năng động cấu trúc.2. giữ một tập hợp các liên kết đến các cấu trúc.3. mã chèn obfuscated nên cập nhật các cấu trúc năng động và vị trí pointes với nó. Nhưng để duy trì một số bất biến trên pointes và năng động cấu trúc. (Chẳng hạn như-"sẽ có một con đường từ p1 cho p2 luôn luôn").4. xây dựng một vị ngữ đục mà phụ thuộc vào các invariants.Bài viết xác định An đồ thị ADT, với các hoạt động trên nó. Các hoạt động khác nhau từ việc thêm nút, xóa nút qua việc sáp nhập hai đồ thị, chia tách một đồ thị và nhiều hơn nữa.Mã biểu đồ và các báo cáo thay đổi nó nên được nhúng vào trong mã, ví dụ: Đồ thị mã phải tuân thủ những ba điều kiện để ngụy trang thêm bản thân:1. obfuscator nên giữ các thư viện lớn của các phiên bản của đồ thị, và sử dụng một số biến thể trong một số bộ phận của mã.2. nhập mã (đồ thị lớp và tuyên bố rằng sử dụng nó) nên được deobfuscated đến.3. bao gồm ADT đồ thị trong một lớp học người sử dụng để pha trộn nó với mã ban đầu.Một cải tiến hữu ích là dựa vào khả năng ngôn ngữ java thread concurrency. Chủ đề và cơ chế lập kế hoạch của họ là khó có thể phân tích, cả hai đều đến vì nó không phải là một ngôn ngữ phụ thuộc cơ chế, và bởi vì các lập kế hoạch thực tế của một chủ đề là sự kiện asynchrony (người dùng tương tác, trạng thái mạng và ect.).Hạn chế của đục predicates từ năng động cấu trúc• Tăng mã kích thước: kích thước mã tăng đáng kể vì thêm mã chết / không liên quan, và biểu đồ năng động mã và các hướng dẫn sử dụng nó.Tăng kích thước có thể gây tổn hại cho một trang web được triển khai ứng dụng và ứng dụng di động đó có yêu cầu kích thước ứng dụng được nhỏ.• Năng động dữ liệu xử lý tăng: từ thêm loại năng động và thực hiện thao tác như thêm và loại bỏ nó, chương trình obfuscated mới đòi hỏi rất nhiều sử dụng với động phân bổ rằng nguyên nhân thời gian trên không tăng và bộ nhớ sử dụng tăng để giữ các cấu trúc dữ liệu.
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
Biến dạng mã Obfuscation:
Một biến dạng mã obfuscation là một biến đổi mã, T (Chương trình) = khó hiểu Chương trình, người nắm giữ sau:
• Nếu chương trình không chấm dứt hoặc chấm dứt với một mã lỗi sau đó Chương trình làm rắc rối có thể không chấm dứt.
• Nếu không thì chương trình khó hiểu phải chấm dứt và sản xuất các kết quả tương tự như chương trình.
Một trong những biến đổi đang được sử dụng nhất là kiểm soát biến có sử dụng các vị từ đục. Một vị đục được biết đến obfuscator và chưa biết đến các deobfuscator và do đó, các quyết định của các vị từ đục quả là khó để suy luận.
Với vị đục chúng ta có thể có được các phương pháp và nhiều hơn nữa sau đây:
1. Chèn Chết hoặc mã không liên quan:
Xem xét khối cơ bản S = s1, s2, s3, ..., sn. Chúng tôi có thể chia nhỏ khối và chèn mã chết hay sai để nó và một vị từ đó cho phép đánh giá giá trị false để mã chèn không thể đạt được.
2. Điều kiện vòng lặp mở rộng:
Chúng tôi có thể thêm mờ đục luôn đánh giá đúng với điều kiện vòng lặp bằng toán tử AND và do đó, nó tạo phức điều kiện nhưng không gây hại cho số lần lặp và do đó vẫn có chức năng giống nhau. Sản xuất Opaque Constructors: Như đã đề cập , vị đục quả cần phải được dễ dàng cho các obfuscator để suy luận và khó khăn cho các deobfuscator để suy luận. Ngoài vị đục nên tàng hình (pha trộn với các code) và không có trong chi phí tính toán cao. Một trong những cách để sản xuất vị đục được khai thác khó khăn chung của vấn đề phân tích bí danh và các thuật toán hiện hành để phát hiện các cấu trúc dữ liệu đệ quy. Các kỹ thuật cơ bản là : 1. Thêm một mã khó hiểu rằng bản xây dựng thiết lập các cấu trúc năng động. 2. Giữ một tập của con trỏ đến những cấu trúc. 3. Các mã obfuscated chèn nên cập nhật các cấu trúc năng động và vị trí pointes với nó. Nhưng để duy trì bất biến nào đó trên pointes và cấu trúc năng động. (Chẳng hạn như - "sẽ có một con đường từ p1 đến p2 luôn"). 4. Xây dựng một vị đục mà phụ thuộc vào sự bất biến. Điều này định nghĩa An ADT Graph, với các hoạt động trên đó. Các hoạt động khác nhau từ việc thêm nút, xóa nút sáp nhập hai đồ thị, tách một đồ thị và nhiều hơn nữa. Mã đồ thị và các báo cáo rằng thay đổi đó phải được nhúng trong mã, ví dụ: Mã đồ thị nên thực hiện theo ba điều kiện để hơn che giấu bản thân: 1. Các obfuscator nên giữ lại thư viện lớn của các biến thể GRAPH, và sử dụng một số biến thể trong một số bộ phận của các mã. 2. Các mã được thêm vào (đồ thị lớp và tuyên bố rằng sử dụng nó) nên được deobfuscated tới. 3. Bao gồm các đồ thị ADT trong một lớp học sử dụng để pha trộn nó với mã gốc. Một cải tiến hữu ích là dựa vào khả năng đề đồng thời của ngôn ngữ java. Chủ đề và cơ chế lập lịch trình của họ là khó để phân tích, cả hai bởi vì nó không phải là một cơ chế ngôn ngữ phụ thuộc, và vì lịch trình thực tế của một chủ đề là bởi những sự kiện không đồng bộ (tương tác người dùng, tình trạng mạng lưới và vv.). Những tác hại của các vị từ đục từ cấu trúc năng động • Kích thước mã Tăng:. kích thước mã được tăng đáng kể vì thêm người chết / code không thích hợp, và mã đồ thị năng động và hướng dẫn sử dụng nó Các kích thước tăng lên có thể gây tổn hại cho một web được triển khai ứng dụng và ứng dụng di động mà đòi hỏi các kích thước ứng dụng có quy mô nhỏ . • dữ liệu động Xử lý Tăng: từ việc bổ sung các loại hình năng động và thực hiện các hoạt động như thêm và xóa trên đó, chương trình làm rắc rối mới đòi hỏi rất nhiều công dụng trong việc phân phối năng động là nguyên nhân gây tăng thời gian trên không và sử dụng bộ nhớ tăng để giữ cấu trúc những dữ liệu .





























đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2025 I Love Translation. All reserved.

E-mail: ilovetranslation@live.com