作者归档:老沙

QQGAME 2009 多开 逆向 源码 讲解

下面来说说具体的,准备工具ollyice
下载地址:http://www.kumouse.com/article.asp?id=46 首先来讲一下常用的防多开的方法: 方法1: 查找窗口法,使用FindWindowA(W)或GetWindowTextA(W)
方法2: 使用互斥对象,用到CreateMutexA(W)
方法3: 使用共享区块 QQ使用的是方法2,具体程序要具体分析(由于我水平有限讲解不了)如果分析不出来可以上google查查,网上有很多牛人的.
先打开一个QQ游戏的窗口然后(原因看下边),我们用ollyice打开qqgame.exe我的文件版本是2.3.103.9大小164808字节,游戏版本QQGAME2009 beta3 sp3 打开程序后,程序会停在这里

00402150 >/$ 55 push ebp ; (initial cpu selection)
00402151 |. 8BEC mov ebp, esp
00402153 |. 6A FF push -1
00402155 |. 68 38314000 push 00403138
0040215A |. 68 D6224000 push <jmp.&MSVCRT._except_handler3> ; SE 处理程序安装
0040215F |. 64:A1 0000000>mov eax, dword ptr fs:[0]
00402165 |. 50 push eax
00402166 |. 64:8925 00000>mov dword ptr fs:[0], esp
00402150这行是程序的开始处,我们在下边的command处输入"bp CreateMutexA"这句的意思是在CreateMutexA这个函数下断,也就是方法2中使用到的函数.
然后我们按F9运行这个程序程序会停在
7C80E9CF > 8BFF mov edi, edi
7C80E9D1 55 push ebp
7C80E9D2 8BEC mov ebp, esp
7C80E9D4 51 push ecx
7C80E9D5 51 push ecx
7C80E9D6 56 push esi
7C80E9D7 33F6 xor esi, esi
7C80E9D9 3975 10 cmp dword ptr [ebp+10], esi
7C80E9DC 74 31 je short 7C80EA0F
7C80E9CF就是CreateMutexA的第一行,我们这时按Alt+F9返回用户代码来到
746824B0 FF75 08 push dword ptr [ebp+8]
746824B3 FF15 88116874 call dword ptr [74681188] ; kernel32.CreateMutexA
746824B9 33C9 xor ecx, ecx
746824BB 85C0 test eax, eax
746824BD 0F95C1 setne cl
746824C0 8906 mov dword ptr [esi], eax
746824C2 5E pop esi
746824C3 8BC1 mov eax, ecx
746824C5 5D pop ebp
746824C6 C2 0800 retn 8
746824B9这行,看看上一行746824B3后边的注解写着什么,kernel32.CreateMutexA也就是刚刚调用了最关键的函数,但是这个函数在程序里调用了很多次,我们怎么知道哪一次的才是不让多开的代码呢?答案很简单,就是试,试也要靠方法的,对于QQ游戏来说,我们开打开一个QQ游戏的登陆窗口,不用登陆,然后再打开第二个,发现什么了?对原来那个窗口在闪,行了,我们就通过判断窗口闪,来得到具体是哪一次调用是禁止打开第二个游戏的代码.下边我们来试,刚才按了一次F9和一次Alt+F9,我们继续重复刚才的工作,直到看到QQ窗口闪动,说明禁止双开的代码以经被执行了,一共按了多少次Alt+F9呢?17次,说明第17次调用才是真正的禁止双开. 好了,我们这时按Ctrl+F2重新打开程序,程序又停在了00402150处,我们按Alt+b打开断点窗口看到有一个地址为7C80E9CF的断点,我们用鼠标选中它,按回车,来到这里
7C80E9CF > 8BFF mov edi, edi
7C80E9D1 55 push ebp
7C80E9D2 8BEC mov ebp, esp
7C80E9D4 51 push ecx
7C80E9D5 51 push ecx
7C80E9D6 56 push esi
眼熟吗?这里就是CreateMutexA的第一行,我们选中7C80E9CF这行,按Shift+F4设置一下条件
暂停程序那里选择"按条件"后边的条件满足次数写16,为什么是16呢?第17次就以经禁止双开了,我们让他停在第16次调用之后,好看看具体是哪个语句禁止双开的.
设置完成后按确定,再按F9运行程序.程序又停在了7C80E9CF这行上,不过这次是第16次,我们按Alt+F9回到用户代码处.
10012886 85C0 test eax, eax
10012888 8946 4C mov dword ptr [esi+4C], eax
1001288B 74 24 je short 100128B1
1001288D FF15 ACC00110 call dword ptr [<&KERNEL32.GetLastErr>; ntdll.RtlGetLastWin32Error
10012893 3D B7000000 cmp eax, 0B7
10012898 8BCE mov ecx, esi
1001289A 75 07 jnz short 100128A3
1001289C E8 BE000000 call 1001295F
100128A1 EB 2A jmp short 100128CD
100128A3 E8 90010000 call 10012A38
100128A8 85C0 test eax, eax
100128AA 74 21 je short 100128CD

程序停在了10012886处,我们按F8步过.执行到10012893这句时看到信息面板,也就是代码窗口下边的小窗口写着eax=000000B7,而10012893这句的代码是cmp eax,0B7 这句的意思就是比较eax和0B7,接着执行按F8,当来到1001289A这行时,注意了, jnz short 100128A3的意思是说,刚才比较的eax和B7如果这两个不相等则跳转到100128A3,否则不跳,刚才eax=B7也就是相等,所以程序接着执行,并不跳转.接着按F8,执行到100128A1这行,发现先前打开的QQ游戏窗口闪了,100128A1上一行call 1001295F,调用了这个子程序后QQ游戏才被禁止运行的.这是关键的部分了. 我们具体分析一下这段代码
10012893 3D B7000000 cmp eax, 0B7
10012898 8BCE mov ecx, esi
1001289A 75 07 jnz short 100128A3
1001289C E8 BE000000 call 1001295F
100128A1 EB 2A jmp short 100128CD
100128A3 E8 90010000 call 10012A38
100128A8 85C0 test eax, eax
100128AA 74 21 je short 100128CD
100128AC 897D FC mov dword ptr [ebp-4], edi
10012893这句把eax和B7做了比较,1001289A这句判断eax和B7不相等则跳转到100128A3,但实际情况是相等,也就是不跳转.如果执行了1001289C这行的子程序,就禁止双开了
我们来简化一下流程
10012893 3D B7000000 cmp eax, 0B7
1001289A 75 07 jnz short 100128A3
1001289C E8 BE000000 call 1001295F
100128A3 E8 90010000 call 10012A38
根据上边所说的,我们如果不执行1001289C这行,就可以双开,最简单的办法有两个,可以跳过1001289C 这行,一是改10012893这行,把eax和B6比,或别的数,反正不是B7就行了.改过后当执行到1001289A时,会直接跳到100128A3去执行,1001289C没有被执行也就是可以双开.二是把1001289A这句的jnz改成je也就是把原来的eax和B7不相等则跳转到100128A3,变成了相等则跳转. 我们用第一种方法试试.
选中10012893,也就是cmp eax,0B7这句,按F2,然后按ALt+B把刚才的7C80E9CF那个断点删除了,只剩下10012893这个,然后按ALT+C,再按Ctrl+F2重新载入程序,按F9运行]] >

