首页
社区
课程
招聘
[分享]CIH作者陈盈豪在HITCON2013上的演讲:兴趣执着和专注力让我与众不同
2013-7-30 19:33 45150

[分享]CIH作者陈盈豪在HITCON2013上的演讲:兴趣执着和专注力让我与众不同

2013-7-30 19:33
45150
这次去hitcon有幸遇到CIH的作者陈盈豪,中国第一代黑客 coolfire.还是收获不少的.这是CIH在HITCON2013的演讲.花了两个晚上整理的,并由CIH亲自校对.现经CIH同意,放在看雪论坛上.CIH说这些东西对大家有帮助就好,另外专门准备了他和看雪的合照:)
陈盈豪



hitcon演讲稿
兴趣执着和专注力让我与众不同
By CIH

我在高中一年级,开始学习BASIC和C语言.那时候我一点都不懂,我的电脑启蒙是从电脑游戏开始的.那时候玩游戏时,过到下一关卡,就会提示插第二片,第二片插进去玩到结束,再把第二片拔出来,插入第三片.所以我的电脑兴趣是从游戏开始.那时候我告诉自己,这一辈子我要变成游戏的设计者.那时候,我只想成为这样的人.所以从高一开始写程式,到考大学的时候,我觉的我写的程式不完美.我就想学高职的资讯系.当时我妈很头大,然后他们和我说你到大学一样可以去考咨讯系.所以我才去考大学,因为当时电脑对于我来说就是一切.

现在讲一下CIH病毒.高一的时候第一次碰到电脑病毒,那时候资讯不像现在这么发达.那时候看到病毒感觉好恐-.当时我第一个反映就是“啊,会不会被传染.”.真是这样的.第一次碰电脑,是去同学他们家去换游戏,那是25年前第一次碰电脑.然后后来,大概是高二时开始写游戏.大一的时候开始碰Windows 3.1.然后Windows95才开始出现.当Win95出现时,兴趣开始有转移,当时最大的兴趣就是组合语言,每天都要写.因为他可以控制所有要控制的东西.在DOS时代,只能寻址1MB,而在WINDOWS世界他可以寻址4GB.所以那时候我写的组合语言不并是很简单,我用组合语言写了一个简单的作业系统,他不是真正的作业系统,他只是在处理作业系统中的虚拟机部分.

大二的时候开始研究Windows的Kernel,怎么去处理虚拟机,怎么处理Exception ,这些都是Win95机制.后来开始虚拟化的文章,特别是候捷,他的著作对系统理解非常深.
大二自己每天都在做一件事,挂上系统进行DEBUG,那时使用的调试器是SoftICE.每天都按下一步,下一步.有些人问我学DEBUG有什么技巧.其实就是遵循一个逻辑,按“下一步”,然后用眼睛看,没什么技巧.但是要一直这样按,要按24小时,因为一但你睡觉,隔天就会忘记昨天你追到哪里了.在大二我一直都在做这样事情.

最后,你会发现Win95跟本就是个大垃圾.对!微软是个垃圾!从头到尾Win95他根本就不是个作业系统,在我的定义里.
Win 95他是个有大BUG的系统.所以呢,他的BUG会很多.Windows 95 宣称是32bit作业系统,他底层很多事实上很多的Kernel会使用16bit作业系统.甚至有些东西会呼叫DOS的API.所以Win 95 有三个作业系统:32bit作业系统,16bit作业系统,再加上16bit DOS作业系统.有人说我怎么厉害入侵一个Win95的Kernel,让自己从User Mode 取得 Kernel Mode.CIH怎么那么厉害.错!因为从头到尾就一两个字节就做到了.因为大门就这么大,一进去就到了Kernel Mode.在Win95,你只要通过一行C的程式就可以让你的系统Crash掉.因为一行C的程式就可以毁掉中断向量表.他没有做检查.因为Win95要向兼容16 bit Windows和DOS.所以才有这个奇怪的现象.而当时真正稳定的系统就是NT--另外系列的作业系统,真正的32bit OS.

