西数固态硬盘用户注意:马上升级你电脑中的Dashboard软件

西数固态硬盘用户注意:马上升级你电脑中的Dashboard软件,第1张

近日来自Trustwave的安全研究人员发现,西部数据的SSD Dashboard工具箱软件程序存在2个安全漏洞,可能导致用户系统信息泄露并可能被利用安装恶意软件。

第一个安全漏洞是所有2510版本之前的SSD Dashboard软件都使用>

orm是对象关系映射(ObjectRelationalMapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。那么,到底如何实现持久化呢?一种简单的方案是采用硬编码方式,为每一种可能的数据库访问 *** 作提供单独的方法。这种方案存在以下不足:

持久化层缺乏d性。一旦出现业务需求的变更,就必须修改持久化层的接口

持久化层同时与域模型与关系数据库模型绑定,不管域模型还是关系数据库模型发生变化,毒药修改持久化曾的相关程序代码,增加了软件的维护难度。ORM提供了实现持久化层的另一种模式,它采用映射元数据来描述对象关系的映射,使得ORM中间件能在任何一个应用的业务逻辑层和数据库层之间充当桥梁。Java典型的ORM中间件有:Hibernate,ibatis,。

ORM的方法论基于三个核心原则:

简单:以最基本的形式建模数据。

传达性:数据库结构被任何人都能理解的语言文档化。

精确性:基于数据模型创建正确标准化了的结构。

二、ORM的概念让我们从O/R开始。字母O起源于对象(Object),而R则来自于关系(Relational)。几乎所有的程序里面,都存在对象和关系数据库。在业务逻辑层和用户界面层中,我们是面向对象的。当对象信息发生变化的时候,我们需要把对象的信息保存在关系数据库中。当你开发一个应用程序的时候(不使用O/RMapping),你可能会写不少数据访问层的代码,用来从数据库保存,删除,读取对象信息,等等。你在DAL中写了很多的方法来读取对象数据,改变状态对象等等任务。而这些代码写起来总是重复的。ORM解决的主要问题是对象关系的映射。域模型和关系模型分别是建立在概念模型的基础上的。域模型是面向对象的,而关系模型是面向关系的。一般情况下,一个持久化类和一个表对应,类的每个实例对应表中的一条记录,类的每个属性对应表的每个字段。

ORM技术特点:

提高了开发效率。由于ORM可以自动对Entity对象与数据库中的Table进行字段与属性的映射,所以我们实际可能已经不需要一个专用的、庞大的数据访问层。

ORM提供了对数据库的映射,不用sql直接编码,能够像 *** 作对象一样从数据库获取数据。

三、ORM的优缺点ORM的缺点是会牺牲程序的执行效率和会固定思维模式。从系统结构上来看,采用ORM的系统一般都是多层系统,系统的层次多了,效率就会降低。ORM是一种完全的面向对象的做法,而面向对象的做法也会对性能产生一定的影响。在我们开发系统时,一般都有性能问题。性能问题主要产生在算法不正确和与数据库不正确的使用上。ORM所生成的代码一般不太可能写出很高效的算法,在数据库应用上更有可能会被误用,主要体现在对持久对象的提取和和数据的加工处理上,如果用上了ORM,程序员很有可能将全部的数据提取到内存对象中,然后再进行过滤和加工处理,这样就容易产生性能问题。在对对象做持久化时,ORM一般会持久化所有的属性,有时,这是不希望的。但ORM是一种工具,工具确实能解决一些重复,简单的劳动。这是不可否认的。但我们不能指望工具能一劳永逸的解决所有问题,有些问题还是需要特殊处理的,但需要特殊处理的部分对绝大多数的系统,应该是很少的。

66年日历新旧对照表我想找星座对照 十二星座查询_星座屋

白羊座321-419火象星座

金牛座420-520土象星座

双子座521-621风象星座

巨蟹座622-722水象星座

狮子座723-822火象星座

处女座823-922土象星座

天秤座923-1023风象星座

天蝎座1024-1122水象星座

射手座1123-1221火象星座

摩羯座1222-119土象星座

水瓶座120-218风象星座

双鱼座219-320水象星座

星座查询,十二星座性格查询,12星座日期查询

星座是按阳历算的 祝你好运来 找出自己的阳历日期 对照上表即可

日历如何让日期和星期对应起来 选一天作为基准,硬编码到程序中,用你要计算的日期减去基准日,得出其中的天数,模7取余数,再进行计算。比如20100101是星期五。现计算20121231日:20121231-20100101=1095天1095 MOD 7 = 3(1567=1092)星期五+3=星期一(这一步同样可以求模,星期五=5,5+3=8,8 mod 7 = 1,所以是星期一) 所以,传说中的世界末日是星期一。===========================================================我暂时想不出更好的计算方法了,如果想到更好的我会补充回答

以色列日历与中国公历农历的对照表 万年历查询表

sitebaidu/list/wannianli

一九六七年日历对照表、 直接下载个日历软件来用吧,方便。我现在用的人生日历就不错,也不是很大,不占多少内存。

公元一九二九年十二月日历阳历阴历对照表 你好。

公元一九二九年十二月日历阳历阴历对照表如下:

阳历1929-12-01 = 阴历1929-11-01

阳历1929-12-02 = 阴历1929-11-02

阳历1929-12-03 = 阴历1929-11-03

阳历1929-12-04 = 阴历1929-11-04

阳历1929-12-05 = 阴历1929-11-05

阳历1929-12-06 = 阴历1929-11-06

阳历1929-12-07 = 阴历1929-11-07

阳历1929-12-08 = 阴历1929-11-08

阳历1929-12-09 = 阴历1929-11-09

阳历1929-12-10 = 阴历1929-11-10

阳历1929-12-11 = 阴历1929-11-11

阳历1929-12-12 = 阴历1929-11-12

阳历1929-12-13 = 阴历1929-11-13

阳历1929-12-14 = 阴历1929-11-14

阳历1929-12-15 = 阴历1929-11-15

阳历1929-12-16 = 阴历1929-11-16

阳历1929-12-17 = 阴历1929-11-17

阳历1929-12-18 = 阴历1929-11-18

阳历1929-12-19 = 阴历1929-11-19

阳历1929-12-20 = 阴历1929-11-20

阳历1929-12-21 = 阴历1929-11-21

阳历1929-12-22 = 阴历1929-11-22

阳历1929-12-23 = 阴历1929-11-23

阳历1929-12-24 = 阴历1929-11-24

阳历1929-12-25 = 阴历1929-11-25

阳历1929-12-26 = 阴历1929-11-26

阳历1929-12-27 = 阴历1929-11-27

阳历1929-12-28 = 阴历1929-11-28

阳历1929-12-29 = 阴历1929-11-29

阳历1929-12-30 = 阴历1929-11-30

阳历1929-12-31 = 阴历1929-12-01

希望能帮到你。

日历显示:输入任一年将显示出该年的所有月份日期,对应的星期 用C语言编程 10分 #include

int main()

{

inti=0,m=0,k=1,leap=1973,year,f=0,week,r,p=2,g=2,flag;

int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};月份终止

int b[12]={0,3,3,6,1,4,6,2,5,0,3,5};控制周换行1973初始值

int c[12]={};

void space(int);

printf(请输入年份(1973年以后):\n);

scanf(%d,&year);

while(leap=10)printf(%d ,i);

if((i+c[m])%7==0)printf(\n);

}

