上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
2011年6月26日
摘要: 从(一)中建立了初步的注入代码后,需要把用来占位的11223344H改为相应的地址,用一个函数来完成.view plaincopy to clipboardprint?//OEP是从PE头中得到的程序入口点,VEP是病毒注入的起始位置,ImageBase是文件基址intBuildInjectCode(DWORDOEP,DWORDVEP,DWORDImageBase){unsignedchar*p=InjectCode;*(DWORD*)(p+1)=VEP+ImageBase+0x2B;//SEH处理程序地址*(DWORD*)(p+15)=ImageBase+0x53;//病毒名,这里我写在了P 阅读全文
posted @ 2011-06-26 21:14 chingliuyu 阅读(285) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/GaA_Ra/archive/2010/06/27/5697579.aspx在我看来,感染型病毒才是真正称得上为病毒,因为感染型病毒的手动清除比较困难,大学的时候,帮同学杀毒最烦躁的就是碰上感染型的病毒,除非写一个程序自动处理,不然手动清除是相当麻烦的.当然我所谓的真正病毒主要是在我看来,能够轻易用手工清除的病毒都不是好的病毒.现在病毒制造者追求的是快速的传播速度,而忽略了病毒的"顽固性",一个木马简单的就使用一个启动的注册表项显然在清理上太方便了,甚至可以进安全模式删了注册表项,连病毒尸体都可以无视,这样就已经不能发挥作用了. 随 阅读全文
posted @ 2011-06-26 21:13 chingliuyu 阅读(267) 评论(0) 推荐(0) 编辑
2011年6月1日
摘要: 关于字符编码,你所需要知道的字符编码的问题看似很小,经常被技术人员忽视,但是很容易导致一些莫名其妙的问题。这里总结了一下字符编码的一些普及性的知识,希望对大家有所帮助。还是得从ASCII码说起说到字符编码,不得不说ASCII码的简史。计算机一开始发明的时候是用来解决数字计算的问题,后来人们发现,计算机还可以做更多的事,例如文本处理。但由于计算机只识“数”,因此人们必须告诉计算机哪个数字来代表哪个特定字符,例如65代表字母‘A’,66代表字母‘B’,以此类推。但是计算机之间字符-数字的对应关系必须得一致,否则就会造成同一段数字在不同计算机上显示出来的字符不一样。因此美国国家标准协会ANSI制定了 阅读全文
posted @ 2011-06-01 13:13 chingliuyu 阅读(211) 评论(0) 推荐(0) 编辑
2011年5月25日
摘要: 转自:http://www.vckbase.com/document/viewdoc/?id=1817摘要:介绍了 thunk 技术中如何避免直接写机器码。关键字:Thunk 机器码 this指针 Thunk技术,一般认为是在程序中直接构造出可执行代码的技术(在正常情况下,这是编译器的任务)。《深度探索C++对象模型》中对这个词的来源有过考证(在中文版的162页),说thunk是knuth的倒拼字。knuth就是大名鼎鼎的计算机经典名著《The Art of Computer Programming》的作者,该书被程序员们称为“编程圣经”,与牛顿的“自然哲学的数学原理”等一起,被评为“世界历. 阅读全文
posted @ 2011-05-25 21:54 chingliuyu 阅读(202) 评论(0) 推荐(0) 编辑
2011年5月11日
摘要: 封包和拆包 收藏作者:fengge8ylf 博客:http://blog.csdn.net/fengge8ylf对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包.自从我从事网络通讯编程工作以来(大概有三年的时间了),我一直在思索和改进封包和拆包的方法.下面就针对这个问题谈谈我的想法,抛砖引玉.若有不对,不妥之处,恳求大家指正.在此先谢过大家了.一.为什么基于TCP的通讯程序需要进行封包和拆包.TCP是个"流"协议,所谓流,就是没有界限的一串数据.大家可以想想河里的流水,是连成一片的,其间是没有分界线的.但一般通讯程序开发是需要定义一个个相互独立的数据包 阅读全文
posted @ 2011-05-11 11:01 chingliuyu 阅读(190) 评论(0) 推荐(0) 编辑
2011年5月9日
摘要: 今天看到公司的代码内有大量的explicit关键字,但是老版的MSDN内例子并不完善,实在是不明白,最终从网上一篇文章内找到了答案:原来explicit是为了防止隐式使用拷贝构造函数的.以下附上从新版MSDN中找到的例子和网上那篇文章:// Copy From MSDNThis keyword is a declaration specifier that can only be applied to in-class constructor declarations. An explicit constructor cannot take part in implicit conversio 阅读全文
posted @ 2011-05-09 20:36 chingliuyu 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 从名字可以看出,CountDownLatch是一个倒数计数的锁,当倒数到0时触发事件,也就是开锁,其他人就可以进入了。在一些应用场合中,需要等待某个条件达到要求后才能做后面的事情;同时当线程都完成后也会触发事件,以便进行后面的操作。CountDownLatch最重要的方法是countDown()和await(),前者主要是倒数一次,后者是等待倒数到0,如果没有到达0,就只有阻塞等待了。下面的例子简单的说明了CountDownLatch的使用方法,模拟了100米赛跑,10名选手已经准备就绪,只等裁判一声令下。当所有人都到达终点时,比赛结束。Java代码packagecom.eyesmore.co 阅读全文
posted @ 2011-05-09 20:26 chingliuyu 阅读(145) 评论(0) 推荐(0) 编辑
2011年5月8日
摘要: 进程线程及堆栈关系的总结突然想到进程的栈和线程的栈,就顺便说一下,线程的栈被自动分配到进程的内存空间中进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻 阅读全文
posted @ 2011-05-08 17:23 chingliuyu 阅读(482) 评论(0) 推荐(0) 编辑
2011年5月5日
摘要: 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://xufish.blogbus.com/logs/72686176.htmlselectselect最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续的读写操作。select目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点,事实上从现在看来,这也是它所剩不多的优点之一。select的一个缺点在于单个进程能够监视的文件描述符的数量存在最大限制,在L 阅读全文
posted @ 2011-05-05 20:24 chingliuyu 阅读(303) 评论(0) 推荐(1) 编辑
摘要: pthread_kill:别被名字吓到,pthread_kill可不是kill,而是向线程发送signal。还记得signal吗,大部分signal的默认动作是终止进程的运行,所以,我们才要用signal()去抓信号并加上处理函数。int pthread_kill(pthread_t thread, int sig);向指定ID的线程发送sig信号,如果线程代码内不做处理,则按照信号默认的行为影响整个进程,也就是说,如果你给一个线程发送了SIGQUIT,但线程却没有实现signal处理函数,则整个进程退出。pthread_kill(threadid, SIGKILL)也一样,杀死整个进程。如果 阅读全文
posted @ 2011-05-05 20:18 chingliuyu 阅读(1244) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 下一页