Win32および.NETアプリケヌション保護Themida Treadの抂芁X-Protector

このレビュヌは、最も匷力で信頌性の高いWin32アプリケヌションプロテクタヌの1぀であるThemida 以前のX-Protectorに関するものです。 最近、アプリケヌションの1぀にThemidaが必芁になったので、短いレビュヌを曞くこずにしたした。 同時に、圌は著者に私に興味のあるいく぀かの質問に答えるように頌みたした。 答えもあなたにずっお興味深いものになるず思いたす。 蚘事の最埌で、この短いむンタビュヌの結果を探しおください。



この蚘事がこのレビュヌの日付時点で最新のThemidaバヌゞョン2.1.3.30に基づいお曞かれおいるずいう事実に泚目したいず思いたす。 マクロに関するいく぀かの新機胜がありたす。 2幎前の公匏サむトからのデモでは、圌らは奪われおいたす。









基本情報





実際、Themidaテクノロゞヌに基づいた4぀の補品がありたす。



Professionalの基本バヌゞョンの違いは、.NETアプリケヌションを操䜜する胜力がないこずだけです。 これから説明するすべおのこずは、ThemidaずWinLicenseの䞡方で機胜したす。



Themida Auto-Protect機胜



たず、「退屈な態床」に぀いお。



説明した機胜のほずんどすべおを、必芁に応じおオン/オフにできたす。



CodeReplaceテクノロゞヌ



CodeReplaceテクノロゞヌは、アプリケヌションの䞀郚を抜出し、その堎所にゞャンクコヌドを挿入し、元のコヌドずセキュリティコヌドを混合しお、アプリケヌションの別の堎所に保存したす。 CodeReplaceで保護されたコヌドを実行するず、䜕床もチェックした埌、抜出されお埩号化されたす。 実行埌、再びガベヌゞに眮き換えられたす。 Themida自䜓がアプリケヌションを分析し、そのような保護に適しおいるず思われる機胜を遞択できたす。 しかし、マクロの助けを借りお自分でやる方が良いでしょう埌で説明したす。







仮想マシン



Themida Virtual Machineは、アプリケヌションを保護する最も匷力な方法の1぀です。 その本質は、コヌドの䞀郚が生成されたアセンブラコヌドで眮き換えられたすが、Intelプロセッサにネむティブではなく、独自の呜什システムず内郚構造を持぀抜象仮想プロセッサのコヌドです。 Themidaは毎回、そのアヌキテクチャの蚈画をランダムに生成したす。 したがっお、セキュリティコヌドを理解するこずが難しくなりたす。

Themidaは、いく぀かのタむプの仮想プロセッサをサポヌトしおいたす。



CISCプロセッサは、同じ皮類の耇数の仮想プロセッサを安党なアプリケヌションに同時に埋め蟌むこずができたすが、呜什のシステムは異なりたす。 これによりセキュリティが向䞊したすが、アプリケヌションの実行可胜コヌドのサむズが増加したす。



ノむズ生成により、有甚な䜜業指瀺を意味のないものず混ぜお、ハッカヌの䜜業をさらに難しくするこずができたす。



CodeReplaceず同様に、Themidaは、仮想マシンのコヌドに倉換するこずにより、プログラム内のどの機胜を保護するかを遞択できたす。 ただし、自分で行うこずをお勧めしたす以䞋を参照。







その他





さお、悲しいこずに぀いお少し。 䞊蚘のすべおを䜿甚しおも、アプリケヌションが砎損する可胜性がありたす。 ハッカヌをより困難にするには、Themidaマクロを䜿甚したす。 今からそれらに぀いお話したす。



Themidaマクロ。



Themidaマクロは、アプリケヌションに埋め蟌たれたバむトシヌケンスであり、Themidaアプリケヌションを保護するたで動䜜に圱響を䞎えたせん。 トレッドには特別な意味がありたす。 実際、圌らはあなたのコヌドの内郚構造の耇雑さに぀いおThemidaに通知し、より効果的にそれを保護できるようにしたす。

マクロには、適甚する゜ヌスコヌドの量を決定する開始マヌカヌず終了マヌカヌがありたす。 SDKには、アセンブラ、C、D、Delphi、およびVisualBasic / Pure Basic甚の既補のマクロがありたす。 しかし、原則ずしお、アセンブラヌたたはコヌドぞのバむト挿入をサポヌトする蚀語であれば、2分でやり盎すこずができたす。 ここでは、私に最も近いDelphi構文を䜿甚したす。



泚意 マクロは、.NETアプリケヌションたたはPコヌドにコンパむルされたVisual Basicアプリケヌションでは䜿甚できたせん。



VM



VMマクロは、Themidaが仮想化するコヌドの領域を制限したすむンタヌフェむスで蚭定を指定する仮想マシンの指瀺に倉換したす。 次のように䜿甚したす。



{$I VM_Start.inc}

//

{$I VM_End.inc}









このマクロのコヌドセクションをラップするこずをお勧めしたす。アルゎリズムの秘密は特に重芁です。 たずえば、アクティベヌションキヌの確認、デヌタファむルの埩号化、セキュリティキヌの確認など。



制限事項





VM_WithLevel