m++;

i=0;

k++;

printf(\n);

}

getchar();

getchar();

}

void space(int x)

{

int i;

for(i=1;i 如何演算日期(农历)与五行的对应,也就是说某一天的五行属性? 你好,查询五行是有一个口诀的记忆方法的,当然也有表查询。具体参见《玉匣记》、《万年历》等都有所记载。

五行属性查询表

甲子年生海中金命(1924,1984)乙丑年生海中金命(1925,1985)

丙寅年生炉中火命(1926,1986)丁卯年生炉中火命(1927,1987)

戊辰年生大林木命(1928,1988)己巳年生大林木命(1929,1989)

庚午年生路旁土命(1930,1990)辛未年生路旁土命(1931,1991)

壬申年生剑锋金命(1932,1992)癸酉年生剑锋金命(1933,1993)

甲戌年生山头火命(1934,1994)乙亥年生山头火命(1935,1995)

丙子年生涧下水命(1936,1996)丁丑年生涧下水命(1937,1997)

戊寅年生城头土命(1938,1998)己卯年生城头土命(1939,1999)

庚辰年生白蜡金命(1940,2000)辛巳年生白蜡金命(1941,2001)

壬午年生杨柳木命(1942,2002)癸未年生杨柳木命(1943,2003)

甲申年生泉中水命(1944,2004)乙酉年生泉中水命(1945,2005)

丙戌年生屋上土命(1946,2006)丁亥年生屋上土命(1947,2007)

戊子年生霹雳火命(1948,2008)己丑年生霹雳火命(1949,2009)

庚寅年生松柏木命(1950,2010)辛卯年生松柏木命(1951,2011)

壬辰年生长流水命(1952,2012)癸巳年生长流水命(1953,2013)

甲午年生砂石金命(1954,2014)乙未年生砂石金命(1955,2015)

丙申年生山下火命(1956,2016)丁酉年生山下火命(1957,2017)

戊戌年生平地木命(1958,2018)己亥年生平地木命(1959,2019)

庚子年生壁上土命(1960,2020)辛丑年生壁上土命(1961,2021)

壬寅年生金薄金命(1962,2022)癸卯年生金薄金命(1963,2023)

甲辰年生覆灯火命(1964,2024)乙巳年生覆灯火命(1965,2025)

丙午年生天河水命(1966,2026)丁未年生天河水命(1967,2027)

戊申年生大驿土命(1968,2028)己酉年生大驿土命(1969,2029)

庚戌年生钗环金命(1970,2030)辛亥年生钗环金命(1971,2031)

壬子年生桑柘木命(1972,2032)癸丑年生桑柘木命(1973,2033)

甲寅年生大溪水命(1974,2034)已卯年生大溪水命(1975,2035)

丙辰年生沙中土命(1976,2036)丁巳年生沙中土命(1977,2037)

戊午年生天上火命(1978,2038)己未年生天上火命(1979,2039)

庚申年生石榴木命(1980,2040)辛酉年生石榴木命(1981,2041)

壬戌年生大海水命(1982,2042)癸亥年生大海水命(1983,2043)

参考:douban/note/205524023/>>

公历和泰国日历对照 公历年份加543年就是泰国日历,即“佛历”。

例如今天是公历2015年8月4日加543年,那么今天的泰国佛历就是2558年8月4日。

公历(也称西历)以传说耶稣诞辰为纪元元年,泰国是佛教国家,以佛陀诞生年为纪元元年,称“佛历”。耶稣诞辰比佛陀诞生晚543年,所以公历年份加543年就是佛历;反之。佛历年份减543年就是公历,月份和日子不变。

希望可以帮到您,望采纳!

日历2o17年全年日历 可以在人生日历上看,它都有的

日历能重复实用吗,多少年重复一次? 只算公历28年是重复的,因为4年一个闰年,珐周(一星期)是7天,他俩的公倍数是28,所以28年后就相同了,你可以看下2042年的日历就和今天一样。但是算上农历就没有规律了,举一个例子,今年闰九月,下几个闰九月是2109年、2204年、2223年、2576年。是没有规律的,所以算上农历就不可能重复,或者要过上万年才能重复。希望你能明白。

;   一 Java程序的启动过程        对于普通用户来说 Java最让人不习惯的是程序的启动过程 即使对于富有经验的开发者 为了用默认的装载器启动Java程序 不得不编写大量批命令 脚本文件 不得不在命令行环境下进行大量的复制/粘贴 *** 作 也很容易出现误 *** 作         用惯了Windows方便快捷的GUI 人们早就习惯了通过双击运行程序的方式 对于Java程序 要实现这个本机启动功能就必须编写定制的启动器 用定制启动器启动Java程序不仅方便了最终用户 而且使软件作品看起来更专业 本文就以Windows平台为例 介绍如何构造Java定制启动器         Java程序可以由任何本机运行的程序调用执行 所谓Java启动器 就是一个专门用来启动Java程序的本机执行程序 最常见的启动器是Sun在Java Runtime Environment的/bin目录中提供的启动器 就Windows平台而言 它们是java exe和javaw exe 前者运行时打开两个窗口 一个是接收System out/err和启动器输出的控制台窗口 另一个是Java程序本身的窗口 javaw运行时不打开控制台窗口 在J SE/EE平台中 虚拟机以动态库的形式实现 也放在/bin目录下 动态库的名字在Windows中是java dll 在Unix中是java so 所谓 装入虚拟机 就是指装入这个动态库         提供给VM的参数可以通过两种方式指定 或者是在启动器的命令行参数中指定 或者通过定义相应的环境变量指定 只有一个参数例外 要启动的类的名称只能在启动器的命令行参数中指定 虽然指定方式的多样姓为人们各取所需带来了方便 但不可否认地 它也正是许多混乱的根源 使用定制启动器能够完全避免这方面的问题         当VM结束启动类的main()方法的运行 启动器调用destroy()方法释放各种资源并退出 应当注意的是 VM一旦开始运行 我们就不能再卸载它 对于Java启动器来说 能否关闭VM无关紧要 因为启动器会随着Java程序的退出而退出 然而 对于嵌入了VM的本机应用 例如浏览器 这意味着有一块内存被永久姓地占用 不能再收回         二 Windows平台的启动器        搞清楚了Java程序的启动过程 我们就可以开始编写启动器的代码 下面这个启动器用C++写成 适合于所有Windows平台         首先 就象大多数Windows程序一样 启动器需要一个WinMain()入口 与Windows这一特定平台相关的问题 除了必要的类型转换(例如对CreateJavaVM()的转换)之外 另外一个要注意的地方就是装入VM的DLL文件 装入DLL文件最可靠的办法是显式地调用LoadLibrary() 装入JVM之后 就可以利用内核调用GetProcAddress()获得CreateJavaVM()的函数指针 然后调用该指针启动VM 在启动类的标识符中使用的分隔符是斜杠 而不是句点 即我们用 javabunny/JavaBunny 表示启动类 而不是用 javabunny JavaBunny 的形式 这是因为 FindClass()是一个虚拟机调用 而虚拟机内部用斜杠作为分隔符 随便说明一下 这个例子把启动类的名字(和其他一些配置选项)直接写进了代码之中(称为 硬编码 ) 对于提供给最终用户使用的产品 这种做法有其优点 但对于开发环境来说 这些值最好拿出来放在某个配置文件中         Java程序启动后执行的第一个方法称为启动方法 通常是main() 本例通过JNI调用GetStaticMethodID()获得启动方法的ID GetStaticMethodID()要求指定方法的名字( main )和方法的类型描述符( ([Ljava/lang/String;)V ) 这个类型描述符表示方法的参数是一个字符串的数组 返回值类型是void 有关类型描述符的更详细的说明 请参见JVM相关资料 注意 从这里可以看出 在使用定制启动器时 Java程序的启动方法不必一定是static void的main方法 可以用任何方法作为Java程序中第一个执行的方法 甚至包括实例方法或构造函数         示例程序中最后一个需要注意的地方是jvm >DestroyJavaVM()调用 从表面看起来 这个语句似乎是程序执行后进行清理工作的方法 可有可无 其实不然 如果Java程序是多线程的 在调用这个方法时程序仍旧在运行 例如 对于一个运行着的Swing程序 如果它的main方法结束 DestroyJavaVM()的执行将被阻塞 直至所有非守护线程都执行完毕 所以这行代码是必不可少的 如果省略这行代码 则当主线程执行完毕 即使其他线程(例如Swing GUI的事件循环)仍旧在运行 整个程序也会立即退出         三 配置和使用        如前所述 这个启动器以硬编码的方式指定了启动类的名字 但是没有一个路径是硬编码的 这是定制启动器的优点之一 由于所有的路径都是相对的 用户可以把整个Java应用从一个文件夹拖到另一个驱动器(或另一台机器)的文件夹 程序的运行不会出现任何问题 本文的启动器假定JRE总是在应用软件所在目录的一个子目录下 也就是说 JRE应当随同应用软件一起发布 这样做的好处是使得应用软件完全不依赖于用户的环境 确保了JRE与应用程序的兼容姓 即使用户系统中原来已经有JRE 增加一个额外的JRE也只不过稍微占用了一点磁盘空间 但却能有效地保证应用软件的稳定姓         在某些场合 你可能需要将一些配置参数移出程序 例如放入一个配置文件 特别是在需要频繁改动启动方式的开发阶段 建议移出程序之外的配置选项包括 启动类 类的路径 某些VM参数 例如 verbose lishixinzhi/Article/program/Java/hx/201311/26520

$("select option:selected")next() 完整代码 $(function() {$("select")change(function(event) {var obj = $(this)find("option:selected")next();alert("选中项的下一个: 内容"+objhtml()+",值"+objval());});})

上次XCTF-game说了之后要学习一波aslr的关闭方法,昨天看了看逆向工程核心原理,发现上面有讲解其关闭的方法,特此记录。

先从pe文件重定位说起。

创建好进程后,exe文件会被首先加载进imagebase指定的内存空间地址,因此不用考虑exe重定位。但是DLL和SYS文件可能因为加载几个,导致除了第一个之外其他文件加载到其他尚未占用的地址。

而开启了aslr之后exe可以不加载到imagebse的位置,另外在aslr之前,dll也总是加载到固定地址。

不仅指令的地址变了,而且见到这些红色的call的地址都是硬编码进入的程序,每次也会变。pe装载器进行重定位处理时,最关键的就是查找硬编码地址的位置。而重定位表就是记录硬编码地址偏移的列表。

基址重定位表地址位于IMAGE_OPTION_HEADER的IMAGE_DATA_DIRECTORY[5]。

前面的DWORD是RVA后面的DWORD是大小

typedef struct _IMAGE_DATA_DIRECTORY {

    DWORD VirtualAddress;

    DWORD Size;

} IMAGE_DATA_DIRECTORY,PIMAGE_DATA_DIRECTORY;

另外再看看pe头IMAGE_FILE_HEADER这里

在IMAGE_FILE_HEADER的Characteristics字段。可以见到这个Relocations stripped是没有勾上的。

大意是,重定位信息从这个文件被剥离,这个文件必须被装在进preferred基址(指的应该就是ImageBase),如果ImageBase不可用,加载器会报错。

我们这里要动手关闭aslr,这个选项不用改。要改的是IMAGE_OPTIONAL_HEADER的DLL Characteristics字段

下面是DLL Characteristics的属性值,相或代表属性叠加。

将8140改为8100,也就是让DLL不能move

再次执行程序,发现是004打头的,这个时候aslr就被关上了。

写程序,调试很重要。调试病毒其实就是调试程序,唯一的不同在于调试正常程序时你

可以任意运行程序,但调试病毒则不行,如果你做好了一个release版,相信你自己也不

敢在你自己的机器上运行。

1,分步调试,在一个模块还有bug的时候绝不要开始写新的模块。一个完整的病毒可能

会给你的机器带来很大的伤害,在病毒获得生命之前,精心调试她的肢体是个很不错的

主意,同时这也是进行局部优化的一个大好时机。比如你写了一个感染模块,好的,先

就调试她,直到她可以成功的把你现在的伪病毒(部分病毒代码+部分调试用的辅助代码

)与宿主相结合为止。然后暂时抛弃她,埋头写其它部分,直到最后把她和整个病毒结

合在一起,再综合调试。千万不要因为你激动于有了新的想法而急着付诸于实现,如果

你一口气写完整个病毒,那么调试将是非常痛苦的事。

2,OutputDebugString。现在的调试工具已经相当发达,但有时古老的“printf”打印

信息的技术还是非常有用的。在Windows下,这个“printf”就是OutputDebugString(M

FC里可用TRACE,本质还是这东西),用它可以在调试工具的输出窗口上列出信息,可以

告诉你病毒现在执行到哪里了。用惯了Delphi、VC强大调试功能的人可能还不很理解这

种古老技术的魅力,在你为调试一个bug一筹莫展的时候,试试它吧。

注意OutputDebugString是把字符串送往调试器,所以要有一个“调试器”监视你的病毒

来截获这些字符串,你当然可以用Delphi或VC attach到你的病毒进程,但更好的选择也

许是

A,装一个SoftIce,在需要看输出信息时,Ctrl+D呼叫出SI,在它的输出窗口里查看。

B,下载一个DbgView,然后运行它,它就能俘虏所有的调试信息。这是最好的方法。

3,Dummy File。在调试阶段,显然不能让你的病毒在你的机器上胡乱寻找文件进行感染

,要限制它的动作。在感染模块里加上几行代码,让它判断文件名,只感染特定文件,

比如只感染damn开头的文件。对于Dummy File的选择我们要慎重考虑。如果你只用一个

文件来测试,那么恭喜你,你的病毒在实战中十有八九会经常崩溃。同为PE文件,Borla

nd和Microshit的编译器产生的就大不同(即使同是Borland的编译器,Delphi和BCB之间

也有差别。BCB生成的exe有一个export table,比较特殊,Delphi生成的则没有),不

注意其中的差别,你的病毒将很虚弱,不堪一击。你需要找各种类型的文件来试验,Del

phi程序,BCB程序,VC程序,TASM程序,SFX程序,等等,都应该是你试验的对象。还要

试试你的病毒不能感染但可能检查的程序,比如DOS程序,我以前的一个病毒(Win32Loi

cer)就因为只试验有效的PE病毒而bug累累

4,不只怀疑自己。当你对几行代码进行几天的测试后确信你的代码是正确的但却还是出

错的时候,你可能要怀疑 *** 作系统本身。国外的一些汇编高手(非病毒高手)也忍不住

要大骂MShit的人是猪,因为Windows可能会给你的程序带来意想不到的错误。你试试一

些需要处理字符串的API,在调用它们前先把DF置1(用std指令),然后调用,看看……

………………。为了不遭到M$的骚扰,编码时就要非常仔细,在调用API时要确保Flag基

本被M$认可,比如DF,CF清0,主要是DF。

5,关于调试代码。为了限制病毒在调试时的行为,我们可能需要加上一些调试代码,比

如判断文件名的代码,这些代码将不出现在release版中,只在调试时有用,所以我们要

在release版中去掉这些代码。对于这一点有两种方法,一是用条件汇编(条件编译)把

这些代码括起来,比如

if debug

mov eax,[esi]

cmp eax,'nmad'

jnz notinfect

endif

在relese版中只要把debug声明成debug = 0就行了。

二是在release版中把这些代码彻底删除,这样是最彻底最不容易出错的。我个人倾向于

二,但为了安全起见,我通常是二者都用。为了方便辨识调试代码,需要有一定的代码

风格。无论是汇编还是C,我们通常把代码进行缩进,所以为了辨识调试代码,可以把所

有调试代码都顶头写,这样就显得很突兀,很好辨认。在任何情况下保持良好的代码风

格是一种值得培养的习惯。

6,仔细阅读代码。即使你已经试了1000种情况都证明你的病毒是运行良好的,但不代表

第1001种情况你还能那么幸运。要想真正bug free是非常困难的,但我们可以争取把bug

减小到最少。你的病毒可能在“正常”环境中生活得很好,但极端情况呢?比如感染一

个大小为3G的PE文件会怎样?可能你不想或不能花费太多的时间在编写病毒和调试病毒

上,所以你不能做一些极端试验,那么如果你仍不想放过为已经测试良好的病毒找出bug

的机会,仔细阅读你的病毒代码是个很不错的选择。不管你相信不相信,人类的定式思

维是很严重的,不妨举个大家可能都经历过的例子。我在上学时,不是总要考试吗?我

经常是答完以后,检查一遍没发现错误就认为全都对了,然后就坐立不安,想睡觉,但

感觉那样太对不起考试,对不起自己,对不起人民………………:-),想再检查吧,又觉

得自己对了,检查不进去,就这样惶惑到铃声响起,最后也没得满分。说这些废话,只

想说明一个问题,就是你在阅读自己的代码时,如果还是读源代码,那么可能自我感觉

良好,思维定式发生作用,而且还有注释帮忙,检查不出什么的。所以最好换一种方式

,用IDA反汇编你的病毒,然后看反汇编的结果,当作一个别人写的病毒来看,应该可以

比较容易看出问题,然后再在有问题的地方查阅源代码,确定是否是bug。当然这种方法

对于汇编病毒是有效的,但对于其它语言写的东西,还是看源代码吧

基本的说完了,让我们再稍微进一步,具体看看一些病毒调试的情况

1,进程间调试。

在病毒运行的时候骚扰别的进程有时是非常有用且非常有趣的,这时就要跨进程调试了

。这里所说的跨进程调试,不是真的让你去调试宿主进程,那样还是很麻烦而且没必要

的。我们想要知道的结果通常就是看病毒在其它进程里的健康情况,以及精神是否愉快

。这种情况,没什么比OutputDebugString更有效的了。在插入的代码中放几条指令,调

用OutputDebugString来记录病毒的心跳,当你看到应该出现的信息都输出时,那么可以

说插入进程已经非常成功了。对于OutputDebugString的地址,可以用硬编码。int 3也

是很好的手段,它疗效显著,而且不像OutputDebugString那样需要很多字节去输出信息

,只要一个字节就够了。在插入代码中放几个int 3,然后保证SoftIce里的i3here为on

,是个非常不错的选择。

2,机器间调试

病毒发展的一个大趋势就是从单机感染开始转向跨机器感染,机器间的传播通道可能包

括LAN,Internet,无线设备,等等。在写这类病毒一定要仔细调试,在本地运行良好的

病毒可能在搜索局域网时就死翘翘了。

3,ring 0代码调试。我喜欢可以在最多机器上生存的Win32病毒,所以以ring 3为主,

但可能有人喜欢比较深入的技术,想玩ring 0病毒,所以这里稍微说一下ring 0的调试

。想要调试ring 0病毒,如果你在你自己的机器上调试,那么要做好牺牲的心理准备,

大量的blue screen会搞得你晕头转向。

--

以上就是关于西数固态硬盘用户注意:马上升级你电脑中的Dashboard软件全部的内容,包括:西数固态硬盘用户注意:马上升级你电脑中的Dashboard软件、互 *** 作性的解决办法_ *** 作性问题、新旧日历对照表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9799839.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存