當創建了程式後,編譯系統就會將程式的原始碼編譯成幾個機器碼的文件。接下來,這些文件就會被銜接起來產生最終的軟體檔。
圖 1: 編譯你的原始碼
相似於程式的原始碼在編譯時被轉換成機器碼,有些工具也可以將已經編譯成機器碼的文件轉變成匯編語言或更高級的編程語言。這些工具被稱為反彙編器和反編譯系統。
圖 2: 對你的程式作反編譯
一個軟體破解者可以使用反彙編器或反編譯系統觀察特定的程式是怎麼運作和特定的例程的功能。當一個軟體破解者對於目標程式已有了相當的瞭解後,他就可以修改這個程式的運作方式。例如,軟體破解者可以使程式繞過一個檢查程式試用期的例程,使它永遠啟動或更糟的是,使這程式像是已經註冊過地運作。
軟體保護層的存在使軟體破解者無法直接檢測或修改編譯過的程式。軟體保護層就像是一個盾牌那樣,使程式受到加密和保護,不被破解。在一個受保護的程式將要被 操作系統啟動時,軟體保護層會先主控CPU,檢測是否有反彙編器或反編譯系統在系統裡運行著。當確定沒有異常程式運行後,軟體保護層才會對這個受保護的程式進行解密,然後將CPU的掌控權交還,讓它如常運作。
使用軟體保護層的好處包括:
• 保護程式不被盜版
• 避免軟體破解者檢測程式的運作方式
• 不讓軟體破解者修改程式的運作方式
自從有了軟體保護層的存在,很多軟體破解者都把大部分的精力和時間花在破解軟體保護層的身上,而不再是受保護的程式身上。許多工具都是為了幫助破解軟體保護層而開發的。這些破解通常使軟體破解者可以除掉保護層而得到原程式。
圖 3: 普遍的保護層原理
軟體保護層最大的問題是它們所使用的保護方式已經是駭客們所熟悉的方法,所以只要使用傳統的駭客工具就可以輕易地繞過這些軟體保護層。
軟體保護層另一個的問題是它們的運行受到操作系統的限制。換句話說,它們只在一般模態下運作。因此,軟體破解者可以使用任何與操作系統相同優先等級的情形下運行的駭客工具,這使這些駭客工具可以在特定的時間裡完全地監視軟體保護層的運作,然後在特定的地方進行攻擊。
Themida®的開發圍繞在一般 軟體保護層的主要弱點,使它可以對這些問題提供一個完全的解決方案。Themida®使用SecureEngine®的保護技術。當它在最高優先等級的情形下運行的時候,它對抗高級軟體破解所使用的是從來都未曾出現過的防禦技
圖 4: Themida® 的保護步驟
SecureEngine® 可以擊敗所有現行用來破解受保護軟體的破解工具。所以,它確保你受保護的軟體只在安全的環境下運作。
z
圖 5: SecureEngine® 技術更強化了你現存的保護措施
軟體保護程式編制從來就是一個大多數程式編制員所不熟悉的領域。軟體保護技術不像一般可以看得見的特點,也不能做比較。因此,多數的軟體保護程式作者可以描述很多令人印象深刻的保護措施和技術,可是在多數的情形下,這些保護措施和技術都是難於存在,或比他們所描述的來得簡單。
多數的軟體保護層著重強調非常強的加密算法,例如RSA、Elliptic Curves和AES。他們希望通過這些使終極用戶相信這些軟體保護層和加密算法的功用是有效和破解不了的。可是,事實卻非這樣,因為保護軟體和資料保護差異很大。就算軟體保護層使用最健全的加密算法來對程式作加密,這程式還是遲早需要被解密,以讓它能夠運行於CPU。多數的軟體破解者會在解密的階段動工,將解密了的程式從內存轉送到磁碟上,使他們不需要破解這些加密程式來獲得原程式。
These are the key features of Themida®:
- Anti-debugger techniques that detect/fool any kind of debugger
- Anti-memory dumpers techniques for any Ring3 and Ring0 dumpersz
- Different encryption algorithms and keys in each protected application
- Anti-API scanners techniques that avoids reconstruction of original import table
- Automatic decompilation and scrambling techniques in target application
- Virtual Machine emulation in specific blocks of code
- Advanced Mutator engine
- SDK communication with protection layer
- Anti-disassember techniques for any static and interactive disassemblers
- Multiple polymorphic layers with more than 50.000 permutations
- Advanced API-Wrapping techniques
- Anti-monitors techniques against file and registry monitors
- Random garbage code insertion between real instructions
- Specialized protection threads
- Advanced Threads network communication
- Anti-Memory patching and CRC techniques in target application
- Metamorphic engine to scramble original instructions
- Advanced Entry point protection
- Dynamic encryption in target application
- Anti-tracing code insertion between real instructions
- Advanced Anti-breakpoint manager
- Real time protection in target application
- Compression of target application, resources and protection code
- Anti-“debugger hiders” techniques
- Full mutation in protection code to avoid pattern recognition
- Real-time simulation in target application
- Intelligent protection code insertion inside target application
- Random internal data relocation
- Possibility to customize dialogs in protected application
- Support of command line
- Many many more...
Supported Windows
- Windows® 11
- Windows® 10
- Windows® 8
- Windows® 7
- Windows® Vista
- Windows® Server
- Windows® XP
- Windows® 2000
Supported Compilers
- All EXE/DLL from any compiler
- Borland Delphi
- Borland C++ / Builder
- Microsoft Visual C++
- Microsoft Visual Basic
- VB.NET, C#
- Watcom C++, Intel C
- MASM, TASM, GCC
- PureBasic, PowerBasic
- and more..
Supported Files
Themida/WinLicense can protect Windows native binaries (EXE/DLL) and .NET applications (EXE).
Code Virtualizer can protect Windows native binaries (EXE/DLL), macOS and Linux applications/libraries.
WinLicense
WinLicense 是一個強勁的保護系統, 專為了那些想保護自己的程式不被先進的反向工程和駭客軟體破解的軟體開發者而開發的。開發者不需要更改任何的源代碼,和不需要程式編制的經驗使用 WinLicense。
WinLicense 使用 SecureEngine®的保護技術。它能夠以最高的優先等級運行,這些保護技巧是從來都沒在電腦防禦技術領域出現過,使它最大程度地保護任何程式。
Code Virtualizer
Code Virtualizer 是一個強大的代碼攪亂系統。它可以幫助軟體開發者保護他們軟體內重要和敏感的代碼區,防止他人使用逆向工程,而且它只消耗最小的系統資源。Code Virtualizer 將你源代碼( Intel x86 指令)轉化成虛擬的指令,只有內部的虛擬機器可以明白這些指令。對於每一個所保護的程式,這些所產生的虛擬指令以及虛擬機器本身都是獨特的,以防止他人對 Code Virtualizer 採用廣泛的攻擊。Code Virtualizer 可以在任何 x32 或 x64 原生 PE 文檔中(例如 可執行 文檔( EXEs ), system services, DLLs, OCXs, ActiveX 控制檔,保護程式以及裝置驅動程式 )保護你重要和敏感的代碼區。