公元2008年07月27日的宣言

2008年07月27日

我出于兴趣,编写CALL外挂反编译分析时,发现汇编功底太差,当初在大学学到的知识也都快还给老师了,汇编成为我现阶段最大的障碍,一直都懒得看,现在真的要恶补一下了,我在1年前买了一本 罗云彬编写的《Windows 环境下32位汇编语言程序设计》 至今也只看完了第一章。今天我在次宣言,要在半年之内达到独立分析大部分网游Call函数正确地址的水平和破解简单的加密,脱壳等。此版就是为了此目的开的,在学习期间,我会把所学发布出来,请认识我的朋友们见证2009年1月27日,会出现一个全新的我!!!!

_____________________________________________________________________

2009年04月28日

中途关注了一下Linux,但是还在学习中,我并没有放弃,破解方面的知识还要关注看雪学院呀!!~~~~~
加油中~~~~~~~~

CPU供电原理及电容参数的影响

http://diybbs.pconline.com.cn/topic.jsp?tid=2484995
原文链接,看到这里的关于电容的置顶帖,感觉写得很详细但是仅仅是理论,而且看了容易被误导,我的这个帖子里面既有理论也有实际的参数供大家学习,对于很多mod主板或者超频的DX应该都有帮助,起码看了后大家能知道电容还是有很多参数要去看的,而不是仅仅说用了xx铝壳电容,基本上主板上用的都是铝壳,有的穿PVC/PET衣服,有的没穿,所以铝壳这种说法大家以后还是不要说了,另外固态电容也是电解电容,只是阴极由电解液换成导电高分子薄膜,所以不要以为固态电容不是电解电容。还有希望大家看到红色的电容不要以为一定是富士通,看到紫色电容不要以为一定是三洋,看到蓝色不要以为一定是日本化工,另外富士通固态电容也分R5和L8,三洋也有很差的SVP和主流的SEPC,日化则有PS/PSA/PSC的,要学会区分,不要对着标着“C”或“A”标识的日化固态电容称之为PS系列,人家是PSC/PSA系列的。

兄弟们购买主板很多都要超频使用,毕竟多数不是有钱人,这个可能和超频玩家的超频目的完全不同,这个帖子给大家介绍一些常见的主板电容的参数,供大家购买超频主板时作个参考,当然这个只是一个基本参考,没有好电容是没有好的超频能力的,有好电容也不见得超频就强。除耐压和容量这两个基本参数外,esr(等效串连电阻)和纹波电流大小是电容最重要的性能参数。

下图是 单项供电的情况,图左面是上桥导通,电感开始储存磁场能,自感电动势(12V-Vcpu,约10.5V)从右指向左,图右面是下桥导通,电感开始释放磁场能,自感电动势(Vcpu,约1.5V)由左指向右,由于自感电动势大小等于电感与电流变化率的乘积,那么对电感充电1ms,那么需要7ms才能释放完毕,从能量的守恒角度也可以容易的算出来12V*(Imax/2)*1ms=1.5V*(Imax/2)*(1+x)ms,x=7

下面是电感上的电流

在主板上cpu的供电设计上,开关频率只有几百k,即使频率高达1Mhz,而现在cpu的频率都在Ghz以上,所以开关电源在调整以前,cpu已经工作了1000个周期以上,(电感对电容的充电是需要时间的,电容极板上电荷变化不能瞬间改变,就是说极板上电压不能瞬变),电荷由极板流向cpu时要经过电容上的等效串联电阻(主要是作为电容阴极的电解液或者导电高分子薄膜的电阻)和线路上的电阻,那么这段时间内的电流波动产生的cpu电压波动基本上取决于电容的esr和线路上的电阻(Delta V = Delta I * R),比如电容极板电压为1.5V,esr和线路电阻共为2毫欧,那么突然增大的50安培电流(比如cpu由空闲转为进行数学计算)将在esr和线路电阻上产生100毫伏的压降,cpu获得的电压由1.5V变为1.40V,这个变化很可能造成cpu稳定性问题,尤其是超频时,线路上的电阻可以通过加锡条等办法来降低,而电容的esr,对电源的稳定性有关键的影响,是超频成功的重要因素。而纹波电流平方与esr成反比,即散热和温度一定的情况下,esr越低,温升就越低,耐纹波能力越高。

这个CPU供电对阶越电流的响应要比下面讨论的PWM的纹波更有意义,也更好理解,这里用具体的例子来讨论一下。假设cpu当前的供电电压是1.35V(电容极板上的电压),cpu由一个状态转为另一个状态电流突然增加50A(这个对于主流cpu来讲是符合实际情况的),那么这个增加的50A的电流就要在电容的esr(等效串联电阻)上产生压降,某品牌C61P采用4颗6.3V 3300uF的液体电解(日本化工KZG),并联esr为12/4=3毫欧,那么esr上压降为0.15V,也就是说cpu的电压由1.35V下降至1.20V,某通路品牌NF520le和另一通路品牌C68S采用6颗富士通R5,并联esr为5/6=0.83毫欧,那么esr上压降为0.042V,cpu的电压由1.35V下降至1.31V,这样的差距对于超频来说影响是很大的,即使是esr高的主板实际电压高出0.1V,对于超频来说散热和CPU的极限电压都是有限的,所以实际的超频结果就可能是能超和不能超或者超到X2 5000+还是6000+的问题,而且液体电解低温性能下降明显,负20度时esr增加为正25度时的两倍(东北这边冬天没暖气的时候超频的机器很容易起不来),高温时的寿命也明显不如固态电容(超频时电感和FET都很热,输入滤波的液体电解比较容易爆掉),因esr较大,供电系统本身的发热也高于固态电容(除电容esr的发热,默认电压要高于esr低的主板才能达到同样的稳定性,所以供电电流也要大,FET和电感也要更热些),同样设计的主板,用红宝石MBZ的电容就明显热,用富士通R5的则基本上不热,所以固态电容做开关电源滤波效果好已经是公认的了(缺点是漏电流大,不宜做交流耦合,容量相对较小,某些不忽悠的厂家在全固态主板上也会保留液体电解做声卡耦合输出,是负责任的做法。PS:鄙视那些用10uF电容做声卡耦合输出的,32欧的负载500HZ以下的声音都被严重衰减,而且输出声音很小)。

当然供电的相数也很主要,因为每相FET和电感上的电阻发热与电流平方成正比,在使用同样的FET、电容和电感的情况下,提供相同的功率输出每相供电的发热和相数平方成反比,总发热和相数成反比,两相供电做出三相的功率输出没什么,更低的纹波也可以做到,不过并不是没有代价,电感体积要更大(这个现在不怎么流行,以前两相供电的P4主板经常见到巨型电感的),电感值要更小(以sunlei KQ10系列为例,0.56uH的R56M 额定25A,直流电阻0.90毫欧,0.22uH的R22M 额定35A,直流电阻0.48毫欧,不但发热低而且似乎成本也应该低一些,只是如果PWM频率相同那么每相的电流峰值也要加倍,每相FET发热就是4倍啦),PWM频率要更高(为了降低FET上的峰值电流并且获得大电感值供电的低纹波就只有提高PWM频率),每相的FET要有更低的Rds ON阻值(相数低每相上电流平方值高,一般需要双FET做下桥),返修率也会提高(PWM频率高,双FET并联工作返修率自然就高一些)。比如X2 4000+在3相供电的昂达N68S上超到2.8G跑双prime时电感的温升有60度左右(再高除非自己加FET散热片,否则超频就只有跑分的意义), 而在5相供电并且有FET散热片的捷波悍马HA01-GT3上就只需要担心CPU体质。还有就是同德代工的HD2600Pro(只有3颗日本化工PSC固态电容那种),核心超到800M后稳定性没问题(很多人骂这卡干净,说电容太少,其实这卡电容还真的不错的,1颗PSC起码顶4颗红宝石MBZ来用,而且低温性能更好,高温寿命更长),但是核心供电的那个电感已经很烫手了(这个时候选购两相供电比选择固态电容更有意义),如果是两相供电的HD2600Pro(比如昂达和东翎的2600pro ddr3)就不用担心电感的温度问题,虽然电感、FET的温度上限都比较高,不过对于一般非极限OC的用户来说没人希望在那样热的情况下使用,而且还可能影响到电容等其它器件的寿命(即使是固态电容也最好在85度以下工作)。微星在部分845/865/945gc等主板上采用的供电就是相数少,大体积、小电感值电感和高的PWM频率的方案,缺点是电感体积会很大(两相时),成本没低多少(铜很贵啊,下桥FET起码用两个),发热和返修率的控制也没有多相的方案理想。用的相数少比相数多超得高是正常的(最近看到微星和DFI的高端P35就是4相设计,当然

电感值应该低于0.33uH以获得大电流,否则4核供电就不太够了),也不能说谁的设计好,因为真正的高科技是PWM的技术,这个intersil等PWM芯片提供商会做的,所以相数少没什么值得炫耀的地方(很简单的计算,通路和二线主板厂商不可能没算过,况且电感值低的电感应该更廉价)。映泰的I平台的三相供电在超频时电感温度不会低的(跑两个Prime就知道了),所以某些人不要以为这个是很先进的然后拿来吹映泰技术多好(最近看过有人拿这个来吹的)。

