您的位置: 首页 >> 新闻中心 >> 计算机 >> 网络技术
让你了解黑客如何编写恶意软件
精英教育阅读提示:病毒不能完整的写,起码也要来个半斤的,所以,就有了这个恶意程序的编写过程.说到恶意,其实也不恶,顶多是恶作剧,仅是修改了一些注册表,设置为启动,象征性删除一些文件。本来想加入日志钩子,事件发生时,创建一个shutdown进程恶搞,不过在加进去的模块对话框后,程序进入了一个死循环。
■ 最新课程推荐更多课程>>
学校培训课程开课时间上课地点精英价报名
北 师 大 高级网络管理技术培训班电话预约北京师范大学¥1500
北 师 大 CCNA网络工程师实战班电话预约北京师范大学¥1200
北 师 大 N150Linux/Unix高级网络技术电话预约北京师范大学¥1200
北 师 大 CCNP高级网络工程师班电话预约北京师范大学¥3800
中亚培训 Linux网络工程培训班电话预约东城教学区¥1470

  本来想写个“红色代码Ⅳ”,不过病毒的首要特征,例如API重定位,调用GetKBase 得到Kernel32.dll的基地址,然后再调用调用GetAPIz得到病毒所需要的API,在汇编上实现这些,目前对我来说有难度。在感染过程,要考虑到什么时候感染?感染什么?感染是病毒的核心技术,病毒野蛮地把预定的可执行代码插入到正常文件中,当文件执行的时候,先执行病毒代码,或者添加一些字节。在正常的PE文件中,包括执行代码,头文件信息,数据结构以及描述的各类资源信息,病毒感染文件的时候,并没有把这些也写进去,所以要自己搜索,具体的代码,目前还不能写,但是我会参照别人写的。在传播方面,目前倒是有一个利用邮件附件传播的,在创建Base64编码等方面,我略有缺陷。

  病毒不能完整的写,起码也要来个半斤的,所以,就有了这个恶意程序的编写过程.说到恶意,其实也不恶,顶多是恶作剧,仅是修改了一些注册表,设置为启动,象征性删除一些文件。本来想加入日志钩子,事件发生时,创建一个shutdown进程恶搞,不过在加进去的模块对话框后,程序进入了一个死循环。

  注:程序中有些代码使用了*号代替

  在程序的开头,调用_createKey子程序设置了启动的键值:

szRegKey db ''SOFTWARE\Microsoft\Windows\CurrentVersion\Run'',0 szRegValue db ''StartPE'',0 szStr1 db "C:\WINDOWS\System32\*******.exe"

  这些就是第一步所以设定的。在启动方式中,估计注册表Run启动是最脆弱的,复制到启动文件夹的话,又明显。最好的办法是创建远程线程,然后打开文件管理器 xplorer.exe插入,并且还能隐藏。有个例子是隐藏窗口进程的,桌面的窗口类是“Progman”,我想插进去rundll32.exe,无奈不知道它的类,所以将就些,把目标定位注册表启动,况且这个我掌握的也比较熟悉。

  在开机后,我加入了判断本地时间后发作的代码:

invoke GetSystemTime,offset lpSystemTime ***** ebx,lpSystemTime.wDay .if (ebx == 1)||(ebx == 3)||(ebx == 5)||(ebx == 7)||(ebx == 9)||(ebx == 11)||(ebx == 13)|| (ebx == 15)||(ebx == 17)||(ebx == 19)||(ebx == 21)||(ebx == 23)||(ebx == 25)||(ebx == 27) ||(ebx == 29)

  在win32API 中,对GetSystemTime的描述是“在一个SYSTEMTIME中载入当前系统时间,这个时间采用的是‘协同世界时间’(即UTC,也叫做 GMT)格式”,参数只有一个“lpSystemTime”,并要定义一个“SYSTEMTIME”结构 “lpSystemTime SYSTEMTIME ”。如果今天是1,3,5,7,9……,27,29,那么程序在开机运行的时候,就对系统进行了如下操作:复制自己到系统目录 [注:这个系统目录,我定义成"szWin db ''C:\windows\system32\exp1orer.exe'',0")所以在windows2000以下的系统,是不能复制的。

invoke GetModuleFileName,hModule,addr szDirectory,200 invoke CopyFile,addr szDirectory,addr szWin,FALSE

  利用GetModuleFileName获取路径,然后调用CopyFile,复制到系统目录去。接着“call _AttribCmd”,调用了“_AttribCmd”这个子程序设置只读,隐藏属性。“_AttribCmd”代码描述如下:

_AttribCmd proc invoke GetStartupInfo,addr stStartUp invoke createProcess,NULL,addr szCmdAttrib,NULL,NULL,NULL,\ NORMAL_PRIORITY_CLASS,NULL,NULL,addr stStartUp,addr stProcInfo ret _AttribCmd endp

  很显然,是调用了createProcess创建一个带szCmdAttrib参数的进程。这样,一些用命令参数的程序,可以这样编程来运行,例如 ping,首先设定变量“szCmd db ''c:\windows\system32\ping.exe IP -t'',0”,描述代码是:

.data ***** db ''c:\windows\system32\ping.exe IP -t'',0 .data? stStartUp STARTUPINFO  stProcInfo PROCESS_INFORMATION  .code start: invoke GetStartupInfo,addr stStartUp invoke createProcess,NULL,addr szCmdAttrib,NULL,NULL,NULL,\ NORMAL_PRIORITY_CLASS,NULL,NULL,addr stStartUp,addr stProcInfo end start

本新闻共2页,当前在第1页  1  2

  影视动画培训   北大BEC培训官方报名网站   2008美国夏令营启航官方指定报名网站   2008留学第一站!  
  北师大 火星时代
共举影视动画培训之鼎
  北大BEC培训官方报名网站
现在报名独享95折!
  2008年国家职业资格考试
一次过关完全备考手册
  2008留学第一站
留学资讯尽在精英留学站!
 
上一篇:破解20年的计算机病毒
下一篇:全新体验卡巴斯基7.0Beta功能
 相关新闻
·谨防中招:scjp考题中的种种陷阱·网络工程师考试之60道典型选择题
·网络工程师考试备考:网络应用系统·看别人怎么过网络工程师考试的
·网络工程师通过--我也写一点经验·测试:网络工程师英语部分10套练习题
·人才需求量上升 网络工程师前景看好·网络测试:光纤连接器的评测与性能
·网络测评:安普6类屏蔽布线产品评测·网络测试:测试局域网是否通畅简易方法
·专业指导:网络工程师应考复习指南·测试:网络工程师英语部分10套练习题一
·测试:网络工程师英语部分10套练习题二·测试:网络工程师英语部分10套练习题三
·测试:网络工程师英语部分10套练习题四·测试:网络工程师英语部分10套练习题五
 
◇ 重点栏目导航
◇ 精英服务承诺
教育顾问:010-51660910
QQ交流:138660910
相关资料
·在XP下的8步快速设置无线网络
·路由器设置代理上网的几种类型
·采用透明桥接解决路由器IP配置
·网络工程师必懂的专业术语
·浅谈交换机原理、功能及其组网结构
·动态链接库的创建和调用
·在局域网进行IP包捕获的一种方法
·无线网络技术名词简单解析
·封杀FSO躲避木马程序的侵扰
·对付DSoS攻击资深网管教你几大妙招(1)
相关试题
·网络技术概念、知识点、考点及历年真题
·网络工程师英语部分10套练习题
·网络设计师训练实战测试试题
·CIU2005年5月份网络工程师模拟题五
·CIU2005年5月份网络工程师模拟题四
·CIU2005年5月份网络工程师模拟题三
·CIU2005年5月份网络工程师模拟题二
·CIU2005年5月份网络工程师模拟题一
·CIU2005年5月份网络工程师模拟题答案
·2005年网络工程师考试题目预测(2)
相关热贴
·腾讯:偷盗容易防护难!
·30秒清除你电脑中的垃圾
·改进网页可读性的7个方法
·dos常用网络命令
·尊敬的腾讯您好
·QQ高级技巧五则
·巧改注册表来增强网络功能
·20个常见非病毒情况!
·瞬间掉线故障的解决方法
·三招助您简化网络安全