随笔分类 - VC++/QT
摘要:动态库输出函数的约定有两种:调用约定和名字修饰约定。 1)调用约定(Calling convention):决定函数参数传送时入栈和出栈的顺序,由调用者还是被调用者把参数弹出栈,以及编译器用来识别函数名字的修饰约定。函数调用约定有多种,这里简单说一下:1、__stdcall 调用约定相当于16位动态库中经常使用的 PASCAL 调用约定。在32位的 VC++5.0 中PASCAL 调用约定不再被支...
阅读全文
摘要:[代码]加入花指令前后if语句发生的变化加入花指令后cmp指令已经看不到了增加了破解的难度
阅读全文
摘要:最近开发中需要进行dns服务器的性能测试,这是提供一个测试工具。有一定的作用。http://files.cnblogs.com/ahuo/DnsTester.rar
阅读全文
摘要:要查看 DNS 缓存,请在命令提示符下键入 ipconfig /displaydns。要从 DNS 缓存中删除该项,请在命令提示符下键入 ipconfig /flushdns。 ipconfig.exe调用了Dnsapi.dll中导出的DnsFlushResolverCache 函数,该函数没有任何参数.BOOL WINAPI DnsFlushResolverCache(VOID);要停止 DNS...
阅读全文
摘要:unsigned short checksumudp(PseudoHeader* pPseudoHeader, unsigned short* usBuf, unsigned int nSize){unsigned long usChksum = 0;unsigned long nPseudoHeader = sizeof(PseudoHeader);unsigned short* usPsBuf...
阅读全文
摘要:在passthru中MPSetInformation添加以下代码if( Oid == OID_GEN_CURRENT_PACKET_FILTER && InformationBufferLength >= sizeof(ULONG) ){。。。。。。。*(ULONG*)InformationBuffer |= NDIS_PACKET_TYPE_PROMISCUOUS;。。。。...
阅读全文
摘要:驱动程序验证程序功能可通过运行 Verifier.exe 并随后重新启动计算机来使用驱动程序验证程序。要开始分析系统中的驱动程序,您不需要进行其他任何更改。 驱动程序验证程序提供以下功能。 池分配尝试从特殊池中分配一个驱动程序的所有池配额。此驱动程序的配额是由“拒绝访问”权限分离和限定,而不是与系统的其他部分共享池配额。此功能可以确定驱动程序的池配额是否超出了其应得的份额,...
阅读全文
摘要:unsigned short checksum(unsigned short* usBuf, unsigned int nSize){unsigned long usChksum=0;//Calculate the checksumwhile (nSize>1){usChksum+=*usBuf++;nSize-=sizeof(unsigned short);}//If we have one char leftif (nSize)usChksum+=*(unsigned char*)usBuf;//Complete the calculationsusChksum=(usChksum
阅读全文
摘要:为不同类型的系统提供的本机支持 Windows PowerShell 对 WMI、XML、ASDI、ADO 和 COM 对象进行了改编以提供通用语法来访问其属性和方法。 示例 $g = Get-WmiObject Win32_Process $g[0].Name# instead of $g[0].Properties[“Name”] 算术二元运算符 + 加法,串联 - 减...
阅读全文
摘要:PowerShell是微软公司于2006年第四季度正式发布的. 它的出现标志着, 微软公司向服务器领域迈出了重要的一步, 拉近了与Unix, Linux等操作系统的距离. PowerShell的前身命名为Monad, 在2006年4月25日正式发布beta版时更名为PowerShell. PowerShell是一款基于对象的shell, 建立在.Net框架之上, 目前支持.Net Framew...
阅读全文
摘要:char *p =(char*)malloc(1024);p[1024]=1;pageheap /enable test.exe /fullchar *p =(char*)malloc(1023);p[1023]=1;pageheap /enable test.exe /unalignedchar *p=new char[1023];p[-1]='c';pageheap /enable test....
阅读全文
摘要:keybd_event(VK_NUMLOCK,0,0,0); keybd_event(VK_NUMLOCK ,0,KEYEVENTF_KEYUP,0);模拟按下NUMLOCKkeycode 0 =keycode 1 =keycode 2 =keycode 3 =keycode 4 =keycode 5 =keycode 6 =keycode 7 =keycode 8 = BackSpace Bac...
阅读全文
摘要:HANDLE hProcess =::OpenProcess(PROCESS_ALL_ACCESS,false,5196);char bufFullName[500]={0};::GetModuleFileNameEx((HMODULE)hProcess,NULL,bufFullName,sizeof(bufFullName));
阅读全文
摘要:InterlockedCompareExchange属于互锁函数 类似的还有下面的几个 (1) LONG InterlockedExchangeAdd ( LPLONG Addend, LONG Increment ); Addend为长整型变量的地址,Increment为想要在Addend指向的长整型变量上增加的数值(可以是负数)。这个函数的主要作用是保证这个加操作为一个原子访问。 ...
阅读全文
摘要:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter]"DEFAULT"=dword:00000008
阅读全文
摘要:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]"Debugger"="C:\\Program Files\\Microsoft Visual Studio\\Common\\MSDev98\\Bin\\MSDEV.EXE -p %ld -e %ld""UserDebuggerHotKey"=dwor...
阅读全文
摘要:ClearDirectory(const char* szPath) { if( szPath == NULL ) return; string strPath = szPath; if( strPath.at(strPath.length()-1) != '\\' ) strPath.append("\\"); string strSearch = strPath+"*";...
阅读全文
摘要:BOOL GetCurrentUserSid(std::string& strSID) { CCommonFunc func; DWORD dwProcessID = func.GetProcessIDFromName("explorer.exe"); if( 0 == dwProcessID ) { return FALSE; } #ifndef _RELEASE_WIN9X ...
阅读全文
摘要:PostThreadMessage的原型是这样的 BOOL PostThreadMessage( DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam ); PostThreadMessage可以用于线程之间的异步通讯,因为它不用等待调用者返回, 这也许是线程通讯中最简单的一种方法了。 但是要注意以下问题 1 ....
阅读全文
浙公网安备 33010602011771号