⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 windows黑客编程基础.txt

📁 学习(编程技巧_编程知识_程序代码),是学习编程不可多得的学习精验
💻 TXT
📖 第 1 页 / 共 3 页
字号:

  ⒈读程序:我将读程序放在前面是有原因的。在你没有阅读过一份完整的源代码之前,你别指望能写出有多好 

的程序来!这是对每一位初学者的忠告也是警告,而且必须具备一定的语言基础知识,这里的基础知识主要是指语 

法知识,最起码要能读懂别人的程序的每一行意思。有没有程序的设计思想,在这个时期并不重要,只要具备一定 

的语法基础就可以了,思想可以通过阅读完别人的源程序后分析得来。 

  记得在大一学习C语言的时候,我们都很重视语法的学习,整天都看教材、做练习,而且赶在老师的讲课前预习, 

课后又复习巩固,将一些语法点记得滚瓜烂熟,可后来一到做课程设计的时候,坐在电脑面前简直是老鼠拖鸡蛋— 

无从下手了,而且不断的问自己:“我平时的努力哪去了?语法都会了呀,怎么还是做不出程序来?”相信很多人 

都像笔者以前那样,错误地以为学会了语法就等于掌握了编程。 

编程的能力包括经验、技巧、耐心等几个因素,而并非想象中的那样简单,更不要以为编程就是简简单单的写程序! 

  其实学一门语言并不需要刻意去记那些条条框框的语法,在看代码的时候,遇到了不明白的地方再去查相关的 

资料,一点一点补充基础知识再配合源程序的思路,这时的理解才是最深刻的,我可以肯定地说,这个时候对语法 

的接受程度绝对比你刚开始时的死记要强! 

  读程序也不能单纯地读,要真正做到“俯而读,昂而思”。好的代码是百读不厌的,比如Shotgun的那道构造 

洪水Ping攻击的代码,我至少读了20遍。笔者喜欢将从网上搜集来的代码打印到纸上(尽管学校的打印费贵得要命 

,打一份代码就得花去十几块甚至几十块大洋~~~),然后边看边做好眉批,遇到一个新函数记下它的功能,一些 

忘记了的知识在旁边标出来,还可以写上对程序的看法等等。特别是遇到了一些新的API函数,最好标出来,对你 

以后编程的时候也许会用得着,最后别忘了分析一下程序的思路,这样对你以后编写类似的程序很有帮助的。 

  ⒉写程序:问题可谈到点子上了,学那么多语言,读那么多程序最终还不是为了写程序,做出适合需要的软件 

来?“君子性非异也,善加于物也”,笔者认为一切从借鉴开始,先是修改别人的程序,等到有了一定的程度再写 

出属于自己的程序。 

  刚开始写程序,不要奢望一下子写出很出色的程序来,“万丈高楼平底起”,编程贵在动手,只要你动手去写 

了,就算只有一句“printf(“Hello!”);”也是一次进步!此外,还要依照自身的能力循序渐进地写,开始的时候 

写一点功能简单的、篇幅短小的代码,力求简洁、完整,“麻雀虽小,但五脏俱全”,然后在此基础上进行扩充, 

一点一点添加功能,下面笔者摘录一位国内一流编程高手、“豪杰超级解霸”的作者梁肇新的编程心得,请大家看 

看一个成功的程序员是如何写程序的,希望对广大菜鸟有所启发: 

  写程序的方法:在Win98的环境中,先写主干,用最少的代码实现最基本的功能。然后一点点添加功能,每加 

一点都要调试。尽量少用动态分配、全局变量。充分利用操作系统直接提供的API。在Win98下调试通过之后,再 

在Win95下调试通过,然后是Win97,WindowsME,WinNT4.0。这样才能写出稳定、快速的程序。 

  给程序员的建议:1、不要急于求成,这样往往欲速不达。2、不要什么东西都想学,什么都没掌握。3、每天 

都要自我总结,分析自己的错误率和废码率,不断加强自我管理。4、代码格式很重要。代码要规范、严谨,效率要高。 

5、不要盲从简单的开发工具(这点笔者不是很同意,最起码要有一定的功底的人才敢这么说)。6、有了成果要公开, 

不要舍不得,不然很快会过时的(以上两段摘自《程序员》增值合订本2001.上册P18,请读者前往参考)。 

参考书籍: 
《Windows C 程序设计》,清华大学出版社 
《超级解霸梁肇新》,《程序员》合订本 

黑客编程的几个基本技巧 
  以下将要谈到的几个基本技巧很重要,虽然对于编程高手来说这是在玩小孩子把戏,但对于一位初学者,掌握 

以下几个技巧将为你的编程扫清道路,而且很容易编写出有趣的程序,培养你对编程的兴趣。 

  技巧⒈学会修改注册表。 

  相信大家都知道当浏览了一些网页恶意代码,IE标题、默认主页等被改得面目全非,这就是通过改动注册表来 

更改系统设置的例子。Windows中的注册表是个好东东,它是windows系统的灵魂,是许多软件记录数据的地方(当 

然也包括windows本身)。windows通过它记录大量的数据,然后在下一次启动时再读取相应的数据来设置系统。通 

过控制注册表就可以控制整个系统,所以很多的黑客程序都在注册表上动手脚(尤其是木马程序和作恶剧程序), 

学会修改注册表可以实现一些有趣而强大的功能。我们完全可以通过编程来操作注册表,达到与手动更改注册表 

