随笔分类 - Win32&MFC
windows应用级开发
摘要:★说明:复制表(只复制结构,源表名:a 新表名:b) SQL: select * into b from a where 11 ★说明:拷贝表(拷贝数据,源表名:a 目标表名:b) SQL: insert into b(a, b, c) select d,e,f from b; ★说明:显示文章、提交人和最后回复时间 SQL: select a.title,a.usern...
阅读全文
摘要:有兴在这次x'con交流会上认识白远方兄弟,这是他很早前写的文章,提到了很多东西,保存一下。 作者:白远方 (ID: baiyuanfan, baiyuanfan@163.com, baiyuanfan@hotmail.com)June 18, 2007关键字:rootkit,反主动防御,网络监控,ring0,mcafee8.5i,KIS6,ZoneAlarm Pro,实用级产品测试目录:反主动防...
阅读全文
摘要:#include #include #include #include /*push dwTimecall Sleep mov eax, [esp + 4]push eaxcall DeleteFileAret 4*/ #pragma pack(push, 1)typedef struct _tagDeleteStruct { BYTE byPush; DWORD dwT...
阅读全文
摘要:点这里下载示例代码 实现文件自删除不是一个特别新的话题了,不过貌似一直没有特别完美的解决方式。从早先Gary Nebbett的堆栈溢出版本到后来的批处理、临时文件等方式,无不存在着各样瑕疵:如堆栈溢出不支持XP,临时文件(批处理)不够优雅等等。 当然,还有用驱动发IRP的方式,不过这只是一个自删除,杀鸡焉用牛刀?于是这个方案在我这儿亦不讨论。 李马讨论的,只是一个2005年的老调重提:远线程注入。...
阅读全文
摘要:卡巴主动防御中检测隐藏进程的方法: Hook掉系统的SwapContext,这种方法是在2003年被提出的;这个函数被KiSwapThread调用,负责线程调度;下面这部分代码就是卡巴Detour SwapContext的汇编代码的分析(后面附上对应的c代码): (PS:突破这种方式来隐藏进程的方法也在随后就出来了,自己实现线程调度,详见:http://hi-tech.nsys.by/3...
阅读全文
摘要:去年年底帮别人做一个项目,了解了一下TCPMP,觉得这个软件的结构写得很好就做了些记录,今天偶然翻出来看看觉得可能对正在研究这个软件的人有点帮助就贴出来。如果转载请注明出处,谢谢。 TCPMP是一个功能强大开放式的开源多媒体播放器,播放器主要由核心框架模块(common工程)和解码器分离器插件组成。TCPMP的插件非常多,、libmad我们联合几个最常用的插件(ffmpeg、splitter...
阅读全文
摘要:作者: James Hobart 翻译: spark.bbs@bbs.nankai.edu.cn 日期: 2001-3-23 转自:http://nku.nankai.edu.cn/cim/students/doctor/spark/articles/PrinciplesOfGUIDesign.htm 译序:我在网上查找中文的 GUI 设计规范,居然没有详细一点的,一篇泛泛而谈的...
阅读全文
摘要:定时机制是指在程序运行当中间隔特定的时间引发指定的事件。在DOS下编程时,主要依靠时钟中断Int 8及其调用中断 Int 1cH来实现,应用程序通过修改这些系统中断来达到实现定时触发。而在Windows下,若想象在DOS下肆无忌惮的修改系统是不现实的,那么应当如何实现定时机制呢?下面在下就在学习当中的几点体会谈谈这个问题,提出几种方案供大家参考。 第一种方案是大家熟悉的截获定时消息的途径。在Win...
阅读全文
摘要:将STLPort解压出来。为STLPort注册环境变量。 在VC安装目录里搜索“vcvars32.bat”文件出来。找到INCLUDE这个键,将$(STLPort)\stlport注册进去。然后在机器中的环境变量中注册INCLUDE这个变量,将此目录也注册好。 开始编译,进入$(STLPort)\src目录。copy vc71.mak makefile这一步就是将一个vc71版本的mak做为mak...
阅读全文
摘要:前言: 错误处理和socket释放, 是IOCP编程中的一大难点. 本文试图就IOCP设计中经常遇到的这个难题展开论述并寻找其解决方案, 事实上, 文中所述的解决方式不仅仅适用于IOCP, 它同样适用于EPOLL等多种服务器编程的网络模型中, 前提是: 领会这种处理方式的实质.正文:在使用IOCP开发时, 大家经常遇到的一个难题是与socket相关的缓冲区释放不当带来的错误, 这种错误通常是由于...
阅读全文
摘要:在WinSock上使用IOCP 本文章假设你已经理解WindowsNT的I/O模型以及I/O完成端口(IOCP),并且比较熟悉将要用到的API,如果你打算学习IOCP,请参考Jeffery Richter的Advanced Windows(第三版),第15章I/O设备,里面有极好的关于完成端口的讨论以及对即将使用API的说明。 IOCP提供了一个用于开发高效率和易扩展程序的模型。Winsock2提...
阅读全文
摘要:当然TCP方式的模型还有事件选择模型。就是把所有的网络事件和我们的一个程序里定义的事件梆定。这个有它的好处,可能可以让我们更好的写一个线程来管理接收与发送。现在来讲一下一个完成端口模型。 完成端口 一个完成端口其实就是一个通知队列,由操作系统把已经完成的重叠I/O请求的通知 放入其中。当某项I/O操作一旦完成,某个可以对该操作结果进行处理的工作者线程 就会收到一则通知。而套接字在被...
阅读全文
摘要:TinyXML 指南 这是什么? 这份指南有一些关于如何有效地使用TinyXML的技巧和建议。 我也会尝试讲一些诸如怎样使字符串与整型数相互转化的C++技巧。这与TinyXML本身没什么关系,但它也许会对你的项目有所帮助,所以我还是把它加进来了。 如果你不知道基本的C++概念,那么这份指南就没什么用了。同样的,如果你不知道什么是DOM,那先从其它地方找来看看吧。 在我们开始之前 一些将会...
阅读全文
摘要:译注:本文是TinyXML 2.5.2版本Document的中文文档,经原作者Lee Thomason同意由rise翻译,如有误译或者错漏,欢迎指正。
版权:版权归原作者所有,翻译文档版权归本人rise所有,转载请注明出处。
原文:http://www.grinninglizard.com/tinyxmldocs/index.html
阅读全文
摘要:开发软件时经常需要把一些东西做成可配置的,于是就需要用到配置文件,以前多是用ini文件,然后自己写个类来解析。现在有了XML,许多应用软件就喜欢把配置文件做成XML格式。但是如果我们的程序本身很小,为了读取个配置文件却去用Xerces XML之类的库,恐怕会得不偿失。那么用TinyXML吧,它很小,只有六个文件,加到项目中就可以开始我们的配置文件之旅了。 前些时候我恰好就用TinyXML写了一个比...
阅读全文
摘要:点这里下载本文的配套代码 引子 2006年,中国互联网上的斗争硝烟弥漫。这时的战场上,先前颇为流行的窗口挂钩、API挂钩、进程注入等技术已然成为昨日黄花,大有逐渐淡出之势;取而代之的,则是更狠毒、更为赤裸裸的词汇:驱动、隐藏进程、Rootkit…… 前不久,我不经意翻出自己2005年9月写下的一篇文章《DLL的远程注入技术》,在下面看到了一位名叫L4bm0s的网友说这种技术已经过时了。虽然我也曾想...
阅读全文
摘要:不知道诸位看官是否有过这样的经历:在不经意之间发现一个DLL文件,它里边有不少有趣的导出函数——但是由于你不知道如何调用这些函数,所以只能大发感慨而又无能为力焉。固然有些知名的DLL可以直接通过搜索引擎来找到它的使用方式(比如本文中的例子ipsearcher.dll),不过我们诚然不能希望自己总能交到这样的好运。所以在本文中,李马希望通过自己文理不甚通达的讲解能够给大家以授人以渔的效果。 先决条件...
阅读全文
摘要:DLL的远程注入技术是目前Win32病毒广泛使用的一种技术。使用这种技术的病毒体通常位于一个DLL中,在系统启动的时候,一个EXE程序会将这个DLL加载至某些系统进程(如Explorer.exe)中运行。这样一来,普通的进程管理器就很难发现这种病毒了,而且即使发现了也很难清除,因为只要病毒寄生的进程不终止运行,那么这个DLL就不会在内存中卸载,用户也就无法在资源管理器中删除这个DLL文件,真可谓...
阅读全文
摘要:Windows SDK开发包中并未提供所有的API函数,在本文中我将讨论如何调用这种未公开的API函数。 事实上所有未公开的API函数都和其它的API函数一样包含在系统的动态链接库中,调用这些函数的方法是取得它们的指针,然后通过指针来进行操作。而取得函数地址,是通过GetProcAddress这个API函数实现的: FARPROC WINAPI GetProcAddress( HMODUL...
阅读全文
摘要:首先请大家看这么一个简单的小程序: #include void main(){int i, b[10];for ( i = 0; i <= 10; i++ ) { b[i] = 0; }} 请问这个程序是否有错?A.正常 B.越界 C.死循环 正确答案是C,相信选A或选B的朋友一定会很纳闷。事实上我也是如此,单单从程序的表面上看,按定义这应该是个越界,因为当循环进行到i...
阅读全文