江苏省物理竞赛

JavaScript04

江苏省物理竞赛,第1张

我作为过来人(高1—2那届是省2等,高2—高3那届是省1等)说几句实话

你今年拿一等奖基本上别想,(对不起可能打击到你了,不过我说的都是真的)明年才有希望,因为10月份就决赛了。你们学的太少了,现在才教到3-1的欧姆定律,差得远远的呢。我们当时高一结束选修3-2都结束了。就算你从现在开始狂补,也不可能在2个月把高中竞赛内容掌握(除非你不干其他事)。

今年9月6日是初赛,只不过比高考略难,你想过的话多看看电磁学(3-1、3-2)、力学、能量(这是重点哦,大多数你都学过了,再自学动量、冲量吧),其他没教过的建议你看看气体(3-3)、氢光谱(3-5)、单摆问题(3-4)等考察频率大的。。如果你掌握的非常好的话,你应该可以进入复赛的。关于复赛,今年你参加了夏令营吗??????如果没参加的话,只能遗憾的告诉你,你要想拿2等奖的话比较困难了,要靠运气了。。。复赛的考察难度比较大,对于高1到高二的学生来讲,还是要把力学、能量、电磁学牢牢掌握!!这3项起码占到

试卷内容的60%,而且这些你们大多学过。

其实今年你只是去练兵的,拿奖的话不现实,还是应该稳打基础。你是一个有目标、有追求的人,相信经过你一年多的努力,明年你一定会取得大丰收的!!

另外推荐给你几本好书:浙江大学出版社的物理竞赛培优教程(绿色封面)、JS物理竞赛方法指导(黑色)、更高更快冲刺全国高中物理竞赛(蓝色)。

我在这里把大纲给你,对照了看看可能有帮助。

全国高中物理竞赛大纲

一、 力学

a) 运动学

参照系 质点运动的位移和路程、速度、加速度 相对速度

向量和标量 向量的合成和分解

匀速及匀变速直线运动及其图像 运动的合成 抛体运动 圆周运动

刚体的平动和绕定轴的转动

质心 质心运动定理

b)牛顿运动定律 力学中常见的几种力

牛顿第一、二、三运动定律 惯性系的概念

摩擦力

弹性力 胡克定律

万有引力定律 均匀球壳对壳内和壳外质点的引力公式(不要求导出)

开普勒定律 行星和人造卫星运动

惯性力的概念

c)物体的平衡

共点力作用下物体的平衡

力矩 刚体的平衡条件 重心

物体平衡的种类

d) 动量

冲量 动量 动量定理 动量守恒定律

反冲运动及火箭

e)冲量矩 质点和质点组的角动量 角动量守恒定律

f) 机械能

功和功率

动能和动能定理

重力势能 引力势能 质点及均匀球壳壳内与壳外的引力势能公式(不要求导出) 弹簧的弹性势能

功能原理 机械能守恒定律

碰撞

g)流体静力学

静止流体中的压强

浮力

h)振动

简谐振动 振幅 频率和周期 相位 振动的图像

参考圆 振动的速度和加速度

由动力学方程确定简谐振动的频率

阻尼振动 受迫振动和共振(定性了解)

i) 波和声

横波和纵波 波长、频率和波速的关系 波的图像

波的干涉和衍射(定性) 驻波

声波 声音的响度、音调和音品 声音的共鸣 乐音和噪声 多普勒效应

二、热学

a)分子动理论

原子和分子的量级

分子的热运动 布朗运动 温度的微观意义

分子力

分子的动能和分子间的势能 物体的内能

b) 热力学第一定律

热力学第一定律

c) 热力学第二定律

热力学第二定律 可逆过程与不可逆过程

d) 气体的性质

热力学温标

理想气体状态方程 普适气体恒量

理想气体状态方程的微观解释(定性)

理想气体的内能

理想气体的等容、等压、等温和绝热过程(不要求用微积分运算)

e) 液体的性质

液体分子运动的特点

表面张力系数

浸润现象和毛细现象(定性)

f) 固体的性质

晶体和非晶体 空间点阵

固体分子运动的特点

g) 物态变化

熔解和凝固 熔点 熔解热

蒸发和凝结 饱和气压 沸腾和沸点 汽化热 临界温度

固体的升华

空气的湿度和湿度计 露点

h) 热传递的方式

传导、对流和辐射

i) 热膨胀

热膨胀和膨胀系数

三、 电学

a) 静电场

库仑定律 电荷守恒定律

电场强度 电场线 点电荷的场强 场强叠加原理 均匀带电球壳壳内的场强和壳外的场强公式(不要求导出) 匀强电场

电场中的导体 静电屏蔽

电势和电势差 等势面 点电荷电场的电势公式(不要求导出) 电势叠加原理

