2015-06-30 32 views
0

簡單地說,我想製作一個第三方軟件來檢測.net應用程序,如果它是vb.net或c#並向其主窗體注入幾行代碼,則初始化組件部分。檢測代碼並將其注入.net應用程序的主窗體

我從哪裏開始?

+0

我相信這是惡意軟件.. – OneFineDay

+0

不,不是真的。我正在制定許可證制度。 – Frezzy

+0

您確實知道只需幾分鐘即可瞭解該功能,並創建一個修補程序類型的應用程序,不是嗎? – Plutonix

回答

0

要改變外部代碼DLL的代碼並不容易,但是如果你想修改一個參數或返回的結果並不難。攔截調用以修改輸入或輸出的過程稱爲「Hooking」。

在C#中有一個易於使用的庫,可以完成大部分工作,稱爲EasyHook,這將允許您攔截調用並用您自己的結果替換返回值。

static IntPtr CreateFile_Hooked(
    String InFileName, 
    UInt32 InDesiredAccess, 
    UInt32 InShareMode, 
    IntPtr InSecurityAttributes, 
    UInt32 InCreationDisposition, 
    UInt32 InFlagsAndAttributes, 
    IntPtr InTemplateFile) 
{ 
    try 
    { 
     Main This = (Main)HookRuntimeInfo.Callback; 

     lock (This.Queue) 
     { 
     if (This.Queue.Count < 1000) 
       This.Queue.Push(InFileName); 
     } 
    } 
    catch 
    { 
    } 

    // call original API... 
    return CreateFile(
     InFileName, 
     InDesiredAccess, 
     InShareMode, 
     InSecurityAttributes, 
     InCreationDisposition, 
     InFlagsAndAttributes, 
     InTemplateFile); 
} 
+0

我不想修改,只需將幾行代碼添加到已建好的.net應用程序中,但我需要將它們添加到初始化組件部分。 – Frezzy

相關問題