固态电容最大的缺点是漏电流大,漏电流一般达到0.2CV(CV是容量和电压的乘积),如果这个值低于500uA,按照500uA来考虑(数据来自日本化工PSC数据文档),这个已经是半个毫安了严重影响交流耦合输出的线性度甚至烧毁一些无输入耦合电容的功放系统,声卡输出电流一般才几十个毫安,所以固态电容厂商不建议把电容用于交流耦合,如果这块固态电容好的话那些高端声卡早这样做了,而普通液体电解尤其是音频专用的一般才0.01CV,低得多,输出线性度更好。所以很多厂商为了炒作全固态就做得很彻底(为了利益,似乎通路全固态的都能贵出不少,一线就更不用说,其实成本增加很少的),将声卡耦合输出也固态化,严重伤害了消费者的利益。

下面是一些PWM纹波的相关公式,仅供理论学习,该讨论的基本上已经在上面讨论过,直接看后面的电容参数表即可。

公式来自这篇maxim文章

单项供电,由电容容量引起的噪声(即纹波电压,这个是CPU超频的关键,尤其是AMD的cpu,内存控制器和cpu在一起,只要cpu供电好,即使是内存的线路设计、供电设计不好也不太影响cpu本身的超频)

噪声值与电容容量成反比,与电感值成反比,与开关频率的平方成反比,也就是说由2200uF的液体电解换成560uF的固态电容后只要开关频率提高一倍就可以搞定容量减小所带来的纹波电压的增加,也就是说固态电容的主板虽然电容容量小,但是并不会有问题,而且和下面介绍的电容等效串联电阻(esr)所带来的噪声(纹波电压)相比要小得多。

单项供电,由电容esr引起的噪声

噪声值与电容的esr成正比,与频率成反比,与电感值成反比

所以主板的cpu供电电容esr越低,比如固态电解相对于液体电解,电感越大,比如1R0(1uH)相对于R56(0.56uH),就越容易实现更好的电气性能,当然这只是基本保障,能不能超频好要看其它因素.

多项供电的情况
资料来自AMD平台广泛使用的intersil的isl6566

对应的纹波电流值,与电容ESR的乘积即为cpu供电的纹波电压值(这里的叙述有问题,多项的时候因为多项电流叠加,所以噪声计算并不是每相的纹波电流与电容esr的成绩,而是要小,小多少就要看叠加的方式了,这个以后有空再讨论吧,希望大家能提供些资料)

在开关频率,电感值,输出esr等相同的情况下,12V输入,1.5V输出的供电系统,三项与两项和单项相比
输出纹波电压比为5:6:7,当然稍提高下PWM频率就可以弥补相数低的固有纹波稍高的问题。
这里对喜欢改造主板的一些大虾的建议就是看起来提高pwm频率是一种很好的降低cpu供电纹波的很直接而且很廉价的方式,达到5相、6相甚至8相以上的供电纹波,下面给出intersil的isl6566的工作频率设定电阻与频率的关系

rt值是rs引脚到地的电阻,rs脚是isl6566的第36脚,从小圆点顺时针数是第5脚
200k的电阻对应的频率大概是150k hz,90k的电阻大概是接近300k hz,而1M hz的工作频率,电阻大概为25k。
当然提高工作频率对供电的fet要求较高,会显著提高fet的发热,应该做好散热措施。

常见的电解液电解有:

黄色衣服K字防爆的是富士通R5固态电容,5毫欧esr是现在固态电容里最好的,也是所有固态电容里失效率最低的,一万小时0.05%,后来的R5封装变成红色的那种没有防爆凹痕的,失效率为一千小时0.1%,比原来的黄色外皮有防爆凹痕的高很多,不过相对日本化工的PS、psa、psc系列来说失效率还是低不少,比R5(8*11.5)小一号的是富士通L8(8*8)固态电容,和R5比稍弱,不过6毫欧和5毫欧的实际差别很小,可以忽略。三洋svp系列是现在来说很差的固态电容了(4V 560uF的esr 13毫欧,2.5V 1500uF的esr 12毫欧),现在三洋的SEPC还可以,和日本化工的PSC,台湾立隆的OCRZ,香港万裕(manyue)X-CON(液体电解叫SAMXON)的ULR,台湾YIMTEK的PXR,台湾OST的pus,韩国samyoung的axa等固态电容都是7毫欧的esr,性能基本相同,和富士通的RE系列的R5/L8比起来性能稍弱(最近在祺祥显卡上用了nichicon的LE系列固态电解,也是5毫欧的esr,因为是新出的电容,其它厂家还没发现有使用)。

关于固态电容的识别:
不是红色阴极标识的就是富士通L8,紫色的就是三洋sepc,富士通的除了黄色外皮的R5外其余的阴极为红色,上面有个F的标识,致铭经常用万裕的ULR,并不是富士通的L8,昂达的520T也是一样,标识为wc,厂家未知,YIMTEK的PXR也是紫色,上面有PXR的标志,七彩虹最近的¥399的C68S(N70GT)上也是不知名品牌的WU和WT系列,日本化工的阴极为淡蓝色,ps标识的为ps系列,A标识的为psa,C标识的为PSC,PSC是日化最好的,现在的固态电容一般esr都能做到8毫欧或者更低,价格也不贵,选择液体电解供电的主板除非特别便宜,比如¥299的主板(最近冠盟690V也降到¥288了,用的松下的固态电容,指标估计不高,因为只有低端主板在用,但是总比液体电解要好用的多),否则在预算有限的情况下还是多考虑通路的主板(一般都是杰微和捷波代工),稳定性和可靠性要比一线的廉价主板好很多,超频能力也强。

