Aug 30

之前类似:

user_pref("dom.ipc.plugins.enabled", false);

的方法已经失效。

新方法:

1. about:config 新加个布尔值(boolean):

dom.ipc.plugins.unloadASAP 设成 true

有插件的时候有进程,没插件就没进程,14.0.1上正常;

2. 完全禁用:

在 Vista ~ Windows 8 系统,我的电脑,属性中,添加“环境变量”

MOZ_DISABLE_OOP_PLUGIN 值设为 YES

这样有没有插件都不会启动 plugin-container.exe。


Aug 12

iptables -N dnsfilter -t mangle
iptables -t mangle -I dnsfilter -p udp -m udp -m u32 --u32 "0&0x0F000000=0x05000000 && 22&0xFFFF@16=0x042442b2,0x0807c62d,0x253d369e,0x2e52ae44,0x3b1803ad,0x402158a1,0x4021632f,0x4042a3fb,0x4168cafc,0x41a0db71" -j DROP
iptables -t mangle -I dnsfilter -p udp -m udp -m u32 --u32 "0&0x0F000000=0x05000000 && 22&0xFFFF@16=0x422dfced,0x480ecd63,0x480ecd68,0x4e10310f,0x5d2e0859,0x80797e8b,0x9f6a794b,0xa9840d67,0xc043c606,0xca6a0102" -j DROP
iptables -t mangle -I dnsfilter -p udp -m udp -m u32 --u32 "0&0x0F000000=0x05000000 && 22&0xFFFF@16=0xcab50755,0xcb620741,0xcba1e6ab,0xcf0c5862,0xd0381f2b,0xd1244921,0xd1913632,0xd1dc1eae,0xd35e4293,0xd5a9fb23" -j DROP
iptables -t mangle -I dnsfilter -p udp -m udp -m u32 --u32 "0&0x0F000000=0x05000000 && 22&0xFFFF@16=0xd8ddbcb6,0xd8eab30d,0xf3b9bb27,0x4a7d7f66,0x4a7d9b66,0x4a7d2771,0x4a7d2766,0xd155e58a" -j DROP
iptables -t mangle -I PREROUTING -m udp -p udp --sport 53 -j dnsfilter

适用于基于 Linux 系统的路由器,Tomato,DD-WRT,OpenWRT 等,把脚本丢到路由器启动脚本里面即可。 :evil:


Aug 09

家中或者公司使用了 Tomato 或者 DD-WRT 固件路由器的同学可能想分享他们的“私密” Hosts 文件,但是又不方便拷贝到每台机器,那么把这个 Hosts 文件内容放到路由器上是最方便的,不过 DNSMasq 的 Hosts 文件与 Windows 的 Hosts 文件格式不同,需要做一个转换,于是有了下面这个 HTML 文件,其实就是一个简单的 Javascript 转换。复制所有内容,存为任意命名的 HTML 文件,用浏览器打开,然后点击转换按钮,把转换后的数据贴到路由器 DNS 设置界面就行了。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Hosts2DNSMasq</title>
<script type="text/javascript">
//类似 PHP 中的 trim
    function trim(str) {
        var str = str.replace(/^\s\s*/, ''),
            ws = /\s/,
            i = str.length;
        while (ws.test(str.charAt(--i)));
        return str.slice(0, i + 1);
    }
//转换 Hosts 文件格式到 DNSMasq 的格式
    function htol(el) {
        var i;
        var localz = new Array();
        var hosts = document.getElementById(el).value;
        var localzs='';
        hostdomain = hosts.split("\n");
        for (i=0;i<hostdomain.length;i++) {
            if (trim(hostdomain[i]) != '') {
                localz[i] = hostdomain[i].split("\t");
                if (localz[i][1] != undefined && localz[i][0].indexOf("#") == -1) {
                    localzs += 'address=/'+localz[i][1]+'/'+localz[i][0]+'\n';
                } else {
                    localzs += hostdomain[i]+'\n';
                }
            }
        }
        document.getElementById(el).value = localzs;
    }
</script>
</head>
<body>
    <div style="width:1024px; margin:0 auto;">
            <h2>HOSTS</h2>
            <div style="margin: 5px auto; display: block;">
            <button type="button" id="hosttolocal" onclick="htol('hostsMap');">ConventerToDNSMASQ</button>
            </div>
            <textarea id="hostsMap" onclick="this.focus();this.select()" style="width:98%;height:550px;margin:0;padding:3px;display:block;"></textarea>
    </div>
</body>
</html>

例如以下的 Hosts 数据:


203.208.45.200	base0.googlehosted.com
203.208.45.200	base1.googlehosted.com
203.208.45.200	base2.googlehosted.com
203.208.45.200	base3.googlehosted.com
203.208.45.200	base4.googlehosted.com
203.208.45.200	base5.googlehosted.com
203.208.45.200	bks0.books.google.com
203.208.45.200	bks1.books.google.com

