惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
Cloudbric
Cloudbric
V
Visual Studio Blog
L
LangChain Blog
A
About on SuperTechFans
B
Blog
T
Tenable Blog
罗磊的独立博客
Hacker News: Ask HN
Hacker News: Ask HN
Blog — PlanetScale
Blog — PlanetScale
博客园 - 三生石上(FineUI控件)
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Palo Alto Networks Blog
U
Unit 42
WordPress大学
WordPress大学
D
Darknet – Hacking Tools, Hacker News & Cyber Security
N
News and Events Feed by Topic
T
Threat Research - Cisco Blogs
C
Check Point Blog
Security Latest
Security Latest
M
MIT News - Artificial intelligence
Application and Cybersecurity Blog
Application and Cybersecurity Blog
宝玉的分享
宝玉的分享
P
Proofpoint News Feed
NISL@THU
NISL@THU
Forbes - Security
Forbes - Security
S
Securelist
Security Archives - TechRepublic
Security Archives - TechRepublic
Hugging Face - Blog
Hugging Face - Blog
aimingoo的专栏
aimingoo的专栏
Latest news
Latest news
GbyAI
GbyAI
T
Troy Hunt's Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LINUX DO - 热门话题
V2EX - 技术
V2EX - 技术
小众软件
小众软件
Google DeepMind News
Google DeepMind News
K
Kaspersky official blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
O
OpenAI News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
N
Netflix TechBlog - Medium
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Google DeepMind News
Google DeepMind News
P
Proofpoint News Feed

博客园 - Samson小天

My researches during my college life. IAT HOOK 实现进程保护 大年初一,总结一下去年的十大事件~ 解决多线程产生的“以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值” Guessing Game解题报告 (pku 2328) 分析一道08年10月12日的江苏省程序设计大赛正赛题 数学之美 C# 自定义实体类或集合的自动排序 UltraRun is released 简单的QQ游戏中大家来找茬外挂编写思路 最近写C++程序时关于GetLastError的感悟。 在Vista的UAC下检查程序是否具有Admin权限及应用程序的权限切换 从程序开发角度谈类的封装性。 教你如何解决“线程间操作无效: 从不是创建控件的线程访问它” C#中调用WIN32的API 小记delegate,简单的委托介绍 一个计算简单数学表达式值的算法。 string类型的初值不是随便赋的,记一次奇怪的访问冲突事件 对C#中ADO.NET开发的理解
一些底层的简单东西。
Samson小天 · 2009-08-07 · via 博客园 - Samson小天

      好久不写文章了。今天抽空,把这几个月来的事儿终结下,也顺便写点这几个月学的东西。

      和老师一起做的分区项目终于完成,现在终于知道FAT32,NTFS的复杂,linux下的ext分区已经无心去看了。曾几何时还梦想着自己写个系统呢,这次用汇编写了点实模式的磁盘访问,快吐血了。果然做系统不是那么简单的。

      飞思卡尔智能车的比赛也在杭州电子科技大学比完了,三等奖。我是我队里的首席软件算法工程师(自封的)。还有两位是首席硬件工程师和首席空气动力学工程师。学计算机的搞自动化,碰到纯算法的还好搞点,要是遇到搭电路真是要死人了。真苦了另外两位了,在此表示崇高的敬意。至于软件的算法,说到底要让车子跑得快也就是一个“高内聚,低耦合”的问题。通过“启发引擎”,“控制引擎”和“规则引擎”三层结构,把固定的算法放入规则引擎,把预测到的信息放入启发引擎,最后利用控制引擎来控制车子,这样的结构就能大大降低维护和算法改变的成本。希望下一届的同学能够基于或者说看了我的代码后能给他们个好的思路,希望他们下次能拿二等奖。

      比完赛就到了暑假,看些喜欢的书就必不可少,《Windows内核情景分析》,搞计算机安全是我一直以来的梦想,虽然现在离梦想越来越远,但是这并不影响他成为我的一个爱好发展。毛德操老师的这本书给了我很大的启迪。学《操作系统》课的时候我就有很多问题困扰我了,老师也没给我一个很好的回答。

      “调用RING3下的Windows API会导致Windows自陷到内核态(RING 0),而Windows又有进程调度,如果一个进程在执行自陷后尚未完成内核调用,而进程调度却切换到另外一个进程,那另外一个进程会不会也是RING 0态?”。这个牛角尖问题困扰了我很久,今天终于得到了答案。原来进程调度有剥夺式和非剥夺式。不管是哪种都是要等到从RING 0切换回RING 3的时候才发生调度的。也就是说自陷过程的中内核操作不会被打断,直到所有操作全部完成才会发生下一次进程调度的切换。本人语文功底不强,不知道大家看懂了没,如果没有建议去看看《Windows内核情景分析》,不想买的可以去下电子书。

      “CPU从RING 3到RING 0是怎么切换的,为什么自陷一下就到了RING 0了?”。这个问题很囧,估计老师也被我囧了。虽然老师在课上一直说自陷,可是自陷是怎么来的她也讲不清。只是说中断一下就进去了……=_=||,显然这不能满足我的好奇心。现在总算明白了,这其实是CPU的内部机制,从RING 3->RING 0可以有中断,异常和自陷等方式(x86系列CPU还有一种调用门方式)。这些方式并不是说由软件怎么怎么设计就能让CPU进RING 0的,这其实是由硬件决定的。在intel cpu上的某种进ring 0方法不一定能用在AMD CPU上。这些完全要靠芯片厂商提供的。这些就是为什么微软XP之前的系统都是用INT 2EH这个中断来进内核,而到了XP之后就增加了system enter的快速系统调用(快速进入RING 0),这些其实都是因为CPU的更新换代之后加入了更多功能才使得软件有了发挥的余地,而不是说软件上只要搞一个叫“自陷”的东东一定能进入内核态,说不得哪天INTEL决定放弃自陷以后只能通过异常和中断才能进呢。

      “aspx?id=3这类网站为啥后面能跟这种查询的东西,是怎么设计出来的,为什么能在ASP.NET中用Request[]读出来?”。这个囧问题困了我很久,看了很多关于ASP.NET的数教程,网上搜也没找到个所以然来。后来心一横,老子看最底层的超文本传输协议(http)去。结果还真让我找到了,超文本传输协议规定,http的url必须符合以下形式

      http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]] 

      懂了吧……所以网站都是以hxxp://开头,然后是网址和端口(http规定不输入端口则默认为80),?后面跟的角Query,叫查询条件……明白了吧……这个其实就是超文本的传输协议规定的,根本不是ASP.NET的机制,你乐意了也可以是asp?id=3或是php?id=3,完全没关系。

      好了,今天就写这么多。希望各位站在巨人肩膀上的开发员有闲暇时刻也能低头看看脚趾头。有时候底层的东西也是蛮有趣的。