均匀带电球壳壳内和壳外的电势公式(不要求导出)

电容 电容器的连接 平行板电容器的电容公式(不要求导出)

电容器充电后的电能

电介质的极化 介电常数

b) 稳恒电流

欧姆定律 电阻率和温度的关系

电功和电功率

电阻的串、并联

电动势 闭合电路的欧姆定律

一段含源电路的欧姆定律 基尔霍夫定律

电流表 电压表 欧姆表

惠斯通电桥 补偿电路

c)物质的导电性

金属中的电流 欧姆定律的微观解释

液体中的电流 法拉第电解定律

气体中的电流 被激放电和自激放电(定性)

真空中的电流 示波器

半导体的导电特性 P型半导体和N型半导体

晶体二极管的单向导电性 三极管的放大作用(不要求机理)

超导现象

d) 磁场

电流的磁场 磁感应强度 磁感线 匀强磁场

安培力 洛仑兹力 电子荷质比的测定 质谱仪 回旋加速器

e) 电磁感应

法拉第电磁感应定律

楞次定律 感应电场(涡旋电场)

自感系数

互感和变压器

f) 交流电

交流发电机原理 交流电的最大值和有效值

纯电阻、纯电感、纯电容电路

整流、滤波和稳压

三相交流电及其连接法 感应电动机原理

g)电磁震荡和电磁波

电磁震荡 震荡电路及震荡频率

电磁场和电磁波 电磁波的波速 赫兹实验

电磁波的发射和调制 电磁波的接收、调谐、检波

四、 光学

a) 几何光学

光的直进、反射、折射 全反射

光的色散 折射率和光速的关系

平面镜成像 球面镜成像公式及作图法

薄透镜成像公式及作图法

眼睛 放大镜 显微镜 望远镜

b) 波动光学

光的干涉和衍射(定性)

光谱和光谱分析 电磁波谱

c) 光的本性

光的学说的历史发展

光电效应 爱因斯坦方程

光的波粒二象性

五、 近代物理

a) 原子结构

卢瑟福实验 原子的核式结构

玻尔模型 用玻尔模型解释氢光谱 玻尔模型的局限性

原子的受激辐射 激光

b) 原子核

原子核的量级

天然放射现象 放射线的探测

质子的发现 中子的发现 原子核的组成

核反应方程

质能方程 裂变和聚变

“基本”粒子 夸克模型

c) 不确定关系 实物粒子的波粒二象性

d) 狭义相对论 爱因斯坦假设 时间和长度的相对论效应

e) 太阳系 银河系 宇宙和黑洞的初步知识

六、 其它方面

a) 物理知识在各方面的应用。对自然界、生产和日常生活中一些物理现象的解释

b) 近代物理的一些重大成果和现代的一些重大消息

c) 一些有重要贡献的物理学家的姓名和他们的主要贡献

七、数学基础

a)中学阶段全部初等数学(包括解析几何)

b)向量的合成和分解 极限、无限大和无限小的初步概念

c)不要求用复杂的积分进行推导和运算

全国中学生物理竞赛实验(初赛不考)

实验一 实验误差

实验二 在气轨上研究瞬时速度

实验三 测定金属的杨氏模量

(一) 用金属丝的伸长测定杨氏模量

(二)用CCD成像系统则定杨氏模量

实验四 研究单摆的运动特性

实验五 气轨上研究碰撞过程中动量和能量变化

实验六 测量空气中的声速

实验七 弦线上的驻波实验

实验八 测定冰的熔化热

实验九 测定固体的线膨胀系数

实验十 测定液体的热容

实验十一 学习使用数字万用电表

实验十二 制流和分压电路

实验十三 测定直流电源的参数并研究其输出特性

实验十四 磁电式直流电表的改装

实验十五 用量程为220mv的直流数字电压表组装多量程的直流电压表和直流电流表

实验十六 测量非线性元件的伏安特性

实验十七 直流平衡电桥

实验十八 学习使用示波器

实验十九 观测电容特性

实验二十 黑盒子

实验二十一 测量温度传感器的温度特性

实验二十二 测量热敏电阻的温度特性

实验二十三 用堆尔效应测量磁场

实验二十四 测量光敏电阻的光电特性

实验二十五 研究光伏探测器的光电特性

实验二十六 发光二极管的光电特性

实验二十七 研究亥姆堆兹线圈轴线磁场分布

实验二十八 测定玻璃的折射率

实验二十九 测量薄透镜的焦距

实验三十 望远镜和显微镜

实验三十一 光的干涉现象

实验三十二 研究光的夫琅禾费衍射现象

实验三十三 调节分光计并用掠入射法测定折射率

实验三十四 观测氢原子光谱

