2007年12月5日星期三

Opera~~~世界最快浏览器

Opera 9.24 简体中文优化正式版

用Opera浏览那些含有木马、病毒代码和恶意代码的网站和网页均不会中毒!因为Opera具有极高的安全性!是您安全上网的理想浏览器!让您彻底远离弹出窗口和恶意网页以及网页广告的困扰!

软件大小:6.27MB
运行环境:Win9x/Me/NT/2000/XP
发布时间:2007-12-5
软件语言:简体中文
插件情况:无任何流氓软件、病毒和木马以及广告程序

下载地址:http://w14.easy-share.com/12002981.html
(注:下载是请耐心等待几秒)

这是完全免费的标签式多页面浏览器——在一个窗口中打开多个网页!不带任何广告条!在功能和时间上没有任何限制!而且是免安装的绿色版!还可以放到U盘等移动设备中做为便捷式浏览器使用!

  Opera是当之无愧的世界上最快的浏览器,但由于网页中存在着大量占用带宽的广告,所以导致Opera在浏览部分网页时的速度优势并不十分明显,而且其在使用习惯和字体显示上也并不太适合于中国人使用,为此,我们做了这个优化版出来(自Opera宣布免费以后国内起步最早的优化版)以解决这些问题,努力打造最适合中国人使用的Opera!(此次重新编写了使用说明,建议阅读以提高操作效率!)

  此版本是在9.24正式版的基础上进行的优化,大幅降低了对CPU和内存等资源的占用率!而且我们加入了“View in IE”按钮以解决那些Opera无法正常浏览的网页!我们还加入了实用的鼠标超级拖拽功能(可拖链接和图片)!另外,右键中加入了对网际快车和迅雷的支持(具体方法见压缩包中的“使用说明”)!而且已经可以正常播放绝大多数的在线视频和音频了!那些锁鼠标右键和加水印以及点广告后才能看到相关内容的网站,也可用优化版直接浏览,默认情况下已经自动去掉了这些限制!

  Opera具有自己的独立内核(Presto),并不是使用IE和Gecko等内核的浏览器!安全性非常高,完美支持包括SSL 1/2/3以及TLS在内的各种安全协议,支持256位加密,还可以抵御恶意代码攻击、钓鱼攻击等网络攻击!使用Opera上网,是目前最安全的选择!让您彻底远离弹出窗口和恶意网页以及网页广告的困扰!

下面用两个图对比一下,一个是OPERA的,一个是IE的,打开的都是同一画面!




从图中我们不难看出该优化版本没有从网站上下载一个广告!这将大大地提高您的浏览效率和打开网页的速度!

阅读全文

Opera 9

当您网上冲浪的时候 Opera 能给您最强劲的动力。它是目前最快、最安全和最容易使用的浏览器。我们将 Opera 设计成能适合您的生活 - 无论您想要的是更多的乐趣、完成更多的工作还是用它来表达您的风格。
欺诈保护
Opera 的高级的欺诈保护功能可以防止您的个人信息被不正当网站窃取。
BitTorrent
您并不需要另外的 BitTorrent 应用程序来下载大型文件。直接点击种子链接就可以开始下载。
内容阻止
移除广告或图像 - 您可以自己作主。右键点击(Mac:CTRL + 鼠标左键点击)网页并选择“内容阻止”。
添加您喜欢的搜索引擎
右键点击网站的搜索栏并在菜单中选择"创建搜索"。
缩略图预览
在 Opera 中同时打开多个标签页非常容易。但哪个页面才有您想要的视频?将您的鼠标停留在任意标签上可以预览网页的缩略图。
站点首选项
想用不同的方式查看站点或拒绝特定的 cookie?想只阻止某个网站的弹出窗口?右键点击并选择"编辑站点首选项"
Widget
使您的桌面体验更有趣的小网络应用程序(多媒体、新闻推送、游戏以及更多)。使用 Widget 菜单可以发现新的 widget 并找到您最喜欢的。
更强大的富文本编辑功能
在当今最流行的网络应用程序上使用先进的文本编辑功能。
高效浏览
下载管理器
通过一个简单的下载管理器窗口您可以查看下载进程并访问所有您下载的内容。
标签式浏览
使用相同的应用程序窗口打开多个网页可以使浏览更简单、更快速。


密码管理器
密码管理器可以代替您记住您的用户名和密码。
内置搜索
使用内置的搜索栏可以搜索 Google、eBay、Amazon 以及更多网站。您也可以使用关键字(比如 Google 用“g“)直接在地址栏内进行搜索。
阻止弹出窗口
Opera 允许您控制是否阻止所有弹出窗口,或打开您所请求的那些弹出窗口。
鼠标手势
Opera 支持鼠标手势,允许您利用鼠标特定的移动来使用常用的特性。
快速前进
快速前进将检测最可能的“下一页”链接并大大简化多页面文档(搜索结果或图相册)之间的导航。
进程
将所有打开的标签页储存为一个进程以便以后访问,或以您上次关闭时浏览的网页打开 Opera。
快速首选项
按 F12 显示“快速首选项”目录,通过它您可以快速切换弹出窗口、cookie 首选项以及其他更多的设置。
笔记
笔记可以和您稍候希望引用的网站一起保存,或提醒您任何您想再次浏览的特殊的信息。
语音
语音特性可以让您利用说话来控制 Opera 的界面也可以大声读出文档。语音目前提供英文版本并且运行在 Windows 2000 和 XP 上。
键盘快捷方式
键盘快捷方式 - 和鼠标手势一样 - 可以让您更快速、高效的浏览。了解更多关于 Opera 中的所有键盘快捷方式。
回收站
如果您意外关闭了某个标签页,您可以从回收站中重新取回它。这对被阻止的弹出窗口也有效。
安全和隐私
安全条
Opera 在地址栏内显示安全信息。锁头图标能指示网站的安全等级。
加密
Opera 支持 Secure Socket Layer (SSL) 版本3、 TLS 1.0 和 1.1。Opera 支持网络的最强加密标准,256位加密。
删除私人数据
您可以在退出时清除历史记录和缓存,以保护您的隐私。通过工具> 删除私人数据, 私人数据可以在任意时间很容易的被删除。
Cookie 控制
您可以详细控制接收或拒绝哪些cookies,包括对不同服务器选择不同的配置。
邮件和聊天
Opera 邮件
我们内置的 POP/IMAP E-mail 客户端是一个联合的 e-mail 应用程序、新闻阅读器、邮件列表管理器和 RSS/Atom 新闻推送阅读器。
IRC 聊天
使用 Opera 的 IRC 聊天客户端您可以和世界各地的人进行交流。和您的朋友、家人私聊或在房间中聊天,或共享文件。
自定义
拖拽和放下
要添加、删除或重新安排按钮、搜索栏和工具条,转到工具 > 外观。
皮肤
皮肤可以使您的浏览器的外观符合您的需要。您可以自己选择按钮、颜色和风格以亲自定制浏览器。
语言
Opera 被翻译成了多种语言,通过工具 > 外观 > 一般可以实时更改语言。
易用性
缩放
您可以将任意网页上的内容缩小到20%或放大到1000%。
字体大小和颜色
在工具 > 外观 > 网页中您可以更改字体的大小和颜色、链接的风格或背景颜色。
用户自定义样式表
Opera 自带了一组样式表,包括包含辅助功能的样式表。
网络开发
标准支持
我们自豪,因为我们支持所有目前使用中的主要网络标准,包括 CSS 2.1, XHTML 1.1, HTML 4.01, WML 2.0, ECMAScript, DOM 2 和 SVG 1.1 基础。
小屏幕模式
当在小屏幕模式(Shift+F11)下显示网页的时候,您可以看到网页在手机或其它运行 Opera 的小屏幕设备上的运行效果。
校验源代码
您可以用 Ctrl+Alt+V 校验任何网页的源代码。
触发图片和风格表单
通过工具条和快捷方式图片和风格表单可以被触发为开/关。
信息面板
信息面板显示当前打开网页的详细信息,例如MIME类型、页面大小、字符编码以及更多。
从缓存中重载
编辑任何打开网页的源文件并实时查看结果。转到工具 > 高级。
特殊功能
全屏模式
按 F11 可以触发 Opera 的投影模式,使用整个屏幕进行浏览,并且如果有投影风格表单的话,将显示适合发表的“幻灯片”。
Kiosk 模式
Opera 支持 kiosk 模式 - 一种锁定模式,这种模式可用于公共场所的电脑。

阅读全文

2007年12月4日星期二

新一代超级电脑有望明年问世 运算1000兆/秒

根据美国专家表示,新一代的超级电脑很可能在明年问世,其每秒浮点运算次数可高达1000兆次,大约是位于美国加州劳伦斯利佛摩国家实验室中的“蓝基因/L”电脑的2倍快。这种千兆级超级电脑的超强运算能力很可能加速各种科学研究的方法,促成科学重大新发现。

根据华盛顿邮报3日报导指出,千兆级电脑的运算能力相当于逾一万台桌上型电脑的总和,在普通个人电脑上得穷毕生时间才能完成的运算,在现今的超级电脑上大概得花5小时完成,若使用千兆级电脑则仅需2小时。

在新一代的超级电脑中,以美国IBM公司与美国能源部在洛萨拉摩斯国家实验室所共同打造的“路跑者”(Roadrunner )超级电脑最有希望率先完成,这台电脑运算时所耗费的电量也高达400万瓦,足以点亮一万颗灯泡。
但科学家认为,路跑者及其他超级电脑的运算功能可大幅增进电脑的模拟能力,未来包括气候变迁、地质学、医学新药研发、天文学等各类进行直接实验观察过于费时、危险或无法实现的科学领域,都可望藉由新超级电脑而出现重大发展。


事实上,有些专家主张,新世代超级电脑及其模拟运算功能之强大,传统上科学研究从理论到假设再到实验证明的研究步骤可能从此改观,未来的科学研究将无法再忽略电脑运算,科学家可用电脑模拟来取代实验并获得相关资料,其中又以气候变迁的相关研究可能受惠最多;届时令人担心的反而是美国航太总署(NASA )的气象卫星已太过老旧,无法提供足够的资料让电脑运算。

千兆级超级电脑还可能预测地震对大城市中每一栋建筑所可能产生的影响,在无需实际进行核子测试的情况下评估美国库存核武的可靠性、安全性与效能,或模拟星球爆炸成超新星后死亡的过程,对实验药物及其功能进行更精细的分析,模拟禽流感病毒的演化以协助科学家及时研发出疫苗,甚至协助华尔街分析家计算金融工具的风险。

阅读全文

单片机入门的几点建议

单片机的重要性在后PC时代逐渐加重了,现在更多的电子设计者和爱好者讨论最多的话题莫过于嵌入式系统的设计,C51、VHDL、RTOS、CPLD、 FPGA、DSP、ARM已是当今挂在电子工程师嘴边最多的几个词,由于工艺的进步,家庭智能化已不是空中楼阁,其中功能越来越强大、体积越来越小、成本越来越低的MCU出现正是这场革命的推动者。那么,做为一个电子设计者、爱好者以及即将成为电子工程师的在校学生,为了迎接这常革命,或者说为了找到一份自己心仪的工作,我们应该具备哪些知识呢?面对这么多必须的技术,作为一个初学者我们又该从何学起?学好这些东西的代价如何?等等…….,这些都是前段时间朋友们问我最多的问题了,由于时间关系,我就不一一回信做答了,这里就写写我走过的路和一些个人心得,希望对同仁们有所启发。

  我是97年开始接触电脑的,那时我对电脑的概念几乎为0,开始是从QB(VB的前身)学起,比较幸运吧,我认为这是最适合初学者的语言了,虽然刚开始我什么都不懂,就是直到现在我也没认真的写过一段VB的程序,可是它给了我很多概念性的东西,也是我C的入门老师了。我比较笨,所以始终认为学东西一步一步来,从浅到深,没学好不要紧,但是概念的东西要把握住,最好入门时有人教或有现成的东西摹仿,这样最省时间,也比较有成就感而少了一些挫败。
我的专业是测控技术,万金油,什么都学,什么都半桶水的那种。不过出来做了几年开发的工作后,我发现我的专业还是比较好的,比较势利的说就是更切中于市场,总结现阶段电子设计工程师必需的技术和技能,我认为有以下几点:1是大学里学习的最基础的东西,包括电路、数电、模电,当然还有高等数学和英语了,重要性我就不强调了,不过还得说说E语,害死人的东西了,没办法,谁让现在的技术资料全都是E文的,翻译的知识不是过时就是不知其所云,对一项新技术掌握的程度和速度——这是一项非常重要的能力,否则你只能吃别人的剩饭。2是单片机和C语言,这是电子工程师的工具,不学不行,不过刚学习时不要贪多,也不要好高务远,老老实实的一步一步来,多动手,要重视概念,东西都是相通的,会了C51转到AVR C也就不用一个星期了,具体项目设计时根据各种单片机的特点进行选择就行了。我是从8031开始学的,纯理论,就是上机实验也是听出来的,那时候C51可没出来呢,中国大学的弊端啊,经费少,设备陈旧,老师光说不练,打击积极性啊。真正的动手是从到公司工作开始的,自己学PROTEL(这也是必需的,就不用我废话了)再用公司的钱画板(***人的钱,不用白不用),然后照书上抄例子,具体的学习过程请看下文专门介绍。3点必需知识是CPLD/FPGA设计,我个人用途最多的是在结构化设计方面,CPLD非常灵活,有着很多独特的用途(篇幅有限,我就不多介绍,请看网站的相关文章),随着工艺的进步,价格在一步一步的走低,相信不久它会象单片机一样遍地开花的。 4点必备的知识是嵌入式操作系统,如KEIL的TINY OS,Ucus,Ulinux,因为你不可能整天围着低端产品转吧,相信有一天你会用到16位 32位的单片机,这时候你就不能老用C51的编程思想了,试想C++用在单片机里的快感吧:)5是DSP了,我精力有限,选修,呵呵,就不多说了。


  总之,小平同志说了,不管黑猫白猫,抓住老鼠的就是好猫。在产品设计时也是一样,只要你知识全面,在设计时综合考虑,灵活应用,只要是最符合的就是最好的,不过这需要更多的知识作为后盾的:)前面废话太多,还是转回单片机入门的话题吧。

  我是从8031开始的,学习时有一点微机原理的知识,8086那种,学校里就只能教这些落伍的但最基础的东西了,数电和模电那时也是有点概念的,所以我个人认为我单片机入门是比较快的。刚开始我们学的是51的基本原理、架构,后来就是指令集,我的老师是汇编专家,所以扣的东西很细,哪个指令执行几个周期啊、直接寻址间接寻址的区别啊,ACALL、LCALL有什么不一样啊等等,这些问题都要求我们深刻到心,所以说初学者有高手(起码要老手)指点,如果一点概念都没有就想靠自学成才是非常难的,不过出来后发现这些东西用的较少,可是对加深理解倒是非常有帮助的。学校里学的东西主要是有一个概念,练习编程也主要是看别人的程序,就算是上机也是把别人的程序抄进去后编译完成就行了(有时候程序可不都对,能编译出来也不容易啊:) ),因为那时实验设备较贵,中国领导人急功近利,对一般教育投入的基金不多,所以就算我是科班出身,但是编程器也是工作后才开始用到的,那时只知道有编程器这样的一个把HEX文件写进单片机里的东东,仿真器倒是有几个,不过是老师的实验品,限制很多,什么P0、P2口不能做IO口,EA脚仿真时要接地啊,很烦人,所以到现在为止我对仿真器都有排斥,其实没仿真器也有好处的,我的几个比较大的项目就是在没仿真器的情况下完成的。学习知识动手是少不了的,特别是应用性的知识,不多动手绝对是行不通的。
   我学习单片机真正的动手是从工作后开始,自己学PROTEL,然后用公司的钱画了板(花了400元,深圳价),接着找现成的程序编译后烧进单片机里验证,不过这时候已没人教你了,工作后就是这样,虽然公司招人时说有培训,但那只限于特定的知识。我第一次实验就连晶振都不起震,对着书画的板的,一切没错啊,弄了两天,问了很多人,跳了几条线,最后把书上画的33PF的电容换成22PF的就OK了,就这么简单的问题却搞的我灰头灰脑的,后来照书上的程序又运行了几个,很少有现成就能用的,花的时间不少,倒是有一个和我一起进公司的同事,他没有基础,所以买了一个学习开发板,最后学起来入门的好象比我快,可能是我比较笨吧:) 可是在买开发学习板时也是出了问题的。下面就是我针对自己和别人在学习中出现的问题向初学者提几个建议:
   1、 学好单片机要花多少钱?
   这个是大家关心的问题,现在没钱就做不了事的,大学的学费都会使某些家庭家破人亡呢(说笑了)。总体来说学习单片机从89C51开始比较好,最基础,学的人多,问的地方也多,盗版的东西也多。学习51需要一个程序编译器,KEIL的C51大名鼎鼎,7.04版盗版的都出来了,对学习来说盗就盗一回吧,这一项花销是0。编程器呢?我想你是比较幸运的,现在有ISP下载的单片机,可以在线下载程序,这是现在技术的趋势,学习和小批量的产品用这个都可以了,89S51、52、53都支持ISP下载功能,AVR的单片机大部分也都支持,我最反对个人买编程器的,特别是买一些杂牌的,能省则省,这一项只买一个下载线就行了(自己做也行,不过不会给你省钱的,事也不少),20钱。在有就是一块DEMO板了,自己做也可以,不过就是自己做最简单的也要100多,我是反对初学者自己做板的,精力废不起,你是要学单片机的不是学PROTEL的,再说初学者很少有一次就搞定板的。现在DEMO板很多,这部分是主要花钱的地方,100到700都有,关键是结合自己的情况了。有钱的还可以找辅导,1000元左右吧。所以我说学习单片机只要花100到2000元就行了,关键是看自己怎么想了。
   2、 DEMO板选择要注意的问题
    现在板子很多,档次和价格也很多。选DEMO版主要注意2点,<1>是功能,板子最好采用模块化设计,每个模块都要和单片机独立分开,留出引线,这样一来实验时可以动手插线,加深电路的认识,也给以后开发时留有余地,另外单片机的管脚也都要连出来,作用也和上面的一样,这样的学习板以后可以做开发板用,还有一定要有ISP接口啊。仿真功能可以不要,那也要花钱的,在有了ISP接口下载后其做用真的很小了,有时侯仿真功能出了问题更难找(不用仿真器的调试方法请看本站的相关文章)。不要只关心价格,既然要买最关心的应该是自己最需要什么。如果没钱或爱好者可以选功能少的,专业人士我想最好一次性买功能全的,以后做项目时可以当开发板用,不用花第一次开板的钱,我想带有CPLD和多CPU的最适合了,可编程的器件多以后的用处就多,不要学完后板就没用了。对了,板的尺寸一定要关心,不要只看介绍上的照片啊,我就上了一次当。<2>点关心的是帮助文档,这可是关键的地方,花了钱买了东西,听他吹的功能很多很多,回来发现帮助文档简简单单,可照着操作的东西没有,你还得从新摸索一遍,这样你的钱不就白花了,更有甚者给你的例子程序都是错的,那你就哭吧,对于初学者,那你就跳楼吧。这可是重点的,因为现在做DEMO板的人多,利润低,很多人都是抄的,可能他本人都没上机试过,你别只听他说有论坛支持,那是虚的东西,只有论坛支持那你直接上论坛去算了,干嘛要花这钱?技术支持也重要,但不能寄托在这上,试想那么多人有那么多问题,他该理会哪个好呢?所以关键还是要看文档,不要看有多少资料,要看是不是开发者本人写的,用心不用心,可照着上面的步骤操作吗?

阅读全文

JAVA程序模拟器安装及使用详细教程

大家有没有这样的体会呢?费了半天劲把JAVA游戏传到手机里,或者是按键有问题,或者是不能全屏,还有的甚至是根本就不能玩。结果又得删除,再重新装别的游戏,浪费时间,破坏心情。现在好了,只要你安装了JAVA程序模拟器,就可以先在电脑上预玩JAVA游戏,确定没有问题之后,再传到手机里。怎么样,不错吧?下面小保就从下载,安装,使用各个方面详细讲起。小保给大家介绍的是JAVA程序模拟器5.21英文版(虽然是英文版,但是通过本教程,保证你能学会的)。

  一,下载篇

  先下载这个,SUN公司的JAVA程序开发包 http://www.rocky123.com/E398/?f=j2sdk-1_4_1_02-windows-i586.exe

  再下载这个,JAVA程序模拟器5.21版http://www.rocky123.com/E398/?f=Moto_J2ME_SDK5.2.1.exe

  二,安装篇
解压缩JAVA程序开发包后,点击这个图标,然后一路按“下一步”即可安装完成。注:这一步是必须的,如果不安装这个程序包,JAVA程序模拟器就不能使用,运行时会提示
 安装好程序开发包之后,再打开JAVA程序模拟器文件夹,点击图标,还是一路按“下一步”即可完成安装JAVA程序模拟器。
三,使用篇
安装完成后,双击这个图标,出现这样的界面,






 
 在 Handset中选择“E398或者ROKR E1”,Language默认"ENGLISH",点击“Browse",出现对话框选择你需要的JAVA游戏的.jad文件,打开。回到主界面,再按 “Launch”,出现一个DOS界面和一个E398手机的模型图,屏幕上会显示你刚刚选择的游戏,此时你就可以用鼠标(上下左右是用鼠标点击摇杆偏一点 的位置)或键盘(键盘的上下左右键和数字键)来操纵游戏了。

怎么样,很爽吧?如果游戏经过模拟器测试没有问题的话,传到手机里就不会有什么问题了。哈哈,从此你也可以在电脑上玩小E的游戏了!^_^

阅读全文

Wireless Hacking: Breaking Through

A Short Fence to Climb: Bypassing Closed ESSIDs, MAC, and Protocols Filtering


Let us explore slightly more protected WLANs. How about so-called closed networks? ESSID makes a bad shared secret. The reason is that it is not removed from all management frames. For example, reauthenticate and reassociate frames will contain the ESSID value. Thus, a network with roaming hosts will not benefit from the closed ESSIDs at all and sending a deauthenticate frame to one or more hosts on the closed WLAN is easy:

arhontus:~# ./essid_jack -h
Essid Jack: Proof of concept so people will stop calling an ssid a password.
Usage: ./essid_jack -b [ -d ] [ -c ] [ -i
ccc.gif ]

-b: bssid, the mac address of the access point (e.g. 00:de:ad:be:ef:00)
-d: destination mac address, defaults to broadcast address.
-c: channel number (1-14) that the access point is on,
defaults to current.
-i: the name of the AirJack interface to use (defaults to
aj0).

arhontus:~# essid_jack -b 00:02:2d:ab:cd: -c 11
Got it, the essid is (escape characters are c style):
"ArhOnt-X"

On a BSD platform, use the dinject-deauth utility from Wnet and sniff the passing traffic while using it.

Of course, such methodology will only work against a network with several reachable associated hosts present. In the rare case of a lonely access point, your best bet would be to guess the closed ESSID. It is surprising, but many users enable closed ESSID but do not change the actual ESSID value from the default (perhaps counting on the fact that it is not broadcasted anyway). Use the OUI, which is the first 3 bytes of the MAC address, to find out the access point manufacturer (see RFC 1700) and check the default ESSID values for the access points produced by this particular vendor and supporting closed ESSIDs. You can find these values and many other interesting facts in Appendix H.

MAC filtering is also trivial to bypass, even though we have seen some wi-fi inexperienced security consultants claiming it to be a good protection – shame on you guys. Sniff the network traffic to determine which MAC addresses are present. When the host quits the network, assume it's MAC and associate. You can also change your MAC and IP address to the same values as those on the victim's host and coexist peacefully on the same (shared) network (piggybacking). Surely you would need to disable ARPs on your interface and go to Defcon 1 with your firewall. You would also have to be careful about what traffic you send out to the network to prevent the victim host from sending too many TCP resets and ICMP port unreachables, so their rare and megaexpensive knowledge-based IDS does not get triggered. You should try to restrict your communications to ICMP when communicating with the outside world. You can use any Loki-style ICMP-based backdoor (e.g., encapsulate data in echo replies or any other ICMP types that do not illicit responses). If you want to enjoy full network interoperability, you don't have to wait for the host to leave and can simply kick it out. Such action might lead to user complaints and an IDS alarm, in particular if WIDS is in place, but who cares, especially since you urgently need to check the latest posts at http://www.wi-foo.com. Therefore, try to use your common sense and pick a host that does not seem to generate any current traffic and send it a deassociate frame spoofing your MAC address as an access point. At the same time, have a second client card plugged in and configured with the MAC of a target host and other WLAN parameters to associate. It is a race condition that you are going to win, because no one can stop you from flooding the spoofed host with deassociate frames continuously. To flood the host with deassociate frames from Linux you can use wlan_jack:

arhontus:~# ./wlan_jack -h
Wlan Jack: 802.11b DOS attack.

Usage: ./wlan_jack -b [ -v ] [ -c
] [ -i ]
-b: bssid, the mac address of the access point (e.g.
00:de:ad:be:ef:00)
-v: victim mac address, defaults to broadcast address.
-c: channel number (1-14) that the access point is on,
defaults to current.
-i: the name of the AirJack interface to use (defaults to
aj0).

arhontus:~# ./wlan_jack -b 00:02:2d:ab:cd: -v 00:05:5D:F9:ab:cd -c 11
Wlan Jack: 802.11 DOS utility.

Jacking Wlan...




Alternatively, you can employ File2air. If running HostAP drivers, you can launch Void11 or craft your own frames with Libwlan. Another way of flooding the host with deassociate frames is using Mike Schiffman's omerta utility under HostAP and employing the Libradiate library. In this book we do not describe Libradiate, because it ceased to be supported more than a year ago and at the moment omerta is probably the only tool worth mentioning here that employs Libradiate. On the OpenBSD platform you can employ the dinject-disas utility, perhaps run from a simple looping shell script. Finally, a different way of launching very efficient DoS attacks with AirJack is using fata_jack. Please consult the wireless DoS attacks section at the end of this chapter to learn more about it.

Just to remind you how to change a MAC address when you need it:

# ifconfig wlan0 hw ether DE:AD:BE:EF:CO:DE     (Linux ifconfig)
# ip link set dev wlan0 address DE:AD:BE:EF:CO:DE (Linux iproute)
# ifconfig wi0 ether DEADBEEFCODE (FreeBSD)
# sea -v wi0 DE:AD:BE:EF:CO:DE (OpenBSD)

Sea is a separate utility that does not come with OpenBSD but can be found at http://www.openbsd.org.

