JavaShuo
欄目
標籤
[轉載]運行中的DLL自升級
時間 2019-11-05
標籤
轉載
運行
dll
升級
欄目
Windows
简体版
原文
原文鏈接
最近手頭有個需求:dll須要注入到某個進程常駐,該dll具有自我升級能力,當發現新的可用版本時,當即Free本身,加載新的。下面是一個實現方案:
開啓一個監聽線程,從網絡上拉新的可用版本,下載放到一個臨時目錄,若是發現須要升級,則當即FreeLibrary自身,而後執行更新過程。
因爲FreeLibrary以後當前模塊的內存區域已經無效,因此更新的過程使用一個單獨的線程,並將要更新過程的代碼經過shellcode的形式寫到分配的內存中執行。更新過程當中將會使用一些系統API函數,這裏不能直接經過函數名來調用,由於這樣會訪問導入表,而DLL此時已經Free掉了。因此事先經過準備一個參數傳遞給該線程,該參數有更新線程要用到的一些數據和地址:
下面看看更新監聽線程如何工做以及如何準備這些參數:
建立好更新線程後,本身得及時退出並Free本身(這樣更新線程才能把本身刪掉):
下面看看更新線程如何工做:
同Free本身模塊同樣,最後VirtualFree參數和當前代碼所佔內存頁面後,不能再回來,經過構建棧參數的形式,結束當前線程。這個函數編譯後的二進制指令保存到全局數組中:
下面是測試的效果(XP、Win7 32 &64均測試經過):
最後有幾個地方要說明的是:
一、 加載新的dll前要把臨時目錄下的文件刪除掉,防止出現遞歸循環更新過程。
二、 執行更新過程前須要判斷dll的版本信息,一樣是爲防止出現遞歸循環過程。
[公告]安全服務和外包項目請將項目需求發到看雪企服平臺:https://qifu.kanxue.com
shell
上傳的附件:
parameter.png
(52.76kb,38次下載)
MonitorThread.png
(151.43kb,120次下載)
updateThead.png
(43.95kb,65次下載)
shellcode.png
(70.88kb,44次下載)
dbgview.png
(67.56kb,7次下載)
freeself.png
(6.57kb,2次下載)
相關文章
1.
提升sqlite 的運行性能(轉載)
2.
【轉載自CNBLOG】centos7 升級openssh版本
3.
轉載:Struts2.3.15.1升級總結
4.
[轉載]運維工程師的打怪升級之路
5.
轉載:運維工程師的打怪升級之路
6.
LoadLibrary方法加載運行DLL庫
7.
【轉載】MSVCR100.dll和MSVCP100.dll的區別
8.
centos7安裝或升級的nginx 轉載
9.
【轉載】VS2008運行Debug中exe程序,無法啓動此程序,丟失dll
10.
轉載php在IIS中運行
更多相關文章...
•
在自己的 PC 上運行 ASP
-
ASP 教程
•
Hibernate的級聯與反轉
-
Hibernate教程
•
SpringBoot中properties文件不能自動提示解決方法
•
C# 中 foreach 遍歷的用法
相關標籤/搜索
轉載搬運
轉載自CSDN
轉載自
轉載的
運載
升級
轉載
運轉
轉運
運行
Windows
PHP教程
Redis教程
SQLite教程
註冊中心
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
【Java8新特性_尚硅谷】P1_P5
2.
SpringSecurity 基礎應用
3.
SlowFast Networks for Video Recognition
4.
074-enable-right-click
5.
WindowFocusListener窗體焦點監聽器
6.
DNS部署(二)DNS的解析(正向、反向、雙向、郵件解析及域名轉換)
7.
Java基礎(十九)集合(1)集合中主要接口和實現類
8.
瀏覽器工作原理學習筆記
9.
chrome瀏覽器構架學習筆記
10.
eclipse引用sun.misc開頭的類
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
提升sqlite 的運行性能(轉載)
2.
【轉載自CNBLOG】centos7 升級openssh版本
3.
轉載:Struts2.3.15.1升級總結
4.
[轉載]運維工程師的打怪升級之路
5.
轉載:運維工程師的打怪升級之路
6.
LoadLibrary方法加載運行DLL庫
7.
【轉載】MSVCR100.dll和MSVCP100.dll的區別
8.
centos7安裝或升級的nginx 轉載
9.
【轉載】VS2008運行Debug中exe程序,無法啓動此程序,丟失dll
10.
轉載php在IIS中運行
>>更多相關文章<<