摘要:
点这里下载本文的配套代码 引子 2006年,中国互联网上的斗争硝烟弥漫。这时的战场上,先前颇为流行的窗口挂钩、API挂钩、进程注入等技术已然成为昨日黄花,大有逐渐淡出之势;取而代之的,则是更狠毒、更为赤裸裸的词汇:驱动、隐藏进程、Rootkit…… 前不久,我不经意翻出自己2005年9月写下的一篇文章《DLL的远程注入技术》,在下面看到了一位名叫L4bm0s的网友说这种技术已经过时了。虽然我也曾想... 阅读全文
摘要:
终于,喧闹一时的“熊猫烧香”案尘埃落定,李俊及其同伙伏法。等待他们的虽是牢狱,但更有重新改过的机会。对于熊猫,这是个结尾;但对于很多人,这只是个开始。一个简单的蠕虫,竟然折射出了万万千千的嘴脸。我并无意将这个话题扯大,但是我不得不说。关于道德,关于盲目的畸形崇拜。 作为一个有五年Windows编程经验的职业程序员,我认为我有资格写下这些文字。如果来访的你以名气为尺度来衡量李马和李俊,那么你可以暂... 阅读全文
摘要:
不知道诸位看官是否有过这样的经历:在不经意之间发现一个DLL文件,它里边有不少有趣的导出函数——但是由于你不知道如何调用这些函数,所以只能大发感慨而又无能为力焉。固然有些知名的DLL可以直接通过搜索引擎来找到它的使用方式(比如本文中的例子ipsearcher.dll),不过我们诚然不能希望自己总能交到这样的好运。所以在本文中,李马希望通过自己文理不甚通达的讲解能够给大家以授人以渔的效果。 先决条件... 阅读全文
摘要:
DLL的远程注入技术是目前Win32病毒广泛使用的一种技术。使用这种技术的病毒体通常位于一个DLL中,在系统启动的时候,一个EXE程序会将这个DLL加载至某些系统进程(如Explorer.exe)中运行。这样一来,普通的进程管理器就很难发现这种病毒了,而且即使发现了也很难清除,因为只要病毒寄生的进程不终止运行,那么这个DLL就不会在内存中卸载,用户也就无法在资源管理器中删除这个DLL文件,真可谓... 阅读全文
摘要:
Windows SDK开发包中并未提供所有的API函数,在本文中我将讨论如何调用这种未公开的API函数。 事实上所有未公开的API函数都和其它的API函数一样包含在系统的动态链接库中,调用这些函数的方法是取得它们的指针,然后通过指针来进行操作。而取得函数地址,是通过GetProcAddress这个API函数实现的: FARPROC WINAPI GetProcAddress( HMODUL... 阅读全文
摘要:
首先请大家看这么一个简单的小程序: #include void main(){int i, b[10];for ( i = 0; i <= 10; i++ ) { b[i] = 0; }} 请问这个程序是否有错?A.正常 B.越界 C.死循环 正确答案是C,相信选A或选B的朋友一定会很纳闷。事实上我也是如此,单单从程序的表面上看,按定义这应该是个越界,因为当循环进行到i... 阅读全文
摘要:
题目: 设有如下C++类 class A{int value;public: A( int n = 0 ) : value( n ) {}int GetValue() {return value; }}; 请使用某种方式来在类的外部改变私有成员A::value的值。 程序员的可能做法: class A{int value;public: A( int n = 0 ) : ... 阅读全文