Protocol filtering is harder to bypass. Unfortunately for system administrators and fortunately for attackers, very few access points on the market implement proper protocol filtering and they tend to be high-end, expensive devices. Also, protocol filtering applies only to a few specific situations in which user activity is limited to a narrow set of actions, for example, browsing a corporate site through HTTPS or sending e-mails via Secure Multipurpose Internet Mail Extensiosn (S/MIME) from PDAs given to employees for these aims specifically. SSH port forwarding might help, but you have to be sure that both sides support SSHv2.

The main attacks against networks protected by protocol filtering are attacks against the allowed secure protocol (which might not be as secure as it seems). Good examples of such insecurity are well-known attacks against SSHv1 implemented in Dug Song's Dsniff by the sshow and sshmitm utilities. Whereas sshow can help an attacker disclose some useful information about the bypassing SSH traffic (e.g., the authentication attempts or length of transmitted passwords or commands with both SSHv1 and SSHv2 traffic), sshmitm is a powerful man-in-the-middle for SSHv1 utility that allows SSHv1 password login capture and connection hijacking attacks. Unfortunately, although the majority of complete networked operational systems currently support SSHv2, SSHv1 is often the only choice available to log in to routers, some firewalls, and other networking devices and this is still preferable to telnet or rlogin. On wired networks, traffic redirection via DNS spoofing is necessary for sshmitm to work. However, Layer 2 monkey_jack-style man-in-the-middle attacks can successfully replace DNS spoofing on 802.11 links, leaving fewer traces in the network IDS logs unless a proper wireless IDS is implemented (which is rarely the case).

The creator of Dsniff did not leave HTTPS without attention as well. webmitm can transparently proxy and sniff HTTPS traffic to capture most of the "secure" SSL-encrypted Web mail logins and Web site form submissions. Again, dnsspoof traffic redirection for webmitm can be substituted by a wireless-specific man-in-the-middle attack, raising fewer system administrators' eyebrows. Another remarkable man-in-the-middle tool specifically designed for attacking various SSL connections (HTTPS, IMAPS, etc.) is Omen. Just like webmitm, more information on using Omen follows in the next chapter.

If network designers and management decided to rely on SSH, HTTPS, and so on as their main line of defense and did not implement lower-layer encryption and proper mutual authentication (e.g., 802.1x/EAP-TLS or better), you might not even have to attack Layer 6 security protocols. Nothing would stop a cracker from associating with the target network, running a quick nmap scan, and launching an attack against the discovered sshd (e.g., using sshnuke to exploit the CRC32 vulnerability, if you want to be as 1337 as Trinity). Of course, the real-life CRC32 bug was patched eons ago, but new sshd vulnerabilities tend to appear on a regular basis. As for HTTPS security, the latest CGI vulnerability scanners support HTTPS (e.g., Nikto with the -ssl option) and in the majority of cases the difference in exploitation of the discovered CGI holes over the HTTPS protocol is limited to changing the target port to 443 from 80 or piping data through stunnel.

Finally, a desperate cracker can always resort to brute force. There are a variety of utilities and scripts for SSH brute forcing: guess-who, ssh-crack, ssh-brute.sh, 55hb_v1.sh, and so on. With SSL-protected Web logins you can try the php-ssl-brute script. Although brute forcing leaves telltale multiple login signs in the logs, wireless attackers might be unconcerned, as it is more difficult to locate and prosecute a cracker on a WLAN anyway. Although brute force is both time and battery power consuming for a mobile wireless attacker, if it is the only choice available, someone will eventually give it a try and perhaps succeed.


阅读全文

Wireless Security Tools

Wireless networking technologies present significant risks to an organization and highlight networking threats that have been ignored. Without a doubt, wireless technologies provide significant benefits over wired ones, but the security challenges incurred must be addressed. To try to help others understand and/or mitigate wireless security risks, I would like to list several of the tools I have found to be the most useful. If for nothing else, wireless security has been a lot of fun.

Papers

NIST Wireless Network Security
http://cs-www.ncsl.nist.gov/publications/nistpubs/800-48/NIST_SP_800-48.pdf

Cisco 802.11 Wireless LAN Security White Paper
http://www.cisco.com/warp/public/cc/pd/witc/ao1200ap/prodlit/wswpf_wp.pdf


Wireless Detection Tools

Kismet
http://www.kismetwireless.net

gKismet - GUI for Kismet
http://gkismet.sourceforge.net

Netstumbler
http://www.netstumbler.com

Wellenreiter
http://www.remote-exploit.org


Wireless Exploits

Airsnort
http://airsnort.shmoo.com





Void11
http://www.wlsec.net/void11

AirJack (wlan-jack, essid-jack, monkey-jack, kracker-jack)
http://802.11ninja.net

WepAttack
http://wepattack.sourceforge.net


Other Relevant Tools

Ethereal
http://www.ethereal.com

GPSDrive
http://gpsdrive.kraftvoll.at

Wireless Access Point Utilities for Linux
http://ap-utils.polesye.net/


Web Sites

Nutstumbler.com
http://www.netstumbler.com

Wigle.net
http://www.wigle.net

WiFiMaps.com
http://www.wifimaps.com


Drivers

Orinoco Patch for Monitor Mode
http://airsnort.shmoo.com/orinocoinfo.html

HostAP (Prism Drivers)
http://hostap.epitest.fi/

PCMCIA
http://pcmcia-cs.sourceforge.net/

Atheros ar5k 802.11a
http://team.vantronix.net/ar5k/

MadWiFi
http://sourceforge.net/projects/madwifi/

wlan-ng
http://www.linux-wlan.com/linux-wlan/


Antennas

Pringles Can Antenna (Antenna on the Cheap by Rob Flickenger)
http://www.oreillynet.com/cs/weblog/view/wlg/448

Yuban Antenna (The Essence of Community Wireless by Rob Flickenger)
http://www.oreillynet.com/pub/wlg/1124

Misc

World Wide War Drive
http://www.worldwidewardrive.org/

Blackhat Briefings
http://www.blackhat.com


阅读全文

ARM中文指令--寄存器和处理器模式

ARM 处理器有二十七个寄存器,其中一些是在一定条件下使用的,所以一次只能使用十六个... 寄存器 0 到寄存器 7 是通用寄存器并可以用做任何目的。不象 80x86 处理器那样要求特定寄存器被用做栈访问,或者象 6502 那样把数学计算的结果放置到一个累加器中,ARM 处理器在寄存器使用上是高度灵活的。 寄存器 8 到 12 是通用寄存器,但是在切换到 FIQ 模式的时候,使用它们的影子(shadow)寄存器。 寄存器 13 典型的用做 OS 栈指针,但可被用做一个通用寄存器。这是一个操作系统问题,不是一个处理器问题,所以如果你不使用栈,只要你以后恢复它,你可以在你的代码中自由的占用 (corrupt)它。每个处理器模式都有这个寄存器的影子寄存器。 寄存器 14 专职持有返回点的地址以便于写子例程。当你执行带连接的分支的时候,把返回地址存储到 R14 中。同样在程序第一次运行的时候,把退出地址保存在 R14 中。R14 的所有实例必须被保存到其他寄存器中(不是实际上有效)或一个栈中。这个寄存器在各个处理器模式下都有影子寄存器。一旦已经保存了连接地址,这个寄存器就可以用做通用寄存器了。 寄存器 15 是程序计数器。它除了持有指示程序当前使用的地址的二十六位数之外,还持有处理器的状态。 为更清晰一些... 提供下列图表:

User 模式 SVC 模式 IRQ 模式 FIQ 模式 APCS R0 ------- R0 ------- R0 ------- R0 a1 R1 ------- R1 ------- R1 ------- R1 a2 R2 ------- R2 ------- R2 ------- R2 a3 R3 ------- R3 ------- R3 ------- R3 a4 R4 ------- R4 ------- R4 ------- R4 v1 R5 ------- R5 ------- R5 ------- R5 v2 R6 ------- R6 ------- R6 ------- R6 v3 R7 ------- R7 ------- R7 ------- R7 v4 R8 ------- R8 ------- R8 R8_fiq v5 R9 ------- R9 ------- R9 R9_fiq v6 R10 ------ R10 ------ R10 R10_fiq sl R11 ------ R11 ------ R11 R11_fiq fp R12 ------ R12 ------ R12 R12_fiq ip R13 R13_svc R13_irq R13_fiq sp R14 R14_svc R14_irq R14_fiq lr ------------- R15 / PC ------------- pc 最右侧的列是 APCS 代码使用的名字,关于 APCS 的详情参见这里。  程序计数器构造如下: 位 31 30 29 28 27 26 25------------2 1 0 N Z C V I F 程 序 计 数 器 S1 S0 对 R15 的详细解释,请参见 psr.html。下面是你想知道的"模式",比如上面提及的"FIQ"模式。 用户模式,运行应用程序的普通模式。限制你的内存访问并且你不能直接读取硬件设备。超级用户模式(SVC 模式),主要用于 SWI(软件中断)和 OS(操作系统)。这个模式有额外的特权,允许你进一步控制计算机。例如,你必须进入超级用户模式来读取一个插件(podule)。这不能在用户模式下完成。 中断模式(IRQ 模式),用来处理发起中断的外设。这个模式也是有特权的。导致 IRQ 的设备有键盘、 VSync (在发生屏幕刷新的时候)、IOC 定时器、串行口、硬盘、软盘、等等...
快速中断模式(FIQ 模式),用来处理发起快速中断的外设。这个模式是有特权的。导致 FIQ 的设备有处理数据的软盘,串行端口(比如在 82C71x 机器上的 A5000) 和 Econet。 IRQ 和 FIQ 之间的区别是对于 FIQ 你必须尽快处理你事情并离开这个模式。IRQ 可以被 FIQ 所中断但 IRQ 不能中断 FIQ。为了使 FIQ 更快,所以有更多的影子寄存器。FIQ 不能调用 SWI。FIQ 还必须禁用中断。如果一个 FIQ 例程必须重新启用中断,则它太慢了并应该是 IRQ 而不是 FIQ。 Phew! 关于如果变更处理器的模式的详情请参照 psr.html。


