hello, ghost

0、前言 WordPress是老牌blog程序,本博客在本文章发表前是使用WordPress搭建的。WordPress用户群体非常广,因为其采用php作为编程语言。 0.0 php php程序对于非程序员用户来说,搭建非常友好,虚拟主机的出现大大降低了托管php网站的成本。在2014年之前,php这种部署方便,托管成本低的特点使其拥有大量的用户以及开发者(粉丝)的拥护。没错,我就是php的忠实粉丝(php就是世界上最好的语言!)。至今,我仍然认为php拥有较好的部署以及托管体验。但是说句实话,php对于开发者来说,体验确实不好。 0.1 WordPress WordPress很好,拥有大量的插件扩展,主题扩展以及广大的用户,部署简单。… Read more »

[转]《Windows核心编程》—Interlocked原子访问系列函数

所谓原子访问,指的是一个线程在访问某个资源的同时能够保证没有其他线程会在同一时刻访问同一资源。Interlocked系列函数提供了这样的操作。所有这些函数会以原子方式来操控一个值。 Interlocked函数的工作原理取决于代码运行的CPU平台,如果是x86系列CPU,那么Interlocked函数会在总线上维持一个硬件信号,这个信号会阻止其他CPU访问同一个内存地址。我们必须确保传给这些函数的变量地址是经过对齐的,否则这些函数可能会失败。C运行库提供了一个_aligned_malloc函数,我们可以使用这个函数来分配一块对齐过的内存: void * _aligned_malloc( size_t size, //要分配的字节数 size_t alignment //要对齐到的字节边界,传给alignment的值必须是2的整数幂次方 ); Interlocked函数的另一个需要注意的点是它们执行得很快。调用一次Interlocked函数通常只占用几个CPU周期(通常小于50),而且不需要在用户模式和内核模式之间进行切换(这个切换通常需要占用1000个CPU周期以上)。 1)… Read more »

PHP使用方正教务系统用户数据登录

背景:Java大作业组长说:我们的项目必须有亮点。 <?php error_reporting(E_ALL); ini_set('display_errors', '1'); function curl($url, $post = 0, $para = '', $cookie = '', &$header = '', $referer = '') { $ch = curl_init(); curl_… Read more »

串口过滤驱动分派函数

分派函数这里最最要注意的就是IRP_MJ_WRITE的处理,如果不处理IRP_MJ_WRITE,驱动在xp环境下关机会报BSOD:DRIVER_POWER_STATE_FAILURE NTSTATUS ccpDispatch(PDEVICE_OBJECT device, PIRP irp) { PIO_STACK_LOCATION irpsp = IoGetCurrentIrpStackLocation(irp); NTSTATUS status; ULONG i, j; /* 发送给设备 */ for (i… Read more »

未文档化函数 ZwQuerySection

本文章主要记录函数ZwQuerySection中第三个参数的结构体,这个结构体的数据组成是自己研究的,应该是目前网上最准确的。该函数用于获取内存页面的属性。 typedef struct _SECTION_IMAGE_INFORMATION { PVOID EntryPoint; ULONG StackZeroBits; ULONG StackReserved; ULONG StackCommit; ULONG ImageSubsystem; WORD SubSystemVersionLow; WORD SubSystemVersionHigh; WORD MajorSubsystemVersion; WORD MinorSubsystemVersion; ULONG ImageCharacteristics; ULONG ImageMachineType; ULONG… Read more »