| 标题 |
作者 |
阅读数 |
发布时间 |
|
|
blue88 |
919 |
2007-8-29 |
|
[作者] hsly110 或者 猪头三[Email] pliceman_110@163.com PS:本文如果有错漏请来信指出[范围] 逆向工程[目的] 分享逆向技术心德[目标API] 未文档化的RtlInitializeGenericTable[参考文献] Secrets of Reverse Engineering[备注] 欢迎转载该文章,只要保留完整内容即可1 前言:这2天看了Secrets of Reverse Engineering一书,对分析未文档化的API的技术比较有心得,希望各位看了下面的教程,能抛砖引玉灵活的应用在逆向工程和破解技术上,方法是死的,但是人的思维是活,最重要是灵活应用。2 实践:用OllyDbg对NTDLL.DLL进行反汇编,前提你要加入NTDLL.DLL的符号表,这样你才能更好的对未文档化的API进行反汇编,你们到微软官方网站获取相应版本Windows系统的系统符号表。下面是RtlInitializeGenericTable函数的反汇编代码:01 MOV EDI, EDI ; //压入堆栈,保存EBP的数值 02 PUSH EBP ; >> 阅读全文
|
|
blue88 |
926 |
2007-8-29 |
|
网上搜索一下,到处都是“过来人”的谆谆教导我们不要过分重视技术。技术的确不是创业成功的唯一原因,也的确是不能太把技术的重要性过分强调。假如目前国内是一种技术至上的现状,技术人员的地位虚高,那么这些言论的确有助于业内整体的协调发展。但是现状是,目前国内普遍的认识并没有很抬高技术的地位。恰恰相反,技术被过低的估计了其应有的价值,网上强调技术重要性的文章几乎没有。技术人员的地位已经是低得不能再低,在许多公司内部,已经到处都是对技术人员的轻蔑的眼光。在重要的技术几乎都由国外主导,而目前中国已经几乎丧失了任何技术主导权的今天,还在一直继续强调切不可技术主导,将会给国家的IT产业的自强发展造成严重的影响。比如今天看到的这篇关于创业团队的思考:切不可技术主导,又是一篇典型文章。其实整篇看下来,作者说的有一定道理,只不过他其实考虑的只是有关Web 2.0网站的创业,却又强扣了一顶技术无用论的大帽子。他的文章标题假如是:“关于Web 2.0网站创业的思考:切不可技术主导”的话,倒也较少可辩驳之处。可惜他文章标题的范围说的是整个创业团队,那这篇文章就完全是在误导人了。IT业技术主导创业成功的例子比比皆是,著名的有:Borlan...
>> 阅读全文
|
|
blue88 |
1796 |
2007-8-29 |
|
在微软工作的华人已近千人。在微软TechEd技术教育大会期间,他们中的16位作为讲师回到北京。他们为听众带来微软软件技术的最新进展,而他们自身的软件生涯也是一种财富。记者在大会期间,趁他们讲课 之余,采访了其中的5位讲师。 学得杂一些 “人的成长实际上是个金字塔形的,你的基础越扎实、越广,塔尖才越高。”微软Server管理部门软件设计与测试工程师陈硕就是一个典型的“杂家”。先是在北京大学地球物理系读书,毕业后保送到中科院大气物理所,后又获得普林斯顿大学全额奖学金,读了海洋学方面的硕士,最后又在德州A&M大学拿到商学硕士。当然,她一直没有忘了她的“副业”——计算机,她在北大时就选了相当多的计算机课程; 在普林斯顿大学海洋学实验室使用计算机模拟的方式来研究温室效应、厄尔尼诺等气候问题,当时用的是Cray(大型机)和Unix服务器;在德州A&M大学读书时,找到的兼职工作依旧是维护学校数百人的计算机实验室。 13岁就随父母来到美国的严治庆,本科是在明尼苏达大学电气与计算机工程...
>> 阅读全文
|
|
blue88 |
1610 |
2007-8-29 |
|
26.1 CAUTIONIndividuals maintain all of the web sites listed here. I will strive tomaintain this list current but do not be surprised if the addresses nolonger are current.26.2 ASSEMBLY LANGUAGE RELATED HOME PAGESRandy Hyde’s Assembly Language Page http://webster.ucr.edu/Page_asm Excellent tutorial, Art of Assembly Language ASM Style GuideChristian Ludoff’s 80x86 Sandpile Page http://www.sandpile.org Basic Page http://www.sandpile.org/80x86/overview.shtml The second page is where you should kept you link. Much good >> 阅读全文
|
|
blue88 |
210 |
2007-8-5 |
|
还记得当年学数学、英语都有个窍门,那就是搞个错题集。经常复习一下这个错题集,就可以避免下次犯同样的错误。而几乎所有的程序员都是从犯错误开始的,我们也很有必要总结一下编程新手的常见错误,本文的目的在于此。1.引言 文中所列出的都是笔者在项目开发中接触到的新手真实的言谈,笔者学学文革腔调,姑且称之为“错误语录”。
&;nbsp;2.语录 (1)“我的程序都是对的,可结果不对” 想想你的周围,是不是也有人说这样的话?如果你也曾经说过,那就此打住,不要再说这句话,因为这句话只会显示说话者的无知。既然程序都是对的,那为什么结果不对?
&;nbsp;(2)“程序=算法+数据结构” 如果刚刚学完C语言,我们说这样的话,完全可以理解,而且可以说是正确的。但是如果你是一位即将从事C/C++编程的程序员,那么很遗憾,这个说法只能判错,殊不知,世界上还有另一种说法: 程序 = 对象 + 消息 “程序=算法+数据结构”只对面向过程的语言(C)成立,而对面向对象的语言(C++),则只能表述为“程序=对象+消息”。传统的过程式编程语言以过程为中心以算法为驱动,面向对象的编程语言则以对象为中心以消息为驱动。这里的消息是广义的,对象A...
>> 阅读全文
|
|
blue88 |
159 |
2007-8-5 |
|
第一节 应用工具 一、对程式的认识 写作程式不难,但要写出好程式却不容易。这就好像画图一样,人人都能画,而画出来的图却可能有天壤之别。 想作一个好画家,首先要有观察及分析的能力,面对着杂乱的事物,先整理出头绪,找到主题。再在画布上勾出轮廓,这叫做「布局」。布局完毕,根据实际的环境,决定作图的先后「顺序」。顺序是一种层次观念,景物及色彩都有一定的层次,绝不可随意所之,想到哪里,画到哪里。 观察考虑完毕,即开始准备,先将画笔、调色板等工具放妥,把要表现的主要色彩也调好。最后是选择适当的画笔,蘸上色彩,按照所观察的结果,涂在画布上。 画图颇重风格,有些个人主义的艺术家,技巧并不精通,只因为时代潮流或历史条件,创造了某种独特的风格,就得以成名享利。一般的画家则不然,不论是「工笔」抑或「写意」画,全靠其技巧及素养,始能求生存。至于艺术大师,则首重风格,再加上素养、技巧,方可扬名立万,永垂不朽。 最糟糕的画...
>> 阅读全文
|
|
blue88 |
42 |
2007-8-5 |
|
四、对指令的认识 指令就是「指挥」、「命令」,用以控制电脑,一步一步地实现程式的计划。 组合语言的格式为: ( 下行中凡标“[ ] ”者,表有些指令可省略 ) [前置元] 指令 [目的操作元,源始操作元] 1,「前置元」:以下诸例即为前置元的用法。 11段名:表后面的操作元应属于此临时前置段。如: MOV AX,CS:BUF1 12定义:表示其后缓冲器的临时定义。BYTE PTR表示以一个字元定义的资料; WORD PTR表双字元资料。 不论缓冲器的原定义为何,凡有前置元者,皆以临 >> 阅读全文
|
|
blue88 |
35 |
2007-8-5 |
|
二、程式要条理通顺 1,在比较判断的过程中,邻近值不必连比。 CMP AL,0 JE ABCD0 CMP AL,1 JE ABCD1 CMP AL,2 JE ABCD2 &l...
>> 阅读全文
|
|
blue88 |
272 |
2007-8-5 |
|
第一节 系统 一、系统之选择 只因真正瞭解电脑的人太少,迷信名气的结果,使得 IBM PC/AT占有了市场。为求电脑普及应用,我们唯有因陋就简,针对 IBM PC/AT及其兼容系统,作进一步的分析和说明。 尽管使用 80486 CPU的微电脑已问世,我个人认为以其造价及功能而言,并不符合效率法则。在从事艺术工作的立场,价值的高低,与所采用的材料没有绝对的关系。更何况我们正要证明,利用组合语言的制作技巧,能够使功能不高的微电脑发挥最大的边际效益。故本书仅以8088 CPU指令为研讨对象,至于程式应用在什么机型,就不在本书的考虑范围内了。 二、目录及磁盘 假定读者为有经验的程式师,且电脑为 IBM PC/XT/AT。 则在着手制作程式之初,应该先将系统准备妥当。即所谓「工欲善其事,必先利其器」,如果未能注意到下面所提的细节,仅仅制作一、两个程式尚可应付。待工作量一大,程式渐渐增多,不是某些程式找不到,就是找到了也不能一目瞭然。结果是心烦意躁,马马虎虎,另外再写一个,勉强应付了事。 硬盘空...
>> 阅读全文
|
|
blue88 |
112 |
2007-8-5 |
|
第一节 电脑 一、前言 电脑的到来,被喻为人类文化的第三波革命,由于它具有强大的资讯机能和弹性,正好弥补了人类记忆不足、反应迟钝、厌于重覆和受限于时空的缺点。遂在当今世事繁杂、变化多端的动态社会中,成为人类日常工作中有力的帮手。 它之不同于人类其他的发明,是以机件的「硬体」结构,去执行可以随设计理念而改变的「软体」。这一来,机器便具有了灵活应用的弹性,只要有适合的软体,它就会忠实不渝地去处理各种繁琐的任务。 在初,它的速度及容量很低,但已有足够的魅力,吸引了无数狂热的有心人士,为它尽智竭力,不断地改良更新。仅仅不过十余年,它已脱胎换骨,蔚为龙象。 这是一个崭新的天地,凡是思路广、创意新,能将各种抽象观念整理成为有秩序、有条理的人,都能利用电脑的特种「语言」,发展成为实用而成功的「软件」。随着软件大量的应用,工作绩效显着增进。终于,它的地位奠定了,整个人类社会的变化加速发展,对它...
>> 阅读全文
|
|
blue88 |
40 |
2007-8-5 |
|
程式写完后,还要加工成为可执行的套装软件(Package),一般说来,即使是可以执行的程式,一点错误都没有,离套装软件的程度,却还有一段距离。 当然,程式侦错也是必经过程之一,有时侦错与程式写作可以同时进行。但有经验的程式师,对全面有了充份的认识,往往会等到程式联接后再行侦错。 程式完成后的全面侦错,最好不要依靠写程式的人。因为程式师经常不是使用者,他们仅在自己设计的条件下,依其理念进行侦错。当然这种错误必须更正,但最容易发生的错误,却是使用者不小心在输入时,或运用指令时,违背了程式师的理念。这种错误的发生,是不能原谅的,程式本来就是为使用者设计的,如果令使用者不便,程式就失去了应有的价值。 程式的品管,就在于检测程式是否符合使用者的需求。一般说来,应有专人负责,也有让写作手册的人,兼做品管的工作。这样可以同时对照手册所描述的功能及操作方法,检查两者之间是否一致。 还有一种常见的品管方式,是在产品完成时,交...
>> 阅读全文
|
|
blue88 |
15 |
2007-8-5 |
|
第三节 程式合并 我所见过的各种组合程式虽不算多,但至少有百余个了。毛病最多的当然是缺乏完整的规划,其次则是信马游缰,一份不折不扣的流水帐!明明大门口在东边,程式硬要朝西,直到游完了大观园,天黑了,才出东门! 这种程式我收集了一大叠,可是举来做例子,却心有余而力不足。原因无他,实在不耐烦照抄一遍,一见到就头痛! 电脑最强的功能,便是处理繁杂重复的工作,为什么一般程式师居然存心与电脑争风吃醋呢?不说别的,光把程式输入到电脑中,就要花上几个月宝贵的光阴,真值得这样做吗? 有一份程式,足足有四十多页,我只略作调整,便缩小到十页,处理速度则快了五倍。为什么会差这样远呢?很简单,有些人不喜欢用大脑,久而久之,习惯成自然,大脑就生了铁銹!除了等因奉此,什么都不会想了。 要想做一个优秀的程式师,第一个条件是不能偷懒,第二个条件则要有分析观察的习...
>> 阅读全文
|
|
blue88 |
163 |
2007-8-5 |
|
“ 哎哟,哥们儿,还捣鼓汇编呢?那东西没用,兄弟用VB"钓"一个API就够你忙活个十天半月的,还不一定搞出来。”此君之言倒也不虚,那吾等还有无必要研他一究呢?(废话,当然有啦!要不然你写这篇文章干嘛。)别急,别急,让我把这个中原委慢慢道来:一、所有电脑语言写出的程序运行时在内存中都以机器码方式存储,机器码可以被比较准确的翻译成汇编语言,这是因为汇编语言兼容性最好,故几乎所有跟踪、调试工具(包括WIN95/98下)都是以汇编示人的,如果阁下对CRACK颇感兴趣……;二、汇编直接与硬件打交道,如果你想搞通程序在执行时在电脑中的来龙去脉,也就是搞清电脑每个组成部分究竟在干什么、究竟怎么干?一个真正的硬件发烧友,不懂这些可不行。三、如今玩DOS的多是“高手”,如能像吾一样混入(我不是高手)“高手”内部,不仅可以从“高手”朋友那儿套些黑客级“机密”,还可以自诩“高手”尽情享受强烈的虚荣感--#$%& “醒醒!” 对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出一个漂漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放弃。所以我个人看法学汇编,不一定要写程序,写程序确实不...
>> 阅读全文
|
|
blue88 |
35 |
2007-8-5 |
|
Atmel Corporation日前宣布推出AVR32 Studio。AVR32 Studio将用于AVR32 AP7和UC3系列编码开发的整个工具链结合了起来。AVR32 Studio与AVR32 GNU工具链进行了整合,该工具链中包括用于开发AVR32应用软件的GCC。 AVR32 Studio综合开发环境包括一个带有语法着色功能的源代码编辑器以及对编写和调试独立应用程序和Linux应用程序的支持。它可以完全控制所有的开发工具,如STK1000开发板、EVK1100/1101评估套件、JTAGICE mkII仿真器以及AVR32网关套件。 AVR32 Studio以Eclipse为基础,从而能够添加大量插件进一步扩大功能。像文本控制系统、缺陷跟踪以及动作列表之类的功能可通过第三方插件进行添加,从而帮助开发者跟踪其项目、消除编码中的错误并最终缩短上市时间。 AVR32 Studio的完整发布版可从http://www.atmel.com免费获得。AVR32 Studio可自动检测和下载升级最新版本、新的部件以及工具支持,而无需用户输入。 AVR32的GNU工具链可从http://www.atmel.com获得,并附带一个完整Linux版2.6.18端口。一个既包含AVR32 Studio又包含GNU工具链的单机版Windows安装程序已经推出。 >> 阅读全文
|
|
blue88 |
106 |
2007-8-5 |
|
2007年7月17日,全球电子设计创新领先企业Cadence设计系统公司宣布,Cadence SiP(系统级封装)技术现已同最新版的Cadence Virtuoso 定制设计及Cadence Encounter数字IC设计平台集成,带来了显著的全新设计能力和生产力的提升。通过与Cadence其它平台产品的整合,包括Cadence RF SiP Methodology Kit在内,Cadence提供了领先的SiP设计技术。 该项新的Cadence SiP技术提供了一个针对自动化、集成、可靠性及可重复性进行过程优化的专家级设计流程。通过该先进的SiP技术,Cadence能帮助设计师将不同IC和封装装配技术聚合至高度集成的产品。这使得设计师能够在保持低成本的同时,满足对小型、高性能产品日益增长的需求。 “作为Virtuoso和SiP的用户,拥有最佳集成的整体解决方案和流程是非常重要的。”意法半导体蜂窝通信部门工程技术总监Christian Caillon表示。“这项最新的SiP技术提供了我们所需要的全新水平的集成和设计生产力,帮助我们向客户提供领先的多芯片封装解决方案。”为实现设计生产力和设计质量的提升,当今的IDM和无晶圆芯片公司需要IC设计环境与其SiP实现技术之间的无缝集成。因此,Cadence的SiP技术得到加强,最大限度地提高了生产力...
>> 阅读全文
|
| 标题 |
作者 |
阅读数 |
发布时间 |
|
|
blue88 |
670 |
2007-9-3 |
|
本文原作者结合自身经历,总结以下六种方法,可以帮助我们成为一名更好的开发者。 1. 交谈尽可能多地跟其他软件开发者交谈;培养个人关系;跟意见与你相左的人交流;跟经验更丰富的人交流;跟阅历丰富的人交流。多到Groups 中去,尤其是交谈自由随意的Groups——不约束主题,不约束交谈内容。2. 选择更好的环境我遇到好多开发者,在我看来他们有成为优秀开发者的所有优点,只是他们没有机会在好的环境中工作。这里所说的好的环境,是指周围有一帮愿意且能够分享他们知识的开发者。如果你是“菜鸟级”开发者,你的成长路线将因他们而大为缩短;如果你是“高级”开发者,你的能力也会因为同伴的刺激和挑战而提高。我之前就是在一个非常糟糕的小店打工,钱挣得不少,却是无法提升能力的地方。后来我冒险般地决定去了一家咨询公司,在那里我遇到了很多优秀的开发者。虽然这次换工作给我的家庭和个人来说并没有多大好处,但它给我的职业生涯带来了巨大的发展动力。3. >> 阅读全文
|
|
blue88 |
1610 |
2007-8-29 |
|
26.1 CAUTIONIndividuals maintain all of the web sites listed here. I will strive tomaintain this list current but do not be surprised if the addresses nolonger are current.26.2 ASSEMBLY LANGUAGE RELATED HOME PAGESRandy Hyde’s Assembly Language Page http://webster.ucr.edu/Page_asm Excellent tutorial, Art of Assembly Language ASM Style GuideChristian Ludoff’s 80x86 Sandpile Page http://www.sandpile.org Basic Page http://www.sandpile.org/80x86/overview.shtml The second page is where you should kept you link. Much good >> 阅读全文
|
|
blue88 |
926 |
2007-8-29 |
|
网上搜索一下,到处都是“过来人”的谆谆教导我们不要过分重视技术。技术的确不是创业成功的唯一原因,也的确是不能太把技术的重要性过分强调。假如目前国内是一种技术至上的现状,技术人员的地位虚高,那么这些言论的确有助于业内整体的协调发展。但是现状是,目前国内普遍的认识并没有很抬高技术的地位。恰恰相反,技术被过低的估计了其应有的价值,网上强调技术重要性的文章几乎没有。技术人员的地位已经是低得不能再低,在许多公司内部,已经到处都是对技术人员的轻蔑的眼光。在重要的技术几乎都由国外主导,而目前中国已经几乎丧失了任何技术主导权的今天,还在一直继续强调切不可技术主导,将会给国家的IT产业的自强发展造成严重的影响。比如今天看到的这篇关于创业团队的思考:切不可技术主导,又是一篇典型文章。其实整篇看下来,作者说的有一定道理,只不过他其实考虑的只是有关Web 2.0网站的创业,却又强扣了一顶技术无用论的大帽子。他的文章标题假如是:“关于Web 2.0网站创业的思考:切不可技术主导”的话,倒也较少可辩驳之处。可惜他文章标题的范围说的是整个创业团队,那这篇文章就完全是在误导人了。IT业技术主导创业成功的例子比比皆是,著名的有:Borlan...
>> 阅读全文
|
|
blue88 |
2746 |
2007-8-29 |
|
;--------------------------------------------------------------------------------;此模板是纯DOS程序代码,需要MASM5.0,编译时请使用"编译 -> DOS"方式。;--------------------------------------------------------------------------------Init_game macro op1,op2,op3,op4,op5,op6 mov cx,00h mov dh,op1 mov dl,op2op6: mov ah,02hmov bh,00h int 10hpush cxmov ah,0ahmov al,op3mov bh,00hmov cx,01hint 10hpop cxinc cxinc op4cmp cx,op5jne op6 endmclear_screen macro op1,op2,op3,op4 mov ah,06h mov al,00hmov bh,07hmov ch,op1mov cl,op2mov dh,op3mov dl,op4int 10hmov ah,02hmov bh,00hmov dh,00hmov dl,00hint 10hendmmenu macro op1,op2,op3 mov ah,02hmov bh,00hmov dh,op1mov dl,op2int 10hmov ah,09hlea dx,op3int 21hendmdata segment linjiang db "Made by lin jiang$" no db "NO.:021411$"meg db "Let us have a game!!Come on!!$"meg1 db "**Select Menu**$"meg2 db "Please select the game speed,ESC to quit.$"meg3 db "1.Very slow Too easy,speed up!$"meg4 db ...
>> 阅读全文
|
|
blue88 |
2773 |
2007-8-29 |
|
作者:HSLY E-MAIL: pliceman_110@163.comHI,欢迎进入Assembly Language into Mechine Code 教程。 首先你得从80x86汇编小站下载 下载地址:Soft_Show.asp?SoftID=8 机器语言我们只要重点理解一下几个概念: 1. 机器语言指令有操作码(OP)和地址码两部分组成 |_____________OP_______________|__d__|__w__| |_____________OP_______________|__s__|__w__| 在多数操作码中,...
>> 阅读全文
|
|
blue88 |
148 |
2007-8-29 |
|
用汇编语言实现RESET启动和热启动 程序名: RESET.ASM/BOOT.ASM 程序类别: 完整的汇编语言程序 功能: 用程序完成RESET启动和热启动 使用说明: 汇编连接以后转换为com文件运行 程序说明: 在日常用机过程中,如果出现了异常情况常常需要重新启动系统 .对于IBM PC 以及其兼容机,除了开机冷启动外,还有热启动和R ESET开关复位启动,他们的共同特点是转入BIOS的入口点(即ROM 的起始单元FFFF:0处),执行该处的跳转指令,转向启动程序,该启 动程序在执行过程中需检测复位标志字(在地址0040:0072处,占2 个字节)的值,若为1234则启动是不检测内存;若非1234则启动先检 测内存,再启动系统.热启动和RESET启动的不同之处在于热启动时 不检测内存,而RESET启动是需要检测内存. 下面的俩个程序分别实现RESET启动和热启动.经过汇编,连接再转 换成文件后才能运行. RESET.ASM (RESET开关复位启动程序) CODE1 SEGMENT AT 0FFFFH ASSUME CS:CODE1 ADDR LABEL FAR CODE1 ENDS CODE SEGMENT ORG 100H ASSUME CS:CODE,DS:CODE,ES:CODESTART: JMP FAR PTR ADDR CODE ENDS END...
>> 阅读全文
|
|
blue88 |
1445 |
2007-8-29 |
|
编写内核模式的代码于应用程序的代码是不同的,因为驱动程序是操作系统的信任的部分。它的代码必须遵循特殊的规则,小心的编写。驱动程序开发策略 像大多数的软件,驱动程序也使用有组织的开发方法。这个部分将介绍一些技巧来尽量减少开发时间。 使用规范的开发方法 一般的,如果编写一个设备驱动程序没有一个开发策略。而是去匆忙的测试全新的硬件,往往测试代码会成为驱动程序的基础部分。也许设备驱动程序是被一些对操作系统不熟悉的程序员编写的,第一个驱动程序的编写会是一个驱动程序作者全面了解系统构架的旅程。 幸运的,疯狂的软件编写的日子过去了。在复杂的硬件和操作系统的环境下,想怎幺编写就怎幺编写的代码是不会运行的。 下面是一个简短的开发技术(它们中的一些是来自实时设计技术)列表。 1. 数据流图可以将一个驱动程序分成独立的函数部分。通过这个图可以容易的看出各个部分的联系,和数据的流向。 2. 状态机模型是一个描述驱动过程控制流的好的方法,特别是管理复杂的硬件和软件协议的驱动程序。在验证状态机的过程中,可能发现驱动程序中的同步问题。 3....
>> 阅读全文
|
|
blue88 |
405 |
2007-8-29 |
|
驱动器存储器分配 程序设计涉及的一个重大的方面是分配存储单元。不幸的是,驱动程序不能简单的调用malloc和 free,或者new和delete。要确定分配正确类型的存储器,使用完毕后必须释放分配的存储器,因为内核模式代码没有自动清除机制。 驱动程序可用的存储器 驱动程序有三种分配存储器的选择。标准的分配存储器的选择依靠持续事件,大小,IRQL来确定。可用的选择是: 1. 内核堆栈:内核模式堆栈在驱动程序例程执行期间给局部变量提供有限数量的非分页存储空间。 2. 分页池: 运行在DISPATCH_LEVEL IRQL以下的例程可以有一个称作分页池的堆。这个区域的存储器是可分页的,当它访问的时候可能产生缺页故障。 3. 非分页池:运行在提高IRQL的例程需要从一个称作非分页池的堆空间中分配暂时的存储空间。系统保证非分页池中的虚空间总是在物理存储器空间中。I/O管理器创建的设备和控制器Extension就存储在这个区域。 因为驱动程序必须是可重入的,所以除了只读数据之外从不分配全局变量。否则,一个线程尝试存储数据到的全局变量,与另一个线程的读写将可能是同一个数据。 当然,驱动程序的局部静态变量同样糟糕。驱动程序的状态信息必须存储在其它的地方,例如像以...
>> 阅读全文
|
|
blue88 |
253 |
2007-8-29 |
|
Windows 2000驱动程序支持的例程 I/O管理器和WIN2000其它的内核模式部分提供大量的供驱动程序调用的函数。DDK文文件描述了这些函数。现在,指出WIN2000支持的例程种类已经足够。如表5.1所示: 分类 支持 函数名 Executive 存储器分配,互锁队列区域,监控列表,系统工作者线程 ExXxx() HAL 设备寄存器,总线访问 HalXxx() I/O Manager 普通驱动程序支持 IoXxx() Kernel DPC,同步 KeXxx() Memory Manager 虚拟存储器到物理存储器的映 射,存储器分配 MmXxx() Object Manager 句柄管理 ObXxx() Process Manager 系统线程管理 PsXxx() Runtime library 字符串操作,大整数运算,寄存器访问,安全性函数,时间和日期函数,队列和列表支持 RtlXxx() (大部分的例程) Security Monitor 特权检查,安全描述...
>> 阅读全文
|
|
blue88 |
1796 |
2007-8-29 |
|
在微软工作的华人已近千人。在微软TechEd技术教育大会期间,他们中的16位作为讲师回到北京。他们为听众带来微软软件技术的最新进展,而他们自身的软件生涯也是一种财富。记者在大会期间,趁他们讲课 之余,采访了其中的5位讲师。 学得杂一些 “人的成长实际上是个金字塔形的,你的基础越扎实、越广,塔尖才越高。”微软Server管理部门软件设计与测试工程师陈硕就是一个典型的“杂家”。先是在北京大学地球物理系读书,毕业后保送到中科院大气物理所,后又获得普林斯顿大学全额奖学金,读了海洋学方面的硕士,最后又在德州A&M大学拿到商学硕士。当然,她一直没有忘了她的“副业”——计算机,她在北大时就选了相当多的计算机课程; 在普林斯顿大学海洋学实验室使用计算机模拟的方式来研究温室效应、厄尔尼诺等气候问题,当时用的是Cray(大型机)和Unix服务器;在德州A&M大学读书时,找到的兼职工作依旧是维护学校数百人的计算机实验室。 13岁就随父母来到美国的严治庆,本科是在明尼苏达大学电气与计算机工程...
>> 阅读全文
|
|
blue88 |
195 |
2007-8-29 |
|
lot of these assembly files were sent to us , apologies as we have no idea if they work or not .alarmbasloadbasmainbreakbrkbrk2burnoutcalccharcharopcleancleanfclearclockclrcobloadcomintdevdosmacdossymdriverdskwatchexecfreefrespacefxngetseg_cgetspacehdrinthand cdcheckchipscirclecldoc12colctrladeldrivesdrivesexgameportgetsectsound showmem sertype
>> 阅读全文
|
|
blue88 |
1520 |
2007-8-29 |
|
编码技术与习惯 编写一个信任的内核模式部分和编写应用程序是不同的。这个部分提供一些编码技术与习惯,使编写代码更加容易一些。 一般性的建议 首先,在编写驱动程序的时候应当遵循一些一般性的指导方针: 1. 1. 尽量避免使用汇编语言。因为它使代码难于阅读,没有移植性,维护困难。HAL宏提供一个安全的机制去访问I/O设备寄存器。因此,在驱动程序中级少使用汇编语言。 2. 对于特定平台的代码,提供一个单独的模块,至少要用#ifdef/#endif语句将它们括起来。 3. 3. 不要使用标准的C运行时库连接驱动程序。它除了浪费存储器空间之外,一些库的例程的状态或者上下文环境不是线程安全或者驱动程序安全的方式。 4. 4. 这一条可能不适合编写设备驱动程序。天天使用运行库环境的C语言程序员,常常不清楚C程序和C运行库的差别。C运行库需要初始化,它尝试初始化...
>> 阅读全文
|
|
blue88 |
420 |
2007-8-29 |
|
dos下可以调用DOS中断服务程序,WINDOWS下可以调用 API 函数GetVersionEx() 这是我测试PE格式的STUB的源代码, 可以在DOS和WINDOWS下运行,其功能是报告当前OS信息.; @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@; FileName: os_type.asm; function: Reports current operation system type; Author : Purple Endurer; Version : 0.1;; OS Name Offset of INT 08h Offset of INT 43h; -------------------------------------------------------; MS DOS 7.00 001Fh 5710h; MS DOS 7.10 18DEh 6EE5h; UCDOS &l...
>> 阅读全文
|
|
blue88 |
745 |
2007-8-29 |
|
_PROCESSOR DETECTION SCHEMES_by Richard C. Leinecker[LISTING ONE];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Detect the Processor Type -- by Richard C. Leinecker ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;_PTEXT SEGMENT PARA PUBLIC ''CODE'' ASSUME CS:_PTEXT, DS:_PTEXT public _Processor; This routine returns the processor type as an integer value.; C Prototype; int Processor( void );; Returns: 0 == 8088, 1 == 8086, 2 == 80286, 3 == 80386, 4 == 80486; Code assumes es, ax...
>> 阅读全文
|
|
blue88 |
919 |
2007-8-29 |
|
[作者] hsly110 或者 猪头三[Email] pliceman_110@163.com PS:本文如果有错漏请来信指出[范围] 逆向工程[目的] 分享逆向技术心德[目标API] 未文档化的RtlInitializeGenericTable[参考文献] Secrets of Reverse Engineering[备注] 欢迎转载该文章,只要保留完整内容即可1 前言:这2天看了Secrets of Reverse Engineering一书,对分析未文档化的API的技术比较有心得,希望各位看了下面的教程,能抛砖引玉灵活的应用在逆向工程和破解技术上,方法是死的,但是人的思维是活,最重要是灵活应用。2 实践:用OllyDbg对NTDLL.DLL进行反汇编,前提你要加入NTDLL.DLL的符号表,这样你才能更好的对未文档化的API进行反汇编,你们到微软官方网站获取相应版本Windows系统的系统符号表。下面是RtlInitializeGenericTable函数的反汇编代码:01 MOV EDI, EDI ; //压入堆栈,保存EBP的数值 02 PUSH EBP ; >> 阅读全文
|