論壇上記憶體注入的帖子不止三兩個,來來去去也就那樣,無非抄來抄去說原創。我也是抄的,不敢說原創,但是牛逼還是說的過去。支援注入任意程式,包括csrss,前提是你能有讀寫程式記憶體的許可權。看到MemLoadLibrary2註釋的人,如果覺得有點熟悉,那你一定老了。哈哈哈,因為這個MemLoadLibrary2的原型,沒記錯的話,應該是2009年以前的一個memoryloaddll。具體是誰寫的我也不懂了。包括現在的論壇上出現的各種MemoryLoad,我基本上都能看到這個memoryloaddll的身影。
整體原始碼很簡單,就兩個檔案,loader2.h和MainLoad.cpp。
loader2.h 是主要功能,包含:
- MemLoadLibrary2 ()//為了方便提取shellcode,把重定位修復什麼的都寫到了這一個函式裡面去了,而且只有一個return 返回;
- 同時為了能實現注入csrss.exe,把所有的Windows API 都弄成了NTDLL的API。
MainLoad.cpp是呼叫例子,裡面包含:
- SaveShellCode();//提取shellcode寫到檔案;
- test1();//直接呼叫 MemLoadLibrary2();記憶體載入DLL;
- test2();//獲取 SaveShellCode 儲存的shellcode,遠端呼叫shellcode記憶體注入DLL。
選擇EXE和DLL各編譯一次,生成對應的x86或者x64的EXE和DLL執行就能看到效果了。
原始碼裡有很詳細的註釋,這裡就不貼原始碼解釋了,都放在附件裡。(從原文連結,即可獲得附件)
SaveShellCode ()儲存起來的shellcode可以直接拿到什麼易語言,驅動之類的去用,只要引數傳的對了,就沒毛病。
再給新手說下shellcode提取,要設定專案屬性->C/C++->程式碼生成->安全檢查=禁用安全檢查。
專案本身就設定好了,直接用就行了。
面對當前各種安全檢測,單純的記憶體注入是行不通的,具體要怎麼處理,還是得靠自己多轉變下思維。
原文作者:lononan
原文連結:https://bbs.pediy.com/thread-246934.htm
轉載請註明:轉自看雪學院
看雪閱讀推薦:
1、[翻譯] 使用S2E分析基於觸發器的惡意軟體
2、[原創]使用frida來hook加固的Android應用的java層
3、[原創]去一個小廣告
4、[原創]Unity3D mono模式遊戲保護之淺談