吞噬程式以實用主義為準,並非要一次分解性使用全部的功能,只需要重點針對需求功能進行拆分,其餘的會根據重要性安排在日程中逐步進行。由於虛擬機I/0瓶頸的影響,在某些功能上不得不採用工程拆分的原理來仿製並逐步完善。
基本介紹
- 中文名:吞噬程式
- 性質:程式
- 屬性:吞噬
- 時間:1999年
原理簡介,拆分方案,工程分解,功能模型,彙編拆分,算法最佳化,
原理簡介
簡單的來說就是將目標程式打包成自身模組加以利用的方式。使用了微型虛擬機的思路,讓目標程式無法識別自身所處的工作環境,並正常工作。通過經典的馮諾依曼機得知,我們可以廣義的將任何一個程式定義為一套輸入輸出的邏輯體系。而我們所要做的是封裝好這個兩個接口即可。對於較大的程式,我們可以採用拆分的思想,將其功能拆分化使用。
吞噬程式以實用主義為準,並非要一次分解性使用全部的功能,只需要重點針對需求功能進行拆分,其餘的會根據重要性安排在日程中逐步進行。由於虛擬機I/0瓶頸的影響,在某些功能上不得不採用工程拆分的原理來仿製並逐步完善。
此程式思路與1999年由軟體程式設計師陳昱提出,並與2004年完成全部設計,投入使用。由於其強大的擴展性為其他的各種系統,工程,程式提供了極其繁多的模組功能支持。2007年此系統在其導師張主任的幫助下進一步完善,並將著作權捐贈給了山西省自動化研究所。
拆分方案
如圖所示,可以將一個複雜的程式,在對外接口上封裝成兩個簡易功能的程式來使用。依然使用的是馮諾依曼機原理,輸入輸出標識。
工程分解
僅僅虛擬裝入是不夠的,隨著使用的延長需要更高的效率。則對應的應該採取更深層度的分解
功能模型
在主虛擬模組(研究對象)的旁邊,針對不同實用功能建立功能模型。
a.將一個研究對象封裝為 多個簡易模型
b.將對象的功能變成多個簡易模型
c.簡易模型可以隨著對封裝對象的不斷模仿升級
d.各種功能可以是單一的,也可以是組合的
e.成熟的功能可以脫離邏輯,建立到其他重要方向上去
f.可以分離出最基本的元素來組合其他零件
彙編拆分
我們知道任何程式,無論何種狀態都是有0或者1組合成的, 利用反彙編程式可以拆分回去。雖然沒有任何的邏輯標識,而且加密過的程式動態跟蹤會十分複雜,但是隨著數據挖掘技術和資料庫等技術發展,動態的反彙編跟蹤一個程式的邏輯並非很難,由於自動化計算機軟體編程系統的研究完成,模擬出電子彙編程式設計師來幫我們完美的解決了這一系列問題。我們根據功能,將其拆分為基本元素,然後根據工程化模組分量組合成各種元素,零件,模組,工具,流水線,車間,工廠等等,以備將來使用。即使是加密的程式,也可以根據需要先提取出主要使用的邏輯功能,在空閒的工程時間內逐步拆分加密原理,記錄到密碼資料庫中備用。
算法最佳化
各種提取出來的模組效能不一定能達到要求,有時甚至正好差一點點便無法達標,不能投入使用。這時算法最佳化便起了很重要的作用。使用了自動化計算機軟體編程系統的邏輯思路資料庫和自編譯程式的最佳化原理,在虛擬環境下不斷升級各種指標,直至達到要求為止。隨著世界的不斷發展,邏輯思路資料庫內的算法和思路日益龐大,不僅發展成了一門科學,同時也解決了很多之前解決不了的最佳化問題。