11.1
1.PostMessage加入消息队列是FIFO
解决了PostMessage发送删除Item问题
2.modal窗体不会阻塞程序的消息循环,wndproc是单线程
解决了可能一边AddItem,一边DeleteItem的问题
3.tagLVITEMA
tagLVITEMA里的lParam可以用来绑定一些数据。pcshare就是用这个关联
11.5
1.debug使用
2.wcsstr和_wcsicmp在hook NtQueryDirectoryFile不同的效果
11.6
http://www.codeproject.com/Articles/325603/Injection-into-a-Process-Using-KnownDlls
11.9
1.OnSize中。要让控件随窗口大小改变
if(m_Edit.GetSafeHwnd()) <<<-----------------
{
GetClientRect(&stClientRect);
stCtrlRect.left = 0;
stCtrlRect.top = 0;
stCtrlRect.bottom = stClientRect.bottom;
stClientRect.right = stClientRect.right;
m_Edit.MoveWindow(&stClientRect);
}
必须调用GetSafeHwnd()!!!!
11.13
1.不方便发了
2.HOOK函数
HOOK函数要对传入参数进行判断
3.GetProcess
CreateRemoteThread在VISTA以后版本,ASLR问题
4.导出函数要A,W,压栈方式
5.WSAEventSelect会将SOCKET置为非阻塞
11.14
1。在同一线程内,可以无限制的EnterCriticalSection。
EnterCriticalSection。只对不同线程进行锁操作。
SRWLock就不可以了
2.Cpl文件,要导出CplApplet和_DllMainCRTStartup(x,x,x)
11.22
1.
SPI
LSP
分层协议,基础协议、协议链
2.
mask and ipaddr才是IP地址
11.23
在驱动层,依传输类型的不同,输入缓冲区的位置亦不同,见下表。
传输类型 位置
METHOD_IN_DIRECT irp->AssociatedIrp.SystemBuffer
METHOD_OUT_DIRECT irp->AssociatedIrp.SystemBuffer
METHOD_BUFFERED irp->AssociatedIrp.SystemBuffer
METHOD_NEITHER irpStack->Parameters.DeviceIoControl.Type3InputBuffer
在驱动层,依传输类型的不同,输出缓冲区的位置亦不同,见下表。
传输类型 位置
METHOD_IN_DIRECT irp->MdlAddress
METHOD_OUT_DIRECT irp->MdlAddress
METHOD_BUFFERED irp->AssociatedIrp.SystemBuffer
METHOD_NEITHER irp->UserBuffer