下面是以前的老帖的内容,现在变化很大了,比如捷波能超了(原通路品牌捷波的A平台悍马系列<现在捷波应该已经把渠道和品牌收购了>和自有品牌斯巴达克的P35以及很多OEM给通路的P35),硕泰克破产了。

一般主板上使用5-7颗电容作cpu供电滤波,总esr为2毫欧左右,对于50A的电流波动,电压波动为0.1伏特。

MBZ系列常见于Abit全系列,七彩虹和onda的K8T800上面,HM在大众(FIC)OEM的产品如七彩虹龙战士上面和MBZ是在不同批次都出现过,不过nichicon最近在Dell的机器上爆浆,所以最近在国内零售的板子上没看到,KZG常见于Asus、Asrock(华擎),DFI的lan party系列,Soltek等。
外观上MBZ为紫色金边,HM为黑色白边,KZG为棕色白边。esr即等效串连电阻,在电流波动时,因为电容上电量不能马上改变,所以电容极板间电压不变,而esr上的电压变化等于电流变化值与esr的乘积,现在处理器电压越来越低,功耗却增大,所以电流越来越大,电流的波动就越大,因此电容的esr就越来越难以满足cpu的供电需求。在以前看来能够使用上面三个系列电容的主板就是超频的好板子了。但是现在出现了聚合物固态电容作cpu滤波的主板,

典型的有捷波的CPAE(CPAE其实是导电高分子铝电解的英文缩写),应该是利隆的早期产品,现在使用的是利隆的OCR和OCRZ。
onda和七彩虹的6100上使用的 fujitsu R5,
众多915和ati芯片组主板上使用的 fujitsu Se,
映泰的TForce6100上面的nippon che

micon的 PS,

R5(4V 560uF)esr为5毫欧 6.6A纹波电流,
Se(2.5V 680uF)为13毫欧 4.5A纹波电流,
PS(2.5v 1500uF)为8毫欧,5.5A纹波电流,
50A电流波动产生的电压波动分别为0.05 0.1 0.08伏特左右,R5表现最嘉,另外固态电容在低温下esr变化小,而电解液电容esr在零下20度比零上25度高一倍,这个也是耕升当年花屏的主要原因。
外观上fujitsu R5为黄色pvc包膜直插,K形防爆凹痕,Se为无pvc膜表贴封装,阴极标识为红色,无防爆,CPAE为蓝色pvc包膜,PS为无pvc膜表贴封装,阴极标识为浅蓝色,无防爆。onda的n61G使用的R5 4V 560uF如果是2.5V 1500uF的就好了,因为在开关频率、输入、输出电压固定的情况下,由电容容量引起的电源的固有噪声和电感与电容的乘积成反比,由esr引起的电源的固有噪声和esr成正比,和电感成反比,所以电容大是有好处的,这个可能是根据媒体广告报道的映泰的比onda的超频上限稍高一点点的原因之一吧。
电容在主板上对超频的影响只是一个方面,电容的个数也要注意,很多品牌在销售一段时间后会减少电容数量,比如onda的k8t800,七彩虹的C51,开关电源的数量也是判断主板超频能力的一个简单依据,不懂电路的可以查主板上电感的数量,数量多的一般开关电源多,外观上能判断的依据还有插槽的品牌,mos管的系列等等。
最后祝大家买到适合自己的产品。
PS:一线大厂的600以下的主板不推荐购买,查电感数量就知道为啥了。
下面是我发在昂达论坛的帖子,原因是昂达网站上对C68主板上的电容介绍有点夸张,我因此发了些富士通R5的介绍,对比的有日本化工的ps系列,使用R5的主板主要有杰微,昂达,七彩虹等,应该都是杰微的工厂出的
原帖地址
http://www.onda.cn:177/dispbbs.asp?boardID=2&ID=98290&page=1

标题:富士通R5是顶级电容,但是也不要吹的太恨啦

这个是R5的旧版数据,就是现在昂达在使用的,黄色pvc外皮,有防爆凹痕的,下面是它的esr值

昂达最喜欢用的4V 560uF的频率特性

下面是新版本的R5,特点是没有pvc包膜,红色阴极标志,无防爆

最大的性能改变就是可靠性的下降,同样的60%置信度,10000小时10000分之5失效,上升为1000小时1000分之1失效,昂达一直使用旧版的R5看来事非常正确的,不可否认R5是现在主板上应用的顶级电解,5毫欧的esr,一般固态比液体电解的优势,比如低温不会对esr影响太多,每降低20摄氏度寿命增加10倍,而电解是4倍,但是各位编辑在写稿的时候也请实事求是,不要随便就写出来40000小时寿命,-50至150摄氏度,也不要拿红宝石MBZ,MCZ之流来比较,要知道红宝石6.3V 2200uF的MBZ/MCZ的esr为13毫欧/11毫欧,而纹波电流为2.55A/2.77A,不是一个级别的,不过倒是很希望以后的昂达主板的cpu供电设计能在提供比其它主板高的pwm频率的同时在CPU供电上并联2-4颗液体电解,我相信这样对大电流的CPU(比如速龙3000+)之流的超频性能和稳定性会有一定的提高。即使是映泰主板常用的日本化工的PS系列也差很多,下面上ps系列的资料。

