终结0与1 上部:第二章 上部:第二章:第一节

本文全文阅读地址:http://book.tiexue.net/Book/13913/


天开始慢慢地亮了起来。

在国家信息安全局里,一大群的信息安全分析人员们,正对不久前接收到的一种电脑病毒,进行了一整夜的汇编工作。他们每天都能够监测到大量的不良程序,在网络中进行传播。很多侦测出来的病毒,它们都是利用电脑的端口来进行指令式的破坏。而电脑的端口可以分成以下三大类:

公认端口Well Known Ports从0到1023,它们紧密地绑定在一些服务器上。通常这些端口的通讯,明确表明某种服务的协议。如:80端口实际上就是HTTP的通讯。

注册端口Registered Ports从1024到49151。它们同样松散地绑定在一些服务器上。也就是说有许多的服务器全都绑定了这些端口,而这些端口同样用于许多其他目的。如:许多系统处理动态端口是从1024左右开始。

动态和/或私有端口Dynamic and/or Private Ports是从49152到65535。理论上,不应为服务分配这些端口。实际上机器通常从1024起分配动态端口。也有例外:SUN的RPC端口是从32768开始。

国家信息安全局副总管,拿着一本有关电脑端口的手册看了起来。自从上任开始,他只是负责于行政方面的工作事务。这种工作一旦担任的时间较长,那么有一些东西自然会遭到忘记。就算是临时抱一下佛脚吧!他暗暗讥笑自己的做法,时不时地看了一眼墙上所挂的时钟,看书正好可以打花一阵子的时间。

副总管看了一会儿书,估计所用的时间正是恰恰原本需要等待的时间。

他走到操作台边,朝众位操作员问道:

“你们能在三个小时里做出来吗?”

“三个小时!”

“看来有问题?”

“恐怕是的,先生!”

“那么各位先生!”他再一次地扫视众人,“有没有一个好的建议呢?”

“根据我们部门里的工作性质,任何的建议,它都是建立在一定的时间上,其前提只有一个:那就是需要具备足够的时间。”

“这就是说:不能规定时间?”

众位操作员没有回答,好像不好回答这个问题。

三个小时!单从时间上来讲是足够了,但是从技术的角度上去讲,不可预测性的因素,永远都是无法用技术性的手段去估计的。如果往这个方面上去想的话,自然这一点时间是不够的。可是所有人都需要表明出一个确切的答复。于是他对此点了点头,然后走出房间,朝办公室走去,时间对他领导的小组来讲,每分每秒都是相当宝贵的。

副总管跨进工作室,朝三名等待任务的下属下达了指示。

“把分段编号为四的内容调出来,它是我们的工作内容,三个小时,先生们!我们只有三个小时的时间。里面有大量的中文。需要找到一个可以用来反汇编,在进行反汇编的过程中,遇到有中文字符串,能够纠正其显示乱码的工具软件吗?”

“很难说。”一名部下回答。

“那么尽快去找一下吧!”

“恐怕这样的软件一时找不到。”另一名部下对他说道。

“那么怎么办,必须需要一个这方面的软件,目前时间很紧迫啊!”

进来没有带合的门,让大厅里的工作杂声钻了进来。事实上这种杂声很单一,除了敲击键盘发出来的独特声音之外,几乎不存在其他的杂声。他来到最近的一台计算机操作者的身边,伏身盯看屏幕里的内容,看了一下之后,走离开去,游览其他操作者面前显示器里出现的内容。当信息安全局的副总管走到办公桌边,拿起电话朝下属打去。在电话中说明了要求的内容。

“我想让你帮我找一下,有没有显示中文字符串的软件?”

“利用黑客们常用的工具去试一试。”下属在电话中说道。

“该工具的名字是什么?”

“w32dasm。”

“你是说使用w32dasm能够将中文字符串,正确地显示出来!”

“是的总管!w32dasm 是每一位裂缝者的必备武器,没有它可不行。IDA虽然号称为最强大的,但是现在也该用上它。我曾经自制了一个w32dasm的白金版,不像所谓的黄金版有一个丑陋的小黑窗口,不过,w32dasm也有太多地方需要进行完善。”

“那么解决它需要多长的时间?”

“不会用多久。”

“那么你就加紧干吧!”

“好的,就让它来试一试吧!”下属挂断了电话,开始操作。