后来我在大四,我看到一些病毒,还听说病毒绝对是不可以毁掉BIOS.我在想真的不可以毁掉吗?那时很多人很难想象BIOS会被毁掉,而事实上是可以毁掉的.为什么?因为那时候有可以用工具去升级BIOS,既然工具可以把BIOS升级,那么病毒也可以把BIOS升级.升级完之后,屏幕打开黑黑的看不到.软体可以做到的,病毒都可以做到.那当然了,你会发现这些病毒在爆掉世界之前,我的电脑先暴了.所以我会买两颗BIOS,这颗坏掉后,再烧另外一颗.当时我对烧BIOS不熟,BIOS虽然只有几百K,但把他变成组合指令还是很难追的.最后我以一种极土的方式.就是每天一直按下一步,然后找到可疑的地方停下,看他在什么地方更新BIOS.
如果没有更新,下一次就再多按几下,最终会有一次,一旦执行这个Function就会擦除BIOS为空.然后跟进这个function继续追,没日没夜的测,靠的就是坚强的毅力.
当时从User mode 取得Kernel mode时,我就想就可以为所欲为了.不过我喜欢做一个技术高超的程式员.所以那个时候,我的病毒感染之后,执行文件一个Byte都不会变大,因为我去找执行档里面破碎的空间.所以感染之后的病毒体被切成几块,分开到不同的破碎的地方,然后病毒在执行的时候,再像变形金刚组合起来,就是从执行档里找这几个不同的破碎地方组合起来变为一个病毒.就是因为这样的技术,执行档感染起来后,完全不会增加一个Byte.而同时用一些技巧,去减小function的大小.当时我在测试的时候,每找一个地方我就改一个.优化这个东西,是因为我从高中的时候,我就喜欢玩酷的东西.后来就越玩越火,居然我花6成到7成的时间,每天在做什么事情呢?一个Byte一个Byte的减,能少一个Byte就少一个Byte,检查每一个组合指令能否用更短的方式去替代.对我来说这也是个成就感.这样我的病毒不到1024Byte,就可以做到所有功能.
接下来,因为全班的同学都知道我在写这个病毒.那时候又要毕业了,就开始有人找我要这东西了.
主持人:“我问一句,因为我很好奇,你的同学你怎么找到你写病毒?”
很我兴奋呀,我就告诉全班,这东西写出来可以做的到现有的技术,包括防火墙,杀毒软件完全都看不到他.

主持人:“如果当时有HITCON大会你会否发表?”
如果当时会.

回到之前那里,因为有些老师太压榨学长,所以等学长们毕业后,CIH就会爆了.当时没想那么多.我在写的时候,所有的同学都知道我在写.因为实验室是跟宿舍相连的.所以后来的结果是超出我想像,传播到了全世界,因为那是一年以后.当时看到相关资讯后,我在想.“哇,我捅了大事情了!”一个月之后各大杀毒软件发布的清除程式,然后我想应该没有问题了.想不到一年后又爆炸了.这个事情是无意中发生的事情.
主持人:“我问一下,如果有学生正想写virus你有什么建议?”
如果有人对这块极度感兴趣,我的建议就是除了一直debug外,你还是要把底子打好呀.如果你确定要写BIOS,在Kernel Mode做事情,那就乖乖的花很多时间去写程式,我写了很多年,每天一直在写,研究Windows Kernel 的东西.只有对他很了解,才会知道哪些地方有问题,这些都是基本功.如果你确定真的要写这方面的东西,你要想一想,你可能去创造一个之前没有的东西,但是东西写完之后,同时必须提供相对应的方式去把问题Fix掉.然后写文章纯粹发表技术,这样对资讯安全有更大的贡献.

后来因为CIH,我一直和国安局,资讯局都还有交流.一说交流,就是被叫过去喝茶.那时候真的以为自己这辈子完蛋了.后来呢,如果某些小朋友在这方面出了的问题,他们会问一下我的想法.不过有一次,他们打电话给我:“CIH恭喜你呀,因为你的关系,立法院通过资讯相关犯罪条例!”.我当时想,小弟终于有贡献了.所以呢,站在我的立场,我们可以研究一些攻击方法,但是必须把这些技术或是咨讯安全的问题转换成对科技的贡献.

主持人:“因为我发现你从高中开始,从完全不会电脑,只花了五六年时间,就做出了CIH病毒.这一点让我蛮佩服的.我认识的许多高手,绝大部分是从小学开始.我想问的是说,你究竟花了多少时间,你有在睡觉吗?”
有睡觉.这里问到一点,为什么同样的时间,结果却不同.因为我只做一件事情,就是focus,专注于一件事情.事实上我只会按“下一步”.因为我只专注研究Kernel,其他的我完全不会,写网站不会, Java不会.如果你确定有兴趣,就把所有的时间就投入到这块.所以我和别人不一样,别人总是东碰西碰,而我没有.我每天总是在写组合指令,而且没觉的很烦. 有时写累了,就换点做其他的,休息完再继续写.你看到台上的人技术力很强,其实背后花的时间,是你想象不到的.所以兴趣,执着和专注力才能把事情做好.

