ring3下偽裝進程名繞過HS 部分Inline hook ,有碼。
其實這文章有一半是Inndy大神寫的,被抄襲惹XDDD
HS白名單可用偽裝的進程列表,摘自:【原創】Hackshield內幕
原文網址:http://bbs.pediy.com/showpost.php?p=1085889&postcount=1
以前的inlinehook.dll聽說已經不能用惹...
HS白名單可用偽裝的進程列表,摘自:【原創】Hackshield內幕
原文網址:http://bbs.pediy.com/showpost.php?p=1085889&postcount=1
以前的inlinehook.dll聽說已經不能用惹...
以前有人發過類似文章(或者說我抄襲了吧。),但是那個代碼我測試了已經不能用了。貌似MFC上也會出錯。這裡我的代碼可以在mfc上使用。
此方法不需注入就讀寫Hackshield的進程地址空間數據,以及其它API的Detour Hook。【不能用於過保護。】
HS白名單可用偽裝的進程列表,摘自【原創】Hackshield內幕(http://bbs.pediy.com/showthread.php?t=150758):
代碼:
1. Name: patcher.exe 2. Name: WerFault.exe 3. Name: IAANTmon.exe 4. Name: avp.exe 5. Name: WmiApSrv.exe 6. Name: xsync.exe 7. Name: fssm32.exe 8. Name: LGDCORE.exe 9. Name: ACS.EXE 10.Name: ITPYE.EXE 11.Name: Joy2Key.exe 12.Name: JOYTOKEYHIDE.EXE 13.Name: JOYTOKEYKR.EXE 14.Name: JOYTOKEY.EXE 15.Name: DWM.EXE 16.Name: WMIPRVSE.EXE 17.Name: DK2.EXE 18.Name: CSTRIKE-ONLINE.EXE 19.Name: RAGII.EXE 20.Name: EKRN.EXE 21.Name: GOM.EXE 22.Name: GAMEMON.DES 23.Name: VAIOCAMERACAPTUREUTILITY.EXE 24.Name: IPOINT.EXE 25.Name: NMCOSRV.EXE 26.Name: DEKARON.EXE 27.Name: AUDIODG.EXE 28.Name: NGM.EXE 29.Name: TASKMGR.EXE 30.Name: HGSCRAPEDITORHELPER.EXE 31.Name: SETPOINT.EXE 32.Name: NMSERVICE.EXE 33.Name: NSVCAPPFLT.EXE 34.Name: UPSHIFTMSGR.EXE 35.Name: NOD32KRN.EXE 36.Name: IMJPCMNT.EXE 37.Name: TCSERVER.EXE 38.Name: SPOOLSV.EXE 39.Name: IEXPLORE.EXE 40.Name: EXPLORER.EXE 41.Name: WINLOGON.EXE 42.Name: SERVICES.EXE 43.Name: CSRSS.EXE 44.Name: LSASS.EXE 45.Name: SVCHOST.EXE
淺談ImagePath映像路徑
Q:
ImagePath是什麼?
A:
執行程式的時候,系統會建立一些資料區塊,裡面放了該程式執行時的一些資料,例如:CommandLine(就是程式參數,像是XX谷就是透過CommandLine來決定的IP和Port)....等
而ImagePath就是其中的一項
Q:
為什麼改ImagePath可以過HackShield的記憶體存取保護?
A:
因為HackShield對於NtOpenProcess、 NtReadVirtualMemory...等這幾條API有做Hook,就是大家一直說的InlineHook和Deep Inline Hook,然後去找這是哪個程式呼叫的,再去去 得該程式的ImagePath判斷是否為白名單,不然就拒絕呼叫,所以我們只要改掉ImagePath騙HackShield說我們是白名單上的程式(工 作管理員)。
Q:
ImagePath怎麼改?
A:
透過一連串的結構、指標下去改就好了,但是Win7 64bit的架構似乎不太一樣,雖然有找到結構體,但是似乎無效。
ImagePath的修改
ImagePath位於...
PEB->_RTL_USER_PROCESS_PARAMETERS->ImagePathName
所以說我們要先取得PEB的位址,再延著這條路徑往下走去改..
(亦可使用ZwQueryInformationProcess這條API取得PEB基址)
獲取ImagePathName並修改的關鍵代碼如下(x86機子可用):
代碼:
void GetTaskMgr() { ULONG Addr; const char taskmgr[] = "\\system32\\taskmgr.exe"; int length = strlen(taskmgr) + strlen(getenv("windir")) + 1; char* tmp = (char*)malloc(length); memset(tmp, 0, length); strcpy(tmp, getenv("windir")); strcat(tmp, taskmgr); wchar_t* tmp2; AnsiToUnicode(tmp, &tmp2); _asm { mov eax, fs:[0x30]; mov eax, [eax+0x10]; add eax, 0x3c; mov Addr,eax; } *(ULONG*)Addr=(ULONG)tmp2; } HRESULT AnsiToUnicode(LPCSTR pszA, LPOLESTR* ppszW) { ULONG cCharacters; DWORD dwError; if (NULL == pszA) { *ppszW = NULL; return NOERROR; } cCharacters = strlen(pszA)+1; *ppszW = (LPOLESTR) malloc(cCharacters*2); if (NULL == *ppszW) return E_OUTOFMEMORY; if (0 == MultiByteToWideChar(CP_ACP, 0, pszA, cCharacters, *ppszW, cCharacters)) { dwError = GetLastError(); free(*ppszW); *ppszW = NULL; return HRESULT_FROM_WIN32(dwError); } return NOERROR; }
調用GetTaskMgr函數即可偽裝自身的程序為taskmgr.exe,繞過部分的HS Inline Hook。
Mfc_Hook_peb.zip |
精品文章
回覆刪除洋蔥我好愛妳 哈哈
大大...方便貼出DLL嗎...有C++源碼還是不會匯出-.-
回覆刪除不知道在哪裡改 Orz
回覆刪除