[原創]Unlocker加強版技術特征
Unlocker加強版技術特征
1. 解鎖已打開文件;
2.建立以特定用戶身份的shell。
上一個版本的概述在:原創]C# 與 匯編 的一次親密接觸。
1.采取了和 regmon & filemon 類似的方法,將 dll 等模塊嵌入到主PE中,
使之成為真正的 "綠色" 工具。
2.因為gcc沒有naked函數的功能(雖然有naked選項,但是生成不了naked函數
如果哪位知道是什麼問題,請不吝指出,多謝。),所以用匯編寫了一個
靜態庫進行連接。之所以要采用naked函數是想實現不定參數的跨函數傳遞,
比如:
void myprintf(const char *ft,...)
{
printf(ft,?????);//wrong!
}
而在匯編或vc中這個比較好辦,我們設計一個"透明"的跳板,好像從myprintf
直接跳轉到printf一樣:
_MsgShow_Console proc
jmp printf
_MsgShow_Console endp
void myprintf_msgbox(const char *ft,...)
{
char buf[BUFSIZ]={0};
sprintf(buf,ft,?????);//wrong!
MessageBox(NULL,buf,"message",MB_OK);
}
這時不能直接做跳轉,必須手動寫參數處理,就像偶以前在匯編區回答過一位
VC仁兄的問題 <如何處理函數的不定參數> 一樣:
_MsgShow_Win32 proc
push ebp ;save ebp is very important
mov eax,[esp+4] ;temp return address
lea ebp,[esp+4]
sub esp,0100h ;create tmp buf (0x100 bytes)
mov esi,esp ;save tmp buf address
add eax,2
movzx ecx,byte ptr [eax]
shr ecx,2 ;get parms number total size / size(dword)
mov ebx,esp ;save esp
.while ecx > 0h
mov eax,[ebp + ecx*4]
push eax
dec ecx
.endw
push esi
call sprintf
invoke MessageBoxA,0,ebx,addr cp,0
lea esp,[ebp-4]
pop ebp ;restore ebp
ret
_MsgShow_Win32 endp
#ifdef _DRV_DEBUG_
#if defined(_DRV_CONSOLE_)
#define MsgShow(...) _MsgShow_Console(__VA_ARGS__)
#elif defined(_DRV_WIN32_)
#define MsgShow(...) _MsgShow_Win32(__VA_ARGS__)
#elif defined(_DRV_CORE_)
#define MsgShow(...) _MsgShow_Core(__VA_ARGS__)
#else
#error : Must Choose One From 3 Show Model.
#endif
#else
#define MsgShow(...) ((void)0)
#endif
_MsgShow_Core proc
jmp DbgPrint
_MsgShow_Core endp
3.在unlocker中加入了建立用戶shell的功能,方便測試。比如可以方便的生成本地最高
權限SYSTEM用戶的shell,以及其他任何管理員和用戶的shell;可以在當前是user級別
用戶的環境下直接產生Administrator級別用戶的shell。
4.增加了 關閉核心句柄 的功能。使之在NT下可以關閉像 PageFile.sys 這樣核心文件對
象的句柄。但對一些關鍵核心文件對象,比如 SAM 文件來說,如果將其關閉馬上會造成
係統藍屏。所以請在虛擬機下嚐試,否則後果自負哦。
5.分別在 Windows 2000 sp4、Windows XP sp2、Windows 2003 sp1 下做了兼容性測試,發
現幾處需要調整的地方:
a.windows 2000 中沒有 GetProcessImageFileName 函數,所以將原來的 API
換成 GetModuleFileNameEx;
b.windows 2000 中沒有 NtCreateProcessEx 這個 API ,所以將原來的
_CreateSystemShell分為2個版本;
c.windows 2003 對內存屬性的檢查更加嚴格,故而從原來的
PAGE_READWRITE 變成 PAGE_EXECUTE_READWRITE,否則在2003下程序崩潰。
因為條件有限,沒有在 windows NT 4.0 上做測試,如果哪位可以幫忙測試一下,就十分
感謝啦. :)
7.加強了對 是否真正關閉 的檢查功能,不像以前隻是給出一個"模煳"的結果。並且更具
不同的結果以不同的顏色更加顯目的呈現給用戶。
unlocker EX 下載連接: https://download.csdn.net/source/433389 歡迎測試,請多多指出bug 。
最後更新:2017-04-02 00:06:29