会被转换成:


address=/base0.googlehosted.com/203.208.45.200
address=/base1.googlehosted.com/203.208.45.200
address=/base2.googlehosted.com/203.208.45.200
address=/base3.googlehosted.com/203.208.45.200
address=/base4.googlehosted.com/203.208.45.200
address=/base5.googlehosted.com/203.208.45.200
address=/bks0.books.google.com/203.208.45.200
address=/bks1.books.google.com/203.208.45.200

注意,只是做了简单的格式转换,没有利用 DNSMasq 的(泛域名)特性优化。 :shock:


Jul 23

Samba 支持的 NTLM 版本低,nt6 系统要求支持 NTLMv2 。

运行里输入secpol.msc,进入-本地策略-安全选项里,选中:网络安全:LAN管理器身份验证级别,选择:发送LM和NTLM,如果已协商,使用ntlmv2回话,立即生效。


Dec 10

NVIDIA 的假卡大家多少听说过,以前也就是改改驱动的 INF 文件,而无法修改有效 ID,这样的假卡只能安装 JS 自己调整的驱动,没有办法安装公版的驱动。这样的假卡比较低档次,容易被认出来。

前段时间有位朋友发给我一个 BIOS,是基于 GT220 的,但是 BIOS 的信息以及设备 ID 都已经被修改为 GT430 的了。开始我并没在意,因为在我的认知中, GT220 与 GT430 根本就不是同一个系列的 GPU,它们的设备 ID 不属于同一个段区,我那时认为是不可以这样修改的。但那位朋友确认了这个 BIOS 刷到 GT220 里面以后,操作系统直接将卡识别为 GT430,GPUZ 的识别已经紊乱。于是我深入地分析了这个 BIOS,最终发现了其中的修改方法。

这个方法不是一般的技术人员可以知晓的,如果我不是有 N 年的研究显卡的经验,我也不知道可以这样修改。放出这种修改方法的肯定不是一般的 JS。一般的技术人员没可能知道这种修改技术,因为实在是太专业。这种方法修改出来的设备 ID,是有效 ID,在系统 BIOS 初始化阶段就已经被接纳,所以任意操作系统一会一并接纳这样的假 ID。这样的修改方法,不受 GPU 系列归属的影响,你可以将一块 6600GT 的有效 ID 修改为 GTX580 的有效 ID,修改完以后直接被驱动所接受!

这里顺便鄙视 NVIDIA,这种只能留存在开发实验室中的方法居然泄漏出来!国外我不了解,在国内,必定被 JS 所利用至极致!就因为这样的疏忽,NVIDIA 的所有设备 ID 都不再可信了!

然后,一位造假者在网上发了段视频,将一块 8600GT 显卡,仅仅是刷了这种修改版的 BIOS 以后,直接改成了 GT430。他发了视频以后,直接跑我面前炫耀。大家搜搜“8600GT 改 GT430全过程”,看看搜索到的内容。太嚣张了,也太小看我们这些第三方独立技术人员了!估计他们没想到我居然这么快就了解了他们的修改方法。

我决定升级我自己的 GPUinfo 显卡识别工具,应对假卡的泛滥。GPUinfo 之前一直停留在 beta5 的阶段。鉴于 NV 的设备ID 不能用了,我退而使用更底层的硬件信息来识别显卡,正确确认 GPU 真正归属的系列。只有这样,才能完全放弃对设备ID 的依赖。

有点硬件知识的朋友,应该知道 PCI 设备的设备 ID 是什么样的概念,处于什么样的地位。放弃这个 ID 来识别 PCI 设备,将会是如何困难。

所以请了解我的尴尬,我需要搜集 GPU 的硬件信息,也就是 GPU 的 ASIC ID 信息。我编制了一个小程序,用来检测您的显示卡的 PCI ID 以及一段硬件信息,我需要这样的信息来完善 GPUinfo 工具的 GPU 归属数据库。目前我也只有这个方法来应对 NVIDIA 假 ID 的现状了。

如果您有一块 NV 的卡,恳请您执行一下我的程序(需要管理员权限来执行),并把呈现的信息拷贝给我。帮助我,说不定哪时候就会帮到您自己。

Get NVIDIA DEVID

这个工具和我写的 HD6950 的开核工具用的是一样的自带驱动,所以第一次运行的时候,杀软可能会有提示。

--rui@newbietech.net(mmx0317@yahoo.com.cn)

范例:Quadro 600(原装 $160.99)修改为 Quadro 6000(原装 $3937.07) 的有效 ID,系统直接识别:

fake q6000

参考文章:


[18/59]  «< 13 14 15 16 17 18 19 20 21 22 > ... »