Injectopi是我決定寫下的一組教程,以了解Windows環境中的各種注入技術。當我注意到Hasherezade的這些很棒的來源時,我想到了這個想法。
這是我想的:
“有什麼比有多臂揮舞有毒尖尖武器的強大動物更好的了嗎?”
本教程顯示瞭如何創建一個程序,該程序將在運行時將代碼注入現有過程。我們將展示安全研究人員和惡意軟件編碼人員發現的增加複雜性的多種技術。必須注意的是,這些列表不完整,因為它僅顯示主要技術!
| 姓名 | 描述 | 主要Winapi |
|---|---|---|
| 創建 | 用殼代碼修補了其入門點,產生一個良性過程 | CreateProcess , VirtualProtectEx , ReadProcessMemory |
| 創建 | 在現有過程中創建一個包含shellCode的新的可執行器部分 | CreateProcess , ZwCreateSection , NtMapViewOfSection , ZwCreateThreadEx |
| 創建APC | 與創建相同:將使用這次異步過程調用。 | CreateProcess , ZwCreateSection , NtMapViewOfSection , NtQueueApcThread |
| 全部拷貝 | 在現有過程中分配可執行內存區域並在該區域複製 | ZwCreateSection , NtMapViewOfSection |
如果要編譯每個二進制,建議使用:
只需使用Visual Studio打開Injectopi.sln !
確保通過您的Visual Studio安裝啟用了Desktop C++ x86 and x64組件!
你應該準備好!
我已經評論了ShellCode在文件SHELLCODE.md中所做的工作。
在這裡,您可以找到有趣的文章 /網站 /論文列表,我在寫下Inpopopi時發現這些列表!
從他們的網站:
想像一下,在您可以信任的開源環境中運行您喜歡的Windows應用程序和驅動程序。那是反應。不僅是開放的,而且是一個免費的操作系統。
ReactOS是一個很棒的項目,旨在通過對Windows操作進行逆向工程。您在他們的網站上找到的文檔是純金。
Skape的“理解Windows ShellCode”紙是一個很好的資源,它肯定會幫助您了解Windows的內部設備的工作方式以及如何使用它們編寫ShellCode。
我在這些示例中使用的外殼使用了論文中顯示的一些技術!
任何貢獻都非常歡迎!隨時打開問題並提取請求!
由於Hasherezade的演示存儲庫以及我的講師Federico Maggi的不斷支持,這個項目的想法誕生了。
特別感謝我的朋友Francesco和Giancarlo,這幫助我審查了一切!
Copyright 2017 Giulio De Pasquale
Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.