记一次 mingw-w64 工具链的制作过程

早先在 Windows 下使用 MSYS + MinGW32 来制作 mips 工具链的过程让我记忆犹新:那就是在 Linux 里只要数分钟就能编译完成的 libgcc.a 在 Windows 里面需要半个小时以上才能完成,而且到最后使用 ar 命令将一堆 .o 文件合并为 .a 时,居然因为命令行超过 32KB 而导致命令执行失败。到最后是直接使用了 Linux 里面编译好的文件。

哎。。。这都是 Windows 过于复杂的进程创建机制导致的。。。

最近打算更新 MinGW 环境,发现 mingw-w64 比 mingw32 更优秀,因此就打算制作一个基于最新 gcc 的 min[......]

阅读全文

探究:AR/QCA 芯片通过 APB 访问内置交换机寄存器

从 AR9341 开始,AR/QCA 芯片的 datasheet 上都会列出一个寄存器的某一位的作用:

eth_cfg

其中提到:

设置 0x18070000 寄存器的第9位 (SW_APB_ACCESS) 为1,可以从 APB——也就是通过内存地址访问交换机的寄存器而不是通过MDIO来访问。

但是 datasheet 通篇没有提到设置后交换机的寄存器将被映射到的内存地址基址。

根据 AR/QCA 芯片的 APB 布局来看,旧的布局不会改变,要改变只会改变新的未使用的地址。

QCA9531 的 APB 布局:

apb

通过观察可以发现 APB 新增的寄存器映射地址都[......]

阅读全文

E420S 破解白名单续——解决无线开关无法激活的问题

最近又换了个AR9380网卡,这个网卡支持2.4GHz/5GHz双频。但是这个网卡安上后,每次计算机重启,BIOS的无线开关都会变成 Off,估计是之前破解的白名单限制没有破解干净吧。。每次开机先进 BIOS 开无线显然不爽,但我又不想再去改 BIOS 了,风险太大。看来必须换个办法了。

BIOS 无线开关

说来之前在X宝上买无线网卡时,曾看到有条评论说屏蔽网卡上的某个脚可以怎么怎么样的。于是我赶紧去找了一份 Mini PCI-E 的资料,果然看到了这样的说明:

Mini PCI-E Pin-20

第 20 脚果然是用来禁用无线的。根据资料,此脚不仅用于禁用无线,也被 BIOS 用来测试此无线网卡。屏蔽此脚就能防止无线被[......]

阅读全文

E420s BIOS 无线网卡白名单限制的分析与破解

获取信息:

原装无线网卡 PCI VID=10EC DID=8176 SUBSYS=819510EC。

我买的新无线网卡是 Atheros AR9287,其 PCI VID=168C DID=002E SUBSYS=30A4168C。

将其插入笔记本,然后开机,得到如下错误提示:

1802: Unauthorized network card is pluggedin - Power off and remove the miniPCI network card (168C/002E/168C/30A4).

System is halted

解包 BIOS:[......]

阅读全文

笔记本无线网卡更换记

我的笔记本是 ThinnkPad E420s,质量很好,被我拆机无数次,主板上有几个电容都被我摁碎了,仍然照常运行(还好是电容)。但是————一个很大的问题,就是无线网卡。

无线网卡是 Realtek RTL8188CE,150M。这个网卡在 Windows 下使用还没什么,但在 Linux 下,就极不稳定。因为驱动的关系,无线网每隔10几分钟就会断开,需要重连。这是让人非常不爽的。另外,因为路由是 300M 的,这个网卡连带宽都不能完全使用,简直是浪费。

于是乎,我就想到了更换无线网卡。由于之前研究路由器,积累了一些无线网卡芯片的信息,我决定选用和我的 300M 路由一个型号的无[......]

阅读全文

[From QQ空间]SDOJ 2.5 全面完工

  本来 SDOJ 2.5 早就可以完工了的,但考虑到 SDOJ 2.5 还有个后缀名叫做 eXtensible,即可扩展的,而网站本身的 ASP 代码写得特乱,因此我又对 ASP 代码进行了重写,并且把数据库换成了 MySQL。
  最后的改动主要是把 ASP 重写了,并改用模板处理方式,然后给评测器增加了一个错误追踪的功能(在网站里叫做“高级诊断”),能够在程序发生异常而崩溃时获取其对应的源代码位置,并且显示出当时程序的函数调用顺序(即函数调用栈)。[发个图]
  至此所有的代码部分都搞定了,并且有纯 32 位和纯 64 位两个版本,以后就只做些BUG修补之类的事情了。然后[......]

阅读全文

[From QQ空间]讯时网站管理系统 4.9 免费版 爆管理员密码SQL注入漏洞的分析及利用

昨天研究一个网站时,发现它使用了“讯时网站管理系统”,具体版本不知道,但他的news_more.asp存在SQL注入漏洞,但由于我只找得到Access数据库版的,因此利用价值不大。在此分享出来。

首先列出产生漏洞的代码(news_more.asp):

lm2 =trim(request("lm2"))
lm=trim(request("lm"))
if lm2="" then lm2=lm
if lm="" then lm=lm2
if lm2="" then lm2=0[......]

阅读全文

[From QQ空间]对 SDOJ 2.5 安全性的一点突发奇想

       SDOJ 2.5 eXtensible 的评测器会对编译后的程序进行 API 导入检查,以阻止调用可能危害系统安全的 API。但是呢,API 是可以动态加载的,而相关的 API在内存中的位置是固定的,这就产生了一个安全隐患,即可以利用 ShellCode 绕开 API 检查来攻击系统。
       于是乎,我们就必须另外想一个办法来解决此问题。由于每个进程的进程空间相互隔离,因此在一个进程空间里修改一个共用 DLL 的代码是不会影响到其他进程的。可能已经有人想到了,这就是 API 断点 + 调试跟踪技术!具体思路是:
        1、用调试方式运行被评测的程序
   [......]

阅读全文

[From QQ空间]SDOJ 2.5 eXtensible 正式上线

       历时一个月(注:断断续续)开发的 SDOJ 2.5 eXtensible 终于完成了!!!这也是我为九中开发的最后一个 Online Judge,以后估计就不会再有什么大规模的修改了。说来这个 SDOJ 的开发真是很漫长,从 2009年11月开始规划到现在已经快三年了,期间我开发了两个版本的 SDOJ:第一版最初还不叫 SDOJ,叫做 SDNOI,甚至还有个名字叫做 OJSSDOI(Online Judge System for ShuDe Olympiad in Informatics,还好没用)。这一版在 2010年7月搞定,版本 1.0;第二版在高二下期规划(在我的相册里有[......]

阅读全文