看失效率,1000小时100分之1,这个和R5根本不是一个级别,这里也能看到低温性能,零下20摄氏度的esr是零上20摄氏度的1.15倍,而红宝石MBZ/MCZ则是2倍,再看看esr数据,映泰常用的是2.5V 1500uF,

esr为8毫欧,纹波电流为5.5A,和4V 560uF的R5的5毫欧,6.63A的纹波电流比起来还是有一定差距的。

富士通R5的说明书
日本化工固态电容说明书
红宝石MBZ系列
红宝石MCZ系列

资料下载:
点击下载

Ubuntu8.04 系统优化

32位CPU用户安装32位版的Ubuntu,64位CPU的就安装64位版本。有人说64版本安装软件有兼容性问题。我从Ubntuu7.04开始到现在的8.04一直使用64位系统,一直都很稳定没遇到太大的问题。64位系统同样能使用32位的软件,只要在终端输入以下命令,安装相应的32位包:
sudo apt-get install ia32-libs ia32-libs-gtk linux32 lib32asound2
,64位系统在一般的应用中不但不会比32位系统慢,甚至还能有5~10%的性能提升,这是我对32位系统与64位系统对比后的体会。
如果有朋友在64位系统中遇到任何问题,可到
http://forum.ubuntu.org.cn/viewforum.php?f=85。
发帖求助 2。选择合适的文件系统
我的根分区与/home都是使用xfs文件系统,当然也有人会推荐使用ReiseFS文件系统。 3。选择适合自己的Linux内核
Ubuntu8.04默认的内核是2.6.24.X-generic,大家可以通过在终端中输入
uname -r查看内核版本,而这个内核更适合笔记本用户使用。
对于台式机用户,我推荐使用realtime内核,这个内核在系统--系统管理--新立得新立得软件包管理器里搜索“linux-image”就能看到,安装时要安装“linux-imgage-2.6.22.14-rt”跟 “linux-restricted-modules-rt”两个包,原来默认的内核镜像不用删除,安装后重启,grub画面就会多了两个rt的选项,选择第一个就能使用rt内核了,rt就是realtime的缩写。更完全的安装是把所有后面都是rt包都装上。 小贴士:默认的内核不用删除,安装完rt内核后重启系统,在启动选择画面会出现新的内核选项,选择rt选项,就能进入新的内核了
具体的文章可以见此帖:
http://forum.ubuntu.org.cn/viewtopic.php?t=101888 4。关闭IPV6
因为目前IPV6网络还没普及,所以建议把这项关闭
代码:
sudo gedit /etc/modprobe.d/aliases 然后修改这一行:
alias net-pf-10 ipv6
为:
alias net-pf-10 off #ipv6
然后注释掉hosts文件中所有与IPV6有关的行
代码:
sudo gedit /etc/hosts 这将会禁止所有使用IPV6的网络接口。 再新建一个/etc/modprobe.d/bad_list文件,内容为:
alias net-pf-10 off
然后重启。 5。并行启动程序
这将会使启动程序并行,加速启动过程
代码:
sudo kate /etc/init.d/rc (注意:这里用gedit打开可能是乱码,换个编辑器,如nano,vi什么的就ok了)
找到并修改该行:
CONCURRENCY=none
为:
CONCURRENCY=shell
确保你的拼写正确,写错一个字母你将无法启动!!!
如果你使用的是SATA 或SCSI,这个方法会发挥最大的作用,然而即使像我使用ATA这样的机器上,这个方法也使得的GDM登录界面出现的更快了一些。
如果你使用很老的硬件,这个方法也可能会使你的机器启动变慢。 6。将localhost化名为主机名
对不对,你自己决定,我以前在ubuntu论坛看到的这个技巧,确实改善了一些应用程序的启动。
代码:
sudo kate /etc/hosts 把你的主机名添加到第一行的localhost之后,像这样:
127.0.0.1 localhost yourhost
127.0.1.1 yourhost 7。preload
顾名思义,它能智能的根据你日常的软件使用习惯预加载大多数一版用到的lib文件和应用程序,相当于加快了应用程序的启动(这并不会象有些人认为的会加快系统的启动速度)
代码:
sudo apt-get install preload 8。swappiness
Ubuntu 默认的vm.swappiness值是60,这一默认值已经很合适了。但你可以改小一些降低swap的加载,系统性能会有一点点的提升
输入:
代码:
sysctl -q vm.swappiness 你会看到值是60,更改:
代码:
sudo sysctl vm.swappiness=10 这样你就将值由60改为10,这可以大大降低系统对于swap的写入,建议内存为512m或更多的朋友采用此方法。如你你发现你对于swap的使用极少,可以将值设为0。这并不会禁止你对swap的使用,而是使你的系统对于swap的写入尽可能的少,同时尽可能多的使用你的实际内存。这对于你在切换应用程序时有着巨大的作用,因为这样的话它们是在物理内存而非swap分区中。
如果你想永久得改变这一值,你需要更改 sysctl.conf 文件:
代码:
sudo kate /etc/sysctl.conf 添加:
vm.swappiness=10
到末行,需要重启生效。
小贴士:
1G内存推荐值为5
2G内存推荐值为3
不推荐把值设为0 9。grub选项–profile
grub有个叫做profile的选项,它是一种系统启动时所要读取的所有的文件的索引,这样使得随后系统查找并且读取这些文件的速度就会加快。
系统启动到grub启动菜单的时候,按esc键
选择你默认的启动内核,按e键
移动到第二行,再按e键
添加profile到这行末尾,回车
按b键启动系统
第一次启动时间会稍长一些,那是因为要创建索引(或许和随便怎么称呼它),但这之后每次启动就会更加平稳。
你需要在每次更新内核之后,或者是那些会影响到你的系统启动所需的文件的重大系统改动之后,重新作这一步。 10。sysv-rc-conf
安装sysv-rc-conf,禁止掉那些你不需要启动的服务。
举个例子,我的电脑没有蓝牙和 PCMCIA,所以我就不需要启动它。
因此禁止掉那些你没有和不需要的服务。
代码:
sudo apt-get install sysv-rc-conf 然后:
代码:
sudo sysv-rc-conf
以下是一些服务选项参考,可参考进行服务关闭
1. acpi-support – 你最好使其在S运行等级处于“X”状态。
2. acpid – acpi守护程序.这两个用于电源管理,对于笔记本和台式电脑很重要,所以让它们开启。
3. alsa – 如果你使用alsa声音子系统,是的,开启它。
4. alsa-utils -在我系统里,此服务取代了alsa,所以我关闭了alsa并在S运行等级将此服务开启。**注意**,我所说的“关闭”是指在所有运行等级里面去除所有 “X”。如果在你系统里没有它,没问题。让我们继续。
5. anacron – 一个cron子系统,当时间到达时用于执行任何没有被执行的cron作业。当某种cron 作业时间准备好时,很可能你或许已经关闭了你的计算机。打个比方,updatedb被计划在每天2点执行,但是在那个时候,你的计算机是关闭的,然后如果 ananron服务如果是开启的话,它将设法抓起那个updatedb cron… 我将它关闭是因为我不经常关闭我的笔记本,但是否开启此服务完全取决于你。
6. apmd – 这是十分困惑我的一个服务。我已经开启了acpid服务,那同时开启apmd有啥好处呢?如果你的计算机不是那么老,甚至不能支持acpi,然后你可以设法关闭它。无论如何,我是关闭它的。
7. atd – 就像cron,一个作业调度程序。我把它关了
8. binfmt-support – 核心支持其他二进制的文件格式。我让它开着
9. bluez-utiles – 我把它关了因为我没有任何蓝牙设备
10. bootlogd – 开启它
11. cron – 开启它
12. cupsys – 管理打印机的子系统。我没有打印机所以我关闭它了,如果你有打印机,开启他。
13. dbus – 消息总线系统(message bus system)。非常重要,开启它。
14. dns-clean – 当使用拨号连接,主要用于清除dns信息。我不用拨] ]>

