#include
void
main()
}
拖入od中把shellcode轉換成機器碼(太麻煩了就不做了)
但是這串**尋找kernel32.dll的方法是直接mov ebp,[ecx + 0x08],根據偏移量直接找到。ldr->ininitializationmodulelist鍊錶在win7後把kernel32.dll移到了第四位,因此沒有辦法保證shellcode的通用性。
保險一點感覺可以選用逐字的比對的方法。再把dll的名稱也遍歷一遍。
mov edx,ecx
cmp byte ptr [edx]
,'k'
類似這種對比驗證。
同樣該種方法也不能避免hash碰撞,如果遍歷的函式多了,很有可能會發生這種情況,以後有時間再來優化這個shellcode吧。
附:ldr_data結構
typedef struct _peb_ldr_data
peb_ldr_data,*
ppeb_ldr_data
;// +0x24
export_directory結構:
typedef struct _image_export_directory
image_export_directory,*
pimage_export_directory
;
利用static來實現單例模式
class singleton private static singleton instance null publicsynchronizedstatic singleton getinstance return instance 就利用sington.getinstace就可以了,獲得的是同乙...
利用HandlerInteceptor來做請求驗證
小疑問 為什麼是interceptor的名字是用handler開頭的而不是httprequest?其實這是spring自己的 servlet的api裡是沒有interceptor的,功能相似的是filter,但是spring需要更強的控制能力,可以說是定製能力,filter只有interceptor...
利用CDialogBar來實現類似工具欄的浮動條
如果你想實現有工具條的浮動和定位功能,而且可以方便的擺放任何控制項上去,請繼續看這篇文章吧!那就使用cdialogbar就可以擁有和cdialog一樣的方便和快捷。步驟1 新增乙個cdialogbar派生類 在資源中新增乙個對話方塊,再採用類嚮導來新增類,找不到cdialogbar作為基類吧,可以先...