谁有源代码? kingron上次我的问题关于注册表的在注册表中输入二进制值如何换算?(如:我要输入FF FF)我刚接触DELPHI没多久,希望能交你这个朋友[email protected]我只有16岁 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 技术不是问题,但好歹要有点道德(或说“人性”)嘛。就算是hacker也有自己的一套道德规范。跟你的boss说吧 我也觉得很不道德,我只告诉你定5个月期限的方法吧。现在一般实现这种功能的方法就是修改注册表。 一般先做一个安装文件,在其中向注册表中写入程序需要的键值,注意限制用的键值不要和程序的键值写到一起。限制的键值一共有两个,一个为记时的,一个为判断是否过期(可用0,1)。当程序的主窗口打开前先从注册表中判断“是否过期”的键值是否为1,当为0时,在判断日期变化,把差的天数累加如记时的键值。当累加的键值超过5个月后,过期的键值编为1。 程序就不能用了。对了,在安装程序中也加入对对”是否过期“的键值的判断,这样的话一但过了期,连安装都不可以了。唯一的办法只有FORMAT。(但是键值找到了的话。) 为什么要用注册表呢?很容易被发现的哦。自己在windows\ 下直接乱改个什么不就OK乐。 我没有源代码。不过我知道实现kvxxx的逻辑炸弹的方法。但是不能告诉你那样做太没有道德了。在我看来,王XX(防毒???)和cih的作者(病毒作者)《这个关系真搞笑~切~~》没有什么不同都是混蛋!一个炸硬盘,一个写BIOS都是畜生! 关注,源代码我也想看 [email protected] 让对方的机子起不来?你想破坏硬件吗?!@@@#$%,我也想知道源码(可惜高手一般不会这么做)[email protected] 在VB中用open filename for output as #filenumber``````print #filenumer,破坏的信息```的方法直接击攻写破坏windows的关键文件。 让老win起不来的办法太多了,干脆捆个病毒得了,到一定时间就执行这个病毒不就可以了。不过,投毒可是。 技术论坛何必谈论过多的道义,我不否认上述行为的劣性。但我有个人体会,觉得有时这种行为的必要性:我不是计算机人员,在公司是文员,由于会一点编程,一次老板找我为他做软件用于工作,答应给我3千元。系统顺利运行了,他为此可以裁员10名,但最终他只给了我1千元。为了在公司混下去,我不敢找他要剩余的钱,也不敢明目张胆的弄坏系统,只能想出和xianyunyehe一样的方法,让他感觉系统不能用和我无关,这样我才解气,还不招事。我一直想这样,既然xianyunyehe提出了,为和大家不站在技术的角度上阐述以下呢,我洗耳恭听 让应用程序自身删除 (在应用程序刚要退出之前创建一个Delself.bat文件,让它先删除应用程序,然后删除自身。在Form的OnClose事件中加入下列代码) AssignFile(F, ′delself.bat′);Rewrite(F);{F为TextFile类型} WriteLn(F,′del ′+ExtractFileName(Application.ExeName)); WriteLn(F,′del %0′);CloseFile(F); WinExec(′delself.bat′,SW—HIDE); 安装与卸载之卸载篇---程序自杀陈经韬电脑用得久了,安装的软件乱七八糟,怎么办?一般我们会打开控制面版里的添加删除程序选项,选择相应的卸载选项就可以了。但如果我们能在自己的程序中增加一个删除功能来实现“自杀”,则会令软件增色不少。有点电脑常识的人都知道,在Windows下如果程序正在运行,那么是无法将其删除的,当然,也不是绝对不可以。CIH大家应该知道吧,它的核心有两个,一个就是取得Ring0级权限,然后就可以随便干想干的事(比如说修改正在运行的文件),而我们一般的程序是运行在Ring3级上的。顺便提一句---NT下没有Ring的概念,所以CIH对其无效。用Delphi内镶汇编也可以取得Ring0级权限,但如果我们的程序运行在NT或者Win2000下就没有效果了。在说句题外话,现在的编译器都很不错了,大多数程序员都编不出比编译器编译出的更理想的代码,象Delphi,如果将它的某些单元代码改用内镶汇编,在某些方面如字符串处理方面会提高5倍左右的效率,但NT不支持某些汇编代码,如果程序在NT下工作就会出错,怎么办?稳定第一!所以我们不用这个方法,而且,用这个方法有点杀鸡用牛刀的味道。用过DOS的朋友应该还记得批处理文件吧,新建一个批处理文件a.bat,编辑其内容为:del %0,然后运行它,怎么样?a.bat把自己删除掉了!!!好,我们就用它来进行程序的“自杀”!找一个EXE可执行文件,比如说abc.exe,新建一个批处理文件a.bat,编辑其内容为::ppdel abc.exeif exist abc.exe goto ppdel %0先运行abc.exe,再运行a.bat,然后将abc.exe退出,你会发现a.exe和a.bat都没有了!!!按照这个思路,我们可以在程序中根据文件名称写一个批处理,将上面的abc.exe换成自己的EXE文件名就可以了。运行Delphi,新建一个工程,添加一个Button到窗体上,点击Button,写下如下代码:procedure TForm1.Button1Click(Sender: TObject);var Selfname,BatFilename,s1,s2:string;BatchFile: TextFile;beginSelfname:=Extractfilename(application.exename);//取EXE文件自己的名称BatFilename:=ExtractFilePath(Application.ExeName)+ ''a.bat'';//批处理文件名称S1:=''@del ''+Selfname;S2:=''if exist ''+Selfname+'' goto pp'';assignfile(BatchFile,BatFilename);rewrite(BatchFile);writeln(BatchFile,'':pp'');writeln(BatchFile,S1);writeln(BatchFile,S2);writeln(BatchFile,''@del %0'');closefile(BatchFile);winexec(pchar(BatFilename),sw_hide);//隐藏窗口运行a.batapplication.Terminate;//退出程序end;那我们的事情是不是就完了?NO!上面的程序原理是对的,但如果你的程序是运行在系统目录下如Windows目录下或者Windows\System等目录下,除非你打开那个目录看着它删除,否则根本没法卸掉的。这可能是因为Windows对系统目录有保护功能,那怎么办?别急,我们请出一个函数CreateProcess,它的原型为:BOOL CreateProcess(LPCTSTR lpApplicationName, // pointer to name of executable module LPTSTR lpCommandLine, // pointer to command line stringLPSECURITY_ATTRIBUTES lpProcessAttributes, // pointer to process security attributes LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to thread security attributes BOOL bInheritHandles, // handle inheritance flag DWORD dwCreationFlags, // creation flags LPVOID lpEnvironment, // pointer to new environment block LPCTSTR lpCurrentDirectory, // pointer to current directory name LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO LPPROCESS_INFORMATION lpProcessInformation // pointer to PROCESS_INFORMATION );这个函数和OpenProcess、ReadProcessMemory、WriteProcessMemory使用可以用来读取和修改内存数据,常用的游戏修改器就是用它。由于这些不是本文的重点所以这里不作详细介绍,感兴趣的读者可自行翻阅Delphi自带的帮助文件。用CreateProcess函数创建一个进程就可以完美的完成我们的“程序自杀”了。运行Delphi,新建一个工程,添加一个Button到窗体上,全部代码如下:unit Unit1;interfaceusesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls;typeTForm1 = class(TForm)Button1: TButton;procedure My_DeleteMe; //自定义程序自杀过程procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);beginMy_DeleteMe;end;procedure TForm1.My_DeleteMe; //程序自杀varBatchFile: TextFile;BatchFileName: string;ProcessInfo: TProcessInformation;StartUpInfo: TStartupInfo;begin{By Lovejingtao.http://Lovejingtao.126.com,[email protected]}BatchFileName := ExtractFilePath(ParamStr(0)) + ''$$a.bat'';AssignFile(BatchFile, BatchFileName);Rewrite(BatchFile);Writeln(BatchFile, '':try'');Writeln(BatchFile, ''del "'' + ParamStr(0) + ''"'');Writeln(BatchFile,''if exist "'' + ParamStr(0) + ''"'' + '' goto try'');Writeln(BatchFile, ''del "'' + BatchFileName + ''"'');Writeln(BatchFile, ''cls'');CloseFile(BatchFile);FillChar(StartUpInfo, SizeOf(StartUpInfo), $00);StartUpInfo.dwFlags := STARTF_USESHOWWINDOW;StartUpInfo.wShowWindow := SW_HIDE;if CreateProcess(nil, PChar(BatchFileName), nil, nil,False, IDLE_PRIORITY_CLASS, nil, nil, StartUpInfo,ProcessInfo) thenbeginCloseHandle(ProcessInfo.hThread);CloseHandle(ProcessInfo.hProcess);end;Application.Terminate;end;end.补充:1、上面的批处理的 del %0等同于 del a.bat,用del a.bat则批处理文件必须为a.bat,用del %0则可以随意。2、所有程序在Pwin98+Delphi5、Win2000+Delphi5下运行通过。本文的标题为《安装与卸载之卸载篇》,下次将介绍如何用Delphi制作自己的安装程序。记得有一位著名的黑客说过:我从来不去找什么工具软件,需要的话就自己写一个。如果我们也持这种态度,则编程水平一定会越来越高。★作者:陈经韬Http:Lovejingtao.126.com E-Mail: [email protected] 运行的时候提示 变量没有被用过 是为什么? 如何调用TTabSheet包含窗体的OnClose事件 服务程序的问题 新手问题-请问如何把打开的文件的内容写入Tmemo中 本人菜鸟。找高手帮忙。急~~~~~~~~ 如何运行一个DOS程序,并且取得他的输出 新问题出现啦!大家快帮帮手!我出50分!! 请解释一下这几个东西 怎样能够弹出“浏览文件夹”的对话框,用来选择文件夹? 一个“难者不会,会者不难”的问题 RasDial的参数如何配置,急!急!急!!! 各位高手,100分问三个问题?小弟编财务软件遇到的问题。
就算是hacker也有自己的一套道德规范。
跟你的boss说吧
一般先做一个安装文件,在其中向注册表中写入程序需要的键值,注意限制用的键值不要和程序
的键值写到一起。限制的键值一共有两个,一个为记时的,一个为判断是否过期(可用0,1)。
当程序的主窗口打开前先从注册表中判断“是否过期”的键值是否为1,当为0时,在判断日期变
化,把差的天数累加如记时的键值。当累加的键值超过5个月后,过期的键值编为1。 程序就不能
用了。对了,在安装程序中也加入对对”是否过期“的键值的判断,这样的话一但过了期,连安装
都不可以了。唯一的办法只有FORMAT。(但是键值找到了的话。)
不过我知道实现kvxxx
的逻辑炸弹的方法。
但是不能告诉你
那样做太没有道德了。在我看来,王XX(防毒???)和cih的作者(病毒作者)《这个关系真搞笑~切~~》
没有什么不同
都是混蛋!
一个炸硬盘,一个写BIOS
都是畜生!
open filename for output as #filenumber
``````
print #filenumer,破坏的信息
```
的方法直接击攻写破坏windows的关键文件。
(在应用程序刚要退出之前创建一个Delself.bat文件,让它先删除应用程序,然后删除自身。在Form的OnClose事件中加入下列代码) AssignFile(F, ′delself.bat′);Rewrite(F);{F为TextFile类型} WriteLn(F,′del ′+ExtractFileName(Application.ExeName)); WriteLn(F,′del %0′);CloseFile(F); WinExec(′delself.bat′,SW—HIDE);
陈经韬
电脑用得久了,安装的软件乱七八糟,怎么办?一般我们会打开控制面版里的添加删除程序选项,选择相应的卸载选项就可以了。但如果我们能在自己的程序中增加一个删除功能来实现“自杀”,则会令软件增色不少。
有点电脑常识的人都知道,在Windows下如果程序正在运行,那么是无法将其删除的,当然,也不是绝对不可以。CIH大家应该知道吧,它的核心有两个,一个就是取得Ring0级权限,然后就可以随便干想干的事(比如说修改正在运行的文件),而我们一般的程序是运行在Ring3级上的。顺便提一句---NT下没有Ring的概念,所以CIH对其无效。用Delphi内镶汇编也可以取得Ring0级权限,但如果我们的程序运行在NT或者Win2000下就没有效果了。在说句题外话,现在的编译器都很不错了,大多数程序员都编不出比编译器编译出的更理想的代码,象Delphi,如果将它的某些单元代码改用内镶汇编,在某些方面如字符串处理方面会提高5倍左右的效率,但NT不支持某些汇编代码,如果程序在NT下工作就会出错,怎么办?稳定第一!所以我们不用这个方法,而且,用这个方法有点杀鸡用牛刀的味道。
用过DOS的朋友应该还记得批处理文件吧,新建一个批处理文件a.bat,编辑其内容为:del %0,然后运行它,怎么样?a.bat把自己删除掉了!!!好,我们就用它来进行程序的“自杀”!
找一个EXE可执行文件,比如说abc.exe,新建一个批处理文件a.bat,编辑其内容为:
:pp
del abc.exe
if exist abc.exe goto pp
del %0
先运行abc.exe,再运行a.bat,然后将abc.exe退出,你会发现a.exe和a.bat都没有了!!!按照这个思路,我们可以在程序中根据文件名称写一个批处理,将上面的abc.exe换成自己的EXE文件名就可以了。运行Delphi,新建一个工程,添加一个Button到窗体上,点击Button,写下如下代码:
procedure TForm1.Button1Click(Sender: TObject);
var Selfname,BatFilename,s1,s2:string;
BatchFile: TextFile;
begin
Selfname:=Extractfilename(application.exename);//取EXE文件自己的名称
BatFilename:=ExtractFilePath(Application.ExeName)+ ''a.bat'';//批处理文件名称
S1:=''@del ''+Selfname;
S2:=''if exist ''+Selfname+'' goto pp'';
assignfile(BatchFile,BatFilename);
rewrite(BatchFile);
writeln(BatchFile,'':pp'');
writeln(BatchFile,S1);
writeln(BatchFile,S2);
writeln(BatchFile,''@del %0'');
closefile(BatchFile);
winexec(pchar(BatFilename),sw_hide);//隐藏窗口运行a.bat
application.Terminate;//退出程序
end;
那我们的事情是不是就完了?NO!上面的程序原理是对的,但如果你的程序是运行在系统目录下如Windows目录下或者Windows\System等目录下,除非你打开那个目录看着它删除,否则根本没法卸掉的。这可能是因为Windows对系统目录有保护功能,那怎么办?别急,我们请出一个函数CreateProcess,它的原型为:
BOOL CreateProcess(
LPCTSTR lpApplicationName, // pointer to name of executable module
LPTSTR lpCommandLine, // pointer to command line string
LPSECURITY_ATTRIBUTES lpProcessAttributes, // pointer to process security attributes
LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to thread security attributes
BOOL bInheritHandles, // handle inheritance flag
DWORD dwCreationFlags, // creation flags
LPVOID lpEnvironment, // pointer to new environment block
LPCTSTR lpCurrentDirectory, // pointer to current directory name
LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO
LPPROCESS_INFORMATION lpProcessInformation // pointer to PROCESS_INFORMATION
);
这个函数和OpenProcess、ReadProcessMemory、WriteProcessMemory使用可以用来读取和修改内存数据,常用的游戏修改器就是用它。由于这些不是本文的重点所以这里不作详细介绍,感兴趣的读者可自行翻阅Delphi自带的帮助文件。用CreateProcess函数创建一个进程就可以完美的完成我们的“程序自杀”了。
运行Delphi,新建一个工程,添加一个Button到窗体上,全部代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure My_DeleteMe; //自定义程序自杀过程
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
My_DeleteMe;
end;
procedure TForm1.My_DeleteMe; //程序自杀
var
BatchFile: TextFile;
BatchFileName: string;
ProcessInfo: TProcessInformation;
StartUpInfo: TStartupInfo;
begin
{By Lovejingtao.http://Lovejingtao.126.com,[email protected]}
BatchFileName := ExtractFilePath(ParamStr(0)) + ''$$a.bat'';
AssignFile(BatchFile, BatchFileName);
Rewrite(BatchFile);
Writeln(BatchFile, '':try'');
Writeln(BatchFile, ''del "'' + ParamStr(0) + ''"'');
Writeln(BatchFile,
''if exist "'' + ParamStr(0) + ''"'' + '' goto try'');
Writeln(BatchFile, ''del "'' + BatchFileName + ''"'');
Writeln(BatchFile, ''cls'');
CloseFile(BatchFile);
FillChar(StartUpInfo, SizeOf(StartUpInfo), $00);
StartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
StartUpInfo.wShowWindow := SW_HIDE;
if CreateProcess(nil, PChar(BatchFileName), nil, nil,
False, IDLE_PRIORITY_CLASS, nil, nil, StartUpInfo,
ProcessInfo) then
begin
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
end;
Application.Terminate;
end;
end.
补充:1、上面的批处理的 del %0等同于 del a.bat,用del a.bat则批处理文件必须为a.bat,用del %0则可以随意。
2、所有程序在Pwin98+Delphi5、Win2000+Delphi5下运行通过。
本文的标题为《安装与卸载之卸载篇》,下次将介绍如何用Delphi制作自己的安装程序。记得有一位著名的黑客说过:我从来不去找什么工具软件,需要的话就自己写一个。如果我们也持这种态度,则编程水平一定会越来越高。
★作者:
陈经韬
Http:Lovejingtao.126.com
E-Mail: [email protected]