这里的许多信息取自 ARM 汇编器手册。我现在没有 32 位处理器,就只能信任文档了... 这个文档中表述的 UMUL 和 UMLA 只能在 32bit 模式下进行是错误的。如果你的处理器(比如: StrongARM)可以这么做,则它可以在 32bit 或 26bit 下工作... ARM2 和 ARM3 有一个 32 位数据总线和一个 26 位地址总线。在以后版本的 ARM 上,数据总线和地址总二者都是完全的 32 位宽。这解释了为什么一个“32 位处理器”被称为 26 位。数据宽度和指令/字大小是 32 位,并总是这样,但地址总线只是 24 位。因为 PC 总是字对齐的,一个地址中的低两位总是零,所以在 ARM2/ARM3 处理器上这些位持有处理器模式设置。尽管实际上只使用了 24 位,PC 的有效宽度仍是 26 位。 在老机器上这没有问题。4Mb 内存是基准的。一些人升级到 8Mb、和 16Mb 是理论上的限制。(Some people upgraded to 8Mb, and 16Mb was the theoretical limit.) 但是 RiscPC 使用一个 26 位程序计数器是不可能的,因为 RiscPC 允许安装 258Mb 内存,而 26 位只允许你寻址到 %11111111111111111111111100 (或 67108860 字节,或 64Mb)。这附带的解释了对应用任务的 28Mb 大小限制;就是希望系统与老的 RISC OS API 相容。 尽管这个汇编器站点的某些部分覆盖了 32 位模式(比如运行在 SVC32 下的一个简要的例子!),但多数部分是关于 26 位模式操作的,这是为了与 RISC OS 的当前可获得的版本相兼容(就是 RISC OS 2 到 RISC OS 4);我注意到部分例子不适用于 32 位。RiscPC、Mico、RiscStation、A7000 等都有能力运行完全的 32 位操作系统;实际上 ARMLinux 就是这样的一个操作系统。RISC OS 不是,因为 RISC OS 需要,至少一个时期,保持与现存版本的兼容。这是个古老的两分问题(dichotomy),有一个崭新的完全 32 位版本的 RISC OS 版本是美妙的,但当你发现许多你的现存软件不能继续运行(so much as load)就不那么美妙了! RISC OS 不是完全的 26 位。一些处理程序(handler)需要工作在 32 位模式下;限制它的是金钱(就是说,谁为完全转换 RISC OS 付钱;谁为用来重建它们的代码的开发工具付钱(PD 在 RISC OS 上是强壮的))和必要性(就是说,很多人使用 Impression 而 CC 不再与我们同在;Impression 好象不能在更新的 RISC OS 上工作,所以如果人们需要的软件将不能工作,那么他们不会认为有升级的必要.为什么这如此重要? 新的 ARM 处理器将不支持 26 位操作。尽管做了一些融合(ARM6、ARM7、StrongARM),但气数就要尽了。你可以增加一个 26/32 位系统的复杂性,或者只用 32 位而得到更简单、更小的处理器。我们要么随波逐流,要么被甩下... 所以我们别无选择。32 位体系ARM 体系在 ARM6 系列中进行了重大变更。下面我将描述 26 位 和 32 位操作行为的不同之处。 在 ARM 6 中,程序计数器被扩展到完整的 32 位。结果是: PSR 从 PC 中分离到自己的寄存器 CPSR(当前的程序状态寄存器)中。 在改变处理器模式的时候,不再与 PC 一起保存 PSR;现在是每个有特权的模式都有一个额外的寄存器 - SPSR (保存的程序状态寄存器) - 用来持有前面模式的 PSR。增加了使用这些新寄存器的指令。 除了允许 PC 使用完全的 32 位之外,还有进一步的变更,就是给 PSR 增加了额外的有特权的模式。这些模式用于处理未定义指令和异常终止例外: 未定义指令、异常终止、和超级用户不再共享同一个模式。去掉了在早期 ARM 上存在的对超级用户的那些限制。 在 ARM6 系列(和以后的其他兼容芯片)中通过设置片上某个控制寄存器来确定这些特征的可获得性。可以选择三个处理器配置中的一个: 26 位程序和数据空间,这个配置强制 ARM 在 26 位地址空间中进行操作。在这个配置中只能获得四个 26 位模式(参照处理器模式描述);不可能选择任何 32 位模式。在所有当前的 ARM6 和 7 系列上复位(reset)时被设置为这个模式。 26 位程序空间和 32 位数据空间。除了禁止地址例外来允许数据传送操作访问完整的 32 位地址空间之外,与 26 位程序和地址空间配置相同。 32 位程序和数据空间。这个配置把地址空间扩展成 32 位,并介入了对处理器模型的重大变更。在这个配置中你可以选择任何 26 位和 32 位处理器模式(参见下面的处理器模式)。在配置成 32 位程序和数据空间的时候,ARM6 和 ARM7 系列支持十个有所重叠的处理器操作模式: 用户模式: 正常的程序执行状态;或 User26 模式: 一个 26 位版本。 FIQ 模式: 设计来支持一个数据传送或通道处理;或 FIQ26 模式: 一个 26 位版本。 IRQ 模式: 用于通用中断处理;或 IRQ26 模式: 一个 26 位版本。 SVC 模式: 用于操作系统的保护模式或 SVC26模式: 一个 26 位模式。 异常终止模式(ABT 模式): 在一个数据或指令预取异常终止(abort)的时候进入的模式。 未定义模式(UND 模式): 在执行了一个未定义的指令的时候进入的模式。
当在一个 26 位处理器模式中的时候,编程模型倒退成早期的 26 位 ARM 处理器。除了下列变动之外,它的行为与 ARM2aS 宏单元(macrocell)相同: 只在 ARM 被配置为 26 位程序和数据空间的时候,它才生成地址例外。在其他配置下 OS 仍然可以通过使用外部逻辑模拟地址例外的行为,比如用一个内存管理单元在超出 64Mbyte 范围的时候生成一个异常终止,并把这个异常终止转换成给这个应用程序的一个‘地址例外陷入’。保持在通用寄存器和程序状态寄存器之间传送数据的新指令可操作。在调用了包含 26 位的 ARM 二进制代码的之后,操作系统可以使用这些新指令返回到一个 32 位模式。 当在一个 32 位程序和数据空间配置下的时候,所有例外(包括未定义指令和软件中断)把处理器返回到一个 32 位模式,所以必须修改操作系统来处理它们。如果处理器尝试写到在 &0 和 &1F 之间包括二者(就是例外向量)的一个位置,则硬件将禁止写操作并生成一个数据异常终止。这允许操作系统来截获对例外向量的变动并把向量重定向到一些伪装 (veneer)代码上。在调用 26 位例外处理程序之前,这些伪装代码应该把处理器置于一个 26 位模式中。
在所有其他方面,当在一个 26 位模式下进行操作的时候,ARM 表现的如同一个 26 位 ARM。CPSR 的相关的位将被组建(incorporated)回到 R15 中,来形成 I 和 F 位在位 27 和 26 的 PC/PSR。指令集表现的如同增加了 MRS 和 MSR 指令的 ARM2aS 宏单元。
在 ARM 6(和以后)的 32 位模式下可获得的寄存器有: User26 SVC26 IRQ26 FIQ26 User SVC IRQ ABT UND FIQ

R0 ----- R0 ----- R0 ----- R0 -- -- R0 ----- R0 ----- R0 ----- R0 ----- R0 ----- R1
R1 ----- R1 ----- R1 ----- R1 -- -- R1 ----- R1 ----- R1 ----- R1 ----- R1 ----- R2
R2 ----- R2 ----- R2 ----- R2 -- -- R2 ----- R2 ----- R2 ----- R2 ----- R2 ----- R2 R3 ----- R3 ----- R3 ----- R3 -- -- R3 ----- R3 ----- R3 ----- R3 ----- R3 ----- R3
R4 ----- R4 ----- R4 ----- R4 -- -- R4 ----- R4 ----- R4 ----- R4 ----- R4 ----- R4 R5 ----- R5 ----- R5 ----- R5 -- -- R5 ----- R5 ----- R5 ----- R5 ----- R5 ----- R5 R6 ----- R6 ----- R6 ----- R6 -- -- R6 ----- R6 ----- R6 ----- R6 ----- R6 ----- R6 R7 ----- R7 ----- R7 ----- R7 -- -- R7 ----- R7 ----- R7 ----- R7 ----- R7 ----- R7 R8 ----- R8 ----- R8 R8_fiq R8 ----- R8 ----- R8 ----- R8 ----- R8 R8_fiq R9 ----- R9 ----- R9 R9_fiq R9 ----- R9 ----- R9 ----- R9 ----- R9 R9_fiq R10 ---- R10 ---- R10 R10_fiq R10 ---- R10 ---- R10 ---- R10 ---- R10 R10_fiq R11 ---- R11 ---- R11 R11_fiq R11 ---- R11 ---- R11 ---- R11 ---- R11 R11_fiq R12 ---- R12 ---- R12 R12_fiq R12 ---- R12 ---- R12 ---- R12 ---- R12 R12_fiqR13 R13_svc R13_irq R13_fiq R13 R13_svc R13_irq R13_abt R13_und R13_fiq R14 R14_svc R14_irq R14_fiq R14 R14_svc R14_irq R14_abt R14_und R14_fiq --------- R15 (PC / PSR) --------- --------------------- R15 (PC) --------------------- ----------------------- CPSR ----------------------- SPSR_svc SPSR_irq SPSR_abt SPSR_und SPSR_fiq 简要的说,32 位的与 26 位的不同是: PC 是完全的 32 位宽,并只用做程序计数器。 PSR 包含在它自己的寄存器 CPSR 中。 每个有特权的模式都有一个专有的 SPSR 寄存器,用来保存 CPSR。 这里有两个新的特权模式,每个有特权的模式都有 R13 和 R14 的专有复件。 CPSR 和 SPSR 寄存器 CPSR 寄存器(和保存它的 SPSR 寄存器)中的位分配如下: 31 30 29 28 --- 7 6 - 4 3 2 1 0 N Z C V I F M4 M3 M2 M1 M0 0 0 0 0 0 User26 模式 0 0 0 0 1 FIQ26 模式 0 0 0 1 0 IRQ26 模式 0 0 0 1 1 SVC26 模式 1 0 0 0 0 User 模式 1 0 0 0 1 FIQ 模式 1 0 0 1 0 IRQ 模式 1 0 0 1 1 SVC 模式 1 0 1 1 1 ABT 模式 1 1 0 1 1 UND 模式 关于 N、Z、C、V 标志和 I、F 中断标志请参见(26 位) PSR。 这在实践中意味着什么? 多数 ARM 代码将正确的工作。唯一不能工作的是通过摆弄 R15 来设置处理器状态的那些操作。不幸的是,好象没有简便的方法修理这个问题。我检查了一个有潜在问题的 9K 程序(一个 MODE 7 teletext frame viewer,用 C 写的),基本上查找: 用 R15 作为目的寄存器的 MOVS 指令。以‘^’作为后缀并装载 R15 的 LDMFD 指令。 大约有 64 个指令被归入此类。 好象有没有什么方式来自动进行转换。基本上... 系统如何知道哪个是数据哪个是代码。实际上,一个灵巧的基于规则的程序能够可以做非常准确的猜测,但“非常准确的猜测”就足够了吗? 没有简单的指令替代。一个自动系统可以修补需要的指令并调整(jiggle)周围的代码,但这将导致不希望的副作用,比如一个 ADR 宏指令(directive)不在范围内(in range)。 需要难以置信的技巧(It is incredibly hacky)。当然,最好重新编译,或修改源代码。 这是很不容易的。这样小的变更,竟有如此严重(far-reaching)的后果。
寄存器装载和存储

LDM
LDR
STM
STR
SWP
它们可能是能获得的最有用的指令。其他指令都操纵寄存器,所以必须把数据从内存装载寄存器并把寄存器中的数据存储到内存中。

 


传送单一数据
使用单一数据传送指令(STR 和 LDR)来装载和存储单一字节或字的数据从/到内存。寻址是非常灵活的。

首先让我们查看指令格式:

LDR{条件} Rd, <地址>
STR{条件} Rd, <地址>
LDR{条件}B Rd, <地址>
STR{条件}B Rd, <地址>
指令格式
这些指令装载和存储 Rd 的值从/到指定的地址。如果象后面两个指令那样还指定了‘B’,则只装载或存储一个单一的字节;对于装载,寄存器中高端的三个字节被置零 (zeroed)。

地址可以是一个简单的值、或一个偏移量、或者是一个被移位的偏移量。可以还可以把合成的有效地址写回到基址寄存器(去除了对加/减操作的需要)。

各种寻址方式的示例: 

译注:下文中的 Rbase 是表示基址寄存器,Rindex 表示变址寄存器,index 表示偏移量,偏移量为 12 位的无符号数。用移位选项表示比例因子。标准寻址方式 - 用 AT&T 语法表示为 disp(base, index, scale),用 Intel 语法表示为 [base + index*scale + disp],中的变址(连带比例因子)与偏移量不可兼得。


STR Rd, [Rbase] 存储 Rd 到 Rbase 所包含的有效地址。

STR Rd, [Rbase, Rindex] 存储 Rd 到 Rbase + Rindex 所合成的有效地址。

STR Rd, [Rbase, #index] 存储 Rd 到 Rbase + index 所合成的有效地址。
index 是一个立即值。
例如,STR Rd, [R1, #16] 将把 Rd 存储到 R1+16。

STR Rd, [Rbase, Rindex]! 存储 Rd 到 Rbase + Rindex 所合成的有效地址,
并且把这个新地址写回到 Rbase。

STR Rd, [Rbase, #index]! 存储 Rd 到 Rbase + index 所合成的有效地址,
并且并且把这个新地址写回到 Rbase。

STR Rd, [Rbase], Rindex 存储 Rd 到 Rbase 所包含的有效地址。
把 Rbase + Rindex 所合成的有效地址写回 Rbase。

STR Rd, [Rbase, Rindex, LSL #2]
存储 Rd 到 Rbase + (Rindex * 4) 所合成的有效地址。

STR Rd, place 存储 Rd 到 PC + place 所合成的有效地址。
你当然可以在这些指令上使用条件执行。但要注意条件标志要先于字节标志,所以如果你希望在结果是等于的时候装载一个字节,要用的指令是 LDREQB Rx, <address> (不是 LDRBEQ...)。
如果你指定预先变址寻址(这里的基址和变址都在方括号中),用是否存在‘!’来控制写回操作。上面的第4和第5个例子中使用了这个标志。你可以使用它来在内存中自动正向或反向移动。一个字符串打印例程将变成:

.loop
LDRB R0, [R1, #1]!
SWI "OS_WriteC"
CMP R0, #0
BNE loop
而不是:
.loop
LDRB R0, [R1]
SWI "OS_WriteC"
ADD R1, R1, #1
CMP R0, #0
BNE loop
对于过后变址寻址‘!’是无效的(这里的变址在方括号外面,比如上面的例子6),因为写回是暗含的。

如同你见到的那样,变址可以被移位来实现比例缩放。除此之外,可以从基址上减去偏移量。在这种情况下,你可以使用如下代码:

LDRB R0, [R1, #-1]
尽管你可以存储或装载 PC,但你不可以用装载或存储指令来修改 PSR。要装载一个被存储的‘状态’并正确的恢复它,请使用:

LDR R0, [Rbase]
MOVS R15, R0
假如你在有特权的模式下,MOVS 将导致 PSR 的位被更改。
对 PC 使用 MOVS 不遵从 32-bit 体系,你需要使用 MRS 和 MSR 来处理 PSR。
依照 ARM 汇编手册:

译注:下文所叙述内容针对的是小端字节序配置,对大端字节序配置在手册中另有专门叙述。

如果提供的地址在一个字边界上,则字节装载(LDRB)使用在 0 至 7 位上的数据,如果在一个字地址加上一个字节上,则使用 8 至 15 位,以此类推。选择的字节被放入目标寄存器的低端 8 位中,并把寄存器中其余的位用零填充。
字节存储(STRB)在数据总线上重复源寄存器的的低端 8 位 4 次。由外部的内存系统来激活适当的字节子系统来存储数据。
字装载(LDR)或字存储(STR)将生成一个字对齐的地址。使用一个非字对齐的地址将有不明显和未规定的结果。实际上提示的是你不能使用 LDR 从一个非对齐的地址装载一个字。
 


传送多个数据
使用多数据传送指令(LDM 和 STM)来装载和存储多个字的数据从/到内存。
LDM/STM 的主要用途是把需要保存的寄存器复制到栈上。如我们以前见到过的 STMFD R13!, {R0-R12, R14}。

指令格式是:

xxM{条件}{类型} Rn{!}, <寄存器列表>{^}
‘xx’是 LD 表示装载,或 ST 表示存储。

再加 4 种‘类型’就变成了 8 个指令:

栈 其他
LDMED LDMIB 预先增加装载
LDMFD LDMIA 过后增加装载
LDMEA LDMDB 预先减少装载
LDMFA LDMDA 过后减少装载

STMFA STMIB 预先增加存储
STMEA STMIA 过后增加存储
STMFD STMDB 预先减少存储
STMED STMDA 过后减少存储
指令格式
汇编器关照如何映射这些助记符。注意 ED 不同于 IB;只对于预先减少装载是相同的。在存储的时候,ED 是过后减少的。

FD、ED、FA、和 EA 指定是满栈还是空栈,是升序栈还是降序栈。一个满栈的栈指针指向上次写的最后一个数据单元,而空栈的栈指针指向第一个空闲单元。一个降序栈是在内存中反向增长(就是说,从应用程序空间结束处开始反向增长)而升序栈在内存中正向增长。

其他形式简单的描述指令的行为,意思分别是过后增加(Increment After)、预先增加(Increment Before)、过后减少(Decrement After)、预先减少(Decrement Before)。

RISC OS 使用传统的满降序栈。在使用符合 APCS 规定的编译器的时候,它通常把你的栈指针设置在应用程序空间的结束处并接着使用一个 FD (满降序 - Full Descending)栈。如果你与一个高级语言(BASIC 或 C)一起工作,你将别无选择。栈指针(传统上是 R13)指向一个满降序栈。你必须继续这个格式,或则建立并管理你自己的栈(如果你是死硬派人士那么你可能喜欢这样做!)。

‘基址’是包含开始地址的寄存器。在传统的 RISC OS 下,它是栈指针 R13,但你可以使用除了 R15 之外的任何可获得的寄存器。

如果你想把复制操作后栈顶的当前的内存地址保存到栈指针中,可以寄存器按从最低到最高的编号次序与到从低端到高端的内存之间传送数据。并且因为用指令中的一个单一的位来表示是否保存一个寄存器,不可能指定某个寄存器两次。它的副作用是不能用下面这样的代码:

STMFD R13!, {R0, R1}
LDMFD R13!, {R1, R0}
来交换两个寄存器的内容。
提供了一个有用的简写。要包含一个范围的寄存器,可以简单的只写第一个和最后一个,并在其间加一个横杠。例如 R0-R3 等同与 R0, R1, R2, R3,只是更加整齐和理智而已...

在把 R15 存储到内存中的时候,还保存了 PSR 位。在重新装载 R15 的时候,除非你要求否则不恢复 PSR 位。要求的方法是在寄存器列表后跟随一个‘^’。 

STMFD R13!, {R0-R12, R14}
...
LDMFD R13!, {R0-R12, PC}
这保存所有的寄存器,做一些事情,接着重新装载所有的寄存器。从 R14 装载 PC,它由一个 BL 或此类指令所设置。不触及 PSR 标志。 
STMFD R13!, {R0-R12, R14}
...
LDMFD R13!, {R0-R12, PC}^
这保存所有的寄存器,做一些事情,接着重新装载所有的寄存器。从 R14 装载 PC,它由一个 BL 或此类指令所设置。变更 PSR 标志。
警告: 这些代码不遵从 32 bit 体系。你需要使用 MRS 和 MSR 来处理 PSR,你不能使用‘^’后缀。
注意在这两个例子中,R14 被直接装载到 PC 中。这节省了对 MOV(S) R14 到 R15 中的需要。
警告: 使用 MOVS PC,... 不遵从 32 bit 体系。你需要使用 MRS 和 MSR 来处理 PSR。

 


SWP : 单一数据交换
(Swap)

SWP{条件}{B} <dest>, <op 1>, [<op 2>]

指令格式
SWP 将:

从操作数 2 所指向的内存装载一个字并把这个字放置到目的寄存器中。
把寄存器操作数 1 的内容存储到同一个地址中。
如果目的和操作数 1 是同一个寄存器,则把寄存器的内容和给定内存位置的内容进行交换。
如果提供了 B 后缀,则将传送一个字节,否则传送一个字。

阅读全文

XScale PXA255开发板

参考图片:

* 基于Intel XScale PXA255处理器的高端ARM开发平台,处理器运算速度高达400MHz。
* 采用CPU核心板加扩展板的设计结构,使调试和使用灵活方便,扩展方式得到延伸,客户可以根据设计需要更换或升级核心板有效保护前期资源。
* 外围资源丰富,具有全功能串口(FFUART)、蓝牙高速串口(BTUART)、SD/MMC/SDIO接口、CF卡接口、TTL电平UART接口、LCD 扩展接口、电源接口、USB接口、仿真器接口、JTAG接口、总线扩展接口、AC97接口、麦克接口、耳机接口等多种接口。
* 配套WindowsCE.net4.2 BSP,提供全套成熟稳定的驱动源码和参考电路原理图,帮助用户快速轻松地实现软硬件开发。
* 帮助用户快速推进产品开发,加快产品上市。用户可将精力集中在应用相关的技术开发上,而无须关心复杂、费心的硬件平台和底层软件...

硬件规格

* 处理器:Intel XScale PXA255 (ARMV5TE内核,运算速度高达400MHz)
* Flash:32MB Intel Strata Flash
* SDRM:64MB
* 串口:全功能串口(FFUART)、蓝牙高速串口(BTUART)、红外UART(通过选配TTL扩展板支持)
* 扩展接口: LCD、触摸屏、PWM、Bus、UART、AC97等扩展接口
* USB Slave支持USB1.1,USB Host供选用
* CF卡接口,支持Memory,I/O模式,可支持CF下载系统镜像
* SD/MMC/SDIO接口,硬件支持SDIO,可支持SD/MMC下载系统镜像
* 一个硬件复位键,一个软件复位键,一个开关机键,四个用户自定义键
* 三个LED,其中一个电源LED,两个GPIO控制LED
* 可选购Sharp 3.5”TFT(256K色屏,320×240分辨率,自带Touch、白光LED Backlight)
* 两路耳机输出,一个板载MIC,提供AC97扩展接口
* 采用四线电阻式触摸屏接入
* JTAG接口:支持 ARM标准JTAG,另外支持板上定制JTAG
* 可选购CF网卡实现,支持网络下载系统镜像
* +5V DC电源供电,USB电源供电


提供源代码清单(WinCE4.2.net)

* eboot ------ 设备引导程序源码,包含WinCE映像文件烧写功能
* backlight--- LCD背光驱动源码
* Display ---- 液晶显示驱动
* PCMCIA ----- CF Slot 驱动源码
* NE2K ------- NE2000兼容网卡源码,支持CF网卡
* SD/MMC ----- SD/MMC驱动源码
* SERIAL ----- RS232串口驱动源码
* TouchP ----- 触摸屏驱动源码
* USB -------- USB Slave接口驱动源码
* WaveDev ---- AC97 Audio驱动源码
* NLEDDRV ---- LED驱动源码
* HAL -------- Hardware Abstraction Layer 源码
* KBDMOUSE --- 按键驱动源码
* JFlashMM --- JTAG工具源码

购买配置

* XScale PXA255开发板1块
* 串口线1条
* USB线1条
* JTAG线1条
* 电源适配器1个
* 资料光盘1张

配套文档

* 《PXA255开发平台简介》
* 《PXA255开发平台硬件使用说明书》
* 《PXA255开发平台软件开发说明书》
* PDF格式电路原理图
* 开发板上所有IC的规格说明书

选购配件

* TTL扩展板(RS232电平转换模块, TTL转RS232,TX,RX各一路,通过该扩展板支持红外UART)
* Sharp 3.5”TFT LCD显示屏(256K色屏,320×240分辨率,自带Touch、白光LED Backlight)
* CS8900 10M Ethernet模块(支持Ethernet Debug,Ethernet Image Download)
* IrDA 红外扩展模块(配合XScale PXA255开发板使用,尺寸:13mm×11mm ,功能:TTL转SIR)
* CF→PCMCIA转换卡(配合XScale PXA255开发板使用,尺寸:81mm×60mm,功能:CF转16位PCMCIA)

阅读全文

2007年12月3日星期一

Intel. PXA255 Processor with Intel XScale. Technology

Product Brief

Intel. PXA255 Processor with
Intel. XScale. Technology

Continuing the advance in handheld multimedia functionality.




Product Highlights

High Performance:


Low-power, high-performance 32-bit Intel.
XScale. core-based CPU (200, 300 and
400 MHz)

ARM* Architecture v.5TE compliant

Intel. Superpipelined RISC Technology
utilizing advanced Intel. 0.18μ process
for high core speeds at low power

Intel. Media Processing Technology including
40-bit accumulator and 16-bit SIMD to
enhance audio/video decode performance

High-performance glue-less burst and
page mode interfaces with Synchronous
Intel StrataFlash. Memory
Low Power:


Low-Power and Turbo modes enables
enhanced battery life

32 KB data and 32 KB instruction caches

2 KB Mini data cache for streaming data

Support for 2.5 and 3.3V memories
I/O Expansion:


Integrated Memory and PCMCIA/Compact
Flash Controller with 100 MHz Memory
Bus, 16-bit or 32-bit ROM/Flash/SRAM
(six banks), 16-bit or 32-bit SDRAM,
SMROM (four banks), as well as PCMCIA
and Compact Flash for added functionality
and expendability

System Control Module includes 17 dedicated general-purpose interruptible I/O
ports, real-time clock, watchdog and interval timers, power management controller,
interrupt controller, reset controller, and
two on-chip oscillators
Wireless:


Peripheral Control Module offers 16 channel
configurable DMA controller, integrated
LCD controller with unique DMA for fast
color screen support, Bluetooth** I/F, serial
ports including IrDA, I2C*, I2S*, AC97, three
UARTs (1 Full H/W flow control), SPI and
enhanced SSP, USB end point interface,
and MMC/SD Card Support for expandable
memory and I/O functionality

17x17 mm 256-pin PBGA

Extended temperature support


Product Brief


Intel. PXA255 Processor

Product Overview

Wireless Internet Content
at Intel Speed

Mobile and wireless devices simplify our lives,
keep us entertained and increase productivity.
Each day businesses and individuals rely on
them more and more. But, to continue satisfying
ever-increasing customer demands to communicate and access information anytime, anywhere,
manufacturers need technologies that deliver high
performance, flexibility and robust functionality—
all in the small-size, low-power framework of
portable, battery-powered products. The Intel.
Personal Internet Client Architecture (Intel. PCA)
processors with Intel XScale technology help drive
handheld device functionality to new heights. With
a seven-stage pipeline and fast processing
speeds, these microprocessors help to enable
wireless devices to meet many of the performance
demands of Enterprise-class wireless computing
and feature-hungry technology consumers. All
while Intel's power management capabilities
deliver operating efficiency. By helping to reduce
component count and board space, lower power
consumption, minimize system costs and shorten
time-to-market, Intel PCA processors deliver
leading handheld devices.


Intel. PXA255 High-Performance
Processor

Enhancing the wireless, handheld experience.

For advanced devices that run the most impactful
mobile applications, the Intel. PXA255 processor
is the answer. A pin-for-pin compatible, drop-in
replacement for the Intel. PXA250 processor, the
Intel PXA255 processor is a highly integrated,
32-bit RISC processor that combines the efficiency
of Intel design with the ARM v.5TE instruction set
architecture. The Intel PXA255 processor delivers
industry-leading processing power with built-in
multimedia capabilities for high performance and
handheld functionality. This enables increased
end-user functionality, helps enhance battery life
and provides a rich handheld Internet experience.
Based on the Intel XScale technology with a new,
faster 200MHz internal system bus, the Intel
PXA255 cost-effectively boosts processing speed
and power management over the Intel PXA250
processor. Power management features enable
lower power dissipation; up to 60 percent less
than previous Intel XScale technology-based
products. And the processing capabilities of the
Intel PXA255 enable portable devices to respond
fast to optimized operating systems and performance-intensive applications like MPEG4 video
decode speech and handwriting recognition, and
Java* interpretation. From surfing animated Web
sites to streaming video to mixing MP3s, the Intel
PXA255 processor delivers processing power for
leading performance.

3.68MHz
32KHz
SDRAMControl
Address and
16/32 Data MUXSRAMControl
Burst FlashInterface
VariableLatency I/OPCMCIA/CFCard Control
Alternate BusMasterInterface
JTAG Testand Debugging
Intel.
XScale.
Core200, 300,400MHzPowerManagerClockControllerInterruptController
16 ChannelDMAController
CorePLL Clock Divders RTCOsc.
Color LCDController
Bridge
Real Time ClockTimer/PWM
AC97 InterfaceI2S
I2C
IrDA/UART
SSP/SPI/uWire
MMC/SDH/W Flow
Control UART
Bluetooth UART
Secondary GPIO
USB Client v1.117 Primary GPIOs
Internal Bus
Intel. PXA255 Block Diagram


Intel. PXA255 Processor


Product Brief

The Development Framework for
Wireless Advancement

Outstanding performance and low power consumption are only the beginning when you develop
with the Intel PXA255 processor. Our robust software and hardware development environment
offers a large library of ARM-compliant applications
and tools, as well as an array of wireless operating
systems and tool chains to ease application
development and system prototyping. The Intel.
Integrated Performance Primitives (Intel. IPP) library
promises easy access to an array of low-level,
cross-platform software algorithms for highdemand communications, signal processing,
mathematics and media functions. The Intel IPP's
highly optimized implementation helps reduce
battery consumption through more efficient CPU
execution, enables developers to focus on valueadd features, and speeds time-to-market. With the
Intel PCA development ecosystem, you have the
resources you need to deliver the features your
consumers want-efficiently and effectively.

The Intel. PXA255 Processor Advantage

Feature

Intel. Personal Internet Client
Architecture

The blueprint for next-generation wireless
development

With Intel Personal Internet Client Architecture
(Intel PCA), the next generation of wireless Internet
devices, applications and services are at hand.
This architecture separates communication and
computing sub-systems for parallel development
of related wireless devices hardware and software.
The scalability of the Intel PCA platform enables
compatibility with leading operating systems and
many global wireless standards to make porting
applications or services across devices and platforms easy and efficient. And with the leading performance of optimized Intel. wireless hardware and
software building blocks, Intel makes the promise
of a dynamic, multimedia wireless Internet a reality.

The Intel. PCA Developer Network offers device
manufacturers, service providers and application
developers easy access to the applications, tools
and services that speed time-to-market and
encourage consumer adoption of Intel PCA-based
products. This Web-based community offers platform and software development kits; programming
tools; software building blocks; technical information; marketing program opportunities; community
networking; and market segment exposure to help
developers build value in their Intel PCA products,
applications and services.

Benefit

High-performance, low-power Intel. XScale. core Ideal for enabling enhanced battery life and
at 200, 300 and 400 MHz. New power management performance for high-performance personal digital
for low power assistants and wireless communicators.

Faster internal system bus Improved application performance
(At 400 MHz core, internal bus runs at 200 MHz
vs. 100 MHz on the Intel. PXA250 processor)

Intel Media Processing Technology
Optimized audio and video multimedia functionality

Enhanced Memory Controller
Supports low power 2.5V and 3.3V 32-bit and
16-bit memories including enhanced support for
low-power SDRAM as well as glue-less burst and
page mode interfaces with Synchronous Intel
StrataFlash. Memory

MMC/SD and PCMCIA/CF Card support
Expandable storage and I/O device support

USB Client
Fast host synchronization

1.84 MHz cellular baseband interface
Efficient communications integration
920 Kbps Bluetooth** interface
Broad inter-device communication

Variable latency I/
O
Add-on functionality capabilities

Product Brief


Intel. PXA255 Processor

Support Collateral
Item Description Order Number

Intel. PXA255 Processor 278693
Intel. PXA255 Processor 278694
Intel. XScale. Microarchitecture for the Intel. PXA255 Processor 278796
Intel. PXA255 Processor Electrical, Mechanical, and Thermal 278780
Intel. PXA255 Processor (Update) 278732
Developer's Manual

Design Guide

User’s Manual

Specifications

Intel Access

Developer Web Site
Intel. PCA Processors Home Page
Intel. Technical Documentation Center

General Information Hotline

developer.intel.com
developer.intel.com/design/pca/applicationsprocessors
intel.com/go/techdoc
800 548-4725 7 am–7 pm CST (USA and Canada)
800 628-8686 or 916 356-3104 5 am–5 pm PST
For more information, visit the Intel Web site at: developer.intel.com

United States and Canada Europe Asia-Pacific Japan South America
Intel Corporation Intel Corporation (UK) Ltd. Intel Semiconductor Ltd. Intel Kabushiki Kaisha Intel Semicondutores do Brasil
Robert Noyce Building Pipers Way 32/F Two Pacific Place P.O. Box 300-8603 Tsukuba-gakuen Av. Dr Chucri Zaidan, 940-10th floor
2200 Mission College Boulevard Swindon 88 Queensway, Central 5-6 Tokodai, Tsukuba-shi Market Place Tower II
P.O. Box 58119 Wiltshire SN3 1RJ Hong Kong, SAR Ibaraki-ken 300-2635 04583-906
Santa Clara, CA 95052-8119 UK Japan Sao Paulo-SP-Brasil
USA

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL. PRODUCTS. EXCEPT AS PROVIDED IN INTEL'S TERMS AND
CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED
WARRANTY RELATING TO SALE AND/OR USE OF INTEL PRODUCTS, INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A
PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT, OR OTHER INTELLECTUAL PROPERTY RIGHT.

Intel products are not intended for use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility applications.

Intel Corporation may have patents or pending patent applications, trademarks, copyrights, or other intellectual property rights that relate to the presented
subject matter. The furnishing of documents and other materials and information does not provide any license, express or implied, by estoppel or otherwise,
to any such patents, trademarks, copyrights, or other intellectual property rights.

Intel may make changes to specifications, product descriptions, and plans at any time, without notice.

The Intel. PXA255 may contain design defects or errors known as errata, which may cause the product to deviate from published specifications.
Current characterized errata are available upon request.

Intel, the Intel logo, XScale and Intel StrataFlash are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and
other countries.

*Other names and brands may be claimed as the property of others

**Bluetooth is a trademark owned by its proprietor and used by Intel Corporation under license.

Copyright . 2003 Intel Corporation. All rights reserved. 0403/MS/LK/5K tPlease Recycle 252780-001

阅读全文

Sticky