首先,用w32dasm 反汇编一个软件(如:notepad.exe),然后按下Ctrl-D拿出终极法宝来softice啦,下断:bpx gdi32!textout 。按F5后随便在w32dasm中移动了一下光标,softice便拦截下来一个程序段,再按下F12就回到下面的45E77E处。把附近的代码稍稍细看一下就会发现,对于要显示的字串是逐字符显示的,这样做的目的可能是为了以红色显示串的某一部分。如从串资源引用窗口双击某一串时,光标将移到那个串上并已红色显示那个串。在大多数的情况下用不着这样。只要能正确地显示出中文串就行,没想到显示速度还很快!

Break due to BPX #0187:0045E782 (ET=4.41 seconds)

: U 45e754 l 40

原代码段:

017F:0045E754 6A01 PUSH 01;* Change here

017F:0045E756 8BD6 MOV EDX, ESI;* and here

017F:0045E758 03D3 ADD EDX, EBX;* and here

017F:0045E75A 81C2B4126F00 ADD EDX, 006F12B4

017F:0045E760 52 PUSH EDX

017F:0045E761 FFB3A0126F00 PUSH DWORD PTR [EBX+006F12A0]

017F:0045E767 8B4DF4 MOV ECX, [EBP-0C]

017F:0045E76A 0FAFCE IMUL ECX, ESI

017F:0045E76D 8B45F8 MOV EAX, [EBP-08]

017F:0045E770 03C8 ADD ECX, EAX

017F:0045E772 51 PUSH ECX

017F:0045E773 FFB35C126F00 PUSH DWORD PT

R [EBX+006F125C]

017F:0045E779 E802060500 CALL GDI32! TextOutA

017F:0045E77E 46 INC ESI

017F:0045E77F 8B55FC MOV EDX, [EBP-04]

017F:0045E782 3BF2 CMP ESI, EDX;* Change here

017F:0045E784 0F823BFFFFFF JB

0045E6C5

017F:0045E78A 8B8BADF60100 MOV ECX, [EBX+0001F6AD]

017F:0045E790 85C9 TEST ECX, ECX

017F:0045E792 747B JZ 0045E80F

操作员在键盘上一阵狂敲,把上面的内容改成如下代码段:

Sun Mar 25

22:21:53 2001 : U 45e754 l 40

017F:0045E754 FF75FC PUSH DWORD PTR [EBP-04] ;串的长度

017F:0045E757 90 NOP

017F:0045E758 8BD3 MOV EDX,EBX;EBX串的偏移基址,直接置入ex.

017F:0045E75A 81C2B4126F00 ADD EDX, 006F12B4

017F:0045E760 52 PUSH EDX ;串的地址

017F:0045E761 FFB3A0126F00 PUSH DWORD PTR [EBX+006F12A0]

017F:0045E767 8B4DF4 MOV ECX, [EBP-0C]

017F:0045E76A 0FAFCE IMUL ECX, ESI

017F:0045E76D 8B45F8 MOV EAX, [EBP-08]

017F:0045E770 03C8 ADD ECX, EAX

017F:0045E772 51 PUSH ECX

017F:0045E773 FFB35C126F00 PUSH DWORD PTR [EBX+006F125C]

017F:0045E779 E802060500 CALL GDI32!

TextOutA

017F:0045E77E 46 INC ESI

017F:0045E77F 8B55FC MOV EDX, [EBP-04]

017F:0045E782 3BF6 CMP ESI,ESI ; 不用循环

017F:0045E784 0F823BFFFFFF JB 0045E6C5

017F:0045E78A 8B8BADF60100 MOV ECX, [EBX+0001F6AD]

017F:0045E790 85C9 TEST ECX, ECX

017F:0045E792 747B JZ 0045E80F

随后通过联机的线路将改写的内容发了过去,同时建议同事们保留原来的版本,当需要反汇编中文软件时就用这个改良版。

现在他的工作算是完了,天已经亮了起来。对于过去一晚的工作内容,它会起到什么样的效果,心里没有底。如果真要说穿的话,绝对不容乐观,自我也不会满意。相反还感到有一种让人见笑的感觉。主要原因在于是否找到真正的断点,不然的话,那些裂缝者毫不加以掩盖的嘲笑语句,会充塞各个信息框。他站起来伸了一个懒腰,新的一天来临了,可是一想到这新的一天,用他的话来说是感到可悲的、无奈的。因为不知道会有多少电脑病毒程序被制造了出来,而且这会儿正在传播开去。


猜你感兴趣

更多 >>

评论

评 论

更多精彩内容