All Stories

关于OutputDebugString 的模拟

从这篇文章中可以知道,通过简单的几步设置,便可模拟OutputDebugString,可以用下面的代码描述:

使用OutputDebugString 调试窗口程序

学编程是从DOS下开始的,用了一定时间的TC2.0,使得养成了用printf 输出变量值进行调试的坏习惯。到了写窗口程序时,就遇到了些麻烦。 窗口程序没有方便的进行控制台输出的方法(其实是我不知道),于是,用了几年的用MessageBox 进行输出的调试手段,太麻烦了,因为MessageBox 会打断程序流程,还要人为手动让它继续运行,这是最让人恼火的。

LLYF Spy WIP && Others

今天看了一下Shotgun 那个端口进程关联的代码,那是在Win2000 下可以运行的,虽然得不到(System)8#进程的信息,但可以在普通账号下运行。到XP 下有点小问题,只是因为2000 和XP 对句柄类型表示的枚举值不同,2000下是0x1A,而XP是经0x1C,改了就可以像2000下运行了。

LLYF SocketCapture wip

这是一个用于拦截WinSock API 的程序,主要的目的并不是为了截获数据包,而是为了能从第三方角度方便地观察二进制程序调用WinSock API 的情况,最直接最原始一点的想法,是为了能比较方便地调试自己写的Windows 网络应用程序。

多系统共享Delphi

完成多系统共享BCB6之后,我开始尝试多系统共享Delphi 7 Studio Enterprise (简称D7)和Delphi 2005 Studio (简称D7)。

多系统共享BCB6

同一个硬盘上装了多系统,原来一直用Win2000 来写程序,在Win2000 下装了Borland C++ Builder 6,还有一些其它的编程工具,每次写完一个完整点的程序,在Win2000下运行正常后,还要跑到WinXP 下试试,于是想要有时候能在WinXP下也运行BCB6。不想再装一次BCB了,主要是因为光驱坏了,硬盘上也没有BCB6 的光盘镜像,所以就试试能否共享原来安装在Win2000 下的那份BCB6。经试验成功:

LLYFSpy wip && LLYF DebugCapture

今天给LLYFSpy加了进程信息查看功能,可以查看当前进程所有模块信息,内存信息,文件映射,所有进程列表,服务列表,以及设备驱动程序列表,其实就是把原来LLYF ProcessHelper 里的代码搬了过来。虽说没有写新的代码,但我想这样可以给我组织程序结构有些启发。

LLYF CaptureHelper && Dev-Cpp

前天花了一天时间用BCB 做了个MDI界面的抓图程序,当然功能非常简单,连DX的图都不能抓,但不知道怎么的,注册热键的时候有问题,郁闷。还有就是MDI 的我用TabControl 来切换页面,想方便一点,还会发现,在切换时,桌面会刷新。晕得很。

PE Information && LLYF Spy

昨天在看雪论坛精华中看到一段代码,看一了下,在VC2003 下可以正常编译,并dump 出PE 文件的节信息,导入导出函数表,嘿嘿,正好加到LLYF Spy 和LLYF ProcessHelper 中,只不过那个快速排序的算法好像有点问题,有时候程序会死掉。我还没看出来为什么一定要加这个排序过程。好在程序基本上用的都是C 标准库函数,可以没任何障碍地从VC 移植到BCB 下用。