使用.net可以實現遠端執行緒插入嗎?
使用嚴格的c#,不借助任何其它技術.遠端執行緒插入是不能在.net平台上實現的.然而在shellcode技術和遠端執行緒插入之**插入的基礎上.完全可以實現基於.net平台的混合型遠端執行緒插入.
最終效果是這樣的:
用於將執行緒插入到其它程序的可執行程式是.net程式(混合幾百位元組的機器碼),
用於被插入到其它程序的dll或exe也是純.net實現的.
可被插入的物件是所有有許可權程序writeproces**emory操作的本機程序.
實現c#下的遠端執行緒插入需要的技術:
.net程序寄宿
遠端執行緒插入之**插入
我所所謂的c#實現遠端執行緒插入,其核心就是將乙個.net程式集寄宿到乙個本機上的任意目標程序中並以執行緒方式執行.clr環境其根本就是乙個com伺服器.我們寫的.net程式集都是在這個com伺服器的支援下執行的.如果想讓乙個.net程式集在任意的本機程序中執行.那麼首先那個程序需要具有.net環境時環境.因為我們在遠端執行緒插入時就需要用到.net環境時環境.沒有這個環境,我們的.net程式集就沒有辦法被載入執行.如果本機程序是win32的,沒有.net執行時環境怎麼辦呢?我們需要給它乙個,**如下:
dword __stdcall clrfunclocal()
...
以上**的最後一句是用於在預設程式域內執行乙個.net程式集.這段**是用c++寫的.
如果是自己寫了乙個win32程式,因為某種原因需要載入乙個.net程式集並執行它的功能.你就可以像以上那樣寫.但我們是做遠端執行緒插入,那麼如何在被插入的程序中執行上數**呢?高手已經明白了.就是將這些**編譯成像shellcode一樣的裸的可執行**.然後使用遠端執行緒插入的**插入就可以clr環境載入到其它程序中並使其執行我們想要的.net程式集裡的**.
如果你已經有辦法將上述**編譯成裸的可執行本機**了.你就可以將這些本機**作為資源加到你的c#專案中.備用.
在c#中執行遠端執行緒插入和在c++中是一樣的.呼叫api嘛.估計誰都會了.不多講了.
我這人在寫文章時總是極沒有耐性工作又忙.就說到這吧.這算個初稿.感興趣的人可以找我聊呵呵.我如何聯絡呢?我還沒有想好要不要說呢.呵呵.
下面給出乙個演示程式,如果連線失效了,可以聯絡我.(我只有每月發工資時才會看信箱哦.)
補充:此遠端插入方法不能繞過硬體資料執行保護.
本文近期可能會更新.
Oracle JOB實現多執行緒插入
下面來寫個通過job實現多執行緒插入的例子,但並為與其他比對效率,只供參考 建立臨時表create table tt1 as select from dba objects where 1 0 create table tt2 as select from dba objects 資料分批插入參數列...
遠端執行緒注入實現自刪除
核心函式 include include pragma comment lib,kernel32.lib pragma comment lib,user32.lib bool enabledebugpriv lpctstr szprivilege if lookupprivilegevalue nu...
C 使用ThreadPool執行緒池實現採集任務
using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...