随笔分类 - Windows
摘要:一、Socket简介Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换。几个定义:(1)IP地址:即依照TCP/IP协议分配给本地主机的网络地址,两个进程要通讯,任一进程首先要知道通讯对方的位置,即对方的IP。(2)端口号:用来辨别本地通讯进...
阅读全文
摘要:以ReadFile为例ntdll.dll导出了ZwReadFile和NtReadFile在用户态不管你调用ZwReadFile还是NtReadFile都是一样的因为他们是同一个函数的两个不同名称而已....而且他们最终都会调用到ntoskrnl中的NtReadFile中去在内核态ntoskrnl.e...
阅读全文
摘要:[oledb]; Everything after this line is an OLE DB initstringProvider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=te...
阅读全文
摘要:1. dg 0 100查看gdt所指向的全局描述符表2. !process 0 0查看所有进程信息,其中Cid为PID,DirBase为CR3,Image为进程名。!process查看当前进程信息3. uf nt!ZwCreateFileu查看反汇编,uf查看函数完整的反汇编4. x nt!*cre...
阅读全文
摘要:Ring3测试程序:http://blog.csdn.net/zj510/article/details/82163211.readfile和writefile可以实现应用程序与驱动程序通信,另外一个Win32 API 是DeviceIoControl。应用程序自定义一中IO控制码,然后调用Devi...
阅读全文
摘要:1. DebugView,输出调试信息(不能F5,而是要Ctrl + F5,F5输出到VC的debug窗口) 1 void DbgPrint(char* pFMT, ...) 2 { 3 char szBuf[1024] = {0}; 4 va_list lst; 5 va_...
阅读全文
摘要:什么是同步和异步 I/O ?同步I/O,操作的发起者必须等到接收者处理完I/O异步I/O,操作的发起者无须等到接收者处理完I/O阻塞I/O,操作的接收者必须等到发送者发送I/O非阻塞I/O,操作的接收者无须等到发送者发送I/O注:在下文中,会成对使用 同步/阻塞(Blocking),异步/非阻塞(N...
阅读全文
摘要:原文地址:http://j00ru.vexillium.org/csrss_list/api_list.html http://j00ru.vexillium.org/csrss_list/api_table.html博客园显示不完整,图片下载:http://files.cnblogs.com/fi...
阅读全文
摘要:NTSTATUS codesThese are from the Windows Server 2008 DDK. Download the script that generated this page here.Original script by Jon Larimer.I have trie...
阅读全文
摘要:1. 定义页属性数组 1 // Protection flags for memory pages (Executable, Readable, Writeable) 2 static int ProtectionFlags[2][2][2] = { 3 { 4 ...
阅读全文
摘要:以挂起状态创建一个进程invoke CreateProcess, NULL, szPath, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, addr @si, addr @pi在该进程中创建一个远程线程invoke CreateRemoteThre...
阅读全文
摘要:不退出: 1 #include 2 #include 3 4 5 unsigned __stdcall _threadfun(void* pParam) 6 { 7 while(TRUE) 8 { 9 printf("hello world");10 ...
阅读全文
摘要:1 void CTHREADDLG::OnRclickList(NMHDR* pNMHDR, LRESULT* pResult) 2 { 3 //获取鼠标坐标 4 CPoint ptCurSel(0,0); 5 GetCursorPos(&ptCurSel); 6 ...
阅读全文
摘要:对一个函数调用完成后,如果我们要判断其成功或者失败,不能简单地把返回值与S_OK或S_FALSE进行比较,因为函数成功执行之后,可能有不同的成功返回值,函数执行失败之后,也会有不同的失败返回值,所以,我们应该使用SUCCEEDED或FAILED宏来对HRESULT类型的结果值作出成功或失败的判断。例...
阅读全文
摘要:内存管理的原则为:谁申请,谁释放。但是COM 从方便性和效率出发,采用的内存管理方式为:函数内部根据实际需要动态申请内存,而调用者负责释放。COM中提供了三种内存分配释放函数:BSTRIMalloc接口 COM库申请SysAllocString()Alloc()CoTaskMemAlloc() 重新...
阅读全文
摘要:1. DEF文件1 EXPORTS2 3 g_nTest DATA ;导出全局变量4 5 GetGlobalVar ;导出函数2. 调用1 extern int g_nTest; //声明2 3 int main(int argc, char *argv[])4 {5 ...
阅读全文
摘要:读C++对象模型总结1. 类对象内存结构:数据成员按声明顺序排列 1 class B { 2 public: 3 int bm1; 4 protected: 5 int bm2; 6 private: 7 int bm3; 8 static int bsm; 9 voi...
阅读全文
摘要:1 char pSubKey[MAX_PATH] = {0}; 2 sprintf(pSubKey, 3 "CLSID\\{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}\\InprocServer32", 4...
阅读全文

浙公网安备 33010602011771号