扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
比如像病毒一样的程序,可以修改自身代码自动编译,甚至可以完善自己的代码中的不足,C#可以实现吗?
目前已知的病毒变异都是人为的。能每次编译不同的程序,只是动态的调整程序部分的地址。程序实质上还是一样的。像灰鸽子生产客户端 就是将灰鸽子病毒核心部分进行加密后,安装在上千个普通程序内部。实现多款产品看似不同。到目前为止,真正能西东修改自身的程序还没有。但是有动态调整自身模块的程序。C#的 CODEDOM甚至可以模拟编写程序的过程,C++也可以在运行时重排自身模块。 XLIVE保护程序每次执行时,内部代码和数据都会被搅拌成不同的样子。但这些不过还都是按照设计者预订的方式进行些变化而已。
病毒程序并不是真的自动修改了自身代码,而是程序员预先就已经设定好遇到各种情况需要解决的问题,比如遇到杀毒软件,病毒程序就调用已经设定好的条件(也就是所谓的“修改代码”)来伪装自己等等。但总代码还是不变,只是很多代码一般情况是不被调用的。
如果是想解决程序修改自身,那么只要解决程序在运行的时候是受保护,不能修改的问题就行了,可以用多个程序相互修改的方法解决,也可以研究一下系统底层的功能。如果是想解决程序自身功能的升级,那目前是很困难的,因为什么是好?并没有一个标准,祸兮福之所倚 福兮祸之所伏,现在这样是好,也许等下又不好了。
灰鸽子之所以可以修改自身的配置信息时是因为在主程序的资源块中有一个.exe形式的资源,在程序编译好后资源文件中的各个字符串的地址就确定了(可以用十六进制编辑工具获得这些特定字符串的地址),然后在主程序中调用LoadResource、writefile等函数修改这些资源地址对应的字符串,当要生成客户端的时候就释放这个exe资源,当然这个exe客户端里就包含了我们已经修改了的配置信息,这是当今木马一般都会采用的配置技术。那个病毒变异并不是病毒自己会变异,而是有人主动对病毒进行修改升级才达到了变异,不要误解了。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者