其中有一点,造就我在Kernel这块与众不同.因为我高中和大学英文成绩不好.怎么样不好?那时候英文全班倒数第一.强迫去参加一个特殊的英文发音课程,而我大二大三就强迫就被抓去过上这个班.因为这样,你会说有这么多技术,是不是从社区或者网上的技术文献看到的.因为我英文不好,所以不可能从这方面获得.我是接触到SoftICE这个32bit Debuger,我每天一直按,才知道作业系统是怎么做的,虚拟机是怎么做的.我知道大部分黑客是混社群的,而我是比较特别,就是关起门来,自己学,每天和SoftICE相处,看到的都是汇编指令
.

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
点赞4
打赏
分享
最新回复 (62)
雪    币: 116
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
boainfall 2013-7-30 20:13
2
0
相比之下,熊猫的作者又被捉了
雪    币: 1903
活跃值: (876)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
天地豪迈 2013-7-30 20:15
3
0
感觉写得很真实,没有吹也没有热爱党/国的套话,就是平常人。
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
safeboy 2013-7-30 20:20
4
0
专注,大神就是那么专注,学习了
雪    币: 190
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
格鲁 2013-7-30 20:27
5
0
没有了吗?
雪    币: 137
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
小林先生 2013-7-30 20:29
6
0
只能膜拜
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
疯子·修 2013-7-30 20:34
7
0
学习了,触动很大~
雪    币: 143
活跃值: (263)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
透明色 2 2013-7-30 20:42
8
0
前排mark 一个, 说得有道理 , 偶最近比较浮躁, 没啥提高, 不好
雪    币: 32408
活跃值: (18750)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 8 2013-7-30 20:46
9
0
传说中的人物,有机会认识一下。
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
a糊涂虫 2013-7-30 20:50
10
0
我痛恨windows,这个公司出的每一个产品都是白色晃眼的界面,我们这一代这么多的近视眼,很大程度都跟windows有关,就连windows唯一比较高效点的一个产品windbg也是白晃晃的界面,Micfosoft 你奶奶个腿的
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
a糊涂虫 2013-7-30 20:53
11
0
如果有在linux和windows做程序员,能有一样的收入,我500%会做linux的程序员!
雪    币: 85242
活跃值: (198545)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
linhanshi 2013-7-30 21:01
12
0
+1
雪    币: 224
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
leelittle 2013-7-30 22:37
13
0
组合语言是什么语言?
雪    币: 496
活跃值: (281)
能力值: ( LV13,RANK:400 )
在线值:
发帖
回帖
粉丝
tishion 9 2013-7-30 22:39
14
0
assembly
汇编语言
翻译不同
雪    币: 219
活跃值: (738)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
viphack 4 2013-7-30 22:40
15
0
+2 ~~
雪    币: 75
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bird 2013-7-30 23:09
16
0
木有重点。其他都是流水账
雪    币: 45
活跃值: (55)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
shenger 2013-7-30 23:16
17
0
不是木有重点,是你没看到重点。
重点就是SoftIce一步一步每天跟,跟个没玩没了。跟出漏洞来了,CHI也就弄出来了
雪    币: 124
活跃值: (319)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
topofall 2013-7-30 23:53
18
0
专注,确实每天对着电脑,F8,F7,牛人啊
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mumaren 2013-7-31 00:26
19
0
感谢共享

谢谢
雪    币: 5143
活跃值: (363)
能力值: (RANK:170 )
在线值:
发帖
回帖
粉丝
zmworm 4 2013-7-31 10:21
20
0
补上了CIH和看雪的合照:)
雪    币: 1270
活跃值: (104)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
AsmDebuger 1 2013-7-31 10:33
21
0
台湾出版的教材比较经典。CIH让烧录BIOS的发了一笔小财。
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cyberad 2013-7-31 10:36
22
0
您要知道很多linux程序员的收入比windows程序员的收入要高,而且还高不少呢
雪    币: 2321
活跃值: (4028)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
熊猫正正 9 2013-7-31 10:37
23
0
赵老师发的贴子,狂顶!!
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
a糊涂虫 2013-7-31 10:41
24
0
求教,学些什么可以找工作啊,我还是学生呢
雪    币: 114
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dahwa 2013-7-31 10:48
25
0
台湾哪用这些。
游客
登录 | 注册 方可回帖
返回