Category Archives: 开发

PHP小轮子计划

因为“PHP是世界上最好的语言”,所以大凡尝试过用原生PHP写网页的同学都会被要裸写一堆重复代码恶心到,不想恶心稍微偷懒一点的话又会被黑客分分钟sql注入之类的。

用框架是个好的选择,然而意味着学习成本提高、语言灵活性降低、程序执行效率降低。比如我显然没必要做去学习Zend然后给工作室写一个简单的学生管理系统这样大炮打蚊子的事。轻量级的框架固然也有,比如CI我就很喜欢,但也有着把简单问题复杂化以及某些功能用着不顺手的问题。有能力让框架比原生更简单的我觉得只有微软帝国,比如COM和.NET,设计上几乎找不到缺点。

于是萌生自己造个框架的想法。这个框架应该具有以下的特点:

框架应该极度简洁(强迫症[……]

Read more

ELAN触控板改手写板实验

原理:逆向了ETDDeviceInformation.exe中取内核原始PS2数据并计算出多点触摸坐标的部分,然后使用Microsoft.Ink墨迹库来做文字识别。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Threading;

namespace InkTest
{
class ETD
{
[DllImpor[……]

Read more

小工具:释放TrueCrypt加密卷占用空间

有不少好电影(大雾)想加密存放,但是心疼硬盘肿么办,加密盘没有填满的空间都浪费了肿么办!

TrueCrypt支持创建文件大小动态增长的加密盘,其原理是基于NTFS稀疏文件,建立时为0字节大小,有数据写入时才真正往硬盘写文件。

但是这样还不够。如果删除了加密盘中的文件,已经分配的空间并不会自动释放。VHD倒是支持先进行碎片整理,然后压缩以释放浪费的空间,但这样显然就和加密无缘了。

能想到的方法很简单,读取加密盘的空间分配信息,然后将加密盘文件对应的区域释放掉。查阅MSDN发现可以对NTFS稀疏文件使用FSCTL_SET_ZERO_DATA将指定区域设为稀疏并释放占用。

简单写了一段小程序,风格很[……]

Read more

newifi mini纯净版OpenWrt兼容内核固件,集成rt2860v2、mt76x2e驱动

基于原生OpenWrt Barrier Breaker 14.07,使用SDK && ImageBuilder构建,与官方14.07内核兼容,可直接安装官方源任意软件包(包括内核模块)。

尝试做这个事情主要是因为PandoraBox固件没有打包某些我需要的内核模块,因为都是3.10内核,有些ko是可以忽略警告强行安装的,但少部分ko因引用内核头文件config而无法二进制兼容(例如ipset,你懂的)。

友情提醒1:此固件不适合普通小白使用,需要对OpenWRT有一定的了解,具备初级的Linux折腾能力,至少要会用vim编辑network、wireless等配置文件,因为LuC[……]

Read more

315/433MHz智能遥控终端

项目地址:https://github.com/gmsj0001/rfunit

感谢2014年9月乌云首届安全峰会《智能家居,光环下的玄机》议题采用本项目方案制作演示DEMO。

====特点====

1、串口通信,纯字符界面命令行操作,上位机无需任何软件
2、标准2262协议,支持直接发送自定义键码
3、自适应不同震荡电阻和脉宽
4、32个预置存储
5、多任务并行设计,支持不限时间脉冲发送
6、极简主义设计,MCU仅8针脚,程序编译后仅2K字

====用法====

使用USB转TTL线连接上位机与本设备,使用任何串口调试工具(如minicom、putty)打开端口即可,波特率请设置为9600[……]

Read more

H3C Lite轻量级校园网认证Linux客户端(For SHNU)

2014年7月15日Update:
代码已完全重构,使用纯C编写。
项目主页:github.com/gmsj0001/h3clite

7月18日Update:
添加OpenWRT的UCI与LuCI控制界面(基于netifd,适用于AA及以上版本,不适用Backfire),如图。详情见github。

—————————————————————&#[……]

Read more

VB6 HTMLForm

关于使用IE技术借助HTML来实现DirectUI的实验博主断断续续做了四年,期间就是因为这个实验烧坏了脑子才转行考了音乐的研究生。

这次成果是一个自认为调整得还算比较好用的VB6窗体类,用以显示HTML对话框。基本效果如图所示:

能看出这是嵌入了一个IE么?当然,可以做得更好看一些,前端网页能做多漂亮这里就可以有多漂亮。

为什么使用VB6。第一,VB窗体本身实现了作为OLE容器的功能,如果用原生C++,除了需要自己处理窗口消息外,还需要非常熟悉COM、OLE自动化等知识,很显然我不想再烧坏一次脑子然后再去考个什么专业的研。

第二,VB支持弱类型的IDispatch后期绑定,可以非常方便地直[……]

Read more

CHDEMU V2 彩虹岛模拟器发布暨使用说明

(〇)愤怒的吐槽、部分开源计划

小鬼本来打算寒假回家再完善完善再加点诸如NPC购买什么的功能的,结果就有那么一个傻逼把服务端给公开了。所以首先让我们热烈祝贺我们热爱或曾经热爱的彩虹岛即将倒闭。

由于服务端的公开泄漏,小鬼五年半来从未停止努力的彩虹岛单机版或模拟器项目也就失去了其意义。现宣布CHDEMU项目于即日正式终结,作者未来将不对本项目进行任何的维护。源代码将以公共领域形式(Public Domain)部分开源,您可以自由地修改、编译、再发布本项目的代码用以学习、添加功能、修正BUG等目的。

如果您喜欢本项目的成果或认为本项目的源代码给您的学习带来很大帮助,您可以考虑向我捐助。

(一)项目[……]

Read more