C++原始碼免殺之函數的動態調用

來源:互聯網
上載者:User

  最近也在學著修改Gh0st遠控的原始碼,原始碼免殺起來還是方便、簡單、有效和簡單點。針對於輸入輸出表盯的比較緊的殺毒軟體,最有效還是進行函數動態調用。也就是說找到函數的原定義,包括實值型別和參數等等,再在調用該函數的地方重新定義這個函數,其實也只是改下函數名而已,下面舉個例子:

        CreateRemoteThread 作用是建立遠線程,假設殺毒軟體現在就殺在這個函數上,我們就這樣處理,首先在代碼中右鍵點擊CreateRemoteThread函數-->轉到定義,找到函數的原型:

  函數原型如下:

  WINBASEAPI

  __out

  HANDLE

  WINAPI

  CreateRemoteThread(

  __in HANDLE hProcess,

  __in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,

  __in SIZE_T dwStackSize,

  __in LPTHREAD_START_ROUTINE lpStartAddress,

  __in_opt LPVOID lpParameter,

  __in DWORD dwCreationFlags,

  __out_opt LPDWORD lpThreadId

  );

  改後的函數模型如下:

  typedef HANDLE (WINAPI *CreateRemoteThreadxx)

  (

  __in HANDLE hProcess,

  __in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,

  __in SIZE_T dwStackSize,

  __in LPTHREAD_START_ROUTINE lpStartAddress,

  __in_opt LPVOID lpParameter,

  __in DWORD dwCreationFlags,

  __out_opt LPDWORD lpThreadId

  );

  CreateRemoteThreadxx yyCreateRemoteThread= (CreateRemoteThreadxx)GetProcAddress(LoadLibrary("kernel32.dll"),"CreateRemoteThread");

  

  補充:有些函數原型最後面分別帶得有A和W的,如果你的編譯環境是ANSI環境就選擇帶A的那部分,如果你的環境是Unicode環境,那就選擇帶W的那部分。例如:GetUserName的原型有兩種定義:GetUserNameA和GetUserNameW,視實際情況選擇相應的函數原型進行修改就好。

  修改後調用的函數名就由CreateRemoteThread變為了yyCreateRemoteThread,紅色部分為自訂部分,隨便你改稱什麼,但是要注意前後一致。藍色的部分再可以用字串串連法進行分離後串連,這樣處理之後,殺毒軟體就找不到CreateRemoteThread這個函數了。到此,檔案的這處也就免殺了。一點小手記,分享給大家,見笑了。

  後記:看了很多教程,都是說怎麼改,沒說為什麼要這麼改,也沒說還可以怎麼改,更沒說改的限度是什麼。一看教程裡先在函數後面加個L,再在定義後的新的函數前面加個p,接著很多看了教程的人都改成那兩個,做教程的人還在教程裡嚇唬人說“別的都不要動,這兩個地方改成這樣就可以了”,有時候有些事情並不難,並不可怕,難和可怕大多來自於別人的聳人聽聞和對未知事物的懼怕。最後希望大家都能夠放開手腳,幹番大事業!搞了個垃圾站賺點外塊,希望大家能支援下。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.