- 博客(15)
- 资源 (21)
- 收藏
- 关注
原创 编写NDIS驱动,完全控制网卡收发报文
在windows上面,利用网卡做自定义报文的收发,Winpcap是唯一选择,目前自己编写驱动来实现相关功能的基本找不到。 Winpcap对于接收的报文只是复制,并不阻断报文向操作系统提交,因此还是影响了操作系统,导致操作系统时不时的发出一些报文来,而这些报文又可能会干扰我们的测试过程,为了突破这个限制,我重新实现了相关的驱动,做到了以下几个功能: 1 和Winpcap一样出色的报
2014-05-14 20:46:54
2987
5
原创 解压内存文件
当一段buffer为zip压缩内容时,如何解压缩呢,这里直接贴上代码bool Resources::UnZipMemFile(MemFile* memfile, const std::wstring& dest_folder, zip_progress_callback cb_func, void* pVoid){ zlib_filefunc_def zip_funcs;
2014-05-09 16:02:32
924
原创 强杀线程造成卡死的死锁问题
以前使用强杀线程函数的时候,一直用的挺舒服,最近终于碰到线程锁的问题了。示例代码如下:HANDLE g_thread_1 = NULL;HANDLE g_thread_2 = NULL;DWORD WINAPI ThreadFuncA(LPVOID lpThreadParameter){::EnterCriticalSection(&g_lock);
2013-12-26 14:55:41
1549
转载 判断文件是否PE文件,是否GUI程序
BOOL IsWindowsApp( CString strPathName ) { if ( ! PathFileExists( strPathName ) ) return FALSE; // 根据 PE 签名判断当前文件是否合法的 PE 文件 HANDLE hFile = CreateFile( strPathName, GE
2013-05-28 11:03:34
686
转载 降低权限启动某个进程
程序启动子进程时,子进程会自动使用当前进程的权限,包括ShellExecute启动的进程,都有这个问题。当自己制作安装包时,安装包进程,在win7上,当前进程是管理员权限,启动的程序如果也以管理员权限运行,可能有问题,需要降低权限。 此函数的代码可以做到这一点,将当前进程的权限降低之后,再启动其他的进程。 BOOL CreateLowIntegrityProcess(LPCTS
2013-05-27 13:58:01
1928
2
原创 插件式构架设计经验
1 只建议导出接口或者函数,使用标准类型变量,不建议导出复杂的类。解释:插件式编程就是最大化的解耦,模块全部放置于DLL中,并且每个DLL只导出标准的加载函数,由加载函数再次导出模块类接口。标准的加载函数都是C风格的。导出的类在修改的时候,不应该需要编译其他的模块。由于头文件的修改会引发其他模块的重新编译,因此建议不导出复杂的类,而采用比较简单的类,或者接口。在实现时,采用继承的方式
2013-05-17 11:14:12
985
原创 自己开发安装程序
自己开发安装程序目前各种各样的安装包程序,想要一个与众不同的,那当然是自己做一个安装包最好。但做一个完整的安装包产品是非常复杂的工程,好在我们只需要安装我们自己的产品,这样事情就比较简单了,一个安装包在安装的时候,无非做以下几件事情:1 显示一张图片,上面有按钮,有提示,有文字,等等信息。2 用户交互之后,开始拷贝文件到目标文件夹。3 完成注册表操作,快捷方式操作。4
2013-05-07 16:18:16
1379
1
原创 VS2010直接加载GDI+的编译不通过的问题
一个WIN32程序,直接包含GDI+头文件,编译不通过。解决方法很简单,加上下面这一句: #include #include using namespace Gdiplus;#pragma comment(lib, "gdiplus.lib")
2012-12-02 22:54:46
615
转载 (转)VC6.0如何启用内存泄漏检测机制? (转)
(转)VC6.0如何启用内存泄漏检测机制? (转)http://blog.163.com/caoying_0827/blog/static/42939128200801045014266/2008-01-10 16:50:14 VC++ IDE 的默认状态是没有启用内存泄漏检测机制的,也就是说即使某段代码有内存泄漏,调试会话的 Output 窗口的 D
2012-12-02 22:53:08
619
原创 插件式构架编程综述
1. 概述在模块化越来越规范的现代软件开发方法中,插件式编程是一个绕不开的话题,它涉及范围太广,很多编程人员在入职的初级阶段,一般都是维护一个小功能,或者维护一堆小功能,或者扩充一堆功能,但基本上不涉及到大的框架搭建,但作为提升之路,自己上了一个台阶之后,能够负责一个项目的整体搭建了,或者从头开始一个项目,就必须考虑构架了。插件式编程属于构架范围,我在这方面研究了几年,也实现了几个项目
2012-11-10 16:24:25
2993
原创 STL使用误区
STL用的人很多,可是很多新手常常误用,造成代码效率的低下。 1 在容器里面直接塞入类对象。 这是最常见的误用,很多人都省事,直接把类对象放入容器,为了能够放入容器,还要给类实现 operator = 和 拷贝构造函数。这个功能,我觉得是C++看似很看,却很误导人的一个用法。从容器里面取对象,加入对象,都会造成频繁的对象拷贝过程。在Java和C#语言里面,为了从根本上杜绝这种现
2012-09-16 12:38:33
533
原创 winpcap使用经验
Linux系统上,可以使用raw socket实现IP层的自定义,在windows上面,从windowsXP的SP2开始,就禁止假冒IP发送报文了,要实现自定义的报文发送,自写驱动是一个方法,另外一个简易方法就是使用winpcap库了。 winpcap是一套开源的库,在linux上有对应的库(libpcap),因此用winpcap实现的代码是可以做到跨平台移植的。 winpcap的
2012-09-16 12:24:02
1878
原创 软件启动闪屏的原理与实现
想给公司的软件加一个启动闪屏,看看有现成的源代码没有,结果上网看了一下,没有合适的,有人做了闪屏,却是阻塞式的,也就是说什么都不干,让主程序Sleep,光闪屏给用户看,这哪是闪屏嘛,连闪屏的基本作用都没弄明白,就开始发文章号称实现了多帅的效果,服了。之后自己写了一个,这里共享一下闪屏的思路。闪屏的本意,是因为软件启动过程比较慢,动态显示一些信息给用户,防止用户过于傻等而不爽。以前VC6时代可以
2012-09-08 13:40:18
2252
二维码资料与多套源代码集合
2014-06-04
WinLaunch - 桌面瞬间iPad化
2012-11-15
SublimeText 代码编辑器
2012-11-15
Input Director 用一套键盘鼠标同时控制多台电脑的免费实用工具
2012-11-14
虚拟机软件 virtualbox 3.16 zip1
2010-04-20
搜狗拼音输入法 5.0 正式版
2010-04-20
makefile 模板知识
2010-04-20
跨平台的免费 xml C++ 解析类
2008-11-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人