关于DLL的问题, 请教.(100分)

  • 主题发起人 主题发起人 icysword
  • 开始时间 开始时间
I

icysword

Unregistered / Unconfirmed
GUEST, unregistred user!
http://zhanet.myrice.com/data/200107/2315424501.htm

看了上面这篇关于DLL木马的问题, 有个问题, 想请教高手, DLL嵌入系统进程(如explorer.exe)后, 是怎么响应客户端消息的?
 
这个时间了 还有人在论坛上啊

呵呵

工作这么辛苦啊 哪位大富翁啊?
 
dll里可以干很多事情啊,就算监视ie上网情况也行啊
 
就一个DLL, 也可以吗? 就是说, 把DLL嵌入到explorer进程后, DLL也能做很多事情吗?
explorer又怎么知道调用嵌入的DLL来工作呢?
 
晕哦, 这个时候, 论坛都是没人的吗?
 
事件怎么写呀.
 
调入了你的dll,你的dll是属于和explorer的主线程不同的线程的,在初始化代码那里可以写你自己需要的代码
 
library Project1;
uses
SysUtils,
Classes;

{$R *.res}

var f:textfile;
begin
assignfile(f,'c:/a.txt');
rewrite(f);
writeln(f,'aaaa');
closefile(f);
end.

这样, 在调用DLL的时候就可以在C盘产生a.txt文件了. 但要定义socket事件来响应客户端来的消息 , 该如何做呢?
 
可是在DLL里, 用个FORM, 加个TCPSERVER, 为何就不能响应客户端的连接呢?
library Project1;

{$R *.res}

uses
dllUnit in 'dllUnit.pas' {Form1};

begin
end.


unit dllUnit;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Sockets;

type
TForm1 = class(TForm)
s: TTcpServer;
procedure sAccept(Sender: TObject; ClientSocket: TCustomIpClient);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.sAccept(Sender: TObject; ClientSocket: TCustomIpClient);
var f:textfile;
begin
assignfile(f,'c:/a.txt');
rewrite(f);
writeln(f,'aaaa');
closefile(f);
end;

把sAccept的代码写入到TForm1.FormCreate里, 也没用, 不在C盘下生成a.txt文件. 为什么呀?
 
1、form要你自己create
2、message loop 要你自己处理
 
具體如何做? 能舉例說明一下嗎?

library Project1;

uses
SysUtils,Sockets;

procedure sAccept(Sender: TObject; ClientSocket: TCustomIpClient);
var f:textfile;
begin
assignfile(f,'c:/a.txt');
rewrite(f);
writeln(f,'aaaa');
closefile(f);
end;

var s:TTcpServer;

begin
s:=TTcpServer.Create(nil);
s.LocalHost:='127.0.0.1';
s.LocalPort:='8899';
s.Active:=true;
s.OnAccept:=sAccept;
end;
這樣行嗎?
但 s.OnAccept:=sAccept 這句編譯不過. 為什麼?
 
TTcpServer哪有OnAccept事件啊
 
啊? 不是OnAccept吗? 那响应client连接的是什么呀.
 
OnClientConnect
 
可是在form里面就没有错啊.
 
这个问题要请教网络高手!
 
后退
顶部