QQIntl在Win8、Server2008等系统上卡死故障的HACKFIX

一个月前开始使用Server 2008 R2作为工作站系统,发现QQIntl经常出现卡死,根本无法使用,从1.5到2.1版本问题均存在。似乎在Win8.1上也有同样的问题。

卡死是线程死锁导致的,锁死发生在NTDLL中加载DLL文件的系统加载锁上,且锁死发生后占有锁的线程已经结束(而不是等待另一个锁这种互相等待的死锁),给排查带来了很大的难度。锁死发生后OD、VS不能挂入调试,否则OD等也会卡死。OD亦不能在启动QQ时就挂入,因为QQ本身有防调试机制。只能用WinDbg挂入。也就是说,根本无从下手,只能HackFix。

经过N天的实验,来回更换了五六个方案,最终采用了以下方案的Ha[……]

Read more

针对笔记本键盘Fn+字母键不能打出数字的终极解决思路与一种实现方案

前几天用Finale打谱需要用到小键盘的数字键,然后发现Fn键加uio等字母按不出来数字,实际出来的是NumLk没有打开情况下的方向键与PgUp和PgDn等。如果打开键盘的NumLk,按字母键可以打出数字,但我需要的是Fn直接能打出小键盘数字,这样在许多地方才方便,之前用过NEC、DELL的笔记本都能做到。

很容易可以想到,之所以会打出方向键是因为Windows认为NumLk在关着。开始并没觉得这个问题很严重,就去问了下谷哥,参考到这篇帖子:

http://acer.it168.com/thread-2136449-1-1.html

该帖子提到可以通过按外接键盘上的NumLk来激活Win[……]

Read more

解决MeGUI有时出现的StackHash崩溃问题

无聊想压一份Lord of The Rings,结果写了AVS结果在MeGUI中载入会导致崩溃,故障模块显示为StackHash_XXXX这样的字样,但是Windows中并没有这样一个模块。

Google得到的信息并不多,有这一篇文章引起了我的注意:

解决WIN7出现stackhash APPCRASH问题(故障模块名称: StackHash_af76)

虽然不确定是不是如文章所说的DEP问题,但还是按照文章的做法试着添到Windows的白名单中,结果提示此程序不支持关闭DEP保护类似这样的字样,无法添加进Windows的例外。

立即联想到PE文件头中有一个IMAGE_DLL_CHAR[……]

Read more

XDL Project

Xiaofei Development Library,简称XDL,中文名只可意会不可翻译。

开始这个项目的起因很简单,就是前不久的一天接到一个游戏上的活儿,工作很简单,就是让游戏不掉线,核心就几句代码就搞定,结果愣是折腾了一下午,原因是主程序端还是用VB6做,而这次要弄的是socket api,一个个地声明各种函数与结构我里个艹,最后把我都要写吐了,发誓再也不要用VB6写东西了!!!

那么又回到了原来那个问题,用C的话选择什么界面库。据说这个问题曾经引发过“血案”——本人坑爹的考研就是一年前拜此问题引发的项目把脑袋搞炸所赐。

如果需要个完善的界面框架,在Windows本机代码下其实是还[……]

Read more

【论文存档】Windows可执行程序内存动态代码化的研究与实现

Windows可执行程序内存动态代码化的研究与实现

摘要

目前在缓冲区溢出攻击、软件加壳、软件代码保护等领域普遍使用到内存动态代码技术,具体是指编写一段二进制机器码,该代码无需经过任何预处理即可在进程内存空间的任意地址直接执行。内存动态代码一般直接使用汇编语言编写,存在开发难度较大、代码不易维护、隐藏软件风险等问题。

本课题提出一种方法用于将Windows可执行文件直接转化为内存动态代码,并给出动态代码设计、动态代码装配、命令行接口主程序、图形界面外壳四个方面的具体实现。课题解决了PE文件的读取与分析、代码自身基址重定位、数据执行保护机制的绕过、数据与代码压缩与解压、系统函数[……]

Read more