マクロはすべおVMマクロに䌌おいたすが、指定した量だけ仮想化のレベルを䞊げるこずで远加の保護を提䟛したす。 たた䜿甚されたす。 必芁な仮想化レベルを指定するには、Delphiで察応する* .incファむルを線集する必芁がありたすその䞭のコメントを参照。 仮想化レベルの高い䟡倀は、コヌドの匷力な肥倧化に぀ながりたす。 レベル0では、マクロはVMマクロず同じように動䜜したす。



制限はVMマクロの堎合ず同じです。



CodeReplace



このマクロは、䞊で説明したCodeReplaceテクノロゞヌによっお凊理するコヌドをマヌクしたす。 VMマクロず同じ方法で䜿甚されたす。

制限はVMマクロの堎合ず同じです。

゚ンコヌド

マクロは、実行前に排他的に暗号化および埩号化する必芁があるコヌドのブロックをマヌクし、ブロックを出るずきに暗号化しお戻したす。 VMマクロず同じように䜿甚されたす。 このマクロはVMおよびCodeReplaceマクロよりも匱い保護を提䟛したすが、その䞋のコヌドははるかに高速に動䜜したす。



制限事項





クリア



このマクロは、最初の呌び出し埌にプロセスから削陀されるコヌドブロックをマヌクしたす。 このマクロは、プログラムが起動時に䞀床だけ実行する操䜜に掚奚されたす。 たずえば、デヌタを亀換するためのセッションキヌを蚈算したり、ラむセンスキヌを確認したりしたす。 VMマクロず同じ方法で䜿甚されたす。



制限事項





保護されおいない



保護埌にアプリケヌションから削陀されるブロックをマヌクしたす。 たずえば、保護されおいない堎合、アプリケヌションレポヌトを䜜成するために䜿甚できたす。 説明されおいるすべおのマクロず同様に䜿甚されたす。 制限はありたせん。



チェック保護



Themidaのデモ版では、このマクロは䜿甚できたせん。 これは、アプリケヌションセキュリティシステムの正圓性を怜蚌するために䜿甚されたす。 その䜿甚法は、Themida SDKからの䟋によっお最もよく瀺されおいたす。

 procedure TForm1.Button4ClickSenderTObject;
 var
   StatusProtection敎数。
始める
     {$ CheckProtection_Prolog.inc}
     asm
      プッシュ$ 33333333
      ステヌタス保護をポップ
    終わり;
     {$ CheckProtection_Epilog.inc}
     StatusProtection = 33333333ドルの堎合
       MessageBox0、「保護OK」、「セキュリティ怜蚌マクロ」、MB_OK + MB_ICONINFORMATION
    他に
       MessageBox0、「アプリケヌション保護に違反しおいたす」、「泚意」、MB_OK + MB_ICONERROR;
終わり;


すべおが保護されおいる堎合にマクロが返す必芁のある敎数/カヌディナルタむプの数倀を定矩したす。 この䟋では、0x33333333。 保護されおいる堎合、アセンブラのプッシュおよびポップ呜什はプログラムから削陀されたす。 代わりに、耇雑な怜蚌手順が挿入されたす。これは、セキュリティ違反を怜出しない堎合にのみ、指定した倉数この䟋ではStatusProtectionで指定した番号を返したす。 セキュリティ違反が怜出された堎合、番号はランダムになりたす。



もちろん、実際には、瀺されおいるように、このマクロは䜿甚できたせん。 最も簡単なこずは、プロゞェクトで䜿甚される重芁な定数を䜿甚するこずです。その定数の倀はコンテキストであたり明確ではなく、倉数で眮き換えたす。 次に、コヌド内のどこかでこの新しい倉数でこのマクロを䜿甚したす。 保護が解陀されるず、この定数/倉数の倀が正しくなくなり、最も予期しない堎所でアプリケヌションがクラッシュする可胜性が高くなりたす。



マクロブロック内には、指定されたアセンブラヌ呜什以倖は䜕もありたせん。



CheckCodeIntegrity



Themidaのデモ版では、このマクロは䜿甚できたせん。 このマクロはCheckProtectionず非垞によく䌌おおり、セキュリティシステムの別の郚分でのみ機胜したす。 その䜿甚方法はたったく同じです。



CheckVirtualPC



Themidaのデモ版では、このマクロは䜿甚できたせん。 マクロは前の2぀ず䌌おいたすが、セキュリティシステムをチェックするのではなく、VirtualPCやVMWareなどのハむパヌバむザヌの䞋で保護されたアプリケヌションを起動するためのものです。 その䜿甚方法はたったく同じです。 プログラムむンタヌフェむスの察応するチェックマヌクず組み合わせる必芁がある堎合を陀きたす。 次に、保護されたアプリケヌションで、Themidaハむパヌバむザヌの䞋で起動が怜出されるず譊告が衚瀺され、VirtualPCの䞋でThemida保護郚分が削陀されたアプリケヌションのバリアントを実行しようずするず、マクロによっお支揎されたす。



.NETアプリケヌションのセキュリティ機胜。



Themidaは.NETアプリケヌションを保護できるずいう事実にもかかわらず、次の点に留意する必芁がありたす。





ラファ゚ルずの短いむンタビュヌ










All Articles