主板电容供电 与 常用电容表

主板电容供电规则
一款主板需要什么样的电容才算合格?市面上各个厂商动不动就开始宣传的日系电容、红宝石电容,全固态电容到底对主板有什么影响,如何计算主板跟电容的供求关系,也许,看过本篇实例介绍,会对你选择主板电容有所帮助?   简单的说,电容是用来滤波的,如果所有交流电都像直流电那么稳定,呈直线状输出,那么我们将不再需要电容。交流电会这样吗?当然不会,会就不叫交流电了。所以,我们不仅需要电容,而且需要很多电容。至于具体需要多少?我们可以这么计算:

固态电容

  一.输入部分的计算
现在的CPU都是用12V供电输入的,我们以输入给CPU 100W功率来计算:100/12=8.333A ,那么我们需要输入的电容能适应8.333A的Ripper涟波电流Ripper Current(以下简称涟波电流) 。 如果无法吸收过多的涟波电流,就会造成输入电流品质不良,影响稳定。当然,1颗电容是不够的。普通的电解电容大致有三种常用规格 。我们以日系松下的电解液电容为例,一颗10*16mm的松下电容能承受2A , 8*20mm的能承受1.87A ,10*12.5mm的能承受1.54A ,因此要对付8.333A的涟波电流,10*16规格的也需要4颗以上( 4×2=8A<8.333A) 。当然实际应用中可以稍微小一些,不用做满,因为这里的cpu功率是按照瞬时最大功率计算的,现实中很少会真正发生。为了更好理解电容数量和CPU功率的关系,我们拿悍马HA01和HA01-GT来做案例,他们都是用的4颗 OCR的330uF 16V固态电容。而固态电容比电解液电容要能承受更多的涟波电流,悍马HA01和GT上的输入电容 OCR固态电容的涟波电流是6A。
  这样计算公式如下: 6A×4×12V=288W ,能够提供288W的功率给CPU。

电解电容

  如果有兴趣,可以去计算一下市场上其他主板的输入电容能对应输出多少W功率给CPU

二.输出部分的计算
  通常输出部分的用料总会比计算出的要少很多(这些是靠用料经验来决定的)。因为CPU输出功率是个不稳定值,最高输出功率和最低会有很大的落差。如果完全按最大输出功率来设计用料,即使不惜工本,按照目前机箱的规格,主板PCB上是排不下那么多电容的。
  我们用CPU输出100W来计算用料。通常CPU的工作电压在1.35V左右,那输出的电流强度就是 100/1.35=74.074A,换而言之,所有输出电容可承受的涟波电流总和要等于或大于74A才是最理想搭配。  我们还是以悍马HA01 和HA01-GT为例,它使用了8颗OCR 1500uF 2.5V的固态电容,官方公布每颗能承受电流为7.2A也就是57.6A。这样,和理想状态还是有一定差距,更不要说,如果都换成普通电解液电容,差距就更大。但即使换成电解液电容,由于cpu输出功率波动极大的特性,主板还是能正常工作的。

固态电容

  看了上述的长篇技术分析,大家如果脑子还没发晕,那么恭喜,你对电容在主板中的作用,已经真正领悟了。如果晕了也没关系,听我说,简而言之,第一,电容理论上是越大越好,如果电容不够大,CPU超频后无法提供稳定电流,那主板在超频方面的表现势必会弱很多。第二,如果全部采用普通电解电容,那么,需要主板超大才行,否则排不下。这也是高端主板和一些以超频为功能诉求的主板,大量采用固态电容供电的缘由所在。固态电容供电对大功率CPU(类似普通CPU超频状态),比普通电解液有非常明显的优势。超频讲述的就是,每颗滚烫奔腾的心后面,都有无数坚强的电容,这样一个故事。

uploads/200904/21_123606_a73626.gif

UBUNTU8.10 RAID测试

两个希捷IDE硬盘的软RAID0做的测试成绩(EXT3)
/dev/mapper/lvm01-system:
Timing cached reads: 1524 MB in 2.00 seconds = 762.06 MB/sec
Timing buffered disk reads: 180 MB in 3.03 seconds = 59.31 MB/sec
ssj@ubuntu:~$ sudo hdparm -t -T /dev/mapper/lvm01-swap

/dev/mapper/lvm01-swap:
Timing cached reads: 1508 MB in 2.00 seconds = 754.01 MB/sec
Timing buffered disk reads: 182 MB in 3.03 seconds = 60.16 MB/sec
ssj@ubuntu:~$ sudo hdparm -t -T /dev/mapper/lvm01-home01

/dev/mapper/lvm01-home01:
Timing cached reads: 1508 MB in 2.00 seconds = 753.71 MB/sec
Timing buffered disk reads: 168 MB in 3.03 seconds = 55.40 MB/sec
ssj@ubuntu:~$ sudo hdparm -t -T /dev/mapper/lvm01-home02

/dev/mapper/lvm01-home02:
Timing cached reads: 1510 MB in 2.00 seconds = 754.51 MB/sec
Timing buffered disk reads: 184 MB in 3.02 seconds = 60.90 MB/sec
ssj@ubuntu:~$ sudo hdparm -t -T /dev/sda

/dev/sda:
Timing cached reads: 1526 MB in 2.00 seconds = 763.02 MB/sec
Timing buffered disk reads: 160 MB in 3.03 seconds = 52.81 MB/sec
ssj@ubuntu:~$ sudo hdparm -t -T /dev/sdb

/dev/sdb:
Timing cached reads: 1316 MB in 2.00 seconds = 657.72 MB/sec
Timing buffered disk reads: 168 MB in 3.01 seconds = 55.78 MB/sec
ssj@ubuntu:~$

以上可以看出软raid0给我们代来巨大风险的同时,并不能给我们代来巨大的速度提升

下面用IDE的raid卡来做个测试(我使用的是LSI Logic Megaraid i4阵列卡,两个希捷IDE硬盘RAID0)(EXT3)
/dev/sda1:
Timing cached reads: 1278 MB in 2.00 seconds = 638.79 MB/sec
Timing buffered disk reads: 172 MB in 3.00 seconds = 57.24 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sda3
/dev/sda3: No such file or directory
ssj@ubuntu:~$ sudo hdparm -tT /dev/sda1

/dev/sda1:
Timing cached reads: 1234 MB in 2.00 seconds = 616.93 MB/sec
Timing buffered disk reads: 168 MB in 3.01 seconds = 55.80 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sda1

/dev/sda1:
Timing cached reads: 1246 MB in 2.01 seconds = 621.26 MB/sec
Timing buffered disk reads: 170 MB in 3.02 seconds = 56.37 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sda5

/dev/sda5:
Timing cached reads: 1256 MB in 2.00 seconds = 628.10 MB/sec
Timing buffered disk reads: 168 MB in 3.01 seconds = 55.74 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sda6

/dev/sda6:
Timing cached reads: 1242 MB in 2.00 seconds = 620.45 MB/sec
Timing buffered disk reads: 174 MB in 3.02 seconds = 57.64 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sda7

/dev/sda7:
Timing cached reads: 1258 MB in 2.00 seconds = 628.69 MB/sec
Timing buffered disk reads: 172 MB in 3.01 seconds = 57.10 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sda8

/dev/sda8:
Timing cached reads: 1256 MB in 2.00 seconds = 627.67 MB/sec
Timing buffered disk reads: 170 MB in 3.02 seconds = 56.29 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sda

/dev/sda:
Timing cached reads: 1238 MB in 2.00 seconds = 618.92 MB/sec
Timing buffered disk reads: 158 MB in 3.00 seconds = 52.64 MB/sec
ssj@ubuntu:~$

单硬盘测试(EXT3)
/dev/sdb:
Timing cached reads: 1244 MB in 2.00 seconds = 622.10 MB/sec
Timing buffered disk reads: 168 MB in 3.02 seconds = 55.55 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sdb1

/dev/sdb1:
Timing cached reads: 1248 MB in 2.00 seconds = 623.70 MB/sec
Timing buffered disk reads: 168 MB in 3.01 seconds = 55.90 MB/sec
ssj@ubuntu:~$ sudo hdparm -tT /dev/sdb3

/dev/sdb5:
Timing cached reads: 1248 MB in 2.00 seconds = 623.80 MB/sec
Timing buffered disk reads: 160 MB in 3.02 seconds = 53.01 MB/sec
ssj@ubuntu:~$