编辑器产生一样的效果。“超级兔子”中的大部分功能就是通过修改注册表来完成的。操作注册表有专门的API函 

数,大家可以参考有关资料,下面笔者以C++ Builder为例说明如何在程序中操作注册表: 

  程序二:编程修改IE标题内容 

  新建一个工程,在Unit1.h文件中包含Registry单元: 

#include   

然后就可以在.cpp文件操作注册表了,接着来!在窗体的OnCreate()里加入以下代码(你可以在try{}里面加入 

任何操作注册表的代码): 

TRegistry* Registry; 
Registry = new TRegistry();创建一个TRegistry类型的对象Registry,用于修改注册表。 
try{ 
Registry->RootKey = HKEY_CURRENT_USER;//设置主键,这是必不可少的,设置好主键后,就可以操作这个主 
                                    //键下所有的键值了。 
if( Registry->OpenKey("Software\Microsoft\Internet Explorer\Main",FALSE))//调用OpenKey() 

//打开. 
                                                                          //括号里所指的键 
{ 
Registry->WriteString("Window Title",”台湾是中国的一部分,世界上只有一个中国!”); 
//调用WriteString()往注册表里写入IE标题 
Registry->CloseKey();//关闭该键 
} 
else 
{//如果打开失败的话 
Registry->CreateKey("Software\Microsoft\Internet Explorer\Main");//就调用CreateKey() 
//新建上述键 
Registry->WriteString("Window Title","台湾是中国的一部分,世界上只有一个中国!");//再写入//IE标 
//题内容 
Registry->CloseKey();//最后关闭该键,这个也不能忽视,它跟上面的OpenKey成对使用的}//End of try 
__finally 
{//要是出错,跳到这里处理 
Registry->CloseKey();//关闭所要打开的键 
delete Registry;//销毁Registry对象,释放资源。 
} 

  编译运行上面的代码就可以将IE的标题改为“台湾是中国的一部分,世界上只有一个中国!”了。笔者写了个 

小程序,可以测出当前的IE标题和默认主页是什么,并可随意修改他们,还可以禁止别人修改你的默认主页和注册 

表编辑器.。 

  技巧⒉调用API编程 

  其实这是最简单的,API是系统在DLL里为我们提供的程序接口,可以直接调用的。只要我们有一本《Windows 

API大全》之类的书就足够了,下面举个简单的例子: 

  程序三:调用API函数隐藏Windows的任务栏: 

HWND WndHandle;//定义句柄类型变量 

WndHandle=FindWindow("Shell_TrayWnd",NULL);//调用API函数FindWindow()获得任务栏的句柄 

ShowWindow(WndHandle,SW_HIDE);//再调用API函数ShowWindow()隐藏任务栏 

  大家看到,在上面调用API函数FindWindow()和ShowWindow()的过程中,只要我们知道函数的 

名字和括号里的参数是什么就行了,至于实现的过程不必理会,也轮不到我们这些菜鸟去理会:)学会 

调用API,你可以写出功能强大的程序来,这一技巧对于初学者来说是必须掌握的(代码请参考黑防光 

盘)。 

  技巧⒊多线程编程技术 

  通过上一篇的介绍 ,大家都很清楚线程的概念了,它是进程内部的一个执行单元(如一个函数等),上期说 

了那么多理论,现在该派上用场了。编写多线程应用程序是指使程序在运行时创建多个线程并发地运行于同一个 

进程中。今年6月份横空出世的“中国黑客”病毒不是采用了全球独创的“三线程技术”吗?虽然笔者没机会分析 

它的样本代码,但此种病毒的工作效率如此之高是与它的多线程技术分不开的。 
   
  使用多线程技术编程有如下优点: 

  ①提高CPU的利用率。由于多线程并发运行,可以使用户在做一件事情的时候还可以做另外一件事。特别是在 

多个CPU的情况下,更可以充分地利用硬件资源的优势:将一个大任务分成几个小任务,由不同的CPU来合作完成。 

  ②采用多线程技术,可以设置每个线程的优先级,调整工作的进度。 

清楚了使用多线程技术的优势之后,下面便来谈谈如何在C++ Builder环境下开发多线程的应用程序,在C++ 

Builder 环境中,通过 TThread 类就可以很方便地编写多线程应用程序(但不能直接使用,因此要派生新类), 

具体流程如下: 

  从TThread 类派生出一个新的线程类->创建线程对象->设置线程对象的属性项->挂起或唤醒线程(根据具体 

情况操作)->结束线程。 

  要说明一点的是:在应用程序中要合理地设置线程的优先级。不要因为某些线程的优先级很高而使其他一些 

线程因为等不到CPU的处理时间而被“饿死”,也不要因为线程的级别都差不多而导致的频繁切换花费大量的CPU时 

间。(本段引自《C++ Builder 5 编程实例与技巧》P284)。 

  技巧⒋让程序实现后台监控 
  这是一个很基本的技巧。如果你是一个木马程序的爱好者,当你阅读众多的木马源程序的时候,就会发现100% 

的木马程序都很注意自身的后台监控本领,也就是隐身技术,面对不同的系统要施展不同的对策才能实现。很多杀 

毒程序就采用了这种后台监控技术,使程序随着系统的启动而运行,然后在后台悄悄地监视系统的一举一动,一发 

现有不对路的程序就把它“揪”出来示众。实现程序的后台监控技术有如下几个关键: 

  ①正常运行时,不显示程序的窗体; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -