使用C 實現遠端執行緒插入

2021-04-15 15:48:55 字數 1243 閱讀 2258

使用.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...