http://union.pdxx.com/sql.asp?url=http://pdxx.com&userid=1095&host=http://www.zyt.aa.topzj.com/viewthread.php?tid=30440&fpage=1

在做网页时(其实是网页木马呵呵),最让人烦恼的是自己辛辛苦苦写出来的客户端IE运行的JAVASCRIPT代码常常被别人轻易的拷贝,实在让自己的心里有点不是滋味,要知道自己写点东西也挺累的......^*^

但我们也应该清楚地认识到因为JAVASCRIPT代码是在IE中解释执行,要想绝对的保密是不可能的,我们要做的就是尽可能的增大拷贝者复制的难度,让他知难而退(但愿~!~),下面我结合自己这几年来的实践,及个人研究的心得,和大家一起来探讨一下网页中JAVASCRIPT代码的加密解密技术。

以加密下面的JAVASCRIPT代码为例:

<SCRIPT LANGUAGE="JavaScript">

alert("《黑客防线》")

</SCRIPT>

一:最简单的加密解密

大家对于JAVASCRIPT函数escape()和unescape()想必是比较了解啦(很多网页加密在用它们),分别是编码和解码字符串,比如例子代码用escape()函数加密后变为如下格式:

alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

如何?还看的懂吗?当然其中的ASCII字符"alert"并没有被加密,如果愿意我们可以写点JAVASCRIPT代码重新把它加密如下:

%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

呵呵!如何?这次是完全都加密了!

当然,这样加密后的代码是不能直接运行的,幸好还有eval(codeString)可用,这个函数的作用就是检查JavaScript代码并执行,必选项 codeString 参数是包含有效 JavaScript 代码的字符串值,加上上面的解码unescape(),加密后的结果如下:

<SCRIPT LANGUAGE="JavaScript">

var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B")

eval(code)

</SCRIPT>

是不是很简单?不要高兴,解密也就同样的简单,解密代码都摆给别人啦(unescape())!呵呵

二:转义字符"\"的妙用

大家可能对转义字符"\"不太熟悉,但对于JavaScript提供了一些特殊字符如:\n (换行)、 \r (回车)、\' (单引号 )等应该是有所了解的吧?其实"\"后面还可以跟八进制或十六进制的数字,如字符"a"则可以表示为:"1"或"\x61"(注意是小写字符"x"),至于双字节字符如汉字"黑"则仅能用十六进制表示为"\u9ED1"(注意是小写字符"u"),其中字符"u"表示是双字节字符,根据这个原理例子代码则可以表示为:

八进制转义字符串如下:

<SCRIPT LANGUAGE="JavaScript">

eval("14524\u9ED1\u5BA2\u9632\u7EBF")

</SCRIPT>

十六进制转义字符串如下:

<SCRIPT LANGUAGE="JavaScript">

eval("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B")

</SCRIPT>

这次没有了解码函数,因为JavaScript执行时会自行转换,同样解码也是很简单如下:

<SCRIPT LANGUAGE="JavaScript">

alert("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B")

</SCRIPT>

就会弹出对话框告诉你解密后的结果!

三:使用Microsoft出品的脚本编码器Script Encoder来进行编码

工具的使用就不多介绍啦!我是直接使用JavaScript调用控件Scripting.Encoder完成的编码!代码如下:

<SCRIPT LANGUAGE="JavaScript">

var Senc=new ActiveXObject("Scripting.Encoder")

var code='<SCRIPT LANGUAGE="JavaScript">\r\nalert("《黑客防线》")\r\n<\/SCRIPT>'

var Encode=Senc.EncodeScriptFile(".htm",code,0,"")

alert(Encode)

</SCRIPT>

编码后的结果如下:

<SCRIPT LANGUAGE="JScript.Encode">#@~^FgAAAA==@#@&lsDD`J黑客防线r#p@#@&FgMAAA==^#~@</SCRIPT>

够难看懂得吧?但相应的解密工具早已出来,而且连解密网页都有!因为其解密网页代码过多,我就不多说拉!给大家介绍一下我独创的解密代码,如下:

<SCRIPT LANGUAGE="JScript.Encode">

function decode(){

#@~^FgAAAA==@#@&lsDD`J黑客防线r#p@#@&FgMAAA==^#~@

}

alert(decode.toString())

</SCRIPT>

咋样?够简单吧?它是原理是:编码后的代码运行前IE会先对其进行解码,如果我们先把加密的代码放入一个自定义函数如上面的decode()中,然后对自定义函数decode调用toString()方法,得到的将是解码后的代码!

如果你觉得这样编码得到的代码LANGUAGE属性是JScript.Encode,很容易让人识破,那么还有一个几乎不为人知的window对象的方法execScript(),其原形为:

window.execScript( sExpression, sLanguage )

参数:

sExpression:  必选项。字符串(String)。要被执行的代码。

sLanguage :  必选项。字符串(String)。指定执行的代码的语言。默认值为 Microsoft JScript

使用时,前面的"window"可以省略不写!

利用它我们可以很好的运行编码后的JavaScript代码,如下:

<SCRIPT LANGUAGE="JavaScript">

execScript("#@~^FgAAAA==@#@&lsDD`J黑客防线r#p@#@&FgMAAA==^#~@","JScript.Encode")

</SCRIPT>

你可以利用方法二对其中的""号内的字符串再进行编码,使得"JScript.Encode"以及编码特征码"#@~^"不出现,效果会更好!

四:任意添加NUL空字符(十六进制00H)

一次偶然的实验,使我发现在HTML网页中任意位置添加任意个数的"空字符",IE照样会正常显示其中的内容,并正常执行其中的JavaScript 代码,而添加的"空字符"我们在用一般的编辑器查看时,会显示形如空格或黑块,使得原码很难看懂,如用记事本查看则"空字符"会变成"空格",利用这个原理加密结果如下:(其中显示的"空格"代表"空字符")

<S C RI P T L ANG U A G E =" J a v a S c r i p t ">

a l er t (" 黑 客 防 线")

</ SC R I P T>

如何?是不是显得乱七八糟的?如果不知道方法的人很难想到要去掉里面的"空字符"(00H)的!

五:无用内容混乱以及换行空格TAB大法

在JAVASCRIPT代码中我们可以加入大量的无用字符串或数字,以及无用代码和注释内容等等,使真正的有用代码埋没在其中,并把有用的代码中能加入换行、空格、TAB的地方加入大量换行、空格、TAB,并可以把正常的字符串用"\"来进行换行,这样就会使得代码难以看懂!如我加密后的形式如下:

<SCRIPT LANGUAGE="JavaScript">

"xajgxsadffgds"1234567890

625623216var $=0alert//@$%%&*()(&(^%^

//cctv function//

(//hhsaasajx xc

/*

asjgdsgu*/

"黑\

\

客\

防线"//ashjgfgf

/*

@#%$^&%667r45fggbhytjty

*/

//window

)

"#@$#%@#432hu"212351436

</SCRIPT>

至少如果我看到这样的代码是不会有心思去分析它的,你哪?

六:自写解密函数法

这个方法和一、二差不多,只不过是自己写个函数对代码进行解密,很多VBS病毒使用这种方法对自身进行加密,来防止特征码扫描!下面是我写的一个简单的加密解密函数,

加密代码如下(详细参照文件"加密.htm"):

<SCRIPT LANGUAGE="JavaScript">

function compile(code)

{

var c=String.fromCharCode(code.charCodeAt(0)+code.length)

for(var i=1i<code.lengthi++){

c+=String.fromCharCode(code.charCodeAt(i)+code.charCodeAt(i-1))

}

alert(escape(c))

}

compile('alert("《黑客防线》")')

</SCRIPT>

运行得到加密结果为:

o%CD%D1%D7%E6%9CJ%u9EF3%uFA73%uF1D4%u14F1%u7EE1Kd

相应的加密后解密的代码如下:

<SCRIPT LANGUAGE="JavaScript">

function uncompile(code)

{

code=unescape(code)

var c=String.fromCharCode(code.charCodeAt(0)-code.length)

for(var i=1i<code.lengthi++){

c+=String.fromCharCode(code.charCodeAt(i)-c.charCodeAt(i-1))

}

return c

}

eval(uncompile("o%CD%D1%D7%E6%9CJ%u9EF3%uFA73%uF1D4%u14F1%u7EE1Kd"))

</SCRIPT>

七:错误的利用

利用try{}catch(e){}结构对代码进行测试解密,虽然这个想法很好(呵呵,夸夸自己),因为实用性不大,我仅给个例子

<SCRIPT LANGUAGE="JavaScript">

var a='alert("《黑客防线》")'

var c=""

for(var i=0i<a.lengthi++){

c+=String.fromCharCode(a.charCodeAt(i)^61)}

alert(c)

//上面的是加密代码,当然如果真正使用这个方法时,不会把加密写上的

//现在变量c就是加密后的代码

//下面的函数t()先假设初始密码为0,解密执行,

//遇到错误则把密码加1,然后接着解密执行,直到正确运行

var d=c//保存加密后的代码

var b=0//假定初始密码为0

t()

function t(){

try{eval(c)}catch(e){

c=""

for(var i=0i<d.lengthi++){

c+=String.fromCharCode(d.charCodeAt(i)^b)}

b+=1

t()

//setTimeout("t()",0)

}

}

</SCRIPT>