資源描述:
《從內存資源中加載dll 模擬pe加載器》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、一種保護應用程序的方法?模擬Windows?PE加載器,從內存資源中加載DLL1、前言目前很多敏感和重要的DLL(Dynamic-link?library)?都沒有提供靜態(tài)版本供編譯器進行靜態(tài)連接(.lib文件),即使提供了靜態(tài)版本也因為兼容性問題導致無法使用,而只提供DLL版本,并且很多專業(yè)軟件的授權部分的API,都是單獨提供一個DLL來完成,而主模塊通過調用DLL中的接口來完成授權功能。雖然這些軟件一般都采用了加殼和反調試等保護,但是一旦這些功能失去作用,比如脫殼,反反調試,HOOK?API或者干脆寫一個仿真的授權DLL(模擬授權DLL的所
2、有導出函數接口),然后仿真的DLL再調用授權DLL,這樣所有的輸入首先被仿真DLL截獲再傳遞給授權DLL,而授權DLL的輸出也首先傳遞給仿真DLL再傳遞給主程序,這樣就可以輕易的監(jiān)視二者之間的輸入輸出之間的關系,從而輕易的截獲DLL中的授權信息進行修改再返回給主程序。?2、目前隱式調用敏感DLL中可能存在的安全隱患以下通過兩個軟件的授權DLL來說明這種問題的嚴重性。如下是兩個軟件中授權DLL的部分信息,如下圖所示:(圖1)通過工具OllyICE可以輕易的看出IoMonitor.exe調用授權DLL(XKeyAPI.DLL),這樣就很容易在調用這
3、些API的地方設置斷點,然后判斷輸入輸出的關系,從而達到破解的目的。?一種保護應用程序的方法?模擬Windows?PE加載器,從內存資源中加載DLL1、前言目前很多敏感和重要的DLL(Dynamic-link?library)?都沒有提供靜態(tài)版本供編譯器進行靜態(tài)連接(.lib文件),即使提供了靜態(tài)版本也因為兼容性問題導致無法使用,而只提供DLL版本,并且很多專業(yè)軟件的授權部分的API,都是單獨提供一個DLL來完成,而主模塊通過調用DLL中的接口來完成授權功能。雖然這些軟件一般都采用了加殼和反調試等保護,但是一旦這些功能失去作用,比如脫殼,反反調
4、試,HOOK?API或者干脆寫一個仿真的授權DLL(模擬授權DLL的所有導出函數接口),然后仿真的DLL再調用授權DLL,這樣所有的輸入首先被仿真DLL截獲再傳遞給授權DLL,而授權DLL的輸出也首先傳遞給仿真DLL再傳遞給主程序,這樣就可以輕易的監(jiān)視二者之間的輸入輸出之間的關系,從而輕易的截獲DLL中的授權信息進行修改再返回給主程序。?2、目前隱式調用敏感DLL中可能存在的安全隱患以下通過兩個軟件的授權DLL來說明這種問題的嚴重性。如下是兩個軟件中授權DLL的部分信息,如下圖所示:(圖1)通過工具OllyICE可以輕易的看出IoMonitor
5、.exe調用授權DLL(XKeyAPI.DLL),這樣就很容易在調用這些API的地方設置斷點,然后判斷輸入輸出的關系,從而達到破解的目的。?一種保護應用程序的方法?模擬Windows?PE加載器,從內存資源中加載DLL1、前言目前很多敏感和重要的DLL(Dynamic-link?library)?都沒有提供靜態(tài)版本供編譯器進行靜態(tài)連接(.lib文件),即使提供了靜態(tài)版本也因為兼容性問題導致無法使用,而只提供DLL版本,并且很多專業(yè)軟件的授權部分的API,都是單獨提供一個DLL來完成,而主模塊通過調用DLL中的接口來完成授權功能。雖然這些軟件一般
6、都采用了加殼和反調試等保護,但是一旦這些功能失去作用,比如脫殼,反反調試,HOOK?API或者干脆寫一個仿真的授權DLL(模擬授權DLL的所有導出函數接口),然后仿真的DLL再調用授權DLL,這樣所有的輸入首先被仿真DLL截獲再傳遞給授權DLL,而授權DLL的輸出也首先傳遞給仿真DLL再傳遞給主程序,這樣就可以輕易的監(jiān)視二者之間的輸入輸出之間的關系,從而輕易的截獲DLL中的授權信息進行修改再返回給主程序。?2、目前隱式調用敏感DLL中可能存在的安全隱患以下通過兩個軟件的授權DLL來說明這種問題的嚴重性。如下是兩個軟件中授權DLL的部分信息,如下
7、圖所示:(圖1)通過工具OllyICE可以輕易的看出IoMonitor.exe調用授權DLL(XKeyAPI.DLL),這樣就很容易在調用這些API的地方設置斷點,然后判斷輸入輸出的關系,從而達到破解的目的。?一種保護應用程序的方法?模擬Windows?PE加載器,從內存資源中加載DLL1、前言目前很多敏感和重要的DLL(Dynamic-link?library)?都沒有提供靜態(tài)版本供編譯器進行靜態(tài)連接(.lib文件),即使提供了靜態(tài)版本也因為兼容性問題導致無法使用,而只提供DLL版本,并且很多專業(yè)軟件的授權部分的API,都是單獨提供一個DLL
8、來完成,而主模塊通過調用DLL中的接口來完成授權功能。雖然這些軟件一般都采用了加殼和反調試等保護,但是一旦這些功能失去作用,比